1.HTTP的缺点
- 通信使用明文(不加密),内容可能会被窃听
通信的加密
HTTP协议中没有加密机制,但可以通过和SSL(Secure Socket Layer,安全套接层)或TLS(Transport Layer Security,安全层传输协议)的组合使用,加密HTTP的通信内容。
用SSL建立安全通行线路之后,就可以在这条线路上进行HTTP通信了。与SSL组合使用的HTTPS(HTTP Secure,超文本传输安全协议)。
内容的加密
将参与通信的内容本身加密的方式。由于HTTP协议中没有加密机制,那么就对HTTP协议传输的内容本身加密。即把HTTP报文里所含的内容进行加密处理。
- 不验证通信方的身份,因此有可能遭遇伪装
SSL不仅提供加密,而且还使用了一种被称为证书的手段,可用于确定方。
证书有值得信任的第三方机构颁发,用以证明服务器和客户端是实际存在的。另外,伪造证书从技术角度来说是异常困难的一件事。所以只要能够确认通信方持有的证书,即可判断通信方的真实意图。
- 无法证明报文的完整性,所以有可能已遭篡改
虽然有使用HTTP协议确定报文完整性的方法,但事实上并不便捷、可靠。其中常用的是MD5和SHA-1等散列值校验的方法,以及用来确认文件的数字签名方法。
为了有效防止这些弊端,有必要使用HTTPS.SLL提供认证和加密处理及摘要功能。仅靠HTTP确保完整性是非常困难,因此通过和其他协议组合使用来实现这个目标。
2.HTTP+加密+认证+完整性保护= HTTPS
- HTTP是身披SSL外壳的HTTP。
- 相互交换密钥的公开密钥加密技术。
SLL采用一种叫做公开密钥加密的加密处理方式。
近代的加密方法中加密算法是公开的,而密钥却是保密的。通过这种方式得以保持加密方法的安全性。
加密和解密都会用到密钥。没有密钥就没法对密码解密,反过来说,任何人只要持有密钥就能解密了。
使用一对非对称的密钥。一把叫做私有密钥,一把叫做公开密钥。私有密钥不能让任何人知道,而公开密钥则可以随意发布,任何人都可以获得。
使用公开密钥加密方式,发送密文的一方使用对方的公开密钥进行加密处理,对方收到被加密的信息后,再使用自己的私有密钥进行解密。利用这种方式,不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。 - 证明公开密钥正确性的证书
公开密钥加密方式还是存在一些问题的。那就是无法证明公开密钥本身就是货真价实的公开密钥。
为了解决上述问题,可以使用由数字证书认证机构和其相关机关颁发的公开密钥证书。
3.HTTPS的问题
HTTPS也存在一些问题,那就是当使用SSL时,它的处理速度会变慢。
SSL的慢分两种。一种是通信慢。另一种是指由于大量消耗CPU及内存等资源,导致处理速度变慢。
和使用HTTP相比,网络负载可能会变慢2到100倍。除去和TCP连接、发送HTTP请求响应之外,还必须进行SSL通信,因此整体上处理信息量不可避免会增加。
另外一点SSL必须进行加密处理。在服务器和客户端都需要进行加密和解密的运算处理。因此从结果上讲,比起HTTP会更多地消耗服务器和客户端的硬件资源,导致负载增强。
网友评论