来源书籍《图解HTTP》学习总结。总结下篇主要关于HTTP安全技术详解

确保 Web 安全的HTTPS

在 HTTP 协议中有可能存在信息窃听或身份伪装等安全问题。使用HTTPS 通信机制可以有效地防止这些问题。

HTTP 的缺点

1、通信使用明文(不加密),内容可能会被窃听,HTTP 本身不具备加密的功能,按 TCP/IP 协议族的工作机制,通信内容在所有的通信线路上都有可能遭到窥视。加密报文也会被窥视,但是无法破解加密信息得含义。

加密处理防止被窃听
通信的加密:通过和 SSL(Secure Socket Layer,安全套接层)TLS(Transport Layer Security,安全层传输协议)的组合使用,加密 HTTP 的通信内容。用 SSL建立安全通信线路。

与 SSL组合使用的 HTTP 被称为 HTTPS(HTTP Secure,超文本传输安全协议)或 HTTP over SSL

clipboard.png

内容的加密:将参与通信的内容(通信报文)本身加密,要求客户端和服务器同时具备加密和解密机制,(内容仍有被篡改的风险)

2、不验证通信方的身份,因此有可能遭遇伪装,任何人都可发起请求,服务器只要接收到请求,不管对方是谁都会返回一个响应;不确认通信方。不能确定是否是正确的客户端和服务器。即使是无意义的请求也会照单全收。无法阻止海量请求下的 DoS 攻击(Denial of Service, 拒绝服务攻击) 。
查明对手的证书:确认通信方(服务器或客户端) 持有的证书,即可判断通信方的真实意图。

SSL不仅提供加密处理,而且还使用了一种被称为证书的手段,可用于确定方,证书由值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。

3、无法证明报文的完整性,所以有可能已遭篡改: HTTP 协议无法证明通信的报文完整性,没有任何办法确认,发出的请求 / 响应和接收到的请求 / 响应是前后相同的。 接收到的内容可能有误。
SSL提供认证和加密处理及摘要功能。

完整性是指信息的准确度。请求或响应在传输途中,遭攻击者拦截并篡改内容的攻击称为中间人攻击(Man-in-the-Middle attack, MITM)

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

经常会在 Web 的登录页面和购物结算界面等使用 HTTPS 通信。使用HTTPS 通信时, 不再用 http://, 而是改用 https://。地址栏内会出现一个带锁的标记。

clipboard.png

HTTPS 是身披 SSL 外壳的 HTTP;HTTP 通信接口部分用SSL(Secure Socket Layer) 和TLS(Transport Layer Security)协议代替,SSL是独立于 HTTP 的协议,所以不光是 HTTP 协议,其他运行在应用层的 SMTP 和 Telnet 等协议均可配合 SSL协议使用。

clipboard.png

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

SSL采用一种叫做公开密钥加密(Public-key cryptography) 的加密处理方式。加密算法是公开的,而密钥却是保密的。加密和解密都会用到密钥。没有密钥就无法对密码解密。
共享密钥加密(对称密钥加密):加密和解密同用一个密钥的方式称为共享密钥加密(Common key crypto system),存在密钥传输得难点,传输过程中会被监听,所以不应这种方法。
公开密钥加密:使用一对非对称的密钥。一把叫做私有密钥(private key),另一把叫做公开密钥(public key)。发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。 不需要传输密钥。公开密钥加密与共享密钥加密相比,其处理速度要慢。

clipboard.png

HTTPS 采用混合加密机制:共享密钥加密和公开密钥加密两者并用的混合加密机制 若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。

clipboard.png

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

公开密钥在传输过程中无法保证安全,可能被攻击者替换掉。可以使用由数字证书认证机构(CA, Certificate Authority)和其相关机关颁发的公开密钥证书。将该公开密钥放入公钥证书后绑定在一起,服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,

数字证书认证机构的业务流程。首先,服务器的运营人员向数字证书认证机构提出公开密钥的申请。数字证书认证机构在判明提出申请者的身份之后,会已申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将该公开密钥放入公钥证书后绑定在一起。服务器会将这份由数字证书认证机构颁发的公钥证书发送给客户端,以进行公开密钥加密方式通信。公钥证书也可叫做数字证书或直接称为证书。接到证书的客户端可使用数字证书认证机构的公开密钥,对那张证书上的数字签名进行验证,一旦验证通过,客户端便可明确两件事:一,认证服务器的公开密钥的是真实有效的数字证书认证机构。二,服务器的公开密钥是值得信赖的


yuan_yuanxu
73 声望1 粉丝

« 上一篇
super