1. HTTPS概述
https是由http加上ssl的来的,之前一直使用的http通信过程直接用的明文,安全性极低,攻击人可以很容易窃取通信内容,同时冒充服务器和用户通信,窃取用户隐私数据。为了保证安全性,https引入了认证机制以及加密的通信。
2.HTTPS过程详解
首先我们要知道https的存在是为了证明和浏览器通信的服务器是合法的,同时保证通信过程不被第三方窃取。所以https重点要做的事两个:
- 服务器认证;
- 通信密钥协商;
2.1 服务器认证过程
在认证服务器时需要第三方机构来进行认证,这个机构叫做认证授权机构(Certificate Authority),它能够帮助客户端认证服务端的合法性。
认证过程如上图所示:
- 首先服务端会生成一对公私钥,将公钥S.pub发送给CA进行认证;
- 认证服务器用自己的私钥C.pri对S.pub进行签名(加密),得到sig,同时将sig和S.pub绑定组成证书;
- CA将证书返回给服务端;
- 这时候浏览器(客户端)要访问服务端的某个网页或资源。从认证服务器那里获取了公钥C.pub,同时对服务端发起http请求;
- 在建立连接后,服务端将证书发送给浏览器;
- 浏览器用CA的公钥对证书中的签名sig进行解密,得到一个S.pub^,将它和证书中的S.pub进行对比,如果两者相同,说明服务端是合法的,否则是不合法的