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

上传人:仙*** 文档编号:27753478 上传时间:2021-08-20 格式:DOC 页数:52 大小:923.03KB
返回 下载 相关 举报
毕业设计(论文)公钥基础设施理论及实现_第1页
第1页 / 共52页
毕业设计(论文)公钥基础设施理论及实现_第2页
第2页 / 共52页
毕业设计(论文)公钥基础设施理论及实现_第3页
第3页 / 共52页
点击查看更多>>
资源描述
公钥基础设施理论与实现 Theory and Implementation of Public Key Infrastructure 目录 摘要 .1 ABSTRACT.2 第一章 绪论 .3 1.1 引言 .3 1.2 PKI 概述 .3 1.3 背景与技术现状 .5 1.4 本文的结构和作者的工作 .6 第二章 PKI 密码理论基础 .7 2.1 秘密密钥密码 .7 2.2 公开密钥密码 .7 2.3 单向散列函数 .8 2.4 数字签名 .9 2.5 信息封装格式 .9 第三章 证书与认证体系 .10 3.1 引言 .10 3.2 X.509V3 证书 .11 3.3 证书的撤消 .13 3.4 认证路径 .15 3.5 PKI 实施体系结构 .17 第四章 PKI 框架、管理和操作 .20 4.1 PKI 框架模型 .20 4.2 PKI 管理模块的功能 .21 4.3 PKI 管理操作 .22 4.4 轻型目录访问协议 LDAP.25 4.5 在线证书状态协议 OCSP.30 第五章 PKI 系统模型的实现 .33 5.1 引言 .33 5.2 PKI 实现的功能模块 .33 5.3 PKI 实现模型的演示 .37 第六章 PKI 应用举例 .40 6.1 引言 .40 - - ii 6.2 TLSbinary) - 操作方面: 查询可返回提交人(如 LDAP 的 URL) 可修改条目 DN 的任何部分(比如可实现 DIT 中子目录树的移动) 请求时增加控制信息 提供扩展机制以增加新的协议操作 - 安全方面: 提供了 SASL(RFC2222)的身份鉴别机制 支持低层的安全(SSL 或 TLS) 4.4.2 LDAP 的构成 LDAPMessage 所有的 LDAP 操作都封装在一个被称为 LDAPMessage 的数字封套中。其中 MessageID 字段是协议中标识每个对话的 ID。每个对话的 MessageID 都不同, 在服务器包含响应值 LDAPResult 的封套中,包含的是原始的 MessageID。 LDAPMessage := SEQUENCE messageID MessageID, protocolOp CHOICE bindRequest BindRequest, bindResponse BindResponse, unbindRequest UnbindRequest, searchRequest SearchRequest, searchResponse SearchResponse, modifyRequest ModifyRequest, modifyResponse ModifyResponse, addRequest AddRequest, addResponse AddResponse, delRequest DelRequest, delResponse DelResponse, modifyRDNRequest ModifyRDNRequest, modifyRDNResponse ModifyRDNResponse, compareDNRequest CompareRequest, compareDNResponse CompareResponse, abandonRequest AbandonRequest MessageID := INTEGER (0 . maxInt) LDAPResult LDAPResult 是协议中服务器返回给客户端的访问成功或失败的标识。为答 复各样的请求,服务器将返回 LDAPResult 的响应来描述协议中请求操作的最后 状态。其中 errorMessage 字段是服务器返回的错误描述,它是非标准的文本描 述,可以为长度为 0 的字符串。 - - 28 LDAPResult := SEQUENCE resultCode ENUMERATED success (0), operationsError (1), protocolError (2), other (80) , matchedDN LDAPDN, 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 2 OCTET STRING BindResponse := APPLICATION 1 LDAPResult 其中:name 为客户端想要绑定的目录对象名,匿名绑定时可为空值; antherntication 为鉴定 name 身份的信息。选项中 simple 最简单,为明文 的口令,该选项也被用在无须身份鉴别或匿名绑定时,此时字段为空值。 antherntication 还提供了实现以 Kerberos v4 鉴别 LDAP 服务器和 DSA 的 krbv42LDAP 和 krbv42DSA 选项。 Unbind 操作 Unbind 操作的作用是终止协议对话。它没有相应的响应。当发出 UnbindRequest,协议的客户端会认为会话已终止;而收到 UnbindRequest 的协 议服务器将确信客户端已终止会话,而放弃处理该会话的其他未答复的请求。 UnbindRequest := APPLICATION 2 NULL Search 操作 Search 操作让客户端提出申请,在服务器上执行搜索操作。 SearchRequest 定义如下: SearchRequest := APPLICATION 3 SEQUENCE baseObject LDAPDN, scope ENUMERATED baseObject (0), singleLevel (1), wholeSubtree (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 4 SEQUENCE objectName LDAPDN, attributes SEQUENCE OF SEQUENCE AttributeType, SET OF AttributeValue , resultCode APPLICATION 5 LDAPResult 其中:baseObject 为搜索的基础对象条目的 DN;scope 为搜索的范围; filter 为需要匹配的搜索条件;attributes 为搜索结果需要返回的属性列表, 为空时返回条目的所有属性。 协议服务器将搜索的结果以一系列的 SearchResonse 返回给客户端:其中 前面是零个至许多个包含搜索结果 entry 的 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 type AttributeType, values SET OF AttributeValue ModifyResponse := APPLICATION 7 LDAPResult 其中的参数:object 描述被修改的对象名; modification 描述对某一条目的一系列修改,其中包括的操作有 add:为给出的属性赋值,如有必要,产生该属性; delete:删除属性的值,如果该属性的值都已被删除,删除该属性; replace:用给出的新值替代原属性值,如有必要,产生该属性。 当服务器接到 ModifyRequest 时,无论修改操作全部成功或任何一点失败, 它都将返回 ModifyResponse 作为响应。由于一个 ModifyRequest 可能包括一系 - - 30 列的修改操作,为保持修改的一致性,当返回失败,所有修改都将废弃,而返 回成功时,须确认所有修改成功。 Add 操作 客户端利用 Add 操作向目录中增加新的条目。AddRequest 和 AddResponse 定义如下: AddRequest := APPLICATION 8 SEQUENCE entry LDAPDN, attrs SEQUENCE OF SEQUENCE type AttributeType, values SET OF AttributeValue AddResponse := APPLICATION 9 LDAPResult 其中 entry 为欲增加条目的 DN,DN 中除了最后一级 RDN 其他都必须已存在; attrs 为增加条目的属性。 Delete 操作 客户端利用 Delete 操作从目录中删除条目。删除申请仅为删除条目的 DN, 服务器接到申请删除该条目,并返回响应。 DelRequest := APPLICATION 10 LDAPDN DelResponse := APPLICATION 11 LDAPResult 4.4.3 LDAP 的 PKI 服务 作为 PKI 操作协议的 LDAP,提供了从数据仓库发布证书和管理 PKI 信息的 服务。这种服务包含三方面的内容: LDAP 数据仓库的读取 该服务提供当端用户知道条目名时,从某个条目(entry)发布 PKI 信息。 它需要以下的 LDAP 操作: BindRequest (and BindResponse) SearchRequest (and SearchResponse) UnbindRequest LDAP 数据仓库的查询 用任意的方法,在数据仓库中查询某个包含证书、CRL 或其他信息的条目。 它需要以下的 LDAP 操作: BindRequest (and BindResponse) SearchRequest (and SearchResponse) UnbindRequest LDAP 数据仓库的修改 该服务提供对数据仓库中 PKI 信息的增加、删除和修改。它需要以下的 LDAP 操作: - - 31 BindRequest (and BindResponse) ModifyRequest (and ModifyResponse) AddRequest (and AddResponse) DelRequest (and DelResponse UnbindRequest 4.5 在线证书状态协议 OCSP 用户使用证书前首先需要进行各种验证,包括证书是否失效,证书签发者 是否可信,证书是否适用于本应用,以及证书是否被撤消。前面三种验证可通 过证书本身实现,后一种需要用户查询证书的状态。 查询证书的状态的方法有两种,一是前一章提过的 CRL,另一是利用在线查 询 OCSP。两者各有其优缺点。 CRL 是一种较成熟的技术,具有可预测的性能价格比。CRL 文件使用户很容 易高速缓存,而发布者也可以互相协作。但是,CRL 有着实时性和文件大小方 面的缺憾。现存证书认证系统的使用者抱怨作为证书认证的一个步骤,他们必 须先获得最新的 CRL。一个较大的 CA 的 CRL 文件可能也较大,这会使传输带宽 成为瓶颈。而 CRL 周期性发布的频率也可能导致时延问题:比如 CA 每周发布一 次 CRL,那么最近 CRL 发布后一周的时间内撤消的证书,用户都无法得知。 在线证书状态协议(OCSP)提供了不需要 CRL 而获得证书当前状态的方法。 OCSP 的使用能比周期发布的 CRL 更及时获得证书当前状态。一个 OCSP 的客户 端向 OCSP 响应服务器发出证书的状态请求,后者返回证书的当前状态有效、 无效或不知道。由于用户不必为验证一个或几个证书而下载整个 CRL 文件,所 以会戏剧性地降低所需通信带宽。同时在线的 OCSP 也增加了时效性,最大限度 防止了已撤消证书的使用。 目前,OCSP 正作为 Internet 草案在讨论中。OCSP 还未成熟,在线传输的 性能价格比,这些是投入应用前需要考虑的。 4.5.1 OCSP 的请求 一个 OCSP 客户端向响应服务器发出的证书状态请求描述如下: OCSPRequest := SEQUENCE tbsRequest TBSRequest, optionalSignature 0 EXPLICIT Signature OPTIONAL TBSRequest := SEQUENCE version 0 EXPLICIT Version DEFAULT v1, requestorName 1 EXPLICIT GeneralName OPTIONAL, 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 singleRequestExtensions 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 和 issuerKeyHash 分别为证书签发者(CA)的 DN 和公钥的散 列值。hashAlgorithm 为该散列算法的标识。serialNumber 为证书序列号。 OCSP 请求中有签名的选项,请求提交者可以对整个 tbsReauest 签名。 4.5.2 OCSP 的响应 OCSP 响应服务器对证书状态请求发出的响应描述如下: OCSPResponse := SEQUENCE responseStatus OCSPResponseStatus, responseBytes 0 EXPLICIT ResponseBytes OPTIONAL OCSPResponseStatus := ENUMERATED 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 responseType OBJECT IDENTIFIER, response OCTET STRING OCSP 响应一般包括响应状态 responseStatus 和实际响应值 responseByte。当处理请求出现错误时,只包括简单的 responseStatus,没有 responseByte。 普通 OCSP 响应中 response 为 DER 编码的 BasicOCSPResponse: BasicOCSPResponse := SEQUENCE tbsResponseData ResponseData, signatureAlgorithm AlgorithmIdentifier, signature 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 byName 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, unknown 2 IMPLICIT UnknownInfo RevokedInfo := SEQUENCE revocationTime GeneralizedTime, revocationReason 0 EXPLICIT CRLReason OPTIONAL BasicOCSPResponse 响应中包括版本号、响应者 ID、对每个查询证书的响 应、对响应的签名和签名算法的 OID 等。每个查询证书的响应 SingleResponse 包括目标证书的标识符、证书状态值、响应有效期等。 证书的状态分为 good、revoked、unknown 三种:good 说明证书在响应时有 效,revoked 表示证书已被撤消,unknown 表示证书。 - - 34 第五章 PKI 系统模型的实现 5.1 引言 PKI 系统模型的目标是建立基于以上所论述协议的公钥基础设施,以满足各 种公钥应用的需求。由于 PKI 技术上的复杂性和前沿性,本系统模型只完成了 基本的功能模块,为使本模型系统投入实际应用,在许多细节上还需要充实。 图 5-1 描述了本实现模型的体系结构。系统采用客户/服务器模式,客户端 用户利用 TCP/IP 通过 HTTP 或直接访问 CA。CA/RA、LDAP、OCSP 等服务器之间 也采用 TCP/IP 通信,因此各服务器可分布不同的地方。 本章首先提出建立 PKI 需要实现的功能模块,然后讨论它们的具体实现。 5.2 PKI 实现的功能模块 一个具有完整的体系结构的 PKI 实现的可以归纳为如图 5-2 的功能模块: PSE 服务模块,包括智能卡接口等个人安全环境的 API。 核心算法服务模块,包括基本密码算法如公钥算法、散列等的函数实现。 高层密码服务模块,包括证书申请,签名,验证等的函数实现。 证书管理服务模块,向数据仓库增加或撤消证书、密钥等函数实现。 Internet 图 5-1 PKI实 现 模 型 体 系 结 构 CA/RA服 务 器HTP服 务 器 证 书数 据 库 用 户 LDAP服 务 器 OCSP服 器 务 - - 35 PKI 访问服务模块,利用 LDAP 访问 PKI 完成证书查询等功能的函数实现。 安全协议模块,提供安全访问通道的协议实现,包括 TLS,S/MIME 等。 安全策略服务模块,用户信息注册,访问控制,审计等功能实现。 支持服务模块,LDAP 目录访问 API 等相关功能实现。 下面我们将详细讨论各模块的内容和具体实现。 5.2.1 核心算法服务 核心算法服务是低层的密码安全模块,包括随机数产生,公钥对产生,散 列算法,秘密密钥加密算法,公钥加密算法等内容。该模块既可采用软件实现, 也可根据安全等级要求采用硬件实现。 该模块的部件如图 5-3。 如 Microsoft CryptoAPI 1.0 相似的许多产品实现了核心算法的服务,但 开发自己的 PKI 需要掌握源码。本文 PKI 采用的是 SSLeay 的 Cryptolib 的部分 算法实现,而后者是流传在 Internet,并经过许多应用考验的密码安全函数库 图 5-2 PKI实 现 的 模 块 结 构 应 用 程 序 安 全 协 议TLS, S/MIME, IPSec 证 书 管 理 服 务证 书 管 理 , 私 钥 管 理 等 PKI访 问 服 务证 书 查 询 、 更 新 等 安 全 策 略 服 务用 户 信 息 注 册 、 访 问 控 制 、 审 计 等 支 持 服 务LDAP目 录 访 问 、 数 据 库 访 问 等高 层 密 码 服 务 生 成 证 书 ,签 名 ,验 证 等核 心 算 法 服 务 散 列 , 公 钥 算 法 等 PSE服 务智 能 卡 接 口 、 本 地 数 据 安 全 存 储 等 图 5-3 核 心 算 法 模 块 随 机 数 产 生 公 钥 对 产 生RSA 散 列 算 法SHA, MD5 秘 密 密 钥 加 密 算 法DES, 专 有 算 法 等 公 开 密 钥 加 密 算 法RSA Base64编 码 - - 36 源码。作为安全考虑,核心可能采用自己的专用算法,因此本模块设计时尽量 使函数接口标准化,以便于扩展。 5.2.2 高层密码服务 高层密码模块是建立在核心算法模块上的,它为上层提供对封装数据的操 作,包括证书申请、签名、验证等。该模块包括了 X.509 封装,DER/PEM 编码 解码等功能部件。见图 5-4。 由于 X.509 和许多其他数据结构都是用 ASN.1 描述的,所以我们需要建立 ASN.1 数据结构,并完成这些数据结构从 DER 编码到内部 C 数据结构的切换。 由于某些场合需要用到 PEM 编码的证书,所以还需要一套从 DER 转换为 PEM 编 码的函数。在这些下层的函数构建的基础上,就可完成证书相关的功能函数, 如证书生成、签名、验证等。 这个模块的实现一部分仍然来自 SSLeay 的 Cryptolib,另一部分来自作者 开发的个人文电安全系统。个人文电安全系统是解决网络中电子邮件、文件传 输安全问题的产品。由于该系统定位在一个小范围的群体,它 CA 的证书发布和 撤消都是离线的。尽管如此,并不影响对它下层的函数模块的复用。 5.2.3 证书管理服务 证书管理服务模块是处于 PKI 中心的模块。它即利用下层的密码服务完成 证书生成、验证等功能,又访问 LDAP 或数据库存储或查询证书,同时,它还将 访问安全策略服务,进行访问控制并记录审计日志。 证书管理服务包括证书管理和密钥管理两部分功能,如图 5-5。 证书管理服务不仅仅是函数接口,而应是把各功能函数组织为一个或几个 图 5-4 高 层 密 码 服 务 模 块 ASN.1数 据结 构 DER编 码 X.509封 装 数 字 签 名 /验 证 自 签 名 证 书 生 成 PEM编 码 证 书 申 请 生 成与 签 名 CRL生 成 图 5-5 证 书 管 理 服 务 模 块 证 书 撤 消证 书 查 询 证 书 归 档证 书 发 布 密 钥 更 新密 钥 恢 复密 钥 生 成 - - 37 服务器。如图 5-6 把证书管理服务分为 RA、CA 和 OCSP 三个服务器。图中说明 了证书管理服务器与外部的关系,而服务器间的通信可采用 PKIX 证书管理协议 (RFC2510)中所定义的证书管理消息。 证书管理服务不仅仅是函数接口,而应是把各功能函数组织为一个或几个 服务器。如图 5-6 把证书管理服务分为 RA、CA 和 OCSP 三个服务器。图中说明 了证书管理服务器与外部的关系,而服务器间的通信可采用 PKIX 证书管理协议 (RFC2510)中所定义的证书管理消息。 5.2.4 PKI 访问服务 有时用 TCP 直接访问图 5-6 的证书管理服务器不方便,需要把复杂的管理 过程屏蔽起来。因此 PKI 访问服务模块应运而生。它一方面是外界对 PKI 访问 的服务器,另一方面又是证书管理服务器的客户端。 PKI 访问服务模块可以专门的访问终端,也可以利用 HTTP,Email 等现成的 应用协议。本文 PKI 使用 HTTP,利用友好的 Web 界面和强大的 CGI 来实现 PKI 的访问。 5.2.5 安全协议 访问 PKI 的数据大多是安全敏感的,无论专门的访问终端还是 HTTP 等应用 协议,都需要建筑在一个安全通道上。这样的安全通道就是由 TLS struct ContentType type; ProtocolVersion version; uint16 length; opaque fragmentTLSPlaintext.length; TLSPlaintext; struct ContentType type; 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 struct 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.3 TLS 握手层协议 TLS 握手层包括三个子协议: Change cipher spec protocol Change cipher spec protocol 给出了一个密码策略转换的信号。它包含的 是一个以当前连接方式加密和压缩的单字节报文。接收者接到该报文,立刻将 预备读状态拷贝为当前读状态;发送者发出该报文也立刻将预备写状态拷贝为 当前写状态。握手过程中,当安全参数讨论达成一致后,客户/服务端都发出该 报文,从而改变当前的安全参数,使后续的报文在所协商的新的密码规则和密 钥的保护之下。 Alert protocol Alert protocol 在客户/服务间传输出错信息,报文中包含警告的级别和描 述。当遇到致命错误,接收端将立刻终止会话。 Handshake protocol Handshake protocol 生成了会话状态中的安全参数。当 TLS 客户/服务端开 始通信时,通过握手协议,它们协商建立了协议版本、加密算法,互相进行身 - - 44 份鉴别,并用公钥加密技术产生了共享密钥。 TLS 握手流程见图 8-2。 当客户/服务端试图恢复一个被意外中断的会话时,双方不再协商安全参数, 而由客户端发送会话的 ID,服务端在缓存中查找后,发出 change cipher spec 的报文,重新恢复会话。 6.3 为 WWW 访问建立 SSL 连接 利用前一章建立的演示 CA,我们可以为 HTTP 服务器和浏览器提供证书,从 而建立安全的 WWW 访问。 整个系统建立在 Linux 环境的 PC 机,HTTP 服务器使用 Apache 1.3.6,浏 览器采用 Netscape Communicator 4.0。 6.3.1 浏览器证书的导入 Netscape Communicator 4.0 可以接受多种格式的 X.509 v1、v2、v3 证书。 这些格式分为二进制和文本两类。 - 二进制格式 DER 编码证书 PKCS#7 证书链 Netscape 证书序列 图 6-2 TLS握 手 数 据 流 ClientHelloServerHello CertificateCertificate Request ServerHelloDoneCertificate Certificate VerifyChangeCipherSpec FinishedChangeCipherSpec Finished Client Server 建 立 协 议 版 本 、 会 话ID、 压 缩 方 法 、 密 码 套 , 交 换 随 机 数 送 出 服 务 器 端 证 书 ,并 请 求 客 户 端 证 书 送 出 客 户 端 证 书 改 变 密 码 套 , 结 束 握手 过 程 - - 45 - 文本格式 所有上面二进制格式都可以作为文本格式的输入。文本格式以“- BEGIN CERTIFICATE-”标识开始,接下来是证书数据,是以 BASE64 编 码(RFC1113)上面二进制格式数据,最后以“-END CERTIFICATE- -”标识结束。 Netscape Communicator 采用 HTTP 协议接收证书,它识别几种特殊的 MIME 类型,这些 MIME 揭示了输入证书的类型: application/x-x509-user-cert 使用浏览器用户的证书。在导入证书前,相应的私钥必须已存入用户本 地的密钥库中,否则将出错无法导入证书。 application/x-x509-ca-cert 认证机关 CA 的证书。当下载该证书时,浏览器将产生一系列对话框让用 户确认是否接受该 CA 证书和它签发的证书。 application/x-x509-email-cert 这是 S/MIME 应用的证书。用户或 CA 可利用它在 Web 上发布证书,其他 用户下载后可发加密邮件或验证签名。 6.3.2 浏览器密钥对的生成 Netscape 提供了一个扩展的 HTML 标识符来帮助产生密钥对,并在 表格中提交公钥。这种机制使用在基于 Web 的证书管理系统中。在浏 览器中显示为一个密钥长度的选择框,当 HTML 表格被提交时,私钥被加密放在 本地密钥库中,而公钥以 name-value 对形式提交给 HTTP 服务器。 例如: 该 FORM 提交后,公钥和 CHALLENGE 以一种 SignedPublicKeyAndChallenge 的 base64 编码格式,与其他证书申请信息(commonname 等)一起传给 HTTP 服 务器的 CGI 程序。提交数据如下: commonname=Lin+Xy&email=&pkey=MIHFMHEwXDANBgV%0AW.vmco%3D 应当注意的是由于美国的出口限制,一般的 Communicator 只能生成 512bits 的密钥。 6.3.3 建立 SSL 连接的步骤 - - 46 1) 建立自签名的 CA 证书 在 CA 架设好后,首先需要生成自签名的 CA 证书和密钥,并存入 LDAP 目录 中。HTTP 服务器通过 application/x-x509-ca-cert 的 MIME 类型,将证书导入 浏览器中。 将自签名 CA 证书安装到 Web 浏览器中后,浏览器便可以识别该 CA 签发的 服务器证书。由于一旦安装,浏览器接受所有该签发的证书,所以在你确认该 CA 证书绝对安全之前,安装是有风险的。 2) 建立服务器证书 服务器证书向客户端提供服务器的身份鉴别。生成服务器证书需要先向 CA 提出申请,由 CA 用私钥签名生成证书后,安装到 HTTP 服务器中。Apache 服务 器中将证书文件放入指定目录,修改配置文件后完成服务器证书安装。 当连接到 HTTPS 的服务器,浏览器会自动询问是否接受服务器证书。如果 选择接受,服务器端认证的 SSL 连接就建立起来了。 3) 建立客户端证书 客户端证书向服务器提供了客户端的身份鉴别。产生和安装客户端证书比 服务器证书要复杂,因为客户端需要先产生一对密钥,把私钥加密保存,将公 钥生成证书请求发给 CA。CA 签名证书请求后,返回给客户端安装。 产生密钥和证书请求是利用 HTML 表格提交给 CGI,CGI 生成证书后,以 application/x-x509-user-cert 的 MIME 类型返回给用户。 - - 47 第七章 结束语 公钥基础设施是一个广阔的研究领域,并有着非常现实的应用前景。如今 Internet 上不断出台的 PKI 相关的新协议和新产品都说明,PKI 理论的研究正 加速成长将走向成熟期;而电子商务等 PKI 的应用也正随之加速发展。 本文首先介绍了 PKI 的理论,包括密码理论、证书与认证、PKI 的构架和各 种相关协议,然后提出了建立 PKI 实现的框架模型,最后以 TLS 为例演示 PKI 应用。 在研究中,作者深深体会到构建 PKI 是很复杂和庞大的工程。而 PKI 诱人 的应用前景,又使越来越多的人投入到相关的研究开发中。作者试图跟上 PKI 发展的脚步,并描述 PKI 尽可能多的方面。但由于水平所限,难免出现的不足 和错误还需要读者批评指正。 - - 48 - - 49 附录1 术语及缩写词 ASN.1 : Abstract Syntax Notation One , 抽象语法描述 CA : Certification Authority , 公证机关 CGI : Common Gateway Interface , 通用网关接口 CRL : Certificate Revocation Lists , 证书废止表 , 又称黑表 DAP : Directory Access Protocol ,目录访问协议 DER : Distinguished Encoding Rules , 唯一编码规则 DIT : Directory Information Tree , 目录信息树 DN : Distinguished Name , 唯一标识名 HTTP : Hypertext Transfer Protocol , 超文本传输协议 IETF : Internet Engineering Task Force , Internet 工程任务组 IPSec : Internet Protocol Security extensions , IP 安全扩展 ISO : International Organization for Standardization , 国际标准化组织 ITU : International Telecommunication Union , 国际电信联盟 LDAP : Lightweight Directory Access Protocol , 轻型目录访问协议 MAC : Message Authentication Code , 消息鉴别码 NIST : National Institute of Standards and Technology , 美国国家标准 与技术局 OCSP : Online Certificate Status Protocol , 在线证书状态协议 PEM : Privacy Enhanced Mail ,保密增强邮件 PERL : Practical Extraction and Report Language , Perl 语言 RFC : Request for Comment , 请求注解(Internet 标准) PKCS : Public Key Cryptography Standards , RSA 公钥体制标准 PKI : Public Key Infrastructure , 公钥基础设施 PKIX : Public Key Infrastructure using X.509 , IETF PKIX 工作组 PSE : Personal Security Environment , 个人安全环境 RA : Registration Authority , 注册机关 SET : Secure Electronic Transactions Protocol , 安全电子交易协议 S/MIME : Secure Multipurpose Internet Mail Extensions , 安全多用途 互连网邮件扩展 SHA : Secure Hash Algorithm , 安全散列算法 SSL : Secure Socket Layer , 安全套接字 TLS : Transport Layer Secure Protocol , 传输层安全协议 VPN : Virtual Private Networks , 虚拟专网
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸下载 > CAD图纸下载


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!