Https加密
HTTP: 直接通过明文在浏览器和服务器之间传递信息。
HTTPS: 采用 对称加密 和 非对称加密 结合的方式来保护浏览器和服务端之间的通信安全。
对称加密
对称加密: 加密和解密都是同一个密钥。
非对称加密
非对称加密: 密钥成对出现,分为公钥和私钥,公钥和私钥之间不能互相推导,公钥加密需要私钥解密,私钥加密需要公钥解密。
两种加密区别
对称加密速度快,非对称加密速度慢(相对慢100倍)。
对称加密相对非对称加密不安全,只要密钥暴露和,明文传递没有区别;非对称加密可以将公钥暴露,供客户端加密,服务端使用私钥解密。
Https加密流程
SSL: 在TCP协议之上,应用层之下运作,是用来传输敏感信息的。使用SSL连接的URL地址以https开头,而不是http。
- 浏览器使用Https的URL访问服务器,建立SSL链接。 服务器接收到SSL链接后,发送非对称加密的公钥A给浏览器。
- 浏览器生成随机数,作为对称加密的密钥B。 浏览器使用服务器返回的公钥A,对自己生成的对称加密密钥B进行加密,得到密钥C。
- 浏览器将密钥C发送给服务器 服务器使用自己的私钥D对接受的密钥C进行解密,得到对称加密密钥B。
- 浏览器和服务器之间使用密钥B作为对称加密密钥进行通信。
- 通过上面的流程浏览器和服务器之间共享一个对称加密密钥B,而且不会被人监听和拦截到,之后的消息传递,使用密钥B进行对称加密。
优点: 非对称加密只使用了一次,后续所有的通信消息都是用对称加密,效率比非对称加密高。
非对称加密的缺点
当服务器发送公钥给客户端, 中间人截获公钥 ,将 中间人自己的公钥 冒充服务器的公钥发送给客户端。之后客户端会用 中间人的的公钥 来加密自己生成的 对称密钥 。然后把加密的密钥发送给服务器,这时中间人又把密钥截取,中间人用自己的私钥把加密的密钥进行解密,解密后中间人就能获取 对称加密的密钥 。
注意: 非对称加密之所以不安全,因为客户端不知道这把公钥是不是属于服务器的。
认证中心(CA)
一个拥有公信力、大家都认可的认证中心,数字证书认证机构。
数字证书
1)概念:
数字证书是数字证书在一个身份和该身份的持有者所拥有的公/私钥对之间建立了一种联系,由认证中心(CA)或者认证中心的下级认证中心颁发的。根证书是认证中心与用户建立信任关系的基础。在用户使用数字证书之前必须首先下载和安装。
认证中心是一家能向用户签发数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的,认证中心必须公布其公共密钥或由更高级别的认证中心提供一个电子凭证来证明其公共密钥的有效性,后一种方法导致了多级别认证中心的出现。
2)数字证书颁发过程:
数字证书颁发过程如下:用户产生了自己的密钥对,并将公共密钥及部分个人身份信息传送给一家认证中心。认证中心在核实身份后,将执行一些必要的步骤,以确信请求确实由用户发送而来,然后,认证中心将发给用户一个数字证书,该证书内附了用户和他的密钥等信息,同时还附有对认证中心公共密钥加以确认的数字证书。当用户想证明其公开密钥的合法性时,就可以提供这一数字证书。
3)内容:
数字证书的格式普遍采用的是X.509V3国际标准,一个标准的X.509数字证书包含以下一些内容:
1、证书的版本信息;
2、证书的序列号,每个证书都有一个唯一的证书序列号;
3、证书所使用的签名算法;
4、证书的发行机构名称,命名规则一般采用X.500格式;
5、证书的有效期,通用的证书一般采用UTC时间格式;
6、证书所有人的名称,命名规则一般采用X.500格式;
7、证书所有人的公开密钥;
8、证书发行者对证书的签名。