网络与信息安全网络与信息安全
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2003-2004年度北京大学硕士研究生课程
网络与信息安全
第十一讲
电子邮件的安全
陈钟
北京大学信息科学技术学院
软件研究所-信息安全研究室
chen@
2004/4/23 NISC-11 ©PKU
讨论议题
•PGP (Pretty Good Privacy)
•S/MIME (Secure/Multipurpose Internet
Mail Extensions)
互联网上电子邮件传递简图
服务器
终端用户终端用户用户代理
用户代理
待发函件队列
报文传输代理客户
报文传输代理
用户邮箱
发送者
接收者
TCP 连接TCP 端口号25
用户代理: UNIX MH, Berkeley Mail, Elm 和Mush 报文传输代理(MTA):UNIX sendmail RFC 821定义了SMTP 协议。
RFC 822定义了在两个MTA 之间采用RFC821标准传输的函件报文格式
电子邮件的收发方式
•使用Browser 来收发电子邮件
–在Communicator 中以Messenger 来收发邮件–在IE 中使用outlook express 来收发
–Web Mail:直接使用Web 服务器提供的服务
Email Security Enhancements
•confidentiality
–protection from disclosure •authentication
–of sender of message
•message integrity
–protection from modification
•non-repudiation of origin
–protection from denial by sender
安全电子邮件
•E-mail 是Internet上最大的应用,也是唯一的广泛跨平台、跨体系结构的分布式应用。
•安全的电子邮件主要是解决身份鉴别和保密性的安全问题。
涉及到的问题:
–安全算法的选择
–系统邮件的信息格式
–如何实现认证和信任管理
–邮件服务器的可靠性
•应用实际例子:PGP、S/MIME、PEM、MOSS
安全的算法
•算法的安全•交互操作性
RSA 、DSS 和Diffie-Hellman IDEA 、3DES 、CAST128SHA-1、MD5RSA 、DES 、RC2、RC3、RC5、MD5、SHA-1
没有特别要求RSA 、DES MD5
PGP
S/MIME MOSS PEM 系统的邮件信息格式
•ASCII 文本
•Multipurpose Internet Mail Extensions (MIME)
系统的信任管理
•PGP密钥:公钥环、私钥环,简单的信任模型,相当于把一个朋友介绍给另一个朋友
•X.509只能被签名者签名一次
•PEM简单的而又严格的全球认证分级
安全的邮件服务器
•对邮件服务器的攻击由来已久,WORM病毒•网络入侵和拒绝服务
•防范措施:
–防止来自外部的攻击:拒绝来自特定地址的连接请求、限制单个IP的连接数量
–防止来自内部的攻击:
实现用户身份的鉴别
PGP
•PGP -Pretty Good Privacy
–作者:Phil Zimmermann
–提供可用于电子邮件和文件存储应用的保密
与鉴别服务。
PGP发展特点
1)选择最好的可用加密算法作为系统的构造模
块
2)将这些算法集成到一个通用的应用程序中,
该程序独立于操作系统和处理器,并且基于
一个使用方便的小命令集。
3)设计了程序、文档,并在Internet上公开
4)一个商业公司(Viacrypt 即Network
Associates)提供全兼容、低成本的商业版本。
PGP广泛应用的原因•免费、可用于多平台。
DOS/Windows、Unix、Macintosh
•选用算法的生命力和安全性公众认可。
•具有广泛的可用性
•不由政府或标准化组织控制。
PGP Corporate History
•PGP Corporation was formed in June 2002 with the reacquisition of PGP®assets by a team of PGP experts and security technology veterans, many of
whom were involved in the initial development and growth of PGP
technology and products.
1991
•Phil Zimmermann releases version 1.0 of Pretty Good Privacy (PGP®).
1993
•U.S. government files export violation case against Phil Zimmermann.
1994
•Viacrypt obtains the right to sell PGP for commercial use.
•Viacrypt releases PGP 2.7.1.
1995
•PGP Disk for the Macintosh released.
1996
•Legal case against Phil Zimmermann dropped by U.S. courts.
•PGP Inc. formed in merger with Viacrypt.
•PGP 4.5 released with simple user interface and a mail plug-in for Eudora. 1997
•PGP 5.0 released; first complete product code rewrite since version 1.0. •PGP 5.5 released for both Business and Personal with PGP Admin. •Network Associates acquires PGP Inc. for cash and warrants.
1998
•PGP 6.0 released with PGP Disk for Windows and a mail plug-in for Microsoft Outlook.
1999
•PGP 6.5 released with Virtual Private Network (VPN) and full X.509 support. 2000
•PGP 7.0 released based on new MS Windows code. Major version includes PGP Firewall, ICQ Instant Messenger plug-in, Windows 2000 support, Notes
mail plug-in, and PGP Admin for large deployments.
•PGP 7.0.3 released for Individual and Freeware users; PGP 7.0.4 released for Enterprise users.
2001
•PGP 7.1 released, including a Corporate Desktop Suite (PGP Mail,PGP Disk, PGP VPN, and PGP Firewall).
•PGP 7.1.1 released. 2002
•Newly formed PGP Corporation buys back PGP products and intellectual property from Network Associates.
•PGP Corporation and Network Associates announce the sale of PGP assets. •PGP Corporation announces partners in Europe, the Middle East, and Africa. •PGP 7.2 for Mac OS 9 released.
•PGP Corporation moves into new corporate facilities in Palo Alto, California. •PGP Corporation announces U.S. and Canada partner reseller program. •PGP Corporation assumes worldwide technical support responsibilities. •PGP Corporation announces partners in Latin America, Southeast Asia, and Australia.
•PGP 8.0 released for Macintosh and Windows.
•PGP Personal and PGP Freeware released.
•PGP Corporation releases source code for peer review.
2003
•PGP 8.0.1DE for Windows released for German-language users.
•PGP 8.0.2 released for Macintosh and Windows.
•PGP Personal 8.0 named Best Encryption Software and one of CNET's Top 100 Products.
•PGP Personal 8.0 receives Editor's Choice review by Macworld magazine.•PGP Corporation announces new partners in Chile, India, Japan, and Korea. •PGP Enterprise 8.0 receives Reader Trust Award for Best Encryption, SC Awards Council's Best Encryption Solution (Highly Commended), and SC
Awards Council's Best Email Security (Highly Commended) from SC
Magazine.
•PGP Corporation named to AlwaysOn List of Top 100 Private Companies. •PGP Corporation signs distribution agreement with Ingram Micro, the largest global wholesale provider of technology products and supply chain
management services.
•PGP Corporation announces and ships PGP Universal, a new self-managing security architecture and product line.
•PGP Corporation announces Business Advisory Board.
•PGP Desktop 8.0.3 released for Macintosh and Windows.
•PGP Universal receives Editors' Choice Award from VARBusiness magazine;
PGP Corporation named a Top Technology Innovator.
•PGP Universal 1.1 Public Beta released.
•PGP products selected as security standard for SAT college entrance exam score reporting.
•PGP Alliance Partner Program launched with 10 security market leaders. •PGP Corporation named Best New Vendor by Ingram Micro U.S.
PGP安全业务
•数字签名
–DSS/SHA或RSA/SHA
•完整性:
–RSA、MD5
•消息加密
–CAST-128或IDEA或3DES +Diffie-Hellman或RSA •数据压缩
–ZIP
•邮件兼容
–Radix 64
•数据分段
PGP密码功能概要(Fig12.1)
记号说明:
Ks: session key
KRa: 用户A的私钥
KUa : 用户A的公钥
EP: 公钥加密
DP: 公钥解密
EC: 常规加密
DC: 常规加密
H: 散列函数
||: 连接
Z: 用ZIP算法数据压缩
R64: 用radix64转换到ASCII格式
PGP ——功能:身份鉴别
•发送方
–产生消息M
–用SHA-1对M生成一个160位的散列码H
–用发送者的私钥对H加密,并与M连接
•接收方
–用发送者的公钥解密并恢复散列码H
–对消息M生成一个新的散列码,与H比较。
如果一
致,则消息M被鉴别。
PGP —身份鉴别说明
•说明:
1. RSA的强度保证了发送方的身份
2. SHA-1的强度保证了签名的有效性
3. DSS/SHA-1可选替代方案。
•签名与消息可以分离
–对消息进行单独的日志记录
–可执行程序的签名记录,检查病毒
–文档多方签名,可以避免嵌套签名
PGP ——保密性
•发送方
–生成消息M并为该消息生成一个随机数作为会话密钥。
–用会话密钥加密M
–用接收者的公钥加密会话密钥并与消息M结合
•接收方
–用自己的私钥解密恢复会话密钥
–用会话密钥解密恢复消息M
PGP —保密性说明
•采用CAST-128(或IDEA或3DES)、64位CFB方式。
一次性密钥,单向分发,公钥算法保护。
1)对称加密算法和公钥加密算法的结合可以缩短加密时间
2)用公钥算法解决了会话密钥的分配问题
•不需要专门的会话密钥交换协议
•由于邮件系统的存储-转发的特性,用握手方式交换密钥不太可能
3)每个消息都有自己的一次性密钥,进一步增强了保密强
度。
所以,每个密钥只加密很小部分的明文内容
4)公开密钥算法的长度决定安全性RSA(768~3072)、
DSS(1024)
保密与鉴别同时运用
•两种服务都需要时,发送者先用自己的私钥签名,然后用会话密钥加密,再用接收者的公钥加密会话密钥。
数据压缩
•压缩的位置:发生在签名后、加密前。
•压缩之前生成签名:
–(1)验证时无须压缩
–(2)压缩算法的多样性
•在加密前压缩:压缩的报文更难分析
¾对邮件传输或存储都有节省空间的好处。
LZ77的压缩过程
E-mail兼容性
•加密后是任意的8位字节,需要转换到ASCII格式。
•Radix64将3字节输入转换到4个ASCII字符,并带CRC校验。
•长度扩大33%
•与压缩综合后,长度为:
–1.33x0.5xM = 0.665xM
Radix-64变换
分段与重组
•Email常常受限制于最大消息长度(一般限制在最大50000字节)
•更长的消息要进行分段,每一段分别邮寄。
•PGP自动分段并在接收时自动恢复。
•签名只需一次,在第一段中。
加密密钥和密钥环
PGP使用四种类型的密钥:一次性会话常规密钥,公钥,私钥,基于口令短语的常规密钥。
需求:
1、需要一种生成不可预知的会话密钥的手段
2、需要某种手段来标识具体的密钥。
–一个用户拥有多个公钥/私钥对。
(更换,分组)3、每个PGP实体需要维护一个文件保存其公钥私钥对,和一个文件保存通信对方的公钥。
会话密钥的生成
•以CAST-128为例。
•128位的随机数是由CAST-128自己生成的。
输入包括一个128位的密钥和两个64位的数据块
作为加密的输入。
使用CFB方式,CAST-128
产生两个64位的加密数据块,这两个数据块的结合构成128位的会话密钥。
(算法基于ANSI X12.17)
•作为明文输入的两个64位数据块,是从一个128位的随机数流中导出的。
这些数是基于用
户的键盘输入的。
键盘输入时间和内容用来产生随机流。
因此,如果用户以他通常的步调敲
密钥标识符
•一个用户有多个公钥/私钥对时,接收者如何知道发送者是用了哪个公钥来加密会话密钥?
–将公钥与消息一起传送。
–将一个标识符与一个公钥关联。
对一个用户来说做到一一对应。
•定义KeyID 包括64个有效位:(KUa mod 264)•KeyID同样也需要PGP数字签名。
发送消息的格式
•一个消息包含三部分成员:
–报文message component
–签名signature (optional)
–会话密钥session key component (optional)
PGP消息的一般
格式(A to B)
密钥环
•我们已经看到KeyID对于PGP是如何关键。
–两个keyID包含在任何PGP消息中,提供保密与鉴
别功能。
–需要一种系统化的方法存储和组织这些key以保证
使用。
•PGP在每一个节点上提供一对数据结构:–存储该节点拥有的公钥/私钥对;(私钥环)
–存储本节点知道的其他用户的公钥;(公钥环)
私钥环说明
•UserID:通常是用户的邮件地址。
也可以是一个名字,或重用一个名字多次。
•Private Key:使用CAST-128(或IDEA或3DES)加密过程如下:
–用户选择一个口令短语用于加密私钥;
–当系统用RSA生成一个新的公钥/私钥对时,要求用户输入口令短语。
对该短语使用SHA-1生成一个160位的散列码后,销毁该短语。
–系统用其中128位作为密钥用CAST-128加密私钥,然后
销毁这个散列码,并将加密后的私钥存储到私钥环中。
–当用户要访问私钥环中的私钥时,必须提供口令短语。
PGP将检索出加密的私钥,生成散列码,解密私钥。
公钥环说明•UserID:公钥的拥有者。
多个UserID可
以对应一个公钥。
•公钥环可以用UserID或KeyID索引。
PGP —发送方处理消息的过程•签名:
–从私钥环中得到私钥,利用userid作为索引–PGP提示输入口令短语,恢复私钥
–构造签名部分
•加密:
–PGP产生一个会话密钥,并加密消息
–PGP用接收者userid从公钥环中获取其公钥–构造消息的会话密钥部分
PGP —接收方处理消息的过程•解密消息
–PGP用消息的会话密钥部分中的KeyID作为索引,从
私钥环中获取私钥
–PGP提示输入口令短语,恢复私钥
–PGP恢复会话密钥,并解密消息
•验证消息
–PGP用消息的签名部分中的KeyID作为索引,从公钥
环中获取发送者的公钥
–PGP恢复被传输过来的消息摘要
–PGP对于接收到的消息作摘要,并与上一步的结果作比较
公钥管理问题
•由于PGP重在广泛地在正式或非正式环境下应用,没有建立严格的公钥管理模式。
•如果A的公钥环上有一个从BBS上获得B发布的公钥,但已被C替换,这是就存在两条通道。
C可以向A发信并冒充B的签名,A以为是来自B;A与B的任何加密消息C都可以读取。
•为了防止A的公钥环上包含错误的公钥,有若
干种方法可用于降低这种风险。
1、物理上得到B的公钥。
2、通过电话验证公钥。
–B将其公钥email给A,A可以用PGP对该公钥生成一个
160位的SHA-1摘要,并以16进制显示。
这一特点称作
密钥的“指纹”。
然后A打电话给B,让B在电话中对证
“指纹”。
如果双方一致,则该公钥被认可。
3、从双方都信任的个体D处获得B的公钥。
–D是介绍人,生成一个签名的证书。
其中包含B的公钥,
密钥生成时间。
D对该证书生成一个SHA-1摘要,用其
私钥加密这个摘要,并将其附加在证书后。
因为只有D
能够产生这个签名,没有人可以生成一个错误的公钥并
假装是D签名的。
这个签名的证书可以由B或D直接发
给A,也可以贴到公告牌上。
4、从一个信任的CA中心得到B的公钥。
信任关系的应用
•尽管PGP没有包含任何建立认证权威机构或建立信任体系的规格说明,但它提供了一个利用信任关系的手段,将信任与公钥关联,利用信任信息。
–Key legitimacy field:表明PGP将信任这是一个对该用户
是合法的公钥;信任级别越高,这个userID对这个密钥的
绑定越强。
这个字段是由PGP计算的。
–每一个签名与一个signature trust field关联,表明这个
PGP用户对签名人对公钥签名的信任程度。
Key
legitimacy field 是由多个signature trust field 导出的。
–Owner trust field:表明该公钥被信任用于签名其它公钥
证书的信任程度。
这一级别的信任是由用户给出的。
Contents of Trust Flag Byte (a) Trust Assigned to Public Key Owner
–appears after key packet;user defined OWNERTRUST field
–undefined trust
–unknown user
–usually not trusted to sign other keys
–usually trusted to sign other keys
–always trusted to sign other keys
–this key is present in secret key ring(ultimate trust) BUCKSTOP bit
–set if this key appears in secret key ring
Continue...
(b) Trust Assigned to Public Key/User ID Pair
–appears after User ID packet; computed by PGP KEYLEGIT field
–unknown or undefined trust
–key ownership not trusted
–marginal trust in key ownership
–complete trust in key ownership
WARNONLY bit
–set if user wants only to be warned when key that is
not fully validated is used for encryption
Continue...
(c) Trust Assigned to Signature
–appears after signature packet;cached copy of
OWNERTRUST for this signature
SIGTRUST Field
–undefined trust
–unknown user
–usually not trusted to sign other keys
–usually trusted to sign other keys
–always trusted to sign other keys
–this key is present in secret key ring(ultimate trust) CONTIG bit
–set if signature leads up a contiguous trusted certification path back to the ultimately trusted key ring owner
信任关系处理过程
1、当A向公钥环中插入一个新公钥时,
PGP必须向trust flag赋值,该标志与该
公钥的主人相关。
如果其主人是A,则该
值为最高信任(ultimate trust)。
否则,
PGP询问用户,让用户给出信任级别。
用户可选:该公钥的主人是不认识
(unknown)、不信任(untrusted)、接近信
任(marginally trusted)或完全信任
(complete trusted)
继续...
2、当新公钥进入时,可能有一个或多个签名跟随其后。
许多签名可以以后再加入。
当一个签名插入到一个条目中时,PGP 查找该公钥环中是否已有公钥的主人中包含该公钥的作者。
如果包含,则这个主人的OWNERTRUST 值被赋予该签名的SIGTRUST字段。
否则,赋予unknown user 值。
继续...
3、key legitimacy field的值基于该条目中signature trust field 来计算。
如果至少一个签名有一个签名信任值为ultimate,则klf的值设为complete。
否则,PGP计算一个信任值的加权和。
PGP ——信任模型示例
公钥的作废
•密钥暴露或定时更新导致需要公钥报废功能
•通常的报废方法是由主人签发一个密钥报废证书。
这个证书具有与通常签名证书相同的形式,但包含一个指示符表明这个证书是要作废该公钥的使用。
注意到必须使用所对应的私钥来签名一个密钥报废证书,其主人应尽可能越广越快散布这个证书,以使得潜在的有关人员更新他们的公钥环。
•注意:对手也可以发出这个证书,然而,这将导致他自己也被否决。
因此,这样比起恶意使用偷来的私钥来看似乎会减少漏洞。
S/MIME
•是对MIME电子邮件格式的安全扩展
•技术来自RSA Data Security
•与PKI的结合,使用X.509证书,以及PKCS标准
–算法协商不可能在线进行,只能用一组规则保证尽可能地达到安全性
–不严格的信任模型,由客户实现和用户来决定•S/MIME更象商用或组织使用的工业标准,PGP更面向个体用户选用。
RFC 822
•定义了用电子邮件发送的正文消息的格式。
•在RFC 822的内容中,消息被看成是具有信封和内容组成。
信封包含传输和交付的信息;内容包含要交付给接收着的对象。
•RFC822标准只应用于内容,然而,内容标准中包含了一组字头段可以被邮件系统用于生成信封。
且该标准目的在于方便程序获得这些信息。
Date: Tue, 16 Jan 1999 10:37:17 (EST)
From: “Chen Zhong”<chen@>
Subject: The Syntax in RFC 822
To: iss99@
Cc: Johns@
Hello. This section begins the actual message body,which is
delimited from the message heading by a blank line.
MIME
•RFC 822/SMTP822的扩展。
–SMTP不能传送可执行文件或其他二进制文件。
(UNIX
UU)
–SMTP不能传送包含自然语言字符的正文数据。
(7-bit
only)
–SMTP服务器可能拒绝超过某一大小限制的邮件
–SMTP网关转换ASCII和EBCDIC(Extended Binary
Coded Decimal Interchange Code)码未用一个一致
的映射集,导致转换问题。
–SMTP gateway到X.400的电子邮件网络, 不能处理X.400中
的非正文数据
–某些SMTP实现没有完全遵循RFC821中定义的标准:
截断长于76字符的行,对报文的行填充
•MIME试图解决这些问题,定义在RFC2045到2049。
MIME概要
1、定义了5种新的消息头字段,提供了关
于消息体的信息
2、定义了若干内容格式,从而标准化地表
达多媒体电子邮件。
3、定义多种转换编码方式,使得任意内容
格式转换到由邮件系统保护以防变化的
格式。
5个首部字段
•MIME-version:必须有参数值1.0,表明该消息符合RFC2045和2046。
•Content-Type: 足够详细地描述消息体中包含的数据,使得接收用户代理能挑选一个适当的代理或机制来将该数据表现给用户,或以一种合适的方式处理该数据。
•Content-Transfer-Encoding: 表明转换的类型•Content-ID:在多重内容中唯一标识MIME实体•Content-Description: 报文主体中对象的正文描述;当对象是不可读时(如音频)这会很有用。
MIME Content Types(RFC2046)•Text
–Plain: unformatted text; may be ASCII or ISO8859
–Enriched : 提供更大的格式灵活性
•Multipart
–Mixed: 不同部分是独立的,但一起传送。
保持次序
–Parallel: 与上不同的是不必保持次序
–Alternative: 不同部分是同一信息的替代版本,他们被组
织成递增忠实于原作,接收者邮件系统应该显示“最好”
的版本给用户。
–Digest: 类似于Mixed,但每一部分缺省的类型/子类型是
message/rfc822
From: "Tang Li Yong" <tly@>
To: <wangzhao@>
Subject: SG 0.2发布
Date: Thu, 21 Nov 2002 20:56:46 +0800
MIME-Version: 1.0
Content-Type: multipart/mixed;
boundary="----=_NextPart_000_00E6_01C291A0.80B8BA20"
This is a multi-part message in MIME format.
------=_NextPart_000_00E6_01C291A0.80B8BA20
Content-Type: text/plain;
charset="gb2312"
Content-Transfer-Encoding: 8bit
主要更新:
1. Flash文件系统支持
2. bootloader
With best regards,
--Tang Li Yong
继续...
•Message
–rfc822 : 主体自身是一个符合rfc822的封装的消息–Partial : 用于大邮件项的分块,对接收者来说是透
明的。
–External-body: 包含一个指针,指向已存在其他地方的对象
•Image
–jpeg: 图象用JPEG格式,JFIF编码。
–gif: 图象是GIF 格式
•Video
–mpeg: MPEG格式
继续...
•Audio
–Basic: 单声道8位ISDN µ律编码,采样频率
为8kHz
•Application
–PostScript: Adobe PostScript
–octet-stream: 8位字节组成的通用二进制数
据
例:
From: Nathaniel Borenstein <nsb@>
To: Ned Freed <ned@>
Subject: Sample message
MIME-version:1.0
Content-type: multipart/mixed;boundary=“simple boundary”
This is the preamble. It is to be ignored. Though it is a handy
place for email composers to include an explanatory note to non-MIME conformant readers.--simple boundary
This is implicitly typed plain ASCII text. It does NOT end with a linebreak.--simple boundary
Content-type:text/plain;charset=us-ascii
This is explicitly typed plain ASCII text. It DOES end with a linebreak. --simple boundary--
This is the epilogue. It is also to be ignored.
MIME Transfer Encodings
S/MIME Functionality •Enveloped data: 这包含任意类型的加密内容和加密内容加密密钥,对一个或多个接收者
–encrypted content and associated keys
•Signed data:取要签名内容的消息摘要形成一个数字签名,然后用签名者的私钥加密;内容与签名被转换成base64编码,一个签名的数据消息只能被带有S/MIME能力的接收者查看。
–encoded message + signed digest
•Clear-signed data:仅签名用base64编码,结果,接收者没有S/MIME能力也能查看消息内容,尽管他们不能验证该签名。
–cleartext message + encoded signed digest
•Signed and enveloped data
–nesting of signed & encrypted entities
加密算法
S/MIME Messages
例:
Content-Type: application/pkcs7-mime; smime-type=enveloped-data;
name=smime.p7m
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=smime.p7m sdfSfsdfsdfsdfrwerwerwersdfzxccsdfsdfszxczxcsdsdfsdfsdfsdfsczxczxc sdFsdfsdfsdfsdfsdxczxcsdfscszdcsdcdcsdcdscsdcsdcdscsdcsdcsdgsdgsg sdfsdfsdfsdfsdfsdfsdfsdf
S/MIME的证书处理
使用符合X.509标准的公开密钥证书(X.509 v3)
密钥管理方法是严格的X.509证明层次和PGP信任网络的混合
S/MIME可完成如下密钥管理功能:
(1)密钥的生成:768~1024位之间的密钥对
(2)注册
(3)证书的存储和查询
有许多提供CA的公司:VeriSign的CA服务使用最广泛VeriSign提供的公开密钥证书的类型
Reference
•Practice of S/MIME with Outlook Express • for applying X.509 Certificate
•William Stallings, Cryptography and network security: principles and practice, Second Edition.
•。