HTTP协议–应用层
TCP / UDP–传输层
SSL / TLS—应用层和传输层之间(七层协议中的会话层)
https加密的实现?
1.混合加密---->保证信息的机密性—>解决了窃听的风险
采用对称和非对称加密混合的方式,在通信建立前采用非对称加密的方式交换「会话秘钥」,后续就不再使用非对称加密。
AB之间需要通信,那么在通信建立前先交换的公钥。之后如果A要发信息给B,那么就用B的公钥加密A要发送的信息,那么只有B的私钥可以打开并且拿到A的信息。如果B要发送信息给A,那么B用A的公钥加密要发送的信息,此时只有A的私钥可以打开这个加密的信息了。
对称加密和非对称加密?
对称加密:加密解密用同一个密钥,被黑客拦截不安全。常见的对称加密算法:DES,AES,3DES等等。
非对称加密:公钥加密,私钥解密;公钥可以公开给别人进行加密,私钥永远在自己手里,非常安全,黑客拦截也没用,因为私钥未公开。常见的非对称加密算法:RSA,ECC
对称加密算法相比非对称加密算法来说,加解密的效率要高得多。但是缺陷在于对于秘钥的管理上,以及在非安全信道中通讯时,密钥交换的安全性不能保障。所以在实际的网络环境中,会将两者混合使用.
2.摘要算法(哈希算法)—>实现完整性—>解决了篡改的风险
客户端对明文用摘要算法加密,并且把加密前后的「指纹 + 明文」都发送到服务端,服务端把加密前的明文用同样的信息摘要算法计算「指纹,如果和客户端发送过来的加密后「指纹」,说明了数据时完整的
常见摘要算法:MD5
3.数字证书—>保证服务器公钥的身份—>解决冒充的风险
借助第三方权威机构 CA (数字证书认证机构),将服务器公钥放在数字证书(由数字证书认证机构颁发)中
- 服务器将自己的公钥注册到CA
- CA用自己的私钥将服务器的公钥数字签名并颁发数字证书
- 客户端收到拿到数字证书后用CA的公钥确认服务器数字证书的真实性—>只要证书是可信的,公钥就是可信的