HTTPS公私钥加密演变过程
http的内容是明文传输的,明文数据会经过中间代理服务器、路由器、wifi热点、通信服务运营商等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双方察觉,这就是中间人攻击。所以我们才需要对信息进行加密。
加密方式大体可以分为两种:
- 对称加密
- 非对称加密
1 对称加密(私钥加密)
加密解密都是用相同的密钥
原数据:A
密钥:B
加密后数据:A + B = C
解密后数据:C – B = C
2 非对称加密(公私钥加密)
加密解密使用不同的密钥
原数据:A
公钥:B
私钥:D
公钥加密后数据:A + B = C
私钥解密后数据:C – D = A
非对称加密作用:
①公钥加密,私钥解密
②私钥签名,公钥验签
私钥和公钥是一对,谁都可以加解密,只是谁加密谁解密是看情景来用的:
第一种情景是签名,使用私钥加密,公钥解密,用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改.但是不用来保证内容不被他人获得。
第二种情景是加密,用公钥加密,私钥解密,用于向公钥所有者发布信息,这个信息可能被他人篡改,但是无法被他人获得。
非对称加密,公私钥谁加密谁解密
公私钥应用及Token加密
3 HTTPS加密演变过程
使用对称加密来加密HTTPS可行吗r> 显然是不现实的,因为对称加密使用的是相同的密钥来进行加密与解密,一旦被中间人截取到,那么他就可以直接查看里面的数据
3.1 非对称加密
使用非对称加密:服务器先把公钥以明文的形式传输给浏览器,然后浏览器向服务器传输数据之前都先使用这个公钥加密好之后再传输,这样这个数据的安全性似乎得到了保证,因为只有服务器才存在对应的私钥来解开被公钥加密过的数据。
:但是这样的方式无法保证服务器到浏览器这条路线的安全。比如:服务器给浏览器传输的公钥一开始就是明文的,那么如果这个公钥被中间人劫持了,中间人就可以把自己的公钥发送给浏览器,让浏览器误以为是服务的公钥,同时,浏览器也可以通过之前劫持到的公钥给服务器发送数据。【只能保证浏览器向服务器传输数据的安全性】
3.2 两次非对称
既然通过一组公私钥可以保证单个方向的传输安全,那么我们使用两组公私钥,是否就可以保证双向的传输安全呢p>
- 某服务器 站拥有公钥A与对应的私钥A’;浏览器拥有公钥B与对应的私钥B’
- 浏览器把公钥B明文传输给服务器
- 服务器把公钥A明文传输给浏览器
- 之后浏览器向服务器传输的内容都用公钥A加密,服务器收到后用私钥A’解密。由于只有服务器拥有私钥A’,所以可以保证这条数据的安全。
- 同理,服务器向浏览器传输的内容都用公钥B加密,浏览器收到后都用私钥B’解密,也可以保证这条数据的安全。
可以实现双向的数据传输安全,但是非对称加密非常的耗时。而对称加密会快很多,我们就想能不能运用非对称加密来解决对称加密的漏洞呢p>
3.3 非对称+对称
既然非对称加密耗时,对称加密不安全,那么结合起来会怎样呢p>
- 某 站拥有非对称加密的公钥A、私钥A’
- 浏览器向服务器发请求,服务器把公钥A明文传输给浏览器
- 浏览器随机生成一个用于对称加密的密钥X,用公钥A加密后传输给服务器
- 服务器拿到后用私钥A’解密得到密钥X
- 这样双方都拥有密钥X了,并且别人无法知道它,之后双方所有的数据都通过密钥X加密解密即可。
3.4 中间人攻击
如果在数据传输过程中,中间人劫持到了数据,虽然此时他无法得到浏览器生成的密钥X(密钥X被公钥A加密了,只有服务器才有私钥A’来解开它),但是中间人依然可以不用拿到私钥A’,就可以干坏事儿。
- 某服务器 站有用于非对称加密的公钥A、私钥A’
- 浏览器向 站服务器发送请求,服务器把公钥A明文传输给浏览器
- 中间人劫持到公钥A,保存下来,把数据包中的公钥A替换为自己伪造的公钥B(当然它也拥有公钥B对应的私钥B’)
- 浏览器生成一个用于对称加密的密钥X,用(浏览器此时无法得知公钥被替换了)加密后传给服务器。
- 中间人劫持后用私钥B’解密得到密钥X,再用公钥A加密后传给服务器。
- 服务器拿到后用私钥A’,解密得到密钥X。
这样在双方都不会发现异常的情况下,中间人就通过”狸猫换太子”的操作,掉包了服务器传来的公钥,进而得到了密钥X。根据原因是因为浏览器无法确认收到的公钥是不是服务器 站自己的。
3.5 证书机制
CA机构,它是互联 正常运作的前提,CA机构会给每个合法的使用HTTPS的 站颁发数字证书。
- 数字证书
站在使用HTTPS之前,需要向CA机构申领一份数字证书,证书里面包含证书持有者信息、公钥信息等。服务器把证书传输给浏览器,浏览器从证书里获取公钥就行了,证书就如身份证,证明。但是我们如何证明证书本身的真实性呢p>
- 如何防止数字证书被篡改li>
我们把证书原本的内容生成一份签名,对比证书内容和签名是否一致就可以判别是否被篡改,这就是数字证书的防伪技术,这里的就是。
数字签名的生辰与验证:
4 拓展 PKI
PKI:Public Key Infrastructure,公钥基础设施
-
PKI概述
作用:通过加密技术和数字签名保证信息的安全
组成:公钥加密技术、数字证书、CA、RA -
信息安全三要素
- 机密性
- 完整性
- 身份验证/操作的不可否性
-
哪些IT领域用到了PKI
1)SSL/HTTPS
2)IPsecVPN
3)部分远程访问VPN -
公钥加密技术
- 作用:实现对信息加密、数据签名等安全保障
- 加密算法:
- 对称加密算法
加密解密的密钥一致【DES、3DES、AES】
- 非对称加密算法
通信双方各自产生一对公私钥
双方各自交换公钥
公钥和私钥为互相加解密关系
- 证书
- 用于保证密钥的合法性
- 数字证书包含信息:
使用者的公钥值
使用者标识信息(如:名称和电子邮件地址)
有效期
颁发者标识信息
颁发者的数字签名
数字证书由权威公正的第三方机构(CA)签发
参考文章:
https://zhuanlan.zhihu.com/p/43789231
https://www.cnblogs.com/shijingjing07/p/5965792.html
https://cheapsslsecurity.com/blog/digital-signature-vs-digital-certificate-the-difference-explained/
文章知识点与官方知识档案匹配,可进一步学习相关知识 络技能树首页概览23056 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!