一个菜鸟的http心得(四)HTTPS-安全的HTTP - what are you living for ? - CSDN博客
Saturday, December 8, 2018
8:46 AM

一个菜鸟的http心得(四)HTTPS-安全的HTTP

2018年12月02日 20:42:17 这样挺好了 阅读数:302 标签: HTTPS HTTP SSL 非对称加密 更多
个人分类: http
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/qq_21955179/article/details/84726289

HTTP哪里不安全

  • HTTP通信使用明文(未加密),内容可能被窃听
  • HTTP通信时,不用验证通信方的身份,因此有可能遭遇伪装
  • 使用HTTP接收的报文无法证明其完整性,有可能遭遇篡改

    HTTPS=HTTP over SSL

    SSL在网络分层的位置

    Sd11H  dl  d01  ass  ( d11H )  dLLH  dl  d01  ( dLLH )

    SSL协议的三个特性

    ① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密。
    ② 鉴别:可选的客户端认证,和强制的服务器端认证。
    ③ 完整性:传送的消息包括消息完整性检查(使用MAC)。

    HTTPS工作流程

    工作流程中涉及到的几个主体:

  • 客户端。通常是浏览器(Chrome、IE、FireFox等),也可以自己编写的各种语言的客户端程序。

  • 服务端。一般指支持Https的网站,比如github、支付宝。
  • CA(Certificate Authorities)机构。Https证书签发和管理机构,比如Symantec、Comodo、GoDaddy、GlobalSign。(Https证书的作用就是通过CA机构的信用证明服务器公钥的可信任性。)

证 书 颁 发 机 构  根 证 书  自 签 名 CA 证 书  ( 包 含 CA 公 钥 )  服 务 器  服 务 器 Key ( 私 钥 )  服 务 器 证 书  ( 包 含 服 务 器 公 钥 , 使 用 CA 证 书 认 证 )  客 户 端  受 信 任 的 CA 证 书  列 表
Https的工作流程:

Server  hello  {hello, 服 务 器 证 书 }  受 倌 任 的 CA  服 务 器 证 书 是 否 由 受 倌 CA 頒 发 ?  随 机 生 成 客 户 端 RSA 公 私 钥 、 会 话 密 钥 。  使 用 服 务 端 公 钥 加 密 后 的  客 户 端 公 钥 客 户 端 会 话 钥  使 用 服 务 器 私 钥 还 原  { 客 户 端 公 钥 , 客 户 端 会 话 钥 }  随 机 生 成 服 务 器 会 话 巒 钥 。  使 用 客 户 端 私 钥 还 原 服 务 器 会 话 钥  傅 甲 客 户 会 话 密 钥 加 密 后 的 HTTP黻 椐  HTTP
可以看到工作流程,基本分为三个阶段:

  1. 认证服务器。

浏览器内置一个受信任的CA机构列表,并保存了这些CA机构的证书。第一阶段服务器会提供经CA机构认证颁发的服务器证书,如果认证该服务器证书的CA机构,存在于浏览器的受信任CA机构列表中,并且服务器证书中的信息与当前正在访问的网站(域名等)一致,那么浏览器就认为服务端是可信的,并从服务器证书中取得服务器公钥,用于后续流程。否则,浏览器将提示用户,根据用户的选择,决定是否继续。当然,我们可以管理这个受信任CA机构列表,添加我们想要信任的CA机构,或者移除我们不信任的CA机构。

  1. 协商会话密钥。客户端在认证完服务器,获得服务器的公钥之后,利用该公钥与服务器进行加密通信,协商出两个会话密钥,分别是用于加密客户端往服务端发送数据的客户端会话密钥,用于加密服务端往客户端发送数据的服务端会话密钥。在已有服务器公钥,可以加密通讯的前提下,还要协商两个对称密钥的原因,是因为非对称加密相对复杂度更高,在数据传输过程中,使用对称加密,可以节省计算资源。另外,会话密钥是随机生成,每次协商都会有不一样的结果,所以安全性也比较高。一言以蔽之,通过非对称加密来传递客户端会话秘钥、服务器端会话秘钥,发送HTTP报文的时候用会话秘钥来加密,这样即保证了对称加密的会话秘钥的安全传输,又保证了加密的效率。
  1. 加密通讯。此时客户端服务器双方都有了本次通讯的会话密钥,之后传输的所有Http数据,都通过会话密钥加密。这样网路上的其它用户,将很难窃取和篡改客户端和服务端之间传输的数据,从而保证了数据的私密性和完整性。

附:加密方式

对称加密

原文 & 密码 -> 密文
对称加密双向可逆:即知道原文和密码就可以获得密文;获得密文和密码也可以获得原文。所以对于对称加密,密码必须严格控制,不能公开。设想下有一个1000个人的部门需要信息加密,那么所有1000人都必须要保存密码,只要其中有一个人不小心泄露了密码,整个加密机制就崩溃了。

非对称加密

原文 & 公钥 -> 密文
密文 & 私钥 -> 原文
非对称加密的密钥采用配对方式,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。这样,加密者可以保留私钥,把公钥开放给公众,任何人都可以采用这个公钥加密信息,而只有保存对应私钥的人才能解开这些信息。相比对称加密,非对称加密最大的优势在于解决了密钥传播的问题。
非对称加密除了可以做数据加密之外,还可以用作数字签名等其他方面。
已使用 OneNote 创建。