信息安全系统工程安全电子邮件.ppt
一、电子邮件一、电子邮件n n电子邮件(电子邮件(e-maile-mail)无疑是)无疑是InternetInternet上最流行的应上最流行的应用程序。用程序。n nE-mail E-mail 主要标准主要标准n nRFC 821RFC 821:Simple Mail Transfer Protocol Simple Mail Transfer Protocol(SMTPSMTP););n nRFC 1939RFC 1939:Post Office Protocol-Version 3Post Office Protocol-Version 3;n nRFC 822RFC 822:STANDARD FOR THE FORMAT OF STANDARD FOR THE FORMAT OF ARPA INTERNET TEXT MESSAGESARPA INTERNET TEXT MESSAGES;n nRFC 1521RFC 1521:Multipurpose Internet Mail ExtensionsMultipurpose Internet Mail Extensions(MIME MIME););n n2021/9/241Internet电子邮件系统示意电子邮件系统示意SMTPPOP32021/9/242SMTP协议样例协议样例2021/9/243电子邮件的问题电子邮件的问题n n如何保证电子邮件内容的机密性和完整性?n n如何保证电子邮件来源的真实性?2021/9/244安全电子邮件安全电子邮件n n安全电子邮件主要是解决电子邮件的来源真实性和数据保密性问题。n n目前常用的安全电子邮件系统n nPGP PGP-Pretty Good Privacy-Pretty Good Privacyn nS/MIMES/MIME-Secure/Multipurpose Internet Mail -Secure/Multipurpose Internet Mail ExtensionExtension2021/9/245二、二、Pretty Good Privacyn n1、PGP概述n n2、PGP的主要功能及实现n n3、PGP的密钥管理2021/9/2461、PGP 概述概述n nPGPPretty Good Privacy;n n创建者:Philip R.Zimmermann(http:/http:/)n nPGP的发展过程(http:/www.cypherspace.org/adahttp:/www.cypherspace.org/adam/timelinem/timeline)2021/9/247PGP 发展特点发展特点n n1 1、PGPPGP选择了可获得的、最好的加密算法作为系选择了可获得的、最好的加密算法作为系统的构造模块统的构造模块n n2 2、PGPPGP将这些算法集成到一个通用的应用程序中,将这些算法集成到一个通用的应用程序中,该程序独立于操作系统和处理器,并且基于一个使该程序独立于操作系统和处理器,并且基于一个使用方便的小命令集用方便的小命令集n n3 3、PGPPGP的程序、文档在的程序、文档在 Internet Internet 上是公开的上是公开的n n4 4、作者与、作者与Network Associates Inc.Network Associates Inc.(现在为(现在为 PGP PGP CorporationCorporation)达成了协议,提供完全兼容、低价格)达成了协议,提供完全兼容、低价格的商业版本的商业版本2021/9/248PGP 获得获得广泛应用的原因广泛应用的原因n n1 1、提供世界范围内各种免费版本,可用于多种平、提供世界范围内各种免费版本,可用于多种平台(台(WindowsWindows、UnixUnix、MacintoshMacintosh)n n2 2、其商用版本得到了销售商的技术支持、其商用版本得到了销售商的技术支持n n3 3、系统使用的算法的安全性是公众认可的、系统使用的算法的安全性是公众认可的n n4 4、具有广泛的可用性、具有广泛的可用性n n5 5、系统不由任何政府或标准化组织控制、系统不由任何政府或标准化组织控制n n6 6、PGPPGP成为成为 Internet Internet 标准标准n nRFC2440RFC2440:OpenPGP Message FormatOpenPGP Message Formatn nRFC3156RFC3156:MIME Security with OpenPGPMIME Security with OpenPGP2021/9/2492、PGP 主要功能主要功能n n1、认证(数字签名):采用DSS/SHA或RSA/SHA;n n2、保密(报文加密):加密采用CAST-128或IDEA或3DES;密钥交换采用Diffie-Hellman或RSA;n n3、数据压缩:采用 ZIP;n n4、电子邮件兼容:采用 Radix 64变换;n n5、数据分段:对消息进行分段和重组以适应PGP对消息最大长度的限制。2021/9/2410符号说明符号说明n nK Ks s:会话密钥(会话密钥(session keysession key)n nKRKRa a:用户用户A A的私钥的私钥n nKUKUa a:用户用户A A的公钥的公钥n nEPEP:公钥加密公钥加密n nDPDP:公钥解密公钥解密n nECEC:常规加密常规加密n nDCDC:常规解密常规解密n nH H:散列函数散列函数n n|:连接连接n nZ Z:用用ZIPZIP算法算法数据压缩数据压缩n nR64:R64:用用 Radix64 Radix64 转换到转换到ASCIIASCII格式格式2021/9/24112.1 PGP的认证的认证n nPGPPGP通过数字签名提供认证,过程如下:通过数字签名提供认证,过程如下:n n1 1、发送者产生消息、发送者产生消息 MM;n n2 2、发送者用、发送者用SHA-1SHA-1对对 M M 生成一个生成一个160160位的散列码位的散列码 H(M)H(M);n n3 3、发送者用自己的私钥,采用、发送者用自己的私钥,采用 RSA RSA 对散列码对散列码 H(M)H(M)签签名(记为名(记为S S),并将结果串接在),并将结果串接在 M M 的前面;的前面;n n4 4、接收者用发送者的公钥对、接收者用发送者的公钥对 S S 解密,恢复解密,恢复 H(M)H(M);n n5 5、接收者对收到的消息、接收者对收到的消息 M M 生成一个新的散列码,并与生成一个新的散列码,并与4 4中的散列码中的散列码 H(M)H(M)比较,如果一致,则认为比较,如果一致,则认为MM是真实的。是真实的。n n另外,在另外,在 PGP PGP 中:中:n n签名也可采用签名也可采用DSS/SHA-1DSS/SHA-1生成;生成;n n支持签名与消息的分离。支持签名与消息的分离。2021/9/2412PGP的认证(续)的认证(续)发送方发送方接收方接收方2021/9/24132.2 PGP的机密性的机密性n nPGP的机密性通过加密来保证n n加密采用常规的加密采用常规的CAST-128CAST-128算法算法(或或IDEAIDEA和和3DES)3DES),使用,使用6464比特加密反馈比特加密反馈(CFB)(CFB)模式模式n n加密密钥采用随机生成的加密密钥采用随机生成的一次性会话密钥一次性会话密钥(Session KeySession Key)2021/9/2414PGP的机密性(续)的机密性(续)n n加密步骤如下:加密步骤如下:n n1 1、发送者生成消息、发送者生成消息 MM,并生成一个,并生成一个128128位的随机数作位的随机数作为为会话密钥会话密钥(Session KeySession Key););n n2 2、发送者发送者使用使用会话密钥会话密钥和和 CAST-128 CAST-128 算法算法(或或IDEA,IDEA,3DES3DES)对)对 M M 加密;加密;n n3 3、发送者用接收者的公钥,采用、发送者用接收者的公钥,采用 RSA RSA 加密会话密钥加密会话密钥,并附加在并附加在E Ek k(M)(M)前面(也可用前面(也可用Diffie-HellmanDiffie-Hellman算法),发算法),发给接收者;给接收者;n n4 4、接收者用自己的私钥和、接收者用自己的私钥和 RSA RSA 解密恢复会话密钥;解密恢复会话密钥;n n5 5、接收者用会话密钥解密、接收者用会话密钥解密E Ek k(M)(M),恢复消息,恢复消息MM。2021/9/2415PGP的机密性(续)的机密性(续)发送方发送方接收方接收方2021/9/24162.3 PGP同时提供认证和机密性同时提供认证和机密性n n当两种服务都需要时,发送者先用自己的私钥签名,然后产生会话密钥并加密,再用接收者的公钥加密会话密钥。n n注意:先进行签名,再进行加密比先加密,后签名要好:n n这样,签名是针对消息本身,而不是加密后的消这样,签名是针对消息本身,而不是加密后的消息;加密作为一种保护措施,在信息传输完毕后息;加密作为一种保护措施,在信息传输完毕后即可不再有效。即可不再有效。2021/9/2417PGP同时提供认证和机密性(续)同时提供认证和机密性(续)发送方发送方接收方接收方2021/9/24182.4 PGP的数据压缩的数据压缩n n默认情况下,在报文签名后加密前,默认情况下,在报文签名后加密前,PGPPGP对报文对报文进行压缩;进行压缩;n n压缩对邮件传输或存储都有节省空间的好处;压缩对邮件传输或存储都有节省空间的好处;n n将压缩操作安排在签名之后比较好将压缩操作安排在签名之后比较好n n在验证签名时只需存储未压缩的报文和签名;在验证签名时只需存储未压缩的报文和签名;n n不会约束对压缩算法的选择。不会约束对压缩算法的选择。n n采用压缩操作采用压缩操作可以增加加密的强度可以增加加密的强度n n压缩的报文比原始明文冗余更少,密码分析更加困难压缩的报文比原始明文冗余更少,密码分析更加困难。n nPGPPGP使用使用ZIPZIP压缩软件包,该软件包采用的压缩算压缩软件包,该软件包采用的压缩算法是法是 LZ77LZ77。2021/9/24192.5 PGP提供电子邮件兼容性提供电子邮件兼容性n n使用使用PGPPGP签名或加密后的报文可能部分或全部都签名或加密后的报文可能部分或全部都是任意的是任意的 8 8 比特二进制流,需要转换成比特二进制流,需要转换成可打印的可打印的ASCIIASCII字符字符,以支持一些电子邮件系统。,以支持一些电子邮件系统。n nPGPPGP采用采用基数基数6464变换变换(Radix-64Radix-64)实现这一目的)实现这一目的n nRadix64 Radix64 将将 3 3 字节输入转换到字节输入转换到 4 4 个个 ASCII ASCII 字符,并带字符,并带CRCCRC校验;校验;n n使用使用 Radix-64 Radix-64 变换使报文长度变换使报文长度扩大扩大33%33%;n n典型情况下,典型情况下,在在 Radix64Radix64与压缩(假设的压缩率为与压缩(假设的压缩率为2 2.0.0)综合后,报文总体长度为:)综合后,报文总体长度为:1.33*0.5*M=0.665*M1.33*0.5*M=0.665*M2021/9/2420基数基数64变换(变换(Radix-64)n n利用利用Radix64Radix64可以将任意二进制输入转换成可打印字符。可以将任意二进制输入转换成可打印字符。n n其映射过程如下:其映射过程如下:6 bits6 bits6 bits6 bits8 bits8 bits8 bits8 bits2021/9/2421基数基数64变换(变换(Radix-64)n n映射时映射时6bits6bits输入到输出(输入到输出(8bits8bits)的编码表:)的编码表:2021/9/2422基数基数64变换(变换(Radix-64)n n例:假设输入的24bits(3字节)为00100011 01011100 10010001则其按 6bits 一组排列为001000 110101 110010 010001即十进制的 8、53、50、17。因此经过 Riadix64 变换为:I1yR如果变换结果用ASCII码表示,为:01001001 00110001 01111001 010100102021/9/24232.6 PGP报文发送和接收流程报文发送和接收流程2021/9/24242.7 PGP对报文的分段与重组对报文的分段与重组n n电子邮件常常受限制于最大报文长度(一般限制在最大50000字节);n n更长的报文要进行分段,每一段单独发送;n nPGP对报文自动分段并在接收时自动恢复,分段在其他所有操作之后进行;n n签名和会话密钥只在第一段的开始位置出现一次。2021/9/24253、PGP的密钥管理的密钥管理n nPGP使用了四种类型的密钥n n一次性会话密钥一次性会话密钥(Session KeySession Key):用于常规):用于常规加密;加密;n n公钥公钥(Public KeyPublic Key):包括):包括通信对方的公钥通信对方的公钥和和发送方自己的公钥;发送方自己的公钥;n n私钥私钥(Private KeyPrivate Key):发送方自己的私钥;):发送方自己的私钥;n n口令短语口令短语(PassphrasePassphrase):用于保护自己私钥。):用于保护自己私钥。2021/9/2426不同不同密钥的密钥的管理管理需求需求n n会话密钥会话密钥:n n需要需要有有一种生成不可预测的会话密钥的手段一种生成不可预测的会话密钥的手段;n n会话密钥不需要长期保存,每次加密都会重新生成。会话密钥不需要长期保存,每次加密都会重新生成。n n公钥公钥和和私钥私钥:n n私钥需要加密存储;私钥需要加密存储;n n需要某种手段来标识需要某种手段来标识一个公一个公钥,因为钥,因为一个用户可能拥一个用户可能拥有多个公钥有多个公钥/私钥对;私钥对;n n公钥和私钥需要长期保存;公钥和私钥需要长期保存;n n需要保存自己的需要保存自己的公钥公钥/私钥对私钥对和和通信对方的公钥。通信对方的公钥。n n口令短语口令短语:n n口令短语的产生和保存由口令短语的产生和保存由“持有人持有人”自己负责。自己负责。2021/9/24273.1 会话密钥的生成会话密钥的生成n n会话密钥通过PRNG(Pseudo Random Number Generators)产生n n以以 CAST-128 CAST-128 使用的使用的128bits128bits密钥的产生为例,密钥的产生为例,其其128 128 位的会话密钥是由基于位的会话密钥是由基于ANSI X12.17ANSI X12.17的的PRNGPRNG产生的。产生的。2021/9/2428ANSI X9.17伪随机数产生器伪随机数产生器输入:输入:DTDTi i(日期日期/时间时间),V),Vi i(随机数种子随机数种子),K),K1 1,K,K2 2:密钥;密钥;输出:输出:R Ri i(随机数序列随机数序列),V),Vi+1i+1(新的随机数种子新的随机数种子);2021/9/2429ANSI X9.17伪随机数产生器(续)伪随机数产生器(续)n nANSI X9.17 PRNGANSI X9.17 PRNG的输入包括一个的输入包括一个128128位的密钥位的密钥和两个和两个6464位的数据分组:位的数据分组:n n通过使用通过使用CFBCFB方式,方式,PRNGPRNG中的中的CAST-128CAST-128产生两个产生两个6464位加密数据分组,这两个数据分组的串接起来构成位加密数据分组,这两个数据分组的串接起来构成128128位会话密钥。位会话密钥。n nANSI X9.17 PRNGANSI X9.17 PRNG的随机数种子(的随机数种子(SeedSeed):):n n作为作为PRNGPRNG明文输入的两个明文输入的两个6464位数据分组,是从一个位数据分组,是从一个128128位的随机数流中导出的。位的随机数流中导出的。n n这些随机数流是基于用户的键盘输入的:键盘输入的这些随机数流是基于用户的键盘输入的:键盘输入的时间和内容用来产生随机流,因此,如果用户以他通时间和内容用来产生随机流,因此,如果用户以他通常的步调敲击任意键,将会产生合理的随机性。常的步调敲击任意键,将会产生合理的随机性。2021/9/2430随机数种子随机数种子(Seed)n n任何一个PRNG都必须使用一个随机数种子来初始化,随机数种子必须是不可预测的n n否则,攻击者有可能通过猜测种子,以恢复整否则,攻击者有可能通过猜测种子,以恢复整个随机序列。个随机序列。n nPRNGPRNG产生产生“随机随机”数的根源在于数的根源在于种子的随机种子的随机性。性。n n计算机中随机数种子的可能来源如下,通常通过收集这些来源以产生供PRNG使用的实际的种子:熵减小熵减小熵增加熵增加2021/9/2431随机数种子的来源随机数种子的来源熵减小熵增加外部设备,如外部设备,如UsbKeyUsbKey2021/9/24323.2 密钥标识符(密钥密钥标识符(密钥ID)n n一个用户有多个公钥一个用户有多个公钥/私钥对时,接收者如何知道私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?发送者是用了哪个公钥来加密会话密钥?n n将公钥与消息一起传送:浪费空间;将公钥与消息一起传送:浪费空间;n n将一个标识符与一个公钥关联,对一个用户来说做到将一个标识符与一个公钥关联,对一个用户来说做到一一对应:增加了管理负担;一一对应:增加了管理负担;n nPGPPGP采用采用密钥密钥IDID(Key IDKey ID)来解决这个问题。来解决这个问题。n n密钥密钥IDID与每个公钥相关联,由公钥的最低与每个公钥相关联,由公钥的最低6464比特比特组成,即组成,即KUKUa a的密钥的密钥IDID为为 KUKUa a mod 2 mod 26464 n n由于密钥是随机的,因此密钥由于密钥是随机的,因此密钥IDID重复的概率很小。重复的概率很小。n nPGPPGP数字签名同样也需要密钥数字签名同样也需要密钥IDID。2021/9/24333.3 PGP报文的格式报文的格式n n对原始数据进行加密或签名后,需要一种新的数据格式对加密或签名后的数据,以及加密和签名的参数进行保存。n nPGP拥有自己的PGP报文格式。n n一个PGP报文由3个部分组成:n n报文;报文;n n签名(可选);签名(可选);n n会话密钥部分(可选)。会话密钥部分(可选)。2021/9/2434PGP报文的报文的一般格式一般格式2021/9/24353.4 密钥环密钥环n n用于公钥密码的密钥(公钥和私钥)对于PGP的操作是非常关键的n n需要一种系统化的方法存储和组织这些密钥,需要一种系统化的方法存储和组织这些密钥,以保证有效和高效地使用它们。以保证有效和高效地使用它们。n nPGP在每一个节点上提供一对数据结构n n一个用来存储该节点自己拥有的一个用来存储该节点自己拥有的公钥公钥/私钥对私钥对(私钥环)(私钥环);n n一个用来存储该节点知道的一个用来存储该节点知道的其他用户的公钥其他用户的公钥(公钥环)(公钥环)。2021/9/2436私钥环和公钥环的结构私钥环和公钥环的结构2021/9/2437私钥环格式说明私钥环格式说明n n1、用户ID(User ID)n n通常是用户的邮件地址,也可以是一个名字。通常是用户的邮件地址,也可以是一个名字。n n2、加密后的私钥(Encrypted private key)n n私钥使用私钥使用CAST-128(CAST-128(或或IDEAIDEA或或3DES)3DES)加密保存。加密保存。n n3、私钥对应的公钥(Public key)n n4、公钥的密钥ID(Key ID)n n5、时间戳(Timestamp)2021/9/2438私钥环中私钥加密和使用的过程私钥环中私钥加密和使用的过程n n私钥使用私钥使用CAST-128(CAST-128(或或IDEAIDEA或或3DES)3DES)加密,过程如下:加密,过程如下:n n1 1、用户选择一个、用户选择一个口令短语(口令短语(PassphrasePassphrase )用于加密私钥;用于加密私钥;n n2 2、当系统用生成一个新的公钥、当系统用生成一个新的公钥/私钥对时,要求用户输入口私钥对时,要求用户输入口令短语,并对该短语使用令短语,并对该短语使用SHA-1SHA-1生成一个生成一个160160位的散列码后,位的散列码后,销毁该短语;销毁该短语;n n3 3、系统用散列码中的、系统用散列码中的128128位作为密钥,用位作为密钥,用CAST-128CAST-128加密刚加密刚产生私钥,并将加密后的私钥存储到私钥环中。产生私钥,并将加密后的私钥存储到私钥环中。n n每当用户要访问私钥环中的私钥时,必须向系统提供口令每当用户要访问私钥环中的私钥时,必须向系统提供口令短语,以解密私钥环中的私钥:短语,以解密私钥环中的私钥:n nPGPPGP将检索出加密的私钥,生成口令短语的散列码,然后用将检索出加密的私钥,生成口令短语的散列码,然后用该散列码来应用该散列码来应用CAST-128CAST-128对加密的私钥解密,获得私钥。对加密的私钥解密,获得私钥。2021/9/2439私钥环中私钥加密和使用的过程(续)私钥环中私钥加密和使用的过程(续)ECEC散列函数散列函数口令短语口令短语私有密钥环(私有密钥环(加密过的私钥加密过的私钥)私钥私钥(明文明文)DCDC散列函数散列函数口令短语口令短语私钥私钥(明文明文)保存保存使用使用基本思想:基本思想:用口令短语来保护私钥用口令短语来保护私钥。一个与该方法相似的标准是:一个与该方法相似的标准是:PKCS#5 Password PKCS#5 Password Based Cryptography StandardBased Cryptography Standard2021/9/2440公钥环格式说明公钥环格式说明n n1 1、用户、用户IDID(UserIDUserID):公钥的拥有者,多个用户:公钥的拥有者,多个用户IDID可以对应一个公钥可以对应一个公钥n n2 2、公开密钥(、公开密钥(Public KeyPublic Key):):用户用户IDID所拥有的公所拥有的公钥钥n n3 3、公钥的密钥、公钥的密钥IDID(Key IDKey ID););n n4、时间戳(Timestamp);n n5 5、Owner TrustOwner Trust、Key LegitimacyKey Legitimacy、Signature(s)Signature(s)、Signature Trust(s)Signature Trust(s):用于公钥真实性管理(信任:用于公钥真实性管理(信任管理)的字段(见后)管理)的字段(见后)。2021/9/2441利用密钥环生成利用密钥环生成PGP报文过程报文过程2021/9/2442利用密钥环利用密钥环接收接收PGP报文过程报文过程2021/9/24433.5 PGP公开密钥管理公开密钥管理n nPGPPGP包含了有效的机密性和认证服务,最后还需包含了有效的机密性和认证服务,最后还需要提供一种公钥管理服务要提供一种公钥管理服务n n公钥管理是公开密钥应用中最困难的部分,是公开密公钥管理是公开密钥应用中最困难的部分,是公开密钥加密的钥加密的“阿基里斯的脚后跟阿基里斯的脚后跟”。n n如果如果 A A 的公钥环上有一个从的公钥环上有一个从BBSBBS上获得的上获得的 B B发布发布的公钥,但该公钥实际上是的公钥,但该公钥实际上是C C伪造的(或伪造的(或 B B 的私的私钥已经泄漏给钥已经泄漏给C C),这样:),这样:n n1 1)C C 可以向可以向 A A 发送报文并冒充发送报文并冒充 B B 的签名,的签名,A A 以为是来以为是来自自 B B;n n2 2)A A 发给发给 B B 的任何加密消息的任何加密消息 C C 都可以读取。都可以读取。n n由于由于PGPPGP的目标是广泛地在正式或非正式环境下的目标是广泛地在正式或非正式环境下应用,因此应用,因此没有建立严格的公钥管理模式没有建立严格的公钥管理模式。2021/9/2444A获得获得B的公钥的可能方法的公钥的可能方法n n1 1、物理上得到、物理上得到 B B 的公钥的公钥n n2 2、通过电话验证公钥、通过电话验证公钥n nB B 将其公钥将其公钥 email email 给给 A A,A A 可以用可以用 PGP PGP 对该公钥生成一个对该公钥生成一个 160 160 位位的的 SHA-1 SHA-1 摘要(这一摘要称作密钥的摘要(这一摘要称作密钥的“指纹指纹”)。)。n n然后然后 A A 打电话给打电话给 B B,让,让 B B 在电话中对证在电话中对证“指纹指纹”,如果双方一致,如果双方一致,则该公钥被认可。则该公钥被认可。n n3 3、从双方都信任的个体、从双方都信任的个体 D D 处获得处获得 B B 的公钥的公钥n n D D是介绍人,生成一个签名的证书,其中包含是介绍人,生成一个签名的证书,其中包含 B B 的公钥和密钥生的公钥和密钥生成时间。成时间。D D 对该证书生成一个对该证书生成一个 SHA-1 SHA-1 摘要,并用其私钥摘要,并用其私钥“加密加密”这个摘要,然后把这个摘要,然后把“加密后加密后”的摘要(即数字签名)附加在证书的摘要(即数字签名)附加在证书后。后。n n因为只有因为只有 D D 能够产生这个签名,没有人可以生成一个假的公钥并能够产生这个签名,没有人可以生成一个假的公钥并假装是假装是 D D 签名的。这个签名的证书可以由签名的。这个签名的证书可以由 B B 或或 D D 直接发给直接发给 A A,也,也可以贴到公告牌上。可以贴到公告牌上。n n4 4、从一个信任的、从一个信任的 CA CA 中心得到中心得到 B B 的公钥的公钥2021/9/2445PGP中管理信任关系的字段中管理信任关系的字段n nPGPPGP没有包含任何建立认证中心或建立信任体系没有包含任何建立认证中心或建立信任体系的规格说明,但它提供了一个利用信任关系的手的规格说明,但它提供了一个利用信任关系的手段,段,将信任与公钥关联将信任与公钥关联,并利用信任信息来管理,并利用信任信息来管理公钥的真实性。公钥的真实性。n nPGPPGP的信任关系通过公钥环中的字段表示:的信任关系通过公钥环中的字段表示:n nKey legitimacy fieldKey legitimacy field:n n表明表明PGPPGP信任这个公钥是这个用户的合法公钥的程信任这个公钥是这个用户的合法公钥的程度,信任程度越高,这个用户度,信任程度越高,这个用户IDID和这个公钥的绑定和这个公钥的绑定越强。越强。n n这个字段是由这个字段是由 PGP PGP 计算得出的。计算得出的。2021/9/2446PGP中管理信任关系的字段(续)中管理信任关系的字段(续)n nsignature trust fieldsignature trust field:n n公钥环中的每个记录实际都是一个公钥证书,公钥环的公钥环中的每个记录实际都是一个公钥证书,公钥环的拥有者可以收集其他人对该证书的签名(拥有者可以收集其他人对该证书的签名(SignatureSignature),),而每个签名有一个而每个签名有一个 signature trust fieldsignature trust field,表明,表明PGPPGP用户用户信任签名者对这个公钥证明的程度。信任签名者对这个公钥证明的程度。n nKey legitimacy field Key legitimacy field 是由多个是由多个signature trust field signature trust field 导出的。导出的。n nOwner trust fieldOwner trust field:n n表明该公钥对其它公钥证书进行签名的受信任程度。表明该公钥对其它公钥证书进行签名的受信任程度。n n这个信任程度是由用户指定的。这个信任程度是由用户指定的。2021/9/2447信任关系处理过程信任关系处理过程n n1 1、当、当 A A 向公钥环中插入一个新公钥时,向公钥环中插入一个新公钥时,PGPPGP必须向必须向信任标志信任标志(Owner trust Owner trust)赋值,该标志与该公钥的拥有者相关:赋值,该标志与该公钥的拥有者相关:n n如果拥有者是如果拥有者是 A A 自己,自己,则该值为则该值为终极终极信任信任(ultimate trust)(ultimate trust);n n否则,否则,PGPPGP询问询问A A,让,让A A给出信任级别,给出信任级别,A A可选:该公钥的拥有者可选:该公钥的拥有者是是不认识不认识(unknown)(unknown)、不信任不信任(untrusted)(untrusted)、接近信任接近信任(marginally(marginally trusted)trusted)或或完全信任完全信任(complete trusted)(complete trusted)。n n2 2、当新公钥输入后,可以为其附加一个或多个签名、当新公钥输入后,可以为其附加一个或多个签名(SignatureSignature),以后还可以为该公钥增加更多的签名:),以后还可以为该公钥增加更多的签名:n n在为公钥附加签名时,在为公钥附加签名时,PGPPGP在公钥环中搜索,察看这个签名的作在公钥环中搜索,察看这个签名的作者是否属于已知的公钥拥有者;者是否属于已知的公钥拥有者;n n如果是,为这个签名的如果是,为这个签名的signature trust signature trust 字段指派字段指派该公钥拥有者该公钥拥有者的的Owner trustOwner trust值;值;n n否则,指派不认识的用户值。否则,指派不认识的用户值。2021/9/2448信任关系处理过程(续)信任关系处理过程(续)n n3、密钥合法性字段(Key legitimacy field)的值基于该公钥条目的签名信任字段(signature trust field)来计算:n n如果至少有一个签名具有终极信任如果至少有一个签名具有终极信任(ultimate trust)(ultimate trust)的值,则该密钥的合法性字段的值为的值,则该密钥的合法性字段的值为“完全完全”;n n否则,否则,PGPPGP计算信任值的权重和。计算信任值的权重和。2021/9/24492021/9/2450公钥的作废公钥的作废n n密钥(私钥)暴露或定时更新导致需要公钥报废功能密钥(私钥)暴露或定时更新导致需要公钥报废功能n n通常的报废方法是由拥有者签发一个通常的报废方法是由拥有者签发一个密钥报废证书密钥报废证书n n这个证书具有与通常签名证书相同的形式,但包含一个指示符表这个证书具有与通常签名证书相同的形式,但包含一个指示符表明这个证书是要作废该公钥的使用。明这个证书是要作废该公钥的使用。n n该公钥所对应的私钥必须用来签名这个密钥报废证书;该公钥的该公钥所对应的私钥必须用来签名这个密钥报废证书;该公钥的拥有者应尽可能越广越快地散布这个证书,以使得潜在的有关人拥有者应尽可能越广越快地散布这个证书,以使得潜在的有关人员更新他们的公钥环。员更新他们的公钥环。n n注意:攻击者(窃取了别人的私钥)也可以发出这个密钥注意:攻击者(窃取了别人的私钥)也可以发出这个密钥报废证书:报废证书:n n然而,这将导致他自己也被否决。因此,这样比起恶意使用偷来然而,这将导致他自己也被否决。因此,这样比起恶意使用偷来的私钥来看似乎会减少漏洞。的私钥来看似乎会减少漏洞。2021/9/2451三、三、PGPsdkn nPGPsdkPGPsdkPGP Software Developers KitPGP Software Developers Kit。n nThe PGPsdk provides everything a developer needs The PGPsdk provides everything a developer needs to incorporate any part of the PGP cryptosystems to incorporate any part of the PGP cryptosystems functionality into their own software.functionality into their own software.n nThe SDK includes the same C-language header files The SDK includes the same C-language header files and runtime libraries that Network Associates own and runtime libraries that Network Associates own developers use to create the PGP software sold and developers use to create the PGP software sold and distributed by Network Associatesdistributed by Network Associates。n nThe library source is open for peer review The library source is open for peer review。2021/9/2452PGPsdk(cont)n nCore PGP operationsCore PGP operationsn nGenerating and saving the users own key pairGenerating and saving the users own key pairn nRetrieving the users key pair from local storageRetrieving the users key pair from local storagen nObtaining an intended recipients public keyObtaining an intended recipients public keyn nGenerating a digital signature(signing a message),Generating a digital signature(signing a message),with the users keywith the users keyn nVerifying a received digital signature,with the Verifying a received digital signature,with the senders keysenders keyn nEncryption for an intended recipient,with their public Encryption for an intended