HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段
SSL采用一种叫做公开密钥加密(Public-Key cryptography)的加密处理方式(对内容加密:对称加密)
TSL:对密钥加密:非对称加密
image.png证书验证阶段:
1、浏览器发起 HTTPS 请求。
2、服务端返回 HTTPS 证书。
3、客户端验证证书是否合法,如果不合法则提示告警。
数据传输阶段:
1、当证书验证合法后,在本地生成随机数。
2、通过公钥加密随机数,并把加密后的随机数传输到服务端。
3、服务端通过私钥对随机数进行解密。
4、服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输。
为什么数据传输是用对称加密?
首先,非对称加密的加解密效率是非常低的,而 HTTP 的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。
另外,在 HTTPS 的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以 HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。
为什么需要 CA 认证机构颁发证书?
防止中间人攻击
常用的加密算法
- 对称密码算法:是指加密和解密使用相同的密钥,典型的有DES、RC5、IDEA(分组加密),RC4(序列加密)AES加密是一种对称式加密,;
- 非对称密码算法:又称为公钥加密算法,是指加密和解密使用不同的密钥(公开的公钥用于加密,私有的私钥用于解密)。比如A发送,B接收,A想确保消息只有B看到,需要B生成一对公私钥,并拿到B的公钥。于是A用这个公钥加密消息,B收到密文后用自己的与之匹配的私钥解密即可。反过来也可以用私钥加密公钥解密。也就是说对于给定的公钥有且只有与之匹配的私钥可以解密,对于给定的私钥,有且只有与之匹配的公钥可以解密。典型的算法有RSA,DSA,DH;
- 散列算法:散列变换是指把文件内容通过某种公开的算法,变成固定长度的值(散列值),这个过程可以使用密钥也可以不使用。这种散列变换是不可逆的,也就是说不能从散列值变成原文。因此,散列变换通常用于验证原文是否被篡改。典型的算法有:MD5,SHA,Base64,CRC等。
SSL加密的过程包括以下步骤:①通过验证以后,所有数据通过密钥进行加密,使用DEC和RC4加密进行加密。②随后客户端随机生成一个对称密钥。③信息通过HASH加密,或者一次性加密()。(MD5/SHA)进行完整性确认。④客户端和服务器协商建立加密通道的特定算法。
D
A . ④③①②
B . ④①③②
C . ④②③①
D . ④②①③
网友评论