https知识整理

  最近在做和https相关的工作,因此把工作中遇到的问题及知识做一下梳理和总结。

  在互联网时代,信息交互存在着不安全性,你无法判断你访问的网站是真实的还是中间服务,https就是为了解决这个问题而产生的。在说https具体的知识之前,先要普及2个知识,对称算法和非对称算法。

  对称加密算法:加密方和解密方共用一个密钥,该密钥既可以进行加密也可以进行解密。

https知识整理_第1张图片

 

 

  非对称加密算法:是指一个加密算法的加密密钥和解密密钥是不一样的,或者说不能由其中一个密钥推导出另一个密钥,分为公钥和私钥。私钥加密后的密文,只要是公钥,都可以解密,但是公钥加密后的密文,只有私钥可以解密。私钥只有一个人有,而公钥可以发给所有的人。一般服务器存放私钥,客户端存放公钥。

 

https知识整理_第2张图片

 

 

 

HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。HTTPS实现的方案需要上述的知识点。

通过上述基础知识普及,只要客户端能够安全的获取到服务器非对称加密对的公钥,那么通过服务器的公钥进行加密信息原文,密文在网络传输过程中就是安全的,即使被第三方抓取也不能解密,应为只有服务器有私钥可以进行解密。考虑到非对称加密的加密解密性能是比较低的,因此每次数据传输都用非对称加密算法来传输原文是不合适的,因此换个思路做优化,在进行第一次http连接时,客户端生成一个对称算法(并且通过公钥私钥传输安全机制来传输协商后的对称算法给到服务器,一般这个对称算法还会加入随机数),然后客户端原文通过这个对称算法进行加密,并且在网络上传输。(由于对称算法是实时生成的,并且会变化的,虽然对称算法加密过的密文在网络上可能被抓取,理论上会破解,但是现实中难度是很大的,要通过穷举法来反复)

用图示方便大家理解上述过程

https知识整理_第3张图片

 

那么所有的重点来了,我们怎么在网络上保证客户端能够安全获取到服务器私钥对应的公钥?

1) 描述了中间攻击过程

https知识整理_第4张图片

由此可见在网络上获取服务器公钥始终无法解决上面的问题,因此引入第三方证书管理机构。

一般网站申请证书的步骤如下

 

2)数字证书信息除了服务器的公钥信息以外,还保存了其他信息(如图),其中数字签名有2部分组成

      证书编号的生成方法,以及该证书编号经过第三方机构私钥加密后的证书编号。

https知识整理_第5张图片

当客户端访问服务器的时候,服务器返回数字证书,让客户端来鉴别。

客户端获取到数字证书,开始对证书中的内容进行验证(根据公开的方法,证书中的原文信息),如果客户端计算出来的证书编号与用第三方公钥解密证书编号得到的结果相同,则验证通过。

第三方机构的公钥会保存在客户端的证书管理中(有的在操作系统中),客户端也会定期到第三方证书机构进行更新机构及公钥更新。

简单描述下交互过程:

https知识整理_第6张图片

 

 

 

 

 

 

 

  

你可能感兴趣的:(互联网技术)