其他分享
首页 > 其他分享> > 网络安全概论 第四章 电子邮件安全加密(PGP)

网络安全概论 第四章 电子邮件安全加密(PGP)

作者:互联网

第四章 电子邮件安全加密

  1. PGP满足了安全电子邮件的三个安全需求:

    1. 保密性:通过对称加密和不对称加密结合实现了保密性,实现了一种安全的一次性会话密钥的交换方法
    2. 完整性:PGP采用数字签名和公钥身份认证实现完整性,其中PGP提出了一种去中心化网络的方式来实现公钥的认证,保证了分布式环境下的发件人、收件人的身份认证
    3. 可用性:PGP基于Base64转换将压缩后的密文转换的ASCII码,从而支持SMTP协议,实现了可用性
  2. PGP针对不同的需求,支持仅认证、仅加密、加密且认证三种工作方式

  3. PGP使用的各种符号

在这里插入图片描述

  1. PGP仅认证流程

    1. 工作流程图

      image-20210521104718670
    2. 流程说明

      1. 源A,即为发送方,创建电子邮件消息
      2. 使用SHA-1算法生成消息验证码(即为Hash散列函数生成固定长度的字符)
      3. 使用发送方A的RSA私钥类将消息验证码加密生成数字签名(MAC)
      4. 将MAC附在消息上,一并压缩,将压缩后的消息进行base64转换
      5. 接收方将收到的消息进行逆base64转换并解压缩
      6. 接收方将数字签名(MAC)和消息分离
      7. 将MAC使用A的公钥解密
      8. 将消息使用SHA-1算法解密,生成的散列值与上一步解密出的消息认证码相比较,如果符合,则表明邮件是A发送的,且没有被篡改
  2. PGP加密流程

    1. 加密前首先解决密钥分发的问题(因为发送方和接收方一般都不会同时在线,无法在线协商密钥):接收方接受到发送方随机生成的密钥,从而解决了密钥的安全分发的问题

    2. 加密流程图

      image-20210521110423002
    3. 流程说明

      1. 源A,即发送方,创建电子邮件,并对其进行压缩
      2. 发送方生成一个适用于当前邮件的128位随机密钥Ks(会话密钥),使用该密钥采用CAST-128(或IDEA、TDEA)加密压缩后的电子邮件
      3. 使用接收方B的RSA公钥加密Ks,即为加密后的会话密钥
      4. 发送方将上一步得到的加密后的会话密钥附在压缩加密后的消息上,并使用Base64转换
      5. 接收方对收到的消息进行Base64逆变换
      6. 接收方提取其中的加密后的会话密钥,使用自己的RSA私钥解密,获得Ks
      7. 接受方使用一次性会话密钥Ks解密消息,再进行解压缩,从而得到邮件的明文
  3. PGP认证并加密

    1. 认证并加密的流程图

      image-20210521111616905
    2. 流程说明

      1. 发送方A创建电子邮件
      2. 使用SHA-1算法生成散列值,即为消息验证码
      3. 使用发送方A的RSA私钥加密消息验证码,生成数字签名(MAC)
      4. 将MAC附在消息上,并一起压缩
      5. 发送方生成一个随机128位密钥Ks,采用CAST-128(或IDEA、TDEA)加密上一步压缩后的内容(其中包含MAC和电子邮件)
      6. 以接收方B的RSA公钥加密Ks,并将结果附在压缩内容上,一并进行Base64转换
      7. 接收方进行base64逆变换,提取加密后的Ks,使用自己的RSA私钥进行解密,得到Ks
      8. 接收方使用Ks解密消息,并进行解压缩,获得明文邮件和MAC值
      9. 接收方将MAC值解密(使用发送方A的RSA公钥),生成消息验证码
      10. 接收方将明文邮件进行SHA-1算法生成的结果和上一步得到的消息验证码进行比对,符合则表明是A发送的,且没有别篡改
    3. PGP再发送方签名后,加密前再进行压缩,原因是

      1. 发生再签名后的原因:对未压缩的邮件有利于实施不可否认性,或便于事后验证。
      2. 发正在压缩前的原因:对压缩后的消息进行加密可以增强加密的安全性,如压缩后的相关内容可能会变为乱码,增加了密文的分析难度
    4. 上面的步骤先生成数字签名,再加密,如果反过来,是否可行?如果可行,相比于之前的步骤有什么优缺点?

  4. PGP公钥信任模型

    1. A收到一个公钥,将其加入到公钥环中,PGP要求A必须给“拥有者信任”字段赋值。PGP中规定“拥有者信任”字段的取值为:未定义信任,未知用户,一般信任,一般信任,总是信任,完全信任。当这个公钥同时出现在私钥环中,“拥有者信任”字段幅值为完全信任
    2. A收到一个新公钥时,可能会有其他用户已经为此公钥进行了签名。如果签名者在公钥环内,就将签名者的”拥有者信任“值分配给此签名的”签名信任“字段;如果不在公钥环内,此签名的”签名信任“字段赋值为”未知用户“。”签名信任”字段的取值范围与“拥有者信任”字段的取值范围相同。
    3. 公钥的“密钥合理性”字段的赋值以该公钥的“签名信任”字段为基础。当签名中至少一个签名的“签名信任”的值是“完全信任(ultimate trusted) ”, 这个公钥的“密钥合理性”字段就被赋值为“complete”,即密钥是有效的。否 则,该字段由PGP计算“签名信任”字段的加权和获得。如果收到是一个“签名 信任”字段为“总是信任(alwaystrusted)",则定义此签名的权值为“1/X” ; 如果收到是一个“签名信任”字段为“一般信任(usuallytrusted)",则定义此 签名的权值为“1/Y” o (X和Y是用户可配置的参数)。当收集到的公钥签名 加权和达到1时,就可以将该公钥的“密钥合理性”字段的赋值为“complete”。 例如当X=3, Y=6时,如果收到该公钥2个“签名信任”字段为一般信任的签 名、2个“签名信任”字段为总是信任的签名,就可以将该公钥的“密钥合理性” 字段的赋值为“complete”。这样,即使一个公钥收到“完全信任”签名,只要 收集到足够多的部分信任签名,一样可以达到完全信任,成为有效的公钥

标签:网络安全,公钥,加密,签名,PGP,信任,电子邮件,密钥
来源: https://blog.csdn.net/qq_43375355/article/details/117172135