程序员

什么是HTTPS?与HTTP有的区别

2020-08-12  本文已影响0人  Vincent_cy

欢迎访问主页,有更多文章内容
转载请注明原出处
原文链接地址:什么是HTTPS?与HTTP有的区别

什么是HTTPS

HTTPS是在HTTP上建立SSL加密层,并对传输数据进行加密,是HTTP协议的安全版。

HTTPS的用途有:

1587085120050.jpg

为什么需要HTTPS

在HTTP协议中有可能存在信息窃取或身份伪装等安全问题。使用HTTPS通信机制可以有效的防止这些问题。

HTTP存在哪些安全问题

HTTPS如何解决HTTP的问题

HTTPS并非是应用层的新协议。只是HTTP通信接口部分用SSL和TLS协议代替。

通常HTTP直接和TCP通信,当使用SSL时,则演变成先和SSL通信,再有SSL和TCP通信。

在采用了SSL协议后,HTTP就拥有了HTTPS的加密、证书和完整性保护这些功能。HTTP加上加密处理和认证及完整性保护之后就是HTTPS。

1591577970958.jpg

HTTPS协议主要功能基本都依赖于TLS/SSL协议。TLS/SSL的功能主要依赖于三类基本算法:散列函数、对称加密、非对称加密。其中用非对称加密用来实现身份认证和秘钥协商,对称加密算法采用协商的秘钥对数据进行加密,基于散列函数验证信息完整性。

1591578051607.jpg

解决内容被窃听问题 --加密

  1. 对称加密
    加密解密用同一个秘钥。加密和解密都会用到秘钥。
    对称加密方式加密时必须将秘钥发送给对方。

  2. 非对称加密
    公开秘钥加密使用一对非对称的秘钥。分别为公钥和私钥。
    非对称加密特点是信息传输一对多,所以服务器只需要维持一个私钥就能和多个客户端进行加密通信了。

    缺点:

    • 公钥是公开的,针对私密加密的信息,黑客截获后可以使用公钥进行解密,获取内容。
    • 公钥不含服务器的信息,使用得对称机密算法无法确保服务器身份的合法性,存在被攻击的风险。
    • 使用非对称加密在数据加密解密过程中需要消耗一定的时间。降低了数据传输的效率。
  3. 对称加密+非对称加密(HTTPS)
    使用对称加密好处是解密的效率比较快,非对称加密使得传输的内容不能被破解。
    在交换秘钥环节使用非对称加密,之后建立的通信交换报文则是以对称加密方式。

解决报文可能遭篡改(信息完整性) -- 数字签名

数字签名的作用:

数字签名的生成

1591578123528.jpg

将一段文本先用hash函数生成消息摘要,然后用发送者的私钥加密生成数字签名,与原文一同传送给接受者。

校验数字签名流程

1591578162450.jpg

接受者只有用发送者的公钥才能解密被加密的摘要信息。然后用HASH函数对收到的原文产生一个摘要信息。与上一步得到的摘要信息对比。如果相同则说明收到的信息是完整的,否则说明信息被修改过。

证书的颁发机构(CA)。

解决通信方身份被伪装的问题 -- 数字证书

数字证书认证机构处于客户端与服务器双方都可信赖的地方机构的立场上。

数字证书认证机构的业务流程:

HTTPS工作流程

1591578194133.jpg
  1. Client发起一个HTTPS请求,端口 443
  2. server把配置好的公钥证书返回给客户端。
  3. Client验证公钥证书:证书是否有效,证书用途是否匹配Client请求的站点,是否在CRL吊销列表,上级证书是否有效... 如果验证通过则继续,否则显示警告信息。
  4. Client 使用伪随机数生成加密所使用的的对称秘钥,然后用证书的公钥加密这个堆成秘钥,发送给Server。
  5. Server 使用私钥解密这条消息,得到对称秘钥。此时 Client和Server都有了相同的对称秘钥。
  6. Server 使用对称秘钥加密 “明文内容A” 发送给Client。
  7. Client 使用对称秘钥解密响应的密文,得到“明文内容A”
  8. Client 再次发起HTTPS的请求,使用对称秘钥加密请求的“明文内容B”,然后Server使用对称秘钥解密密文,得到“明文内容B”

HTTPS与HTTP的区别

证书需要收费

原文参考链接-《深入理解HTTPS工作原理》

欢迎访问主页,有更多文章内容
转载请注明原出处
原文链接地址:什么是HTTPS?与HTTP有的区别

上一篇 下一篇

猜你喜欢

热点阅读