最后更新:2022-07-30 09:46:14 手机定位技术交流文章
HTTP最明显的优点是“简单、灵活、易扩展、广泛适用、跨平台”。
但还有许多缺点,例如:
要归纳一下, HTTP 中信息安全存在着巨大的风险。
这是我们经常在网站登录页面和购物清理界面上使用的HTTPS通信而不是HTTP的原因。
为了统一解决HTTP的不足,需要在HTTP增加了加密处理和认证机制。
我们增加了加密和认证机制HTTP称为HTTPS(HTTP Secure)。
HTTPPS=HTTP+加密+认证+完整性保护
这意味着HTTP是经过加密处理和认证和完整性保护后HTTPPS。

HTTPS这不是应用程序层的新协议。
只是HTTP通信接口部分用SSL和TLS协议代替而已。
上面提到的加密+认证+完整性保护都是SSL协议的功能。
通常,HTTP直接和TCP通信。当使用SSL时,则演变成先和SSL通信,再由SSL和TCP通信了。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FVBKqRmv-1658934500300)(D:NoteComputer networkimage-20220723105331651.png)]](http://static.wangsu123.cn/article/image/20220730/8c9081fc1f2b5217716af21e16879423.png)
SSL是独立于HTTP的协议,所以不光是HTTP协议,其他在应用程序层中运行SMTP和Telnet等协议均可配合SSL协议使用。可以说SSL它是当今世界最广泛使用的网络安全技术。
SSL它很好地解决了上述HTTP使用风险:
在对SSL在解释之前, 让我们先了解加密方法.
在现代加密方法中,加密算法是开放的,密钥是秘密的,这样可以维护加密方法的安全。
加密和解密都用于钥匙。 没有钥匙可以解密密码。
也就是说,只要有一个密钥,任何人都可以解密它,如果密钥被攻击者获取,那么加密是毫无意义的。
根据密钥,加密方法分为两个类别.

在共享密钥模式中加密时,该密钥也必须给另一方。
但没有办法确保密钥安全地转移到另一方,如果通信被监控的话,密钥会落在攻击者手中,同时失去加密的意义。
此外,必须确保接收的钥匙安全存储。
HTTPS采用了混合加密机制,将对称加密与非对称加密相结合:
使用“混合加密”方法的原因:
因此, 我们 应该 充分 利用 两者 的 优点, 结合 各种 通讯 方法 。
消息通过对称加密机制发送,但对称加密中使用的钥匙可以通过不对称加密发送。
为了确保传输内容不会改变,我们需要计算该内容的 Hash 值,然后将其与内容一起发送给另一方。
当另一方收到它时,它还首先计算内容的哈希值,然后与发送者发送的哈希值进行比较。
如果 Hash 值相同,表示内容没有更改,则可以确定内容已经更改。
摘要算法 正是计算机将传输内容计算出哈希值的方法。
摘要算法计算出来的哈希值是唯一的,且无法通过哈希值推导出内容。
哈希算法可以确保内容不会改变,但它们不能确保“内容+哈希值”不会被中间人替换,因为缺乏证明从客户端接收的消息是来自服务器的。
换句话说,如果中间人截获内容+ Hash 值并在传输过程中全部修改,那么客户端计算的 Hash 值是错误的,即使是正确的,因为 Hashi 值本身已经被修改。
中间人攻击
攻击者在通信的两个端之间创建一个独立的连接,并交换他们接收的数据,使通信的两个端认为他们通过私人连接彼此进行直接对话,但实际上整个对话是由攻击者完全控制的。
在中间人攻击中,攻击者可以截获通信双方的对话并插入新的内容。 中间人攻击是一种(缺乏)相互认证的攻击。
大多数加密协议特别增加了一些特殊的认证方法来防止中间人攻击。
例如,SSL协议可以验证由参与通信的当事人使用的证书是由数字证书认证机构授权的接收者发出的,并且可以执行双向认证。

为了避免这种情况,计算机使用数字签名算法来解决这个问题。
内容的 Hash 值是通过数字签名算法加密的,所以中间人不能修改 Hash 值。

服务端可以向证书颁发机构CA申请证书,以避免中间人攻击(防止证书被篡改)。证书包含三部分内容:证书内容、证书签名算法和签名,签名是为了验证身份。
服务器将证书转交给浏览器,而浏览器则从证书中取出公钥。 证书可以证明公钥与该网站相符。
数字签名制作过程:
浏览器验证过程:

SSL/TLS协议基本过程:
第一个两个步骤是SSL/TLS建立过程,TLS手动阶段。
建立SSL/TLS协议的详细程序:
首先, 客户端向服务器发起加密通信请求, 即.ClientHello请求
在此步骤中,客户端主要向服务器发送以下信息:
(1)客户端支持的SSL/TLS协议版本,如TLS1.2版。
(二)生成的客户随机数目(Client Random),后来用来生成一个“消息秘密键”条件。
(3)客户端支持的密码套件列表,例如RSA加密算法。
在收到客户端请求后,服务器会向客户端发送响应,即:SeverHello.服务器响应的内容如下:
(1)确认SSL/TLS协议版本,如果浏览器不支持,关闭加密通信。
(二)产生服务器的随机数目(Server Random它也是用来生成“消息秘密密钥”的后续条件之一。
(3)确认密码包的列表,例如RSA加密算法。
(4)服务器的数字证书。
3.客户端回应
在接收服务器的响应后,客户端首先通过浏览器或操作系统中的CA公开密钥确认服务器的数字证书的真实性。
如果证书正确,客户端将从数字证书中提取服务器的公共密钥,用它加密消息并向服务器发送下列信息:
(1)一个随机数(pre-master key().随机数由服务器公开密钥加密。
(2)加密通信算法改变通知,表明随后的信息将用“会话键”加密。
(3)客户端握手结束通知,表示客户端的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供服务端校验。
服务器接收的客户第三个随机数目(pre-master key然后,通过谈判加密算法,计算了该通信的“会议秘密密钥”。
然后向客户发送最后消息:
(1)加密通信算法改变通知,表明随后的信息将用“会话键”加密。
(2)服务器握手结束通知,表示服务器的握手阶段已经结束。这一项同时把之前所有内容的发生的数据做个摘要,用来供客户端校验。
至此,整个 SSL/TLS 的握手阶段全部结束。接下来,客户端与服务器进入加密通信,就完全是使用普通的 HTTP 协议,只不过用「会话秘钥」加密内容。
HTTP的端口号是 80,HTTPS港号为443。HTTP连接的设置相对简单,TCP可以在三个握手后发送HTTP消息。HTTPS在TCP在三次握手之后,一个SSL/TLS握手过程被执行,以输入加密消息传输。HTTP这是一个超文本传输协议, 信息被明确传输, 存在安全风险问题.HTTPS则解决HTTP不安全的缺陷,在TCP和HTTP一个SSL/TLS安全协议被添加到网络层之间,以加密消息的传输。HTTPS协议要求CA(Cert Authority)申请数字证书,以确保服务器的身份是可靠的。因为HTTPS是如此安全的和可靠的,为什么所有网站都不总是使用HTTPS?
因为加密通信比纯文本通信消耗更多的CPU和内存资源。
如果每个通信被加密,将花费相当大的资源,并且处理的请求数目将不可避免地减少,因此分配给计算机。
因此HTTPPS比HTTP慢2至100倍。
SSL的慢分两种。
一种是通信速度缓慢,另一种是由于 CPU 和 内存资源的消耗而处理速度减慢。
对减速问题没有根本的解决办法。我们将使用SSL如(特别服务器)硬件等加速器来改善问题。 该硬件是SSL与软件相比,通信硬件可以提高几倍SSL的计算速度。仅在SSL处理时发挥SSL加速器的作用是分配负荷.
所有这些都是关于为什么HTTS更安全的原因。 非常感谢您看到这个。 如果有任何疏忽、错误或更一般理解的解释,欢迎朋友和家人私下给我,我将稍后补充完成。
《图解HTTP》
https://www.xiaolincoding.com
本文由 在线网速测试 整理编辑,转载请注明出处。