12.3.5 SSL是怎么工作的

12.3.5 SSL是怎么工作的

HTTPS协议

从浏览器地址栏中可看到协议:例如https://www.amazon.cn/,有的浏览器也会在地址栏显示一个安全的图标(一个绿色的锁),如下图所示:
这里有一张图片

HTTP协议是明文传输的,并且不能验证对方的身份,而且不能保证数据的完整性。而当我们在网络上进行购物电子交易时,电子网银转账时,这种方式就显得很不安全了。如果黑客截取了我们和服务器端的通信数据,那么黑客就能获取我们的一些敏感信息了。所以,HTTPS应运而生!
HTTPS是在HTTP协议的基础上加入了SSL协议,**SSL协议加在了传输层和应用层之间**,如下图所示:
这里有一张图片
在加入了SSL协议后,HTTPS相比HTTP更加的安全,其对数据的传输进行了加密处理,并且能验证通信双方的身份,还保证了数据传输过程的完整性。这样,即使黑客截取了我们和服务器之间的通信数据,它也获取不到任何有用的信息。
需要说明的是,**SSL协议是独立于 HTTP 的协议**,所以不光是 HTTP 协议,其他运行在应用层的 SMTPTelnet 等协议均可配合 SSL 协议使用。可以说 SSL 是当今世界上应用最为广泛的网络安全技术。

申请SSL数字证书

SSL证书是需要向第三方CA机构申请的,现在大部分的SSL证书都是要付费申请的。

申请SSL证书流程

我们拿amazon.com为例:

  • 亚马逊首先生成一对公私钥,私钥自己保存。公钥用于申请SSL证书
  • 然后将公钥和amazon.com的一些身份信息发送给第三方可信任CA机构.
  • CA机构收到亚马逊的申请之后,将执行一些必要的步骤,以确信请求确实由亚马逊发送而来,并且这些信息是正确的。
  • 然后,认证中心亚马逊发来的公钥和亚马逊的身份信息进行数字签名,生成数字证书,然后发送给亚马逊。
  • 数字证书里面包含了亚马逊的公钥、亚马逊的**身份信息 **和 第三方CA机构的数字签名

SSL协议工作过程

当买家进入一个亚马逊的网站时,他的浏览器亚马逊的服务器在后台发生了如下事件:

  • 浏览器访问 https://www.amazon.cn/
  • 服务器将网站的证书信息发送给客户端
  • 浏览器通过证书上第三方可信任机构CA的签名,向该机构验证证书的真假
    • 如果该证书是真的,
      • 要求服务器证明是该证书的拥有者
  • 服务器向浏览器发送消息和使用服务器私钥加密的消息的摘要
  • 浏览器使用证书中服务器的公钥解密消息的摘要,
    • 浏览器生成另一份消息的摘要,比较两个摘要,
      • 如果两个摘要相同,则说明该服务器确实是该证书的拥有者,
        • 则浏览器生成会话秘钥对,把会话公钥作为消息,然后使用服务器公钥加密该消息,然后发送给服务器。
  • 服务器使用服务器的私钥解密该消息,就得到了浏览器会话的公钥
  • 最后,浏览器和服务器双方都拥有对方的公钥,相互通信时,只需要:
    • 使用对方的公钥加密要向对方发送的消息,
    • 使用自己的私钥解密从对方接收到的消息。

过程如下图所示:
这里有一张图片

参考资料

SSL协议的工作过程