HTTPS简介

2017-06-30  本文已影响265人  开发者老岳

产生原因:

对称加密和非对称加密

对称加密就是用同一个密钥加密、解密。
如图,A如果直接发送data,肯定会经过若干中间人M(如路由等),HTTP就是纯明文的,M可以获取所有明文数据。



而通过对称加密,如果A和B都有密钥key,M没有密钥就无法得到明文的data。

但问题来了,现在A生成了一个密钥key,怎么将其传给B呢?若直接发送,那M也会得到,那加密也没啥意义了。非对称加密就是为了解决这个而诞生的。
非对称加密,就是生成俩key,一个公钥key1一个私钥key2,key1加密的数据只能用key2解密,而key2加密的数据只能用key1解密。这种算法事实上有很多,常用的是 RSA,其基于的数学原理是两个大素数的乘积很容易算,而拿到这个乘积去算出是哪两个素数相乘就很复杂了。好在以目前的技术,分解大数的素因数确实比较困难,尤其是当这个大数足够大的时候(通常使用2的10次方个二进制位这么大),就算是超级计算机解密也需要非常长的时间。

CA证书(Certification Authority)

然而,非对称加密一定是安全的吗?

这就要用到了CA证书。CA 是一些非常权威的专门用于认证一个网站合法性的组织。服务商可以向他们申请一个证书,使得他们建立安全连接时可以带上 CA 的签名。而 CA 的安全性由操作系统或浏览器来认证。你的 Windows、Mac、Linux、Chrome、Safari 等会在安装时带上一个他们认为安全的 CA 证书列表。如果和你建立安全连接的人带着这些人的签名,那么认为这个安全连接是安全的,没有遭到中间人攻击。

CA 证书通常情况下是安全的。因为一旦某个 CA 颁发出的某个证书被用于了非法用途,浏览器和操作系统一般会通过更新将整个 CA 颁发过的全部证书全部视为不安全。这使得 CA 通常在颁发证书时是比较小心的。

所以通过 对称加密 + 非对称加密 + CA认证 这三个技术混合在一起,才使得 HTTP 的后面加上了一个 S —— Security。

HTTPS原理

下图是一个简单的原理:

  • a) 制作CSR文件。就是制作Certificate Secure Request证书请求文件,制作过程中,系统会产生2个密钥,一个是公钥就是这个CSR文件,另一个是私钥,存在服务器上。
  • b) CA认证。将CSR文件提交给CA,一般有两种认证方式:域名认证 和 企业文档认证。
  • c) 证书安装。收到CA证书后,将证书部署在服务器上。
  • a) 验证证书的合法性。如颁发机构是否合法、证书中的网站地址是否与访问的地址一致,若不合法,则浏览器提示证书不受信任,若合法,浏览器会显示一个小锁头。
  • b) 若合法,或用户接受了不合法的证书,浏览器会生成一串随机数的密码(即密钥),并用证书中提供的公钥加密。
  • c) 使用约定好的hash计算握手消息,并使用生成的随机数(即密钥)对消息进行加密,最后将之前生成的所有消息一并发送给网站服务器。

其他参考:http://www.admin5.com/article/20150505/597061.shtml
https://wenku.baidu.com/view/4112d2cf960590c69ec376b4.html
https://wenku.baidu.com/view/b753d97a79563c1ec4da715d.html?from=search

上一篇 下一篇

猜你喜欢

热点阅读