HTTPS(超文本传输安全协议)

编程

HTTPS 是什么 ?

超文本传输安全协议是种能进行安全通信的传输协议,由 HTTP 进行通信,利用 TSL/SSL 加密数据包。

HTTPS = HTTP + SSL/TSL,通信接口由 SSL/TSL 代替,先和 SSL 通信,再让 SSL 和 HTTP 通信。

HTTP 是 HTTP 和 TCP 直接通信的。

HTTPS 存在主要目的 :

提供对网站服务器的身份认证,保护交换数据的安全,由网景公司 1994 年提出。

HTTPS 缺点 :

HTTPS 会比 HTTP 慢 2-100 倍。

SSL 导致通信慢:除了 TCP 连接、发送 HTTP 请求和响应外,还要 SSL 通信,相比 HTTP ,网络负载会慢 2-100 倍。

SSL 导致处理速度变慢:SSL 必须要做加解密的运算处理,会比 HTTP 消耗更多 CPU 和内存等硬件资源,导致负载增强。

HTTPS 采用 共享密钥加密公开密钥加密 混合加密机制 :

使用公开密钥加密方式来交换密钥,使用共享密钥加密方式来建立通信交换报文。

因为公开密钥加密比共享密钥加密处理速度慢,需要利用各自的优势,结合起来用于通信。

  • 共享密钥加密(对称密钥加密):加密和解密都用同一密钥

这种方式加密需要把密钥发送给对方,发送了就有被窃听的可能,如果不发送,对方就不能解密,如果密钥能安全发送,数据也应该安全发送。

  • 公开密钥加密:公开加密算法,密钥是保密的,加密和解密都需要密钥

使用一对非对称的密钥(私有密钥和公开密钥),发送密文的一方使用对方的公开密钥加密,对方收到加密的信息后使用自己的私有密钥解密。

问题:想要建立公开密钥加密通信时,如何确保接受公开密钥途中没被攻击者篡改过呢?

通过双方都认可的第三方机构颁发的证书来确认。

1、服务器申请机构认证,机构验证申请者身份后会对公开密钥做个数字签名形成一个公钥证书。

2、要进行公开密钥通信时,服务器会把证书发送给客户端。

3、接受证书后的客户端使用机构的公开密钥对证书的数字签名进行验证(大多数浏览器内部都植有权威认证机构的公开密钥),验证通过后就说明认证服务器的机构和服务器的公开密钥都值得信任。

SSL 是什么 ?

SSL(安全套接字层)是一种安全协议(二进制),通常在 443 端口,能保障通信安全,使用加密算法打乱传输中的数据,防止数据被劫持或篡改。

TLS(传输层安全协议)是更为安全的 SSL。

作用 :

验证双方身份,通过公证人(第三方机构)颁发的证书、加密处理和摘要功能。

SSL 握手过程 :

发送已加密的 HTTP 报文前,客户端和服务器要进行一次 SSL 握手。

1、客户端发送可选择的密码并请求证书

2、服务器发送选中的密码和证书

3、客户端发送保密信息,客户端和服务器生成密钥

4、双方相互告知,开始加密过程

以上是 HTTPS(超文本传输安全协议) 的全部内容, 来源链接: utcz.com/z/514515.html

回到顶部