HTTPS

xiaoxiao2021-03-01  34

确保web安全的HTTPS 一、HTTP的缺点 1. 明文传输,内容会被窃听。 2. 不验证通信双方的身份,有可能遭遇伪装。 3. 不能确保报文的完成性,报文有可能被篡改。

二、什么是HTTPS 1、HTTPS = 加密+认证+完整性保护+HTTP,HTTPS就是披着SSL的HTTP,HTTP是直接和TCP通信,HTTPS是在TCP之前加上SSL(secure socket layer),HTTP先跟SSL通信再到TCP层。 2、HTTPS采用公开密钥加密和共享密钥加密的方式进行通信,因为公开密钥加密比共享密钥加密要复杂,如果数据传输采用公开密钥加密效率会很低。

共享密钥加密:客户端和服务器使用同一个密钥对报文进行加密和解密,这个密钥需要发送到对方处,密钥发送的过程有被窃听的可能,不安全。公开密钥加密:非对称加密,需要加密报文的一方使用公开密钥加密,接收密文的一方使用私有密钥进行解密,公开密钥谁都可以获取,私有秘钥只有解密一方有,这样就不需要在双方之间发送密钥,更安全。

使用混合加密通信:使用公开密钥加密的方式发送通信过程中使用的共享密钥,确保密钥安全的前提下,报文使用共享密钥加密,这样效率会更高。

3、怎样证明公开密钥的正确性 使用证书认证机制,一般浏览器开发商会把常用的证书认证机构的公开密钥事先植入内部,使用证书认证机构的公开密钥检验公开密钥发送发送的已认证的公开密钥证书,如果检验通过,则可明确两件事:1、改公开密钥证书是由认证机构颁发的。2、服务器发送的公开密钥是值得信赖的。

4、HTTPS的安全通信机制

客户端发送client hello 报文开始SSL通信。服务器可以进行SSL通信时,发送server hello 作为响应。服务器发送certificate 报文,包含公开密钥证书。服务器发送server hello done 报文给客户端,第一次握手结束。客户端发送client key exchange 报文作为响应,报文包括使用公开密钥加密的Pre-master secret 随机密码串。客户端继续发送change cipher Spec报文,告诉服务器后续的通信采用随机密码串进行加密。客户端发送Finished,等待服务器确认此次握手是否成功。服务器发送change cipher Spec 报文。服务器发送finished,完成握手。服务器和客户端的finished报文交换结束,SSL链接建立完成,可以进行HTTP通信,发送请求/响应报文。最后由客户端断开连接。 在应用层发送数据时,会加上MAC(message Authentication Code)的报文摘要,MAC能够查知报文是否被篡改,确保报文的完整性。

5、使用HTTPS的问题 使用SSL时,速度会变慢,一种是通信慢,因为除了TCP链接和HTTP请求、响应之外,还要增加SSL通信,通信量会增加。另一种是大量消耗CPU以及内存等资源,使得处理速度变慢,因为HTTPS要做客户端、服务器的加密解密处理,需要消耗更多的资源。目前能使用SSL加速器(专用服务器)来改善问题。 所以,如果是非敏感的信息可以使用HTTP通信,包含敏感信息的数据时才利用HTTPS加密通信。

转载请注明原文地址: https://www.6miu.com/read-4149995.html

最新回复(0)