毕业设计(论文)-公钥基础设施理论及实现.doc

上传人:小小飞 文档编号:3282065 上传时间:2019-08-07 格式:DOC 页数:52 大小:923.02KB
返回 下载 相关 举报
毕业设计(论文)-公钥基础设施理论及实现.doc_第1页
第1页 / 共52页
毕业设计(论文)-公钥基础设施理论及实现.doc_第2页
第2页 / 共52页
毕业设计(论文)-公钥基础设施理论及实现.doc_第3页
第3页 / 共52页
毕业设计(论文)-公钥基础设施理论及实现.doc_第4页
第4页 / 共52页
毕业设计(论文)-公钥基础设施理论及实现.doc_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《毕业设计(论文)-公钥基础设施理论及实现.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-公钥基础设施理论及实现.doc(52页珍藏版)》请在三一文库上搜索。

1、公钥基础设施理论与实现公钥基础设施理论与实现 Theory and Implementation of Public Key Infrastructure 目录目录 摘要摘要1 1 ABSTRACTABSTRACT2 2 第一章第一章 绪论绪论3 3 1.1 引言 3 1.2 PKI 概述.3 1.3 背景与技术现状 5 1.4 本文的结构和作者的工作 6 第二章第二章 PKIPKI 密码理论基础密码理论基础 7 7 2.1 秘密密钥密码 7 2.2 公开密钥密码 7 2.3 单向散列函数 8 2.4 数字签名 9 2.5 信息封装格式 9 第三章第三章 证书与认证体系证书与认证体系1010

2、3.1 引言 .10 3.2 X.509V3 证书11 3.3 证书的撤消 .13 3.4 认证路径 .15 3.5 PKI 实施体系结构17 第四章第四章 PKIPKI 框架、管理和操作框架、管理和操作 2020 4.1 PKI 框架模型20 4.2 PKI 管理模块的功能21 4.3 PKI 管理操作22 4.4 轻型目录访问协议 LDAP.25 4.5 在线证书状态协议 OCSP.30 第五章第五章 PKIPKI 系统模型的实现系统模型的实现 3333 5.1 引言 .33 5.2 PKI 实现的功能模块33 5.3 PKI 实现模型的演示37 第六章第六章 PKIPKI 应用举例应用举

3、例 4040 6.1 引言 .40 - -ii 6.2 TLSbinary) - 操作方面: 查询可返回提交人(如 LDAP 的 URL) 可修改条目 DN 的任何部分(比如可实现 DIT 中子目录树的移动) 请求时增加控制信息 提供扩展机制以增加新的协议操作 - 安全方面: 提供了 SASL(RFC2222)的身份鉴别机制 支持低层的安全(SSL 或 TLS) 4.4.24.4.2 LDAPLDAP 的构成的构成 LDAPMessage 所有的 LDAP 操作都封装在一个被称为 LDAPMessage 的数字封套中。其中 MessageID 字段是协议中标识每个对话的 ID。每个对话的 Me

4、ssageID 都不同, 在服务器包含响应值 LDAPResult 的封套中,包含的是原始的 MessageID。 LDAPMessage := SEQUENCE messageID MessageID, protocolOp CHOICE bindRequest BindRequest, bindResponse BindResponse, unbindRequest UnbindRequest, searchRequest SearchRequest, searchResponse SearchResponse, modifyRequest ModifyRequest, modifyRes

5、ponse ModifyResponse, addRequest AddRequest, addResponse AddResponse, delRequest DelRequest, delResponse DelResponse, modifyRDNRequest ModifyRDNRequest, modifyRDNResponse ModifyRDNResponse, compareDNRequest CompareRequest, compareDNResponse CompareResponse, abandonRequest AbandonRequest MessageID :=

6、 INTEGER (0 maxInt) LDAPResult LDAPResult 是协议中服务器返回给客户端的访问成功或失败的标识。为答 复各样的请求,服务器将返回 LDAPResult 的响应来描述协议中请求操作的最后 状态。其中 errorMessage 字段是服务器返回的错误描述,它是非标准的文本描 述,可以为长度为 0 的字符串。 - -28 LDAPResult := SEQUENCE resultCode ENUMERATED success (0), operationsError (1), protocolError (2), other (80) , matchedDN L

7、DAPDN, errorMessage LDAPString Bind 操作 Bind 操作的作用是初始化客户端和服务器的协议会话,并容许服务器对客 户端身份鉴别。在协议会话中这是最先进行的操作。 Bind 的请求 BindRequest 和响应 BindResponse 定义如下: BindRequest := APPLICATION 0 SEQUENCE version INTEGER (1 127), name LDAPDN, authentication CHOICE simple 0 OCTET STRING, krbv42LDAP 1 OCTET STRING, krbv42DSA

8、 2 OCTET STRING BindResponse := APPLICATION 1 LDAPResult 其中:name 为客户端想要绑定的目录对象名,匿名绑定时可为空值; antherntication 为鉴定 name 身份的信息。选项中 simple 最简单,为明文 的口令,该选项也被用在无须身份鉴别或匿名绑定时,此时字段为空值。 antherntication 还提供了实现以 Kerberos v4 鉴别 LDAP 服务器和 DSA 的 krbv42LDAP 和 krbv42DSA 选项。 Unbind 操作 Unbind 操作的作用是终止协议对话。它没有相应的响应。当发出 U

9、nbindRequest,协议的客户端会认为会话已终止;而收到 UnbindRequest 的协 议服务器将确信客户端已终止会话,而放弃处理该会话的其他未答复的请求。 UnbindRequest := APPLICATION 2 NULL Search 操作 Search 操作让客户端提出申请,在服务器上执行搜索操作。 SearchRequest 定义如下: SearchRequest := APPLICATION 3 SEQUENCE baseObject LDAPDN, scope ENUMERATED baseObject (0), singleLevel (1), wholeSubtr

10、ee (2) , derefAliases ENUMERATED neverDerefAliases (0), - -29 derefInSearching (1), derefFindingBaseObj (2), derefAlways (3) , sizeLimit INTEGER (0 maxInt), timeLimit INTEGER (0 maxInt), attrsOnly BOOLEAN, filter Filter, attributes SEQUENCE OF AttributeType SearchResponse := CHOICE entry APPLICATION

11、 4 SEQUENCE objectName LDAPDN, attributes SEQUENCE OF SEQUENCE AttributeType, SET OF AttributeValue , resultCode APPLICATION 5 LDAPResult 其中:baseObject 为搜索的基础对象条目的 DN;scope 为搜索的范围; filter 为需要匹配的搜索条件;attributes 为搜索结果需要返回的属性列表, 为空时返回条目的所有属性。 协议服务器将搜索的结果以一系列的 SearchResonse 返回给客户端:其中 前面是零个至许多个包含搜索结果 ent

12、ry 的 SearchResonse,最后是一个包含 标识搜索成功或失败的 SearchResonse。 Modify 操作 客户端可利用 Modify 操作让服务器修改数据仓库中的数据。 ModifyRequest 和 ModifyResponse 定义如下: ModifyRequest := APPLICATION 6 SEQUENCE object LDAPDN, modification SEQUENCE OF SEQUENCE operation ENUMERATED add (0), delete (1), replace (2) , modification SEQUENCE t

13、ype AttributeType, values SET OF AttributeValue ModifyResponse := APPLICATION 7 LDAPResult 其中的参数:object 描述被修改的对象名; modification 描述对某一条目的一系列修改,其中包括的操作有 add:为给出的属性赋值,如有必要,产生该属性; delete:删除属性的值,如果该属性的值都已被删除,删除该属性; replace:用给出的新值替代原属性值,如有必要,产生该属性。 当服务器接到 ModifyRequest 时,无论修改操作全部成功或任何一点失败, 它都将返回 ModifyRes

14、ponse 作为响应。由于一个 ModifyRequest 可能包括一系 - -30 列的修改操作,为保持修改的一致性,当返回失败,所有修改都将废弃,而返 回成功时,须确认所有修改成功。 Add 操作 客户端利用 Add 操作向目录中增加新的条目。AddRequest 和 AddResponse 定义如下: AddRequest := APPLICATION 8 SEQUENCE entry LDAPDN, attrs SEQUENCE OF SEQUENCE type AttributeType, values SET OF AttributeValue AddResponse := APP

15、LICATION 9 LDAPResult 其中 entry 为欲增加条目的 DN,DN 中除了最后一级 RDN 其他都必须已存在; attrs 为增加条目的属性。 Delete 操作 客户端利用 Delete 操作从目录中删除条目。删除申请仅为删除条目的 DN, 服务器接到申请删除该条目,并返回响应。 DelRequest := APPLICATION 10 LDAPDN DelResponse := APPLICATION 11 LDAPResult 4.4.34.4.3 LDAPLDAP 的的 PKIPKI 服务服务 作为 PKI 操作协议的 LDAP,提供了从数据仓库发布证书和管理 P

16、KI 信息的 服务。这种服务包含三方面的内容: LDAPLDAP 数据仓库的读取数据仓库的读取 该服务提供当端用户知道条目名时,从某个条目(entry)发布 PKI 信息。 它需要以下的 LDAP 操作: BindRequest (and BindResponse) SearchRequest (and SearchResponse) UnbindRequest LDAPLDAP 数据仓库的查询数据仓库的查询 用任意的方法,在数据仓库中查询某个包含证书、CRL 或其他信息的条目。 它需要以下的 LDAP 操作: BindRequest (and BindResponse) SearchRequ

17、est (and SearchResponse) UnbindRequest LDAPLDAP 数据仓库的修改数据仓库的修改 该服务提供对数据仓库中 PKI 信息的增加、删除和修改。它需要以下的 LDAP 操作: - -31 BindRequest (and BindResponse) ModifyRequest (and ModifyResponse) AddRequest (and AddResponse) DelRequest (and DelResponse UnbindRequest 4.54.5 在线证书状态协议在线证书状态协议 OCSPOCSP 用户使用证书前首先需要进行各种验证

18、,包括证书是否失效,证书签发者 是否可信,证书是否适用于本应用,以及证书是否被撤消。前面三种验证可通 过证书本身实现,后一种需要用户查询证书的状态。 查询证书的状态的方法有两种,一是前一章提过的 CRL,另一是利用在线查 询 OCSP。两者各有其优缺点。 CRL 是一种较成熟的技术,具有可预测的性能价格比。CRL 文件使用户很容 易高速缓存,而发布者也可以互相协作。但是,CRL 有着实时性和文件大小方 面的缺憾。现存证书认证系统的使用者抱怨作为证书认证的一个步骤,他们必 须先获得最新的 CRL。一个较大的 CA 的 CRL 文件可能也较大,这会使传输带宽 成为瓶颈。而 CRL 周期性发布的频率

19、也可能导致时延问题:比如 CA 每周发布一 次 CRL,那么最近 CRL 发布后一周的时间内撤消的证书,用户都无法得知。 在线证书状态协议(OCSP)提供了不需要 CRL 而获得证书当前状态的方法。 OCSP 的使用能比周期发布的 CRL 更及时获得证书当前状态。一个 OCSP 的客户 端向 OCSP 响应服务器发出证书的状态请求,后者返回证书的当前状态有效、 无效或不知道。由于用户不必为验证一个或几个证书而下载整个 CRL 文件,所 以会戏剧性地降低所需通信带宽。同时在线的 OCSP 也增加了时效性,最大限度 防止了已撤消证书的使用。 目前,OCSP 正作为 Internet 草案在讨论中。

20、OCSP 还未成熟,在线传输的 性能价格比,这些是投入应用前需要考虑的。 4.5.14.5.1 OCSPOCSP 的请求的请求 一个 OCSP 客户端向响应服务器发出的证书状态请求描述如下: OCSPRequest := SEQUENCE tbsRequest TBSRequest, optionalSignature 0 EXPLICIT Signature OPTIONAL TBSRequest := SEQUENCE version 0 EXPLICIT Version DEFAULT v1, requestorName 1 EXPLICIT GeneralName OPTIONAL,

21、requestList SEQUENCE OF Request, requestExtensions 2 EXPLICIT Extensions OPTIONAL Signature := SEQUENCE signatureAlgorithm AlgorithmIdentifier, signature BIT STRING, certs 0 EXPLICIT SEQUENCE OF Certificate OPTIONAL Version := INTEGER v1(0) Request := SEQUENCE reqCert CertID, - -32 singleRequestExte

22、nsions 0 EXPLICIT Extensions OPTIONAL CertID := SEQUENCE hashAlgorithm AlgorithmIdentifier, issuerNameHash OCTET STRING, - Hash of Issuers DN issuerKeyHash OCTET STRING, - Hash of Issuers public key serialNumber CertificateSerialNumber 如上,除了协议的版本号,OCSP 请求必须包括CertID域。其中, issuerNameHash 和 issuerKeyHas

23、h 分别为证书签发者(CA)的 DN 和公钥的散 列值。hashAlgorithm 为该散列算法的标识。serialNumber 为证书序列号。 OCSP 请求中有签名的选项,请求提交者可以对整个 tbsReauest 签名。 4.5.24.5.2 OCSPOCSP 的响应的响应 OCSP 响应服务器对证书状态请求发出的响应描述如下: OCSPResponse := SEQUENCE responseStatus OCSPResponseStatus, responseBytes 0 EXPLICIT ResponseBytes OPTIONAL OCSPResponseStatus := E

24、NUMERATED successful (0), -Response has valid confirmations malformedRequest (1), -Illegal confirmation request internalError (2), -Internal error in issuer tryLater (3), -Try again later sigRequired (5), -Must sign the request unauthorized (6) -Request unauthorized ResponseBytes := SEQUENCE respons

25、eType OBJECT IDENTIFIER, response OCTET STRING OCSP 响应一般包括响应状态 responseStatus 和实际响应值 responseByte。当处理请求出现错误时,只包括简单的 responseStatus,没有 responseByte。 普通 OCSP 响应中 response 为 DER 编码的 BasicOCSPResponse: BasicOCSPResponse := SEQUENCE tbsResponseData ResponseData, signatureAlgorithm AlgorithmIdentifier, si

26、gnature BIT STRING, certs 0 EXPLICIT SEQUENCE OF Certificate OPTIONAL ResponseData := SEQUENCE version 0 EXPLICIT Version DEFAULT v1, responderID ResponderID, producedAt GeneralizedTime, responses SEQUENCE OF SingleResponse, responseExtensions 1 EXPLICIT Extensions OPTIONAL ResponderID := CHOICE byN

27、ame 1 Name, byKey 2 KeyHash SingleResponse := SEQUENCE certID CertID, certStatus CertStatus, thisUpdate GeneralizedTime, nextUpdate 0 EXPLICIT GeneralizedTime OPTIONAL, singleExtensions 1 EXPLICIT Extensions OPTIONAL CertStatus := CHOICE - -33 good 0 IMPLICIT NULL, revoked 1 IMPLICIT RevokedInfo, un

28、known 2 IMPLICIT UnknownInfo RevokedInfo := SEQUENCE revocationTime GeneralizedTime, revocationReason 0 EXPLICIT CRLReason OPTIONAL BasicOCSPResponse 响应中包括版本号、响应者 ID、对每个查询证书的响 应、对响应的签名和签名算法的 OID 等。每个查询证书的响应 SingleResponse 包括目标证书的标识符、证书状态值、响应有效期等。 证书的状态分为 good、revoked、unknown 三种:good 说明证书在响应时有 效,revo

29、ked 表示证书已被撤消,unknown 表示证书。 - -34 第五章第五章 PKI 系统模型的实现系统模型的实现 5.15.1 引言引言 PKI 系统模型的目标是建立基于以上所论述协议的公钥基础设施,以满足各 种公钥应用的需求。由于 PKI 技术上的复杂性和前沿性,本系统模型只完成了 基本的功能模块,为使本模型系统投入实际应用,在许多细节上还需要充实。 图 5-1 描述了本实现模型的体系结构。系统采用客户/服务器模式,客户端 用户利用 TCP/IP 通过 HTTP 或直接访问 CA。CA/RA、LDAP、OCSP 等服务器之间 也采用 TCP/IP 通信,因此各服务器可分布不同的地方。 本

30、章首先提出建立 PKI 需要实现的功能模块,然后讨论它们的具体实现。 5.25.2 PKIPKI 实现的功能模块实现的功能模块 一个具有完整的体系结构的 PKI 实现的可以归纳为如图 5-2 的功能模块: PSE 服务模块,包括智能卡接口等个人安全环境的 API。 核心算法服务模块,包括基本密码算法如公钥算法、散列等的函数实现。 高层密码服务模块,包括证书申请,签名,验证等的函数实现。 证书管理服务模块,向数据仓库增加或撤消证书、密钥等函数实现。 Internet 图图 5-1 PKI 实实现现模模型型体体系系结结构构 CA/RA 服务器 HTTP 服务器 证书 数据库 用户 LDAP 服务器

31、 OCSP 服器务 - -35 PKI 访问服务模块,利用 LDAP 访问 PKI 完成证书查询等功能的函数实现。 安全协议模块,提供安全访问通道的协议实现,包括 TLS,S/MIME 等。 安全策略服务模块,用户信息注册,访问控制,审计等功能实现。 支持服务模块,LDAP 目录访问 API 等相关功能实现。 下面我们将详细讨论各模块的内容和具体实现。 5.2.15.2.1 核心算法服务核心算法服务 核心算法服务是低层的密码安全模块,包括随机数产生,公钥对产生,散 列算法,秘密密钥加密算法,公钥加密算法等内容。该模块既可采用软件实现, 也可根据安全等级要求采用硬件实现。 该模块的部件如图 5-

32、3。 如 Microsoft CryptoAPI 1.0 相似的许多产品实现了核心算法的服务,但 开发自己的 PKI 需要掌握源码。本文 PKI 采用的是 SSLeay 的 Cryptolib 的部分 算法实现,而后者是流传在 Internet,并经过许多应用考验的密码安全函数库 图图 5-2 PKI 实实现现的的模模块块结结构构 应应用用程程序序 安安全全协协议议 TLS,S/MIME,IPSec 证证书书管管理理服服务务 证书管理,私钥管理等 PKI 访访问问服服务务 证书查询、更新等 安安全全策策略略服服务务 用户信息注册、访 问控制、审计等 支支持持服服务务 LDAP 目录访问、 数据

33、库访问等 高高层层密密码码服服务务 生成证书,签名,验证等 核核心心算算法法服服务务 散列,公钥算法等 PSE 服服务务 智能卡接口、本地 数据安全存储等 图图 5-3 核核心心算算法法模模块块 随随机机数数产产生生公公钥钥对对产产生生 RSA 散散列列算算法法 SHA,MD5 秘秘密密密密钥钥加加密密算算法法 DES,专有算法等 公公开开密密钥钥加加密密算算法法 RSA Base64 编编码码 - -36 源码。作为安全考虑,核心可能采用自己的专用算法,因此本模块设计时尽量 使函数接口标准化,以便于扩展。 5.2.25.2.2 高层密码服务高层密码服务 高层密码模块是建立在核心算法模块上的,

34、它为上层提供对封装数据的操 作,包括证书申请、签名、验证等。该模块包括了 X.509 封装,DER/PEM 编码 解码等功能部件。见图 5-4。 由于 X.509 和许多其他数据结构都是用 ASN.1 描述的,所以我们需要建立 ASN.1 数据结构,并完成这些数据结构从 DER 编码到内部 C 数据结构的切换。 由于某些场合需要用到 PEM 编码的证书,所以还需要一套从 DER 转换为 PEM 编 码的函数。在这些下层的函数构建的基础上,就可完成证书相关的功能函数, 如证书生成、签名、验证等。 这个模块的实现一部分仍然来自 SSLeay 的 Cryptolib,另一部分来自作者 开发的个人文电

35、安全系统。个人文电安全系统是解决网络中电子邮件、文件传 输安全问题的产品。由于该系统定位在一个小范围的群体,它 CA 的证书发布和 撤消都是离线的。尽管如此,并不影响对它下层的函数模块的复用。 5.2.35.2.3 证书管理服务证书管理服务 证书管理服务模块是处于 PKI 中心的模块。它即利用下层的密码服务完成 证书生成、验证等功能,又访问 LDAP 或数据库存储或查询证书,同时,它还将 访问安全策略服务,进行访问控制并记录审计日志。 证书管理服务包括证书管理和密钥管理两部分功能,如图 5-5。 证书管理服务不仅仅是函数接口,而应是把各功能函数组织为一个或几个 图图 5-4 高高层层密密码码服

36、服务务模模块块 ASN.1 数数据据 结结构构 DER 编编码码 X.509 封封装装 数数字字签签名名/验验证证自自签签名名证证书书生生成成 PEM 编编码码 证证书书申申请请生生成成 与与签签名名 CRL 生生成成 图图 5-5 证证书书管管理理服服务务模模块块 证证书书撤撤消消证证书书查查询询证证书书归归档档证证书书发发布布 密密钥钥更更新新密密钥钥恢恢复复密密钥钥生生成成 - -37 服务器。如图 5-6 把证书管理服务分为 RA、CA 和 OCSP 三个服务器。图中说明 了证书管理服务器与外部的关系,而服务器间的通信可采用 PKIX 证书管理协议 (RFC2510)中所定义的证书管理

37、消息。 证书管理服务不仅仅是函数接口,而应是把各功能函数组织为一个或几个 服务器。如图 5-6 把证书管理服务分为 RA、CA 和 OCSP 三个服务器。图中说明 了证书管理服务器与外部的关系,而服务器间的通信可采用 PKIX 证书管理协议 (RFC2510)中所定义的证书管理消息。 5.2.45.2.4 PKIPKI 访问服务访问服务 有时用 TCP 直接访问图 5-6 的证书管理服务器不方便,需要把复杂的管理 过程屏蔽起来。因此 PKI 访问服务模块应运而生。它一方面是外界对 PKI 访问 的服务器,另一方面又是证书管理服务器的客户端。 PKI 访问服务模块可以专门的访问终端,也可以利用

38、HTTP,Email 等现成的 应用协议。本文 PKI 使用 HTTP,利用友好的 Web 界面和强大的 CGI 来实现 PKI 的访问。 5.2.55.2.5 安全协议安全协议 访问 PKI 的数据大多是安全敏感的,无论专门的访问终端还是 HTTP 等应用 协议,都需要建筑在一个安全通道上。这样的安全通道就是由 TLS struct ContentType type; ProtocolVersion version; uint16 length; opaque fragmentTLSPlaintext.length; TLSPlaintext; struct ContentType type

39、; ProtocolVersion version; uint16 length; opaque fragmentTLSCompressed.length; TLSCompressed; struct ContentType type; ProtocolVersion version; uint16 length; select (CipherSpec.cipher_type) case stream: GenericStreamCipher; case block: GenericBlockCipher; fragment; TLSCiphertext; stream-ciphered st

40、ruct opaque contentTLSCompressed.length; opaque MACCipherSpec.hash_size; GenericStreamCipher; block-ciphered struct opaque contentTLSCompressed.length; opaque MACCipherSpec.hash_size; uint8 paddingGenericBlockCipher.padding_length; uint8 padding_length; GenericBlockCipher; 6.2.36.2.3 TLSTLS 握手层协议握手层

41、协议 TLS 握手层包括三个子协议: Change cipher spec protocol Change cipher spec protocol 给出了一个密码策略转换的信号。它包含的 是一个以当前连接方式加密和压缩的单字节报文。接收者接到该报文,立刻将 预备读状态拷贝为当前读状态;发送者发出该报文也立刻将预备写状态拷贝为 当前写状态。握手过程中,当安全参数讨论达成一致后,客户/服务端都发出该 报文,从而改变当前的安全参数,使后续的报文在所协商的新的密码规则和密 钥的保护之下。 Alert protocol Alert protocol 在客户/服务间传输出错信息,报文中包含警告的级别和描

42、 述。当遇到致命错误,接收端将立刻终止会话。 Handshake protocol Handshake protocol 生成了会话状态中的安全参数。当 TLS 客户/服务端开 始通信时,通过握手协议,它们协商建立了协议版本、加密算法,互相进行身 - -44 份鉴别,并用公钥加密技术产生了共享密钥。 TLS 握手流程见图 8-2。 当客户/服务端试图恢复一个被意外中断的会话时,双方不再协商安全参数, 而由客户端发送会话的 ID,服务端在缓存中查找后,发出 change cipher spec 的报文,重新恢复会话。 6.36.3 为为 WWWWWW 访问建立访问建立 SSLSSL 连接连接 利

43、用前一章建立的演示 CA,我们可以为 HTTP 服务器和浏览器提供证书,从 而建立安全的 WWW 访问。 整个系统建立在 Linux 环境的 PC 机,HTTP 服务器使用 Apache 1.3.6,浏 览器采用 Netscape Communicator 4.0。 6.3.16.3.1 浏览器证书的导入浏览器证书的导入 Netscape Communicator 4.0 可以接受多种格式的 X.509 v1、v2、v3 证书。 这些格式分为二进制和文本两类。 -二进制格式 DER 编码证书 PKCS#7 证书链 Netscape 证书序列 图图 6-2 TLS 握握手手数数据据流流 Clie

44、ntHello ServerHello Certificate Certificate Request ServerHelloDone Certificate Certificate Verify ChangeCipherSpec Finished ChangeCipherSpec Finished ClientServer 建立协议版本、会话 ID、压缩方法、密码 套,交换随机数 送出服务器端证书, 并请求客户端证书 送出客户端证书 改变密码套,结束握 手过程 - -45 -文本格式 所有上面二进制格式都可以作为文本格式的输入。文本格式以“- BEGIN CERTIFICATE-”标识开始,

45、接下来是证书数据,是以 BASE64 编 码(RFC1113)上面二进制格式数据,最后以“-END CERTIFICATE- -”标识结束。 Netscape Communicator 采用 HTTP 协议接收证书,它识别几种特殊的 MIME 类型,这些 MIME 揭示了输入证书的类型: application/x-x509-user-certapplication/x-x509-user-cert 使用浏览器用户的证书。在导入证书前,相应的私钥必须已存入用户本 地的密钥库中,否则将出错无法导入证书。 application/x-x509-ca-certapplication/x-x509-c

46、a-cert 认证机关 CA 的证书。当下载该证书时,浏览器将产生一系列对话框让用 户确认是否接受该 CA 证书和它签发的证书。 application/x-x509-email-certapplication/x-x509-email-cert 这是 S/MIME 应用的证书。用户或 CA 可利用它在 Web 上发布证书,其他 用户下载后可发加密邮件或验证签名。 6.3.26.3.2 浏览器密钥对的生成浏览器密钥对的生成 Netscape 提供了一个扩展的 HTML 标识符来帮助产生密钥对,并在 表格中提交公钥。这种机制使用在基于 Web 的证书管理系统中。在浏 览器中显示为一个密钥长度的选

47、择框,当 HTML 表格被提交时,私钥被加密放在 本地密钥库中,而公钥以 name-value 对形式提交给 HTTP 服务器。 例如: 该 FORM 提交后,公钥和 CHALLENGE 以一种 SignedPublicKeyAndChallenge 的 base64 编码格式,与其他证书申请信息(commonname 等)一起传给 HTTP 服 务器的 CGI 程序。提交数据如下: commonname=Lin+Xy&email=&pkey=MIHFMHEwXDANBgV%0AW.vmco%3D 应当注意的是由于美国的出口限制,一般的 Communicator 只能生成 512bits 的密钥。 6.3.36.3.3 建立建立 SSLSSL 连接的步骤连接的步骤 - -46 1) 建立自签名的 CA 证书 在 CA 架设好后,首先需要生成自签名的 CA 证书和密钥,并存入 LDAP 目录 中。HTTP 服务器通过 applicati

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 研究报告 > 信息产业


经营许可证编号:宁ICP备18001539号-1