-
被窃听的风险:第三方可截获并查看你的内容
-
被篡改的危险:第三方可截获并修改你的内容
-
被冒充的风险:第三方可伪装成通信方与你通信;
正是因为http存在三大风险,所以才需要https。
而https可以做到加密传输、完整性校验、身份认证,三大优势:
-
建立安全信息通道,进行加密传输,保证数据隐私性、安全性;
-
内容传输经过完整性校验,保证数据完整性;
-
对网站服务器进行真实身份认证;
===============================================================================
在了解https工作原理之前,先了解几个重要内容:加密、数字签名、数字证书。 从而理解https是如何解决http的三大风险:被窃听、被篡改和被冒充;并且理解https的三大优势,加密传输、完整性校验、身份认证。
其实这些是一一对应的:
-
加密——加密传输——解决被窃听的风险
-
数字签名——完整性校验——解决被篡改的危险
-
数字证书——身份认证——解决被冒充的风险。
加密有三种方法,逐一介绍
方法一、对称加密
所谓对称加密就是说:对信息的加密和解密都需要用到密钥,而且是同一个密钥。 即没有密钥就没法解密,但只要有密钥就可以解密。
在对称加密这种方式中,要把密钥也转交接收方。但是如何保证转交这个过程中,密钥的安全性呢?有可能密钥会被人窃取,那窃取方手持密钥就可以解密信息了。
方法二、非对称加密
非对称加密方法,是使用一对非对称的密钥。其中一把是”公开密钥“,另一把是”私有密钥“。公开密钥可以随意发布,而私有密钥不能让其他人知道。
-
私钥只有一把,并且是服务器“拿着”。
-
公钥可以有很多把,是客户端“拿着”。
首先,客户端A想要和服务器B进行通信:A可以将自己的内容(明文)通过B送的公钥做一次加密,然后将加密后的内容传送给B。这时候B就可以拿自己唯一的私钥去解密,从而读取加密后的内容。
简单来说:
-
公钥有多把,给多个客户端用;而私钥只有一把,服务器自己用;
-
某个客户端拿公钥对内容加密,服务器拿唯一的私钥对内容解密。
如果是服务器向客户端通信,非对称加密也有缺点:
-
公钥是公开的,私钥加密的信息,坏人可以截获公钥来解密;
-
公钥不包含服务器的信息,不能保证服务器身份的合法性;
-
同时,非对称加密算法在加密解密过程中耗时长,降低效率。
方法三、对称加密+非对称加密(https所采用的)
通过上面的讲解,我们可以发现对称加密的优点在于解密效率高,但它不安全;非对称加密的优点在于安全,但是加密解密过程复杂,降低了效率。
对称加密为什么不安全
在方法一中也有讲到:对称加密对信息的加密和解密都是用同一把密钥,需要把密钥也转交给对方。转交的时候有可能出现密钥被窃取的情况。然而任何拿到密钥的人都可以解密内容!所以是不安全的。
相比之下,非对称加密就显得安全很多。在交换信息这个过程中,不用怕信息被窃取篡改。
新思路:对称加密+非对称加密
既然对称加密是在转交密钥时不安全,那就用非对称加密来保证安全性;既然非对称加密在解密加密的过程中耗时长,就用对称加密来简化这一过程,提高效率。优势互补!
对称加密+非对称加密的实现
客户端和服务器先传输一对“对称的密钥”,这对对称的密钥是采用的就是对称加密方法,是用于后续报文交换的。传输这对“对称的密钥”这个过程,则用的是一对非对称密钥来加密解密,采用的是非对称加密方法。
通过非对称加密方式传输“对称的密钥”,就能保证传输的这对“对称密钥”是安全的!传输完成后,在加密解密交换信息的过程,就用这对“对称密钥”来加密解密,使用的是对称加密方式,提高效率!
概括如下:
-
传输“对称的密钥”的过程,使用非对称加密方式(保证安全)
-
交换报文信息的过程,使用的是对称加密方式(保证效率)
具体做法:客户端拿服务器给的公钥,对“对称密钥”进行加密处理,传输给服务器。服务器用自己的私钥,对传输过来的“对称密钥”做解密处理。这样保证了交换密钥是安全的,再用对称密钥,使用对称加密方式来通信。
即使通过加密传输,保证数据不能被窃听,数据无法被坏人解密,但是有可能在传输过程中被坏人篡改。所以需要用“数字签名”signature来解决被篡改的风险。
数字签名的作用
-
能确定消息是发送方签名且发送出来的,因为签名无法被冒充
-
进行完整性校验,证明数据有无被篡改。
服务器发送方—数字签名的生成和发送
1.把一段内容作Hash算法处理,得到一个Hash值;
2.发送者用私钥对Hash值进行加密,得到数字签名signature。
3.发送方将原文明文和数字签名signature一起发送出去。
客户端接收方—数字签名的校验
1.接收方使用发送者提供的公钥对接收到的数字签名signature进行解密,得到一个哈希值A;
2.然后用同样的Hash算法对接收到的明文作处理,得到哈希值B
3.比较哈希值A和B是否相同,若相同,则能保证数据没有被篡改。
但是接收方得保证自己拿到的公钥就是发送方服务器所提供的。
数字证书认证机构是客户端和服务器双方都可信赖的第三方机构。
数字证书认证流程:
-
服务器向第三方机构CA提交公钥、组织信息、个人信息等并申请认证;
-
CA通过多种手段去验证服务器申请者提供信息的真实性,如组织是否存在,是否合法等
-
若审核通过,CA会向申请者签发数字证书。数字证书包含:申请者公钥,申请者的组织和个人信息、有效时间等等。
-
客户端client向服务器Server发出请求,Server返回证书文件;
最后
中年危机是真实存在的,即便有技术傍身,还是难免对自己的生存能力产生质疑和焦虑,这些年职业发展,一直在寻求消除焦虑的依靠。
-
技术要深入到什么程度?
-
做久了技术总要转型管理?
-
我能做什么,我想做什么?
-
一技之长,就是深耕你的专业技能,你的专业技术。(重点)
-
独立做事,当你的一技之长达到一定深度的时候,需要开始思考如何独立做事。(创业)
-
拥有事业,选择一份使命,带领团队实现它。(创业)
一技之长分五个层次
-
栈内技术 - 是指你的前端专业领域技术
-
栈外技术 - 是指栈内技术的上下游,领域外的相关专业知识
-
工程经验 - 是建设专业技术体系的“解决方案”
-
带人做事 - 是对团队协作能力的要求
-
业界发声 - 工作经验总结对外分享,与他人交流
永远不要放弃一技之长,它值得你长期
信仰持有
。
主要内容包括html,css,html5,css3,JavaScript,正则表达式,函数,BOM,DOM,jQuery,AJAX,vue 等等。