7.2 HTTP+ 加密 + 认证 + 完整性保护 =HTTPS
- https = http + ssL(Secure socket layer)
- client: 使用servcer端的publickey对消息加密-----》server:收到消息,用privatekey进行解密
- 参考:
- 彻底搞懂HTTPS的加密原理_峰子2012的博客-CSDN博客
- 公私钥加解密,及签名验签 - 知乎
- client--->server: 如果client的私钥加密,server端公钥解密。那谁都可以解密这个报文。所以应该client用server公钥加密,server持有server的私钥解密。 那么client发出的消息只有server可以解密。
- client--->server: client的公钥加密,server持有client的私钥解密。那会出现任何人可以伪装为client用publickey去发报文给server。 为了解决这个问题:client应该用client的私钥签名,server用client的公钥解签。
- 综上两种情况,client和server之间需要有两对公私钥:各自持有对方的公钥和自己的私钥。client用server的公钥加密原文,用client的私钥签名。server端用client的公钥验签。用server的私钥解密密文。
https在交换密钥环节使用公开密钥加密方式(非对称加解密),之后的建立通信交换报文阶段则使用共享密钥加密方式(对称加解密)公开秘钥加密处理相对复杂,会降低通信效率,所以通信的时候希望使用共享密钥加密方式。