HTTP与HTTPS什么关系?为什么需要加密?
HTTP的缺点
HTTP主要有以下不足:
- 通信使用明文(不加密),可能会被窃听
- 不验证通信方身份,因此可能遭遇伪装
- 无法证明报文的完整性,报文有可能已遭篡改
不仅HTTP协议会出现以上问题,其他的一些未加密的协议也会出现这些问题
HTTPS的产生
原因:
HTTP 报文使用明文(指未经过加密的报文)方式发送。而TCP/IP协议同样是不加密的,主要是在当时大佬设计TCP/IP协议首要目标就是可靠传输并非是保密性。
解决方案:加密处理
通信加密
HTTP 协议中没有加密机制,但可以通过和 SSL(安全套接层)或 TLS( 安全层传输协议)的组合使用,加密 HTTP 的通信内容。这种方式是通信加密。用 SSL 建立安全通信线路之后,就可以在这条线路上进行 HTTP通信了。与 SSL 组合使用的 HTTP 被称为 HTTPS
HTTPS 并非是应用层的一种新协议。只是 HTTP 通信接口部分用SSL和 TLS协议代替而已。通常, HTTP 直接和 TCP 通信。当使用 SSL 时,则演变成先和SSL 通信,再由 SSL 和 TCP 通信了。简言之,所谓 HTTPS,其实就是身披 SSL 协议这层外壳的 HTTP。

注意这是加密的一种方式,因为本文主要描述HTTPS加密流程,因此主要表述HTTPS加密的一些细节。
HTTPS加密方式
对称密钥加密
对称密钥加密是加密解密都用一种密钥的一种加密方式,也叫共享密钥加密。画个图看看

加密和解密都会用到密钥。 没有密钥就无法对密码解密,也就是说,任何人只要持有密钥就能解密了。
如果黑客入侵了路由器等这些设备,那么密钥被攻击者获得,那加密也没意义了。
发送密钥就有被窃听的风险,不发密钥对方又不能解密,给密钥再加密?
不行,总有一个密钥需要公开发送,得让接收方知道并且解密啊,非对称加密就解决了这个问题。
不对称密钥加密
也叫公开密钥加密,公开密钥加密使用一对非对称的密钥。 一把叫做私有密钥,另一把叫做公开密钥。顾名思义,私有密钥不能让其他任何人知道,而公开密钥则可以随意发布,任何人都可以获得。
发送密文的一方使用公开密钥进行加密,接受密文的一方使用自己的私有密钥解密,利用这种方式, 不需要发送用来解密的私有密钥,也不必担心密钥被攻击者窃听而盗走。
那么根据密文和公开密钥能否破解出所传递的信息呢?
就目前的技术来看是不太现实的,因为解密过程就是在对离散对数进行求值, 这并非轻而易举就能办到。退一步讲,如果能对一个非常大的整数做到快速地因式分解,那么密码破解还是存在希望的。

HTTPS采用混合加密的方式
HTTPS 采用共享密钥加密和公开密钥加密两者并用的混合加密机制。主要是因为对称加密运算速度快,开销小;非对称加密运算速度慢,开销大。若密钥能够实现安全交换, 那么有可能会考虑仅使用公开密钥加密来通信。
所以应充分利用两者各自的优势, 将多种方法组合起来用于通信。


366

被折叠的 条评论
为什么被折叠?



