• 计算机网络:网络安全


    首先,SKa数字签名确保发送方的身份,再通过PKb加密,经过互联网的传输,接收方核实签名、解密。

    但对较长的报文进行数字签名会加大计算机的计算量,需要较长时间。因此,提出了使用密码散列函数

    即使H(X)被截获了,截获者也无法伪造出Y  使H(X)=H(Y)

    改进后的加密过程如上图,对报文不需要加密,仅把散列H用密钥K加密。散列H的长度远小于报文X的长度,因此无需消耗很多计算资源。鉴别码MAC能够很方便地保护报文的完整性。

    实体鉴别

    对自己和通信方实体的一次验证,引入了不重数

    1. A-->B 发送 其身份A,不重数RA

    2. B-->A 用共享密钥K[AB]加密后的不重数RA'  , 并用B的私钥SK[B]进行签名RA' ,不重RB

    // A用B的公钥PB[B]核实签名,就能得出自己发送的RA,核实了和自己通信的是B

    3. A-->B 用共享密钥K[AB]加密后的不重数RB' ,并用A的私钥SK[A]进行签名RB'

    // B用A的公钥PB[A]核实签名,就能得出自己发送的RB,核实了和自己通信的是A

    但这种通信方式有个很大的缺陷---- 中间人攻击

     

              1/ A发送身份A给B,被C截获                                   C --> B  2/ C原封不动把A的身份信息给B

                                                                                                C <-- B  3/ B选择不重数RB发给A,被C截获

              4/ C把RB转发给A                                                      C --> B  5/ C用私钥SKc对RB加密后,发给B

              6/ A用私钥SKa对RB加密后,发给B 被C丢弃           C <-- B  7/ B向A索要公钥PKA

              8/ C向A索要公钥PKA                                                C --> B  9/ C把自己的公钥PKc发给B,B以为收到的是A的公钥

             10/ A向B发送自己的公钥PKA ,被C截获                  C <-- B  11/ B把data用PKc加密后发给A

                                                                          12.C收到data后用自己的私钥SKc解密,复制一份用PKA加密,发给A

             13/ A收到C(以为是B)发来的data,用私钥SKa解密,得到data原数据

    整个过程就实现了AB之间的通信,且C截获了数据 但AB毫无察觉

  • 相关阅读:
    编译OpenSLL windows xp版本
    IGES简单介绍
    STEP标准的简单介绍
    Git工具使用遇到的一些问题记录
    THULAC:一个高效的中文词法分析工具包
    【转】OnDropFiles 可能无响应的问题
    【转】OnPaint()函数的作用原理
    关于Oracle连接异常--添加、修改账户信息
    js生成64位hash码
    关于 VUE 页面跳转
  • 原文地址:https://www.cnblogs.com/l20902/p/10610957.html
Copyright © 2020-2023  润新知