说到HTTPS,我想大多数人都熟悉它,因为我们今天使用的大多数网站都是基于它的。
那么问题来了,为什么要使用HTTPS呢? HTTPS 有什么好处?
1.HTTP
在谈论HTTPS 之前,我们首先需要了解HTTP 是什么。因为HTTP是HTTPS通信的基础。
HTTP(HyperText Transport Protocol)超文本传输协议。用于发送客户端和服务器端数据。
尽管HTTP 非常简单易用,但它存在三个关键问题:
通过明文通信,内容可能会被拦截。如果您无法验证与您通信的人的身份,则存在伪造的风险。消息的完整性无法被证明并且很容易被篡改。考虑到上述问题,当前系统使用HTTPS而不是HTTP。
2.HTTPS
首先,HTTPS 并不是一个新协议;它在HTTP 协议中添加了加密机制SSL(安全套接字层)或TLS(传输层安全性)。
HTTPS=HTTP + 加密+ 身份验证+ 完整性保护。
SSL 和 TLS
SSL(安全套接字层)最初由浏览器开发商Netscape 开发。这家公司开发了SSL 3.0和3.0之前的版本,然后将SSL移交给互联网工程任务组(IETF)的互联网工程任务组。简而言之,IETF 在SSL 3.0 的基础上开发了TLS 1.0,因此您可以将TLS 视为SSL 的“新版本”。
2.1 解决信任问题
对于HTTPS,如果不首先解决信任问题或身份验证问题,那么就会出现服务器冒充问题或“人性化”问题。 -从中间进攻”。
所谓中间人攻击,是指正常情况下客户端和服务器必须直接交互,但这里客户端和服务器之间出现了一个“坏人”(中间人)。如下图所示,利用服务器窃取并篡改双方的通信内容。
HTTPS使用数字证书解决方案来解决信任问题。这意味着服务器在首次创建时,首先会向公认的第三方平台申请并访问受信任的数字证书。客户端(服务器端) 服务器首先向客户端提供数字证书,证明它是受信任的服务器而不是“中间人”。
此时浏览器验证数字证书的有效性,如果没有问题,客户端立即停止通信。如下图所示:
数字证书允许您验证服务器的真实身份,从而解决“中间人”攻击和冒充问题。
2.2 解决明文传输和完整性问题
虽然上述可靠性问题已经解决,但由于双方都是明文通信,因此在通信过程中仍然存在通信内容可能被截获的风险。
因此,我们想到利用加密来解决信息泄露的问题。
加密的分类
加密主要分为两类:对称加密和非对称加密。
对称加密具有共享密钥,使得信息能够被加密和解密,但是共享密钥问题意味着一旦共享密钥,加密和解密就会具有更快的特性。如果密钥被截获,所谓的加密和解密就没有意义了。非对称加密具有公钥-私钥对,其中公钥可以用于加密信息,但私钥不能用于解密信息。其特点是服务器存储私钥,只将公钥发送给客户端,即使其他人获得了公钥,也无法解密加密信息。虽然非对称加密更安全,但运行速度相对较慢。那么HTTPS 应该使用对称加密还是非对称加密呢?
它使用对称加密,速度快但不安全;它使用非对称加密,安全但速度慢。
因为只有孩子做选择,而大人做选择,HTTPS同时使用了非对称和对称加密,整个交互过程如下所示:
HTTPS的执行流程如下:
客户端使用HTTPS 访问服务器。服务器返回数字证书,并使用非对称加密为客户端生成公钥(服务器本身持有私钥)。客户端检查数字证书是否有效,如果无效则终止访问。如果启用,则使用对称加密共享密钥加密数据。对称加密)共享密钥。将加密后的密钥和数据发送到服务器。服务器使用其私钥来解密客户端的共享秘密(使用对称加密生成),并使用该共享秘密来解密数据的特定内容。然后,客户端和服务器使用用共享密钥加密的内容相互通信。通过这种方式,HTTPS 保证了安全性和效率,让您两全其美。
使用加密间接确保数据完整性。如果数据不完整或冗余,解密时会报错,从而间接保证了数据的完整性。
总结
HTTP协议引入了明文通信和中间人攻击等问题,但HTTPS有效地解决了这些问题,解决了中间人攻击的问题。使用数字证书并使用加密来解决明文通信和数据完整性问题。
参考 鸣谢
《图解HTTP》
《图解TCP/IP网络知识轻松入门》
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。