PKI体系结构知识学习.docx
《PKI体系结构知识学习.docx》由会员分享,可在线阅读,更多相关《PKI体系结构知识学习.docx(25页珍藏版)》请在冰豆网上搜索。
PKI体系结构知识学习
PKI体系结构学习笔记
一PKI基础
1.1基本概念
1.PKI(publickeyinfrastructure)即公钥基础结构
2.PKI由公钥加密技术,数字证书,证书颁发机构(CA),注册机构(RA)等组成
数字证书用于用户的身份验证,CA是一个可信任的实体,负责发布,更新及吊销证书,RA接收用户请求功能
3.数据加密是发送方使用接收方的公钥进行数据加密,接收方使用自己的私钥解密这些数据,数据加密能保证所发送数据的机密性。
数据签名是发送方使用自己的私钥加密,接收方使用发送方的公钥解密,数据签名能保证数据的完整性,操作的不可否认性
两个密钥是成对生成,不能由一个推算出另一个,公钥加密的数据由私钥解密,私钥加密的数据由公钥进行加密
4.CA(Certificate Authority)是数字证书认证中心的简称,是指发放、管理、废除数字证书的机构。
5.CA的作用是检查证书持有者身份的合法性,并签发证书(在证书上签字),以防证书被伪造或篡改,以及对证书和密钥进行管理。
6.CA的核心功能就是发放和管理数字证书,具体功能描述如下:
(1)接收验证用户数字证书的申请。
(2)确定是否接受用户数字证书的申请,即证书的审批。
(3)向申请者颁发(或拒绝颁发)数字证书。
(4)接收、处理用户的数字证书更新请求。
(5)接收用户数字证书的查询、撤销。
(6)产生和发布证书吊销列表(CRL)。
(7)数字证书的归档。
(8)密钥归档。
(9)历史数据归档。
7.数字安全证书就是标志网络用户身份信息的一系列数据,用来在网络通讯中识别通讯各方的身份,即要在Internet上解决"我是谁"的问题,就如同现实中我们每一个人都要拥有一张证明个人身份的身份证或驾驶执照一样,以表明我们的身份或某种资格。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息以及公开密钥的文件。
8.数字证书的存储介质主要有:
软盘,硬盘,IC卡,Usb Key
9.数字证书的原理:
利用一对互相匹配的密钥进行加密、解密。
用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户共享,用于加密和验证签名。
10.证书的主体:
用户,计算机,服务等
11.证书可以用于很多方面:
web用户身份验证,web服务器身份验证,安全电子邮件,internet协议安全(IPSec)
证书发放过程:
1.证书申请
用户根据个人信息填好申请证书的信息并提交证书申请信息
2.RA确认用户
在企业内部网中,一般使用手工验证的方式,这样更能保证用户信息的安全性和真实性
3.证书策略处理
如果验证请求成功,那么,系统指定的策略就被运行到这个请求上,比如名称的约束,密钥长度的约束等
4.RA提交用户申请信息到CA
RA用自己私钥对用户申请信息签名,保证用户申请信息是RA提交给CA的
5.CA为用户生成密钥对,并用CA的签名密钥对用户的公钥和用户信息ID进行签名,生成电子证书
这样,CA就将用户的信息和公钥捆绑在一起了,然后,CA将用户的数字证书和用户的公用密钥公布到目录中。
6.CA将电子证书传送给批准该用户的RA.
7.RA将电子证书传送给用户(或者用户主动取回)
8.用户验证CA颁发的证书
确保自己的信息在签名过程中没有被篡改,而且通过CA的公钥验证这个证书确实由所信任的CA机构颁发。
证书包含的信息:
证书=个人信息+公钥信息+CA的签名信息
1.证书使用者的公钥值
2.使用者的标识信息
3.证书的有效期
4.颁发者的标识
5.颁发者的数字签名
1.2公钥密码的思想
PKI所依赖的核心思想是公钥密码。
公钥算法是基于数学函数而不是基于替换和置换的,此外,与只使用一个密钥的对称传统密码不同,公钥密码学是非对称的,它依赖于一个公开密钥和一个与之在数学上相关但不相同的私钥,且仅根据密码算法和公开密钥来确定私钥在计算上是不可行的。
公开密钥用于加密和签名认证,私钥则对应的用于解密和签名。
公钥密码可以解决传统密码中最困难的两个问题:
密钥分配问题和数字签名问题。
一是密钥分配问题,用传统密码进行密钥分配要求通信双方或者已经共享一个密钥,而该密钥已通过某种方法分配给通信双方;或者利用密钥分配中心。
公钥密码的发明人之一WhitfieldDiffie认为,第二个要求有悖于密码学的精髓,即应在通信过程中完全保持秘密性。
“如果必须要求用户域KDC共享他们的密钥,这些密钥可能因为盗窃或索取而被泄密,那么设计不可破的密码体制究竟还有什么意义呢?
”
第二个问题是数字签名问题,即将密码学用于电子消息和文件的签名,并能确保数字签名是出自某人,并且各方对次均无异议。
1.3公钥加密算法
1976年,Diffie和Hellman针对上述两个问题公开提出公钥密码算法。
公钥密码算法依赖于一个加密密钥和一个与之相关但不同的解密密钥,这些算法具有这样的特点,即仅根据密码算法和加密密钥来确定解密密钥在计算上是不可行的。
公钥加密的主要步骤如下:
(1)网络中的每个终端系统生成一对密钥,用来加密和解密消息。
(2)每个终端系统通过将其加密密钥存于公开的寄存器或文件中,公布其加密密钥,这个密钥称为公钥,而其解密密钥是秘密的。
(3)若A要发送消息给B,则A用B的公钥对消息加密。
(4)B收到消息后,用其私钥对消息解密。
由于只有B知道其私钥,所以其他的接受者均不能解出消息。
到目前为止,被广泛接受的公钥密码系统主要是大整数因子分解IFP困难性的RSA系统和基于椭圆曲线离散对数ECDLP的计算困难性的ECC系统。
1.4数字签名技术
数字签名是利用一套规则和一个参数集对数据计算所得的结果,用此结果能够确认签名者的身份和数据的完整性,这里的数据计算通常是密码变换。
简单的说,数字签名就是附加在数据单元上的一些数据,或是对数据单元所作的密码变换。
这种数据或变换允许数据单元的接受者用以确认数据单元的来源和数据单元的完整性并保护数据,防止被他人进行伪造。
基于公钥密码体制和私钥密码体制都可以获得数字签名,目前主要是基于公钥密码体制的数字签名,包括普通数字签名和特殊数字签名。
数字签名技术是不对称加密算法的典型应用。
它将摘要信息用发送者的私钥加密,与原文一起传送给接收者。
接收者只有用发送的公钥才能解密被加密的摘要信息,然后用HASH函数对收到的原文产生一个摘要信息,与解密的摘要信息对比。
如果相同,则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。
1.5为什么需要PKI
随着网络技术的发展,特别是Internet的全球化,各种基于互联网技术的网上应用,如电子政务、电子商务等得到了迅猛发展。
网络正逐步成为人们工作、生活中不可分割的一部分。
由于互联网的开放性和通用性,网上的所有信息对所有人都是公开的,因此应用系统对信息的安全性提出了更高的要求。
(1)对身份合法性验证的要求
以明文方式存储、传送的用户名和口令存在着被截获、破译等诸多安全隐患。
同时,还有维护不便的缺点。
因此,需要一套安全、可靠并易于维护的用户身份管理和合法性验证机制来确保应用系统的安全性。
(2)对数据保密性和完整性的要求
(2)对数据保密性和完整性的要求
企业应用系统中的数据一般都是明文,在基于网络技术的系统中,这种明文数据很容易泄密或被篡改,必须采取有效的措施保证数据的保密性和完整性。
(3)传输安全性要求
以明文方式在网上传输的数据,很容易被截获以至泄密,必须对通信通道进行加密保护。
利用通信专线的传统方式已经远远不能满足现代网络应用发展的需求,必须寻求一种新的方法来保证基于互联网技术的传输安全需求。
(4)对数字签名和不可否认的要求
不可抵赖性为了防止事件发起者事后抵赖,对于规范业务,避免法律纠纷起着很大的作用。
传统不可抵赖性是通过手工签名完成的,在网络应用中,需要一种具有同样功能的机制来保证不可抵赖性,那就是数字签名技术。
PKI基于非对称公钥体制,采用数字证书管理机制,可以为透明地为网上应用提供上述各种安全服务,极大地保证了网上应用的安全性。
二PKI组成
PKI作为一组在分布式计算系统中利用公钥技术和X.509证书所提供的安全服务,企业或组织可利用相关产品建立安全域,并在其中发布密钥和证书。
在安全域内,PKI管理加密密钥和证书的发布,并提供诸如密钥管理(包括密钥更新,密钥恢复和密钥委托等)、证书管理(包括证书产生和撤销等)和策略管理等。
PKI产品也允许一个组织通过证书级别或直接交叉认证等方式来同其他安全域建立信任关系。
这些服务和信任关系不能局限于独立的网络之内,而应建立在网络之间和Internet之上,为电子商务和网络通信提供安全保障,所以具有互操作性的结构化和标准化技术成为PKI的核心。
PKI在实际应用上是一套软硬件系统和安全策略的集合,它提供了一整套安全机制,使用户在不知道对方身份或分布地很广的情况下,以证书为基础,通过一系列的信任关系进行通讯和电子商务交易。
一个典型的PKI系统如图1所示,其中包括PKI策略、软硬件系统、证书机构CA、注册机构RA、证书发布系统和PKI应用等。
1.PKI安全策略建立和定义了一个组织信息安全方面的指导方针,同时也定义了密码系统使用的处理方法和原则。
它包括一个组织怎样处理密钥和有价值的信息,根据风险的级别定义安全控制的级别。
一般情况下,在PKI中有两种类型的策略:
一是证书策略,用于管理证书的使用,比如,可以确认某一CA是在Internet上的公有CA,还是某一企业内部的私有CA;另外一个就是CPS(CertificatePracticeStatement)。
一些由商业证书发放机构(CCA)或者可信的第三方操作的PKI系统需要CPS。
这是一个包含如何在实践中增强和支持安全策略的一些操作过程的详细文档。
它包括CA是如何建立和运作的,证书是如何发行、接收和废除的,密钥是如何产生、注册的,以及密钥是如何存储的,用户是如何得到它的等等。
2.证书机构CA是PKI的信任基础,它管理公钥的整个生命周期,其作用包括:
发放证书、规定证书的有效期和通过发布证书废除列表(CRL)确保必要时可以废除证书。
后面将会在CA进行详细介绍。
3.注册机构RA提供用户和CA之间的一个接口,它获取并认证用户的身份,向CA提出证书请求。
它主要完成收集用户信息和确认用户身份的功能。
这里指的用户,是指将要向认证中心(即CA)申请数字证书的客户,可以是个人,也可以是集团或团体、某政府机构等。
注册管理一般由一个独立的注册机构(即RA)来承担。
它接受用户的注册申请,审查用户的申请资格,并决定是否同意CA给其签发数字证书。
注册机构并不给用户签发证书,而只是对用户进行资格审查。
因此,RA可以设置在直接面对客户的业务部门,如银行的营业部、机构认识部门等。
当然,对于一个规模较小的PKI应用系统来说,可把注册管理的职能由认证中心CA来完成,而不设立独立运行的RA。
但这并不是取消了PKI的注册功能,而只是将其作为CA的一项功能而已。
PKI国际标准推荐由一个独立的RA来完成注册管理的任务,可以增强应用系统的安全。
4.证书发布系统负责证书的发放,如可以通过用户自己,或是通过目录服务。
目录服务器可以是一个组织中现存的,也可以是PKI方案中提供的。
5.PKI的应用非常广泛,包括在web服务器和浏览器之间的通讯、电子邮件、电子数据交换(EDI)、在Internet上的信用卡交易和虚拟私有网(VPN)等。
图1PKI组成框图
一个简单的PKI系统包括证书机构CA、注册机构RA和相应的PKI存储库。
CA用于签发并管理证书;RA可作为CA的一部分,也可以独立,其功能包括个人身份审核、CRL管理、密钥产生和密钥对备份等;PKI存储库包括LDAP目录服务器和普通数据库,用于对用户申请、证书、密钥、CRL和日志等信息进行存储和管理,并提供一定的查询功能。
三证书认证机构CA
3.1数字证书基础
数字证书是一种数字标识,可以说是Internet上的安全护照或身份证明。
当人们到其他国家旅行时,用户护照可以证实其身份,并被获准进入这个国家。
数字证书提供的是网络上的身份证明。
数字证书是一个经证书授权中心数字签名的包含公开密钥拥有者信息和公开密钥的文件。
最简单的证书包含一个公开密钥、名称以及证书授权中心的数字签名。
一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心)的名称,该证书的序列号等信息,证书的格式遵循ITUTX.509国际标准。
3.1.1证书格式
在Internet网络中,应用程序使用的证书都来自不同的厂商或组织,为了实现可交互性,要求证书能够被不同的系统识别,符合一定的格式,并实现标准化。
X.509为证书及其CRL格式提供了一个标准。
但X.509本身不是Internet标准,而是国际电联ITU标准,它定义了一个开放的框架,并在一定的范围内可以进行扩展。
为了适应PKI技术的发展,IETF也必须制定在Internet上使用X.509和CRL的标准。
PKIX工作组就提供了一个Internet草案"PartI:
X.509CertificateandCRLProfile"(详细内容可见:
ftp:
//ftp.ietf.org/internet-drafts/draft-ietf-pkix-ipki-part1-11.txt),用于定义在InternetPKI中使用X.509和CRL的方法和规范。
该草案把X.509作为标准,并对各标准项和扩展做了说明,基本接收了X.509作为Internet中的证书标准,但也定义了被PKI应用的X.509V3和CRLV2标准格式的设置,这些设置包含了PKIX工作组对X.509所做的一些新的扩展。
X.509目前有三个版本:
V1、V2和V3,其中V3是在V2的基础上加上扩展项后的版本,这些扩展包括由ISO文档(X.509-AM)定义的标准扩展,也包括由其他组织或团体定义或注册的扩展项。
X.509由ITU-TX.509(前身为CCITTX.509)或ISO/IEC9594-8定义,最早以X.500目录建议的一部分发表于1988年,并作为V1版本的证书格式。
X.500于1993年进行了修改,并在V1基础上增加了两个额外的域,用于支持目录存取控制,从而产生了V2版本。
为了适应新的需求ISO/IEC和ANSIX9发展了X.509V3版本证书格式,该版本证书通过增加标准扩展项对V1和V2证书进行了扩展。
另外,根据实际需要,各个组织或团体也可以增加自己的私有扩展。
X.509V1和V2证书所包含的主要内容如下:
∙证书版本号(Version):
版本号指明X.509证书的格式版本,现在的值可以为0、1、2,也为将来的版本进行了预定义。
∙证书序列号(SerialNumber):
序列号指定由CA分配给证书的唯一的数字型标识符。
当证书被取消时,实际上是将此证书的序列号放入由CA签发的CRL中,这也是序列号唯一的原因。
∙签名算法标识符(Signature):
签名算法标识用来指定由CA签发证书时所使用的签名算法。
算法标识符用来指定CA签发证书时所使用的公开密钥算法和hash算法,须向国际知名标准组织(如ISO)注册。
∙签发机构名(Issuer):
此域用来标识签发证书的CA的X.500DN名字。
包括国家、省市、地区、组织机构、单位部门和通用名。
∙有效期(Validity):
指定证书的有效期,包括证书开始生效的日期和时间以及失效的日期和时间。
每次使用证书时,需要检查证书是否在有效期内。
∙证书用户名(Subject):
指定证书持有者的X.500唯一名字。
包括国家、省市、地区、组织机构、单位部门和通用名,还可包含email地址等个人信息等
∙证书持有者公开密钥信息(subjectPublicKeyInfo):
证书持有者公开密钥信息域包含两个重要信息:
证书持有者的公开密钥的值;公开密钥使用的算法标识符。
此标识符包含公开密钥算法和hash算法。
∙签发者唯一标识符(IssuerUniqueIdentifier):
签发者唯一标识符在第2版加入证书定义中。
此域用在当同一个X.500名字用于多个认证机构时,用一比特字符串来唯一标识签发者的X.500名字。
可选。
∙证书持有者唯一标识符(SubjectUniqueIdentifier):
持有证书者唯一标识符在第2版的标准中加入X.509证书定义。
此域用在当同一个X.500名字用于多个证书持有者时,用一比特字符串来唯一标识证书持有者的X.500名字。
可选。
∙签名值(Issuer'sSignature):
证书签发机构对证书上述内容的签名值。
X.509V3证书是在v2的基础上一标准形式或普通形式增加了扩展项,以使证书能够附带额外信息。
标准扩展是指由X.509V3版本定义的对V2版本增加的具有广泛应用前景的扩展项,任何人都可以向一些权威机构,如ISO,来注册一些其他扩展,如果这些扩展项应用广泛,也许以后会成为标准扩展项。
3.1.2CRL格式
证书废除列表CRL(Certificaterevocationlists,又称证书黑名单)为应用程序和其它系统提供了一种检验证书有效性的方式。
任何一个证书废除以后,证书机构CA会通过发布CRL的方式来通知各个相关方。
目前,同X.509V3证书对对应的CRL为X.509v2CRL,其所包含的内容格式如下:
∙CRL的版本号:
0表示X.509V1标准;1表示X.509V2标准;目前常用的是同X.509V3证书对应的CRLV2版本。
∙签名算法:
包含算法标识和算法参数,用于指定证书签发机构用来对CRL内容进行签名的算法。
∙证书签发机构名:
签发机构的DN名,由国家、省市、地区、组织机构、单位部门和通用名等组成。
∙此次签发时间:
此次CRL签发时间,遵循ITU-TX.509V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。
∙下次签发时间:
下次CRL签发时间,遵循ITU-TX.509V2标准的CA在2049年之前把这个域编码为UTCTime类型,在2050或2050年之后年之前把这个域编码为GeneralizedTime类型。
∙用户公钥信息,其中包括废除的证书序列号和证书废除时间。
废除的证书序列号是指要废除的由同一个CA签发的证书的一个唯一标识号,同一机构签发的证书不会有相同的序列号。
∙签名算法:
对CRL内容进行签名的签名算法。
∙签名值:
证书签发机构对CRL内容的签名值。
另外,CRL中还包含扩展域和条目扩展域。
CRL扩展域用于提供与CRL有关的额外信息部份,允许团体和组织定义私有的CRL扩展域来传送他们独有的信息;CRL条目扩展域则提供与CRL条目有关的额外信息部份,允许团体和组织定义私有的CRL条目扩展域来传送他们独有的信息。
3.1.3证书的存放
数字证书作为一种电子数据格式,可以直接从网上下载,也可以通过其他方式。
∙使用IC卡存放用户证书。
即把用户的数字证书写到IC卡中,供用户随身携带。
这样用户在所有能够读IC卡证书的电子商务终端上都可以享受安全电子商务服务。
∙用户证书直接存放在磁盘或自己的终端上。
户将从CA申请来的证书下载或复制到磁盘或自己的PC机或智能终端上,当用户使用自己的终端享受电子商务服务时,直接从终端读入即可。
∙另外,CRL一般通过网上下载的方式存储在用户端。
3.2CA框架模型
证书机构CA用于创建和发布证书,它通常为一个称为安全域(securitydomain)的有限群体发放证书。
创建证书的时候,CA系统首先获取用户的请求信息,其中包括用户公钥(公钥一般由用户端产生,如电子邮件程序或浏览器等),CA将根据用户的请求信息产生证书,并用自己的私钥对证书进行签名。
其他用户、应用程序或实体将使用CA的公钥对证书进行验证。
如果一个CA系统是可信的,则验证证书的用户可以确信,他所验证的证书中的公钥属于证书所代表的那个实体。
CA还负责维护和发布证书废除列表CRL(certificaterevocationlists,又称为证书黑名单)。
当一个证书,特别是其中的公钥因为其他原因无效时(不是因为到期),CRL提供了一种通知用户和其他应用的中心管理方式。
CA系统生成CRL以后,要么是放到LDAP服务器中供用户查询或下载,要么是放置在Web服务器的合适位置,以页面超级连接的方式供用户直接查询或下载。
一个典型的CA系统包括安全服务器、注册机构RA、CA服务器、LDAP目录服务器和数据库服务器等。
如图2所示。
图2典型CA框架模型
∙安全服务器:
安全服务器面向普通用户,用于提供证书申请、浏览、证书撤消列表以及证书下载等安全服务。
安全服务器与用户的的通信采取安全信道方式(如SSL的方式,不需要对用户进行身份认证)。
用户首先得到安全服务器的证书(该证书由CA颁发),然后用户与服务器之间的所有通信,包括用户填写的申请信息以及浏览器生成的公钥均以安全服务器的密钥进行加密传输,只有安全服务器利用自己的私钥解密才能得到明文,这样可以防止其他人通过窃听得到明文。
从而保证了证书申请和传输过程中的信息安全性。
∙CA服务器:
CA服务器使整个证书机构的核心,负责证书的签发。
CA首先产生自身的私钥和公钥(密钥长度至少为1024位),然后生成数字证书,并且将数字证书传输给安全服务器。
CA还负责为操作员、安全服务器以及注册机构服务器生成数字证书。
安全服务器的数字证书和私钥也需要传输给安全服务器。
CA服务器是整个结构中最为重要的部分,存有CA的私钥以及发行证书的脚本文件,出于安全的考虑,应将CA服务器与其他服务器隔离,任何通信采用人工干预的方式,确保认证中心的安全。
∙注册机构RA:
登记中心服务器面向登记中心操作员,在CA体系结构中起承上启下的作用,一方面向CA转发安全服务器传输过来的证书申请请求,另一方面向LDAP服务器和安全服务器转发CA颁发的数字证书和证书撤消列表。
∙LDAP服务器:
LDAP服务器提供目录浏览服务,负责将注册机构服务器传输过来的用户信息以及数字证书加入到服务器上。
这样其他用户通过访问LDAP服务器就能够得到其他用户的数字证书。
∙数据库服务器:
数据库服务器是认证机构中的核心部分,用于认证机构中数据(如密钥和用户信息等)、日志合统计信息的存储和管理。
实际的的数据库系统应采用多种措施,如磁盘阵列、双机备份和多处理器等方式,以维护数据库系统的安全性、稳定性、可伸缩性和高性能。
3.3证书的申请和撤销
证书的申请有两种方式,一是在线申请,另外一个就是离线申请。
在线申请就是通过浏览器或其他应用系统通过在线的方式来申请证书,这种方式一般用于申请普通用户证书或测试证书。
离线方式一般通过人工的方式直接到证书机构证书受理点去办理证书申请手续,通过审核后获取证书,这种方式一般用于比较重要的场合,如服务器证书和商家证书等。
下面讨论的主要是在线申请方式。
当证书申请时,用户使用浏览器通过Internet访问安全服务器,下载CA的数字证书(又叫做根证书),然后注册机构服务器对用户进行身份审核,认可后便批准用户的证书申请,然后操作员对证书申请表进行数字签名,并将申请及其签名一起提交给CA服务器。
CA操作员获得注册机构服务器操作员签发的证书申请,发行证书或者拒绝发行证书,然后将证书通过