http和https

作者: 幻城之雪 | 来源:发表于2023-06-02 22:44 被阅读0次

HTTP的不足

通信使用明文(不加密),内容可能会被窃听
不验证通信方的身份,因此有可能遭遇伪装
无法证明报文的完整性,所以有可能已遭篡改

HTTPS介绍

HTTP 协议中没有加密机制,但可以通 过和 SSL(Secure Socket Layer, 安全套接层 )或 TLS(Transport Layer Security, 安全层传输协议)的组合使用,加密 HTTP 的通信内容。属于通信加密,即在整个通信线路中加密。
HTTP + 加密 + 认证 + 完整性保护 = HTTPS(HTTP Secure )

HTTPS 采用共享密钥加密(对称)和公开密钥加密(非对称)两者并用的混合加密机制。若密钥能够实现安全交换,那么有可能会考虑仅使用公开密钥加密来通信。但是公开密钥加密与共享密钥加密相比,其处理速度要慢。
所以应充分利用两者各自的优势, 将多种方法组合起来用于通信。 在交换密钥阶段使用公开密钥加密方式,之后的建立通信交换报文阶段 则使用共享密钥加密方式。

服务器获得浏览器公钥

网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式发回给浏览器。证书里面包含了网站地址,加密公钥,以及证书的颁发机构等信息。

浏览器获得服务器公钥

获得网站证书之后浏览器要做以下工作:
(a). 验证证书的合法性(颁发证书的机构是否合法,证书中包含的网站地址是否与正在访问的地址一致等),如果证书受信任,则浏览器栏里面会显示一个小锁头,否则会给出证书不受信的提示。
(b). 如果证书受信任,或者是用户接受了不受信的证书,浏览器会生成一串随机数的密码(接下来通信的密钥),并用证书中提供的公钥加密(共享密钥加密)。
(c) 使用约定好的HASH计算握手消息,并使用生成的随机数对消息进行加密,最后将之前生成的所有信息发送给网站。

浏览器验证 -> 随机密码
服务器的公钥加密 -> 通信的密钥
通信的密钥 -> 服务器

网站接收浏览器发来的数据之后要做以下的操作:
(a). 使用自己的私钥将信息解密取出密码,使用密码解密浏览器发来的握手消息,并验证HASH是否与浏览器发来的一致。
(b). 使用密码加密一段握手消息,发送给浏览器。

服务器用自己的私钥解出随机密码 -> 用密码解密握手消息(共享密钥通信)-> 验证HASH与浏览器是否一致(验证浏览器)

HTTPS的不足

加密解密过程复杂,导致访问速度慢
加密需要认向证机构付费
整个页面的请求都要使用HTTPS

相关文章

  • HTTP和HTTPS

    1. HTTP和HTTPS的区别 超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP...

  • HTTP和HTTPS

    http协议运行在TCP之上,明文传输,客户端和服务端都无法验证对方的身份;Https是身披SSL(Secure ...

  • HTTP和HTTPS

    1、HTTP是什么? HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TC...

  • HTTP和HTTPS

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何...

  • http和https

  • HTTP和HTTPS

    超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提...

  • http和https

    http和https的概念 HTTP是客户端浏览器或其他程序与Web服务器之间的应用层通信协议。在Internet...

  • Http和https

    HTTP与HTTPS有什么区别? HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信...

  • HTTP和HTTPS

    http是HTTP协议运行在TCP之上。所有传输的内容都是明文,客户端和服务器端都无法验证对方的身份。https是...

  • HTTP和HTTPS

    HTTPS要使客户端与服务器端的通信过程得到安全保证,必须使用的对称加密算法,但是协商对称加密算法的过程,需要使用...

网友评论

    本文标题:http和https

    本文链接:https://www.haomeiwen.com/subject/cppmedtx.html