第7章 确保Web安全的HTTPS

2018-06-28  本文已影响0人  陈_振

HTTPS可以有效的防止信息窃听,身份伪装等安全问题。

HTTP的缺点

通信使用明文可能会被窃听

通信的加密
HTTP通过和SSL或TLS的组合使用,加密HTTP的通信内容。即使用SSL建立安全通信线路之后,就可以在这条线路上进行HTTP通信了。

内容的加密
将报文主体进行加密处理。

不验证通信的身份就可能遭遇伪装

通信时,不存在确认通信方的处理步骤,任何人都可以发送请求。另外,服务器只要接收到请求,不管对方是谁都会返回到实际提出请求的客户端(仅限于发送端的IP地址和端口号没有被Web服务器设定限制访问的前提下)。

由于不确认通信方,会存在如下各种隐患:

SSL还使用了一种被称为证书的手段,可用于确定对方。

无法证明报文的完整性,可能已遭篡改

HTTP + 加密 + 认证 + 完整性保护 = HTTPS

通常HTTP直接和TCP进行通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信。

相互交换密钥的公开密钥加密技术

SSL采用一种叫做公开密钥加密的加密处理方式。

加密和解密用同一个密钥的方式称为共享密钥加密,也被叫做对称密钥加密。
但是,以共享密钥的方式加密时必须将密钥也发送给对方,因此,密钥有可能被监听。

公开密钥使用一种非对称的密钥。一把叫私有密钥,另一把叫公开密钥。

发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。

具体过程大概是:
发送端:你的公开密钥是?
接收端:我的公开密钥是🔑。
发送端:将共享密钥使用得到的公开密钥进行加密后发送。
接收端:将收到的内容使用私钥进行解密。然后使用解密后得到密钥保存起来,以后的通信便使用该密钥进行加密。

证明公开密钥正确性的证书

公开密钥在传输过程中可能会被调包。为解决该问题,使用由数字证书认证机构和其他相关机关颁发的公开密钥证书。
服务器会将证书和公钥一起发送给客户端。然后客户端拿到服务器的公钥证书后,使用认证机构的公开密钥,向数字证书认证机构验证公钥证书上的数字签名,以确认服务器公开密钥的真实性。
此时,将认证机关的公开密钥安全的转交给客户端是非常重要的事。大多数浏览器开发商发布版本时,会事先在内部植入常用认证机关的公开密钥。

HTTPS的安全通信机制

IMG_067B8FEDC3B1-1.jpeg IMG_8055A6272302-1.jpeg IMG_FEC34AA3A78B-1.jpeg
上一篇下一篇

猜你喜欢

热点阅读