HTTPS和HTTP有什么区别,安全性如何?

阅读 1952  ·  发布日期 2020-03-28  ·  来源:网络

在互联网获取信息的过程中,HTTPS是最常用的加密信息传输方式。当访问某个站点时,浏览器的地址栏中出现一个绿***标,表示该站点支持HTTPS信息传输。HTTPs是我们常用的HTTP协议和某种加密协议(即HTTP+s)的混合体,它可以是TLS(安全传输层协议)或SSL(安全套接字层),但我同意另一个抽象的泛化,HTTP+security。

首先,HTTPS不是这项加密技术的正式名称。HTTPS表示“在TLS/SSL上实现的HTTP协议”。因此,HTTP下的TLS/SSL层实际上是用来实现加密的。


HTTPS和HTTP有什么区别,安全性如何?

让我们看看TLS/SSL实现的主要机制:

1、证书:通过第三方权威证书颁发机构(如VeriSign)验证和保证网站的身份,防止他人伪造网站身份,与未知用户建立加密连接。

2、密钥交换:通过公钥(非对称)加密,由网站服务器与用户协商生成公共会话密钥。

3、会话加密:通过机制协商的会话密钥,使用对称加密算法对会话内容进行加密。

4、消息验证:消息验证算法用于防止加密信息在传输过程中被篡改。

通过上述机制,保护用户与网站之间的传输内容,从而获得高安全性。然而,任何加密方法都不是绝对安全的。事实上,上述机制可能存在风险:

1、证书:如果有人伪造证书,浏览器会发出警告,提醒用户该网站的证书可能是伪造的,用户应停止访问,但如果忽略浏览器的警告,您的会话信息可能会被伪造者窃取。此外,如果第三方证书颁发机构受到攻击,攻击者窃取颁发的证书密钥,就可以伪造相应的网站证书,完全欺骗浏览器的安全机制。这样的例子确实发生过。

2、密钥交换:RSA是最常用的公钥加密算法,通常非常安全。

3、会话加密:AES-256(cbcmode)是一种应用非常广泛的加密算法,使用256位密钥来表示其高安全性,如果使用128位密钥(AES-128),则安全性较差。

4、消息验证:SHA1,这是一个哈希算法。SHA1比MD5有更好的安全性,但是如果使用sha256,安全性会更好。

很抽象,不是吗?让我们用“通行证”来描述每个人年轻时的所作所为。

HTTPS协议

为了解决这个问题,HTTPS采用了“加密”的方式。最著名的原始加密方法是对称加密算法,即双方约定一个密码,用哪个字母代替哪个字母等。现在我们通常使用一种称为AES(高级加密算法)的对称算法。

对称加密算法是指用于加密和解密的密钥是相同的。

AES从数学上保证,只要你使用的密钥足够长,就几乎不可能破解它(除非光子计算机能破解)

我们先假设没有钥匙密文是不能破解的,然后再回到这个教室。你把AES加密的内容写在纸上,就要发出去了,你突然想,ta没有密钥怎么解密内容,或者怎么把密钥给ta?

如果密钥也写在便条上,中间人仍然可以破解***便条的内容。也许在现实环境中,你有其他的方法通过某种安全的渠道把密钥发送给ta,但是在Internet上实现起来比较困难。毕竟,不管怎样,数据都必须经过这些路线。

所以聪明人发明了另一种加密算法——非对称加密算法。此加密算法生成两个密钥(key1和key2)。对于key1加密数据,key1本身无法解密,key2需要解密;对于key2加密数据,key2本身无法解密,只有key1可以解密。