http-https为何更安全?
http/https区别:
- http是明文传输,无状态连接,80端口,通信内容会泄露
- https在http的基础上加入了ssl协议,可以加密传输,需要身份认证,CA认证需要收费,443端口,建立安全的通信通道,并确认网站的真实性
为什么https安全?
- 加密通信,即使别人获取到了信息也没法复原成原来的信息。
- 防止中间人攻击,黑客没法冒充服务端。因为服务端给了客户端一个CA证书。
- CA证书的公信力:CA证书需要由公司或者个人发出申请,再通过邮箱验证等方法验证域名存在,避免了黑客冒充网站获取证书的可能。
- 在技术层面上,CA机构的公钥是写在操作系统或者浏览器里的。只有用CA机构的私钥加密的内容才能完成解密。确保了证书的确是CA机构发行的。
对称加密:
非对称加密:
- 加密和解密用不同的密钥,但是黑客也可以获得服务器发给客户端的的公钥,所以需要服务端将自己的公钥通过CA私钥加密发送给客户端,客户端通过CA公钥认证获得服务端公钥
密钥:
- CA机构发行的私钥和公钥:验证服务器是证书的正规所有者,避免中间人攻击
- 服务端发行的私钥和公钥:用于加密/解密客户端发行的密钥
- 客户端发行的密钥:用于加密/解密客户端与服务端之间传输的数据
加密传输过程:
- 客户端需要将自己的密钥通过服务端的公钥加密后发送给服务端
- 服务端将自己的公钥通过CA的私钥加密后和CA证书一起发送给客户端
- 客户端通过CA的公钥验证CA证书是否有效并解密获得服务器的公钥
- 客户端将自己的密钥通过服务端的公钥加密后发送给服务端
- 服务端通过自己的私钥解密自己的公钥并获得服务端的密钥
- 客户端和服务端都拥有同一把密钥,就可以通过密钥加密/解密所有信息