HTTPS
HTTPS(HTTP over SSL),也就是在HTTP协议上增加了SSL协议的加密能力。
在剖析SSL之前,我们需要了解一些概念:
加密
加密分为对称加密和非对称加密
对称加密
通信双方用相同的密钥实现消息的加密和解密这种加密方式如果一旦密钥在传输过程中泄漏,那么双发的信息则毫无秘密可言。
非对称加密
双方各自生成一对公钥和私钥,私钥自己存放,用来解密对方发来的消息,公钥发送给对方,用来加密要发送的消息。这样即使公钥泄露,他人也无法解密。
但非对称加密也存在一些问题:若送公钥的人被拦截,中间人重新生成假的公钥送给对方,对方用假的公钥加密要发送的消息,一旦被截获,中间人就可以用自己的私钥进行破译。
CA&数字证书
如上所述,在非对称加密解决了加密问题后又产生了信任危机,即对方发来的公钥是否为真,这就需要数字证书。
CA(Certificate Authority)就是颁发HTTPS证书的组织,可以防止”中间人“攻击,同时可以为网站提供身份证明。
TLS&SSL流程
SSL(Secure Socket Layer):安全套接字层
TLS(Transport Layer Security),TLS可以理解成SSL协议3.0版本的升级,没有太大区别。
SSL流程大致分为三部分:
- 网站管理员向CA申请数字证书
- 浏览器与服务器握手,服务器发送证书给客户端验证
- 验证证书有效性后双方用服务器生成的对称加密的密钥进行后续通信
注意:
HTTPS 在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
为什么数据传输是用对称加密的?
- 非对称加密的加解密效率非常低,而HTTP的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的。
- 在 HTTPS 的场景中只有服务端保存了私钥,客户端不做非对称密钥生成,一对公钥和私钥只能实现单向的加解密,所以HTTPS 中内容传输加密采取的是对称加密,而不是非对称加密。
感谢您阅读本文,关注我的公众号“语冰Yubing”可接收最新推送,里面也有我分享的一些优质资源。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。