zoukankan      html  css  js  c++  java
  • 中间人攻击

    前面的文章我们讲到了RSA算法以目前的手段是很难被攻破的,那么使用RSA算法是不是就一定安全了呢?

    答案当然是否,因为我们并没有考虑到网络传输中的各种情况。本文会讲一种攻击叫做中间人攻击,为了抵御这种攻击,我们引入证书的概念。我们会在后续的文章中讲解证书的概念。这里我们重点讲一下中间人攻击。

    所谓中间人攻击就是在A和B通信的过程中加入了恶意攻击者C。C作为中间人转发两者的请求。

    示意图如下:

    消息发送者A攻击者C消息接受者B"1.请发送你的公钥""2.请发送你的公钥""3.这是我的公钥""4.C拦截B的公钥,并替换成C的公钥"A误以为收到的是B的公钥,实际上却用了C的公钥加"5.A向B发送密文,用C的公钥加密""6.C拦截信息,用自己的私钥解密,并伪造新的信息,用B的公钥加密后发给B""B用私钥解密"消息发送者A攻击者C消息接受者B

    上面是一个完整的中间人攻击流程:

    1. A向B请求公钥,但是却被C截获。
    2. C向B发送公钥请求。
    3. B将公钥发给C。
    4. C截获了B的公钥,然后替换成自己的公钥发给A。
    5. A将C的公钥当成了B的公钥,并用其加密信息,发给B。
    6. C截获了加密信息,用自己的私钥解密,获得明文。同时伪造新的信息,再用B的公钥加密,发给B。
    7. B获得加密信息,用自己的私钥解密。

    中间人攻击不仅仅针对于RSA算法,任何公钥算法都可能受到中间人攻击的影响。

    只靠公钥本身是无法防御中间人攻击的。这时候,我们就需要一个第三方的可信任的机构来解决这个公钥传递的问题,那就是证书。我们会在后面的文章中讲到。

    更多教程请参考 flydean的博客

  • 相关阅读:
    如何解决加载动态链接库DLL失败,返回0,GetLastError返回错误码126
    如何实现点击激活窗体同时窗体不跑到最前覆盖其他窗体
    数据库04
    数据库03
    数据库02
    数据库01
    Linux02
    Linux01
    软件质量
    HTML04
  • 原文地址:https://www.cnblogs.com/flydean/p/12680335.html
Copyright © 2011-2022 走看看