深入理解 HTTPS

本是古典 何须时尚 2022-05-16 06:06 260阅读 0赞

HTTPS 作为安全的互联网通信协议,和 HTTP 有怎样的关系?是怎样实现的?

以前在博客或者公众号也读过一些关于 HTTPS 的文章,理解的不是很好。最近花时间读了一下《图解 HTTP》,对 HTTPS 有了更深层次的理解,写出来总结一下。

70

一、HTTP 协议的缺点

(1)通信时使用明文,内容可能会被窃取

HTTP 本身没有加密功能,无法对通信内容进行加密,只能以明文的方式发送。窃取通信的内容并非一件难事,只需收集在互联网上流动的数据包(帧)就行了。

对于收集来的数据包可以使用抓包工具(Wireshark)或者嗅探工具(Sniffer)进行解析。

(2)不验证通信方的身份,身份可能会被伪装

使用 HTTP 通信时,由于不需要确认通信方的身份,任何人都可以发起请求。另外,服务器只要接受到请求,不管接受方是谁都会返回一个响应。在这种情况下,接收请求的就有可能是伪造的服务器,当然客户端也可以伪造。

(3)不能保证报文的完整性,信息可能会篡改

在请求或者响应发出之后,在对方接收之前的这段时间内,请求或响应的报文可能会被篡改,协议本身无法知道这一点。

二、加密协议 SSL

HTTP 协议本身没有加密机制,但是可以使用 SSL(Secure Socket Layer)/TLS(Transport Layer Security)协议解决 HTTP 的安全性问题。

SSL 是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTP 和 Telnet 等协议都可以配合 SSL 协议使用。可以说 SSL 是当今世界上应用最为广泛的网络安全技术。

使用 SSL 建立安全通信线路( 对通信线路加密 )之后,就可以在这条线路上进行 HTTP 通信了,内容不会被窃取和篡改。

SSL 不仅提供加密处理,还提供了一种证书机制,用于确定客户端或服务器。证书由值得信任的第三方机构颁发,用来证明客户端和服务端是真实存在的。

三、什么是 HTTPS

HTTP 加上加密处理方式和认证及完整性保护即是 HTTPS(HTTP Secure)。HTTPS = HTTP + 加密 + 认证 + 完整性保护 。

使用 HTTPS 通信时,不再用 http://,而是改用 https://。另外,当浏览器访问 HTTPS 通信有效的 Web 网站时,浏器的地址栏内会出现一个带锁的标记。

HTTPS 并不是应用层的一种新协议。它只是 HTTP 通信接口部分使用 SSL(Secure Socket Layer)和 TLS(TransportLayer Security)协议代替而已。

70 1

HTTPS 本身就是身披 SSL 协议外壳的 HTTP。在采用 SSL 后,HTTP 就拥有了 HTTPS 的加密、证书和完整性保护这些功能。

四、加密方式

(1)共享秘钥加密

所谓共享秘钥加密(Common key crypto system)就是加密和解密都使用相同的秘钥,因此也被称为对称秘钥加密。

使用共享秘钥加密时必须将秘钥也发送给对方 ,这样就存在一个问题,发送的秘钥可能会被攻击者窃听,如果不发送,对方又不能解密。

(2)公开秘钥加密

公开秘钥加密使用一对非对称的秘钥,一把叫做私有秘钥(private key),另一把叫做公开秘钥(private key)。公开秘钥任何人都可以获得,但是私有秘钥是私有的。通过这种方式,可以很好的解决共享秘钥加密的安全性问题。

使用公开秘钥加密时,发送密文的一方使用公钥加密,对方收到加密的信息后,再使用自己的私钥进行解密。这样不需要发送用来解密的私钥,就不存在秘钥被窃取的风险了。

五、HTTPS 加密方式

HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。 使用公开密钥加密方式安全地交换在稍后使用的共享秘钥中的秘钥;确保秘钥是安全的前提下,使用共享秘钥加密方式进行通信。

如何保证公开密钥加密方式交换的秘钥是安全的呢? 将公钥放在数字证书中 ,数字证书由双方都可依赖的第三方机构颁发,因此只要证书是可信的,公钥就是可信的。

六、other

  • TSL 是以 SSL 为原型开发的协议,有时会统一称该协议为 SSL。当前主流的版本是 SSL3.0 和 TLS1.0
  • HTTPS 比起 HTTP 会更多地消耗服务器和客户端的硬件资源(加密处理),导致负载增强
  • 非敏感信息使用 HTTP 通信,只有在包含个人信息等敏感数据时,才利用 HTTPS 加密通信
  • 要进行 HTTPS 通信,证书是必不可少的。而使用的证书必须向认证机构(CA)购买,存在一定的开销

七、参考文献:

  • 《图解 HTTP》上野宣
  • SSL/TLS 协议运行机制的概述 阮一峰

发表评论

表情:
评论列表 (有 0 条评论,260人围观)

还没有评论,来说两句吧...

相关阅读

    相关 深入理解 HTTPS

    HTTPS 作为安全的互联网通信协议,和 HTTP 有怎样的关系?是怎样实现的? 以前在博客或者公众号也读过一些关于 HTTPS 的文章,理解的不是很好。最近花时间读了一下《

    相关 深入理解HTTP Session

    深入理解HTTP Session   session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同

    相关 深入理解 Android Https

    前言 大家都知道https相比http增加的是安全性。 怎么增加安全性呢? 就是加密和解密步骤。 下面来详细谈谈对https的理解和在Android中的使用. 两种加

    相关 深入理解HTTP Session

    深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合

    相关 深入理解HTTP Session

    深入理解HTTP Session session在web开发中是一个非常重要的概念,这个概念很抽象,很难定义,也是最让人迷惑的一个名词,也是最多被滥用的名字之一,在不同的场合