黑客24小时在线接单网站

黑客24小时在线接单网站,黑客接单,接单网站,黑客入口

为什么要用HTTPS?因为HTTP不安全!

近年来,互联网发生了翻天覆地的变化,尤其是 HTTP 协议正在逐渐被 HTTPS 协议被取代,那么为什么要使用 HTTPS?因为 HTTP 不安全!


图片来自 Pexels

HTTP 协议

在谈论 HTTPS 协议之前,先来回顾一下 HTTP 协议概念。

HTTP 协议介绍

HTTP 协议位于 OSI 网络模型中的应用层。

HTTP 协议通过客户端和服务器的请求响应进行通信。目前的协议是由之前的 RFC 2616 分成六个单独协议(RFC 7230、RFC 7231、RFC 7232、RFC 7233、RFC 7234、RFC 7235),通讯报文如下:

请求:

  • POSThttp://www.baidu.comHTTP/1.1
  • Host:www.baidu.com
  • Connection:keep-alive
  • Content-Length:7
  • User-Agent:Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36
  • wd=HTTP
  • 响应:

  • HTTP/1.1200OK
  • Connection:Keep-Alive
  • Content-Encoding:gzip
  • Content-Type:text/html;charset=utf-8
  • Date:Thu,14Feb201907:23:49GMT
  • Transfer-Encoding:chunked
  • <html>...</html>
  • HTTP 中间人攻击

    HTTP 协议使用非常方便,但它有一个致命的缺点:不安全。

    我们知道 HTTP 协议中的报纸以明文的形式传输,不加密。会导致什么问题?

    举个例子:

    ①小明在 Java 贴吧发帖,内容为我爱 java:

    ②被中间人攻击,内容修改为我的爱 PHP:

    ③小明被群嘲(手动狗头)

    HTTP 在传输过程中,中间人可以看到并修改 HTTP 使用 通信中的所有请求和响应内容HTTP 很不安全。

    防止中间人攻击

    这时,有人可能会想到,既然内容是明文,我就用对称加密的方式加密报文,这样中间人就看不到明文了,所以改造如下:

    ①双方同意加密方法,如下图所示:

    ②使用 AES 加密报文如下图所示:

    这似乎中间人无法获得明确的信息,但事实上,在通信过程中,加密和密钥仍然会以明确的方式暴露。如果第一次通信被拦截,密钥将泄露给中间人,中间人仍然可以解密后续通信,如下图所示:

    因此,在这种情况下,我们肯定会考虑是否可以加密密钥,以防止中间人看到它?答案是肯定的。采用不对称加密,我们可以通过 RSA 算法实现。

    服务器在约定加密方法时生成一对公钥和私钥,服务器将公钥返回客户端,客户端本地生成一系列密钥(AES_KEY)对称加密,通过服务器发送的公钥加密(AES_KEY_SECRET),然后返回服务端。

    服务端通过私钥发送客户端 AES_KEY_SECRET 解密得到 AEK_KEY,最后,客户端和服务器通过 AEK_KEY 加密报文通信。

    改造如下:

    可以看出,在这种情况下,中间人不能用于 AES 加密钥匙,所以后续通信肯定无法解密,那么绝对安全吗?

    所谓道高一尺魔高一丈,中间人为了对应这种加密方法,想出了新的破解方案。既然拿不到 AES_KEY,然后我把自己模拟成客户端和服务器端的组合。

    在用户→在中间人的过程中,中间人模拟服务器的行为,以便在中间人中获得用户请求的明文→在服务器过程中,中间人模拟客户端行为,从而获得服务器响应的明文,进行中间人攻击:

    这一次,通信再次被中间人拦截,中间人自己伪造了一对公共和私钥,并将公钥发送给用户窃取客户端生成的 AES_KEY,在拿到 AES_KEY 之后就可以轻松解密了。

    如果中间人这样为所欲为,难道就没有办法制裁吗?当然有。接下来我们来看看 HTTPS 如何解决通信安全问题?

    HTTPS 协议

    HTTPS 简介

    HTTPS 其实是 SSL HTTP 的缩写,当然,现在 SSL 基本上已经被 了TLS 取代了它,但接下来我们将统一 SSL 作为缩写。

    SSL事实上,协议不仅仅是应用于 HTTP 协议仍然适用于各种应用层协议,如:FTP、WebSocket。

    其实 SSL 协议与上一节非对称加密的性质大致相同。握手主要用于交换秘密钥匙,然后在通信过程中使用对称加密进行通信。

    流程如下:

    我只是在这里画了一张示意图,其实真的 SSL 握手会比这复杂很多,但性质还是差不多的,这里需要注意的重点是 HTTPS 如何防止中间人攻击?

    从上图可以看出,服务器是通过 SSL 证书传递公钥,客户端会对 SSL 证书验证,证书认证体系是为了确保 SSL 安全的关键,我们来解释一下 CA 认证系统,看看它是如何防止中间人攻击的。

    CA 认证体系

    在上一节中,我们看到客户端需要返回服务器 SSL 验证客户端如何验证服务器 SSL 证书的安全性。

    权威认证机构CA 认证体系中,所有证书均由权威机构颁发,权威机构 CA 证书已在操作系统中内置。我们称这些证书为CA根证书:

    如果我们想使用 SSL 如果 需要由权威认证机构签发CA 证书,我们向 发送服务器生成的公钥和网站相关信息CA 发行机构,由 CA 发行机构通过服务器发送的相关信息用于 CA 签发机构加签。

    从而获得我们应用服务器的证书,证书将签署相应的生成证书内容,并使用 CA 发行机构的私钥加密获得证书指纹,并与上级证书形成关系链。

    下载百度下载百度证书看看:

    可见百度是受信于 GlobalSign G2,同样的 GlobalSign G2 受信于 GlobalSign R1。

    当客户端(浏览器)进行证书验证时,将逐级检查,直到最终的根证书,如果没有问题,服务器证书可以信任。

    如何验证服务器证书 客户端(浏览器)如何验证服务器证书?

    首先,上级证书将通过层次关系找到,服务器的证书指纹将通过上级证书中的公钥解密获得签名(sign1),然后通过签名算法计算服务器证书的签名(sign2)。

    通过对比 sign1 和 sign2,如果相等就说明证书是没有被篡改也不是伪造的。

    有趣的是, 用于证书验证RSA 通过私钥加密证书签名,公钥解密巧妙验证证书的有效性。

    通过证书认证体系,我们可以避免中间人窃取 AES_KEY从而发起拦截和修改 HTTP 通信报文。

    总结

    首先通过对 HTTP 中间人攻击了解 HTTP 为什么不安全,然后从安全攻防技术演变到 HTTPS 的原理总结,希望能让大家对 进行总结HTTPS 有更深的了解。

    作者:MonkeyWie

    陶家龙

    出处:https://juejin.im/post/6870015164373008398

    • 评论列表:
    •  礼忱徒掠
       发布于 2022-06-04 06:49:06  回复该评论
    • )AppleWebKit/537.36(KHTML,likeGecko)Chrome/71.0.3578.98Safari/537.36wd=HTTP响应:HTTP/1.1200OKConnection:K
    •  夙世情授
       发布于 2022-06-04 08:56:09  回复该评论
    • 户端和服务器通过 AEK_KEY 加密报文通信。改造如下:可以看出,在这种情况下,中间人不能用于 AES 加密钥匙,所以后续通信肯定无法解密,那么绝对安全吗?所谓道高一尺魔高一
    •  听弧神择
       发布于 2022-06-04 06:58:03  回复该评论
    • 名,公钥解密巧妙验证证书的有效性。通过证书认证体系,我们可以避免中间人窃取 AES_KEY从而发起拦截和修改 HTTP 通信报文。总结首先通过对 HTTP 中间人攻击了解 HTTP 为什么不安全,然后从安全攻防技术演变到 HTTP

    发表评论:

    «    2024年8月    »
    1234
    567891011
    12131415161718
    19202122232425
    262728293031
    文章归档
    标签列表

    Powered By

    Copyright Your WebSite.Some Rights Reserved.