Public Key Infrastructure(简称PKI),中文叫做公开密钥基础设施,也就是利用公开密钥机制建立起来的基础设施。PKI指的是证明书的制作和分发的一种机制。在这个机制的保障前提下,进行可信赖的网络通信。即安全的网路通信保障机制。pki技术是信息安全技术的核心,也是电子商务的关键和基础技术。pki的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。
想要知道什么是PKI,需要先来认识一下公钥密码算法。
一、公钥密码算法
公钥密码算法,又称非对称密码算法,使用两个密钥:
一个密钥是保密的,称作“私钥”
另一个密钥是公开的,称作“公钥”
这两个密钥之间存在一些特殊的数学关系:
从私钥可推导出公钥,但从公钥不能推导出私钥。
公钥密码算法一般包括加解密、签名验签两种使用模型
1.加解密模型:Alice想要和Bob秘密通信时,只需用Bob的公钥对明文加密,Bob接收到密文后,用自己的私钥解密就可以得到明文了。其他人因为不知道Bob的私钥,所以无法解密出明文。
图1 加解密模型
2.签名验签模型:借助数学方法可实现类似手写签名的作用,Alice使用自己的私钥对消息进行签名,然后将结果发送给Bob,Bob收到消息以后,使用Alice的公钥验证它。因为只有拥有相应私钥的用户,才能产生可验证通过的消息,所以Alice事后不能否认自己的签名。
图2 数字签名/验证模型
二、PKI是什么?
经过上面的分析,我们知道什么是公钥密码算法了,但是简单地直接使用公钥密码算法存在较为严重的安全问题。
例如,加解密模型中,Alice需要提前获取Bob的公钥,但是Alice如何确定所得到的公钥就是属于Bob的呢?如果攻击者Oscar生成公私密钥对,谎称是Bob的公钥,那么Oscar就可以窃听本来只属于Bob和Alice的秘密信息,Bob反而不能解密这些信息;签名验签模型中,如果Oscar生成一对公私密钥对,然后将公钥公开,并谎称是Alice的公钥,那么Oscar就能以Alice的名义发送消息并执行各种操作。
因此我们可以看出,要应用公钥密码算法,首先要解决公钥归属问题,需要正确地传达每一个用户的公钥是什么,某一个公钥到底属于哪个人。
此时,PKI闪亮登场了,通过数字证书,PKI很好地证明了公钥是谁的,解决了上述公钥归属问题。PKI中文译为公钥基础设施,它是英文Public Key Infrastructure的缩写,基于公钥密码学,建立起一种普遍适用的基础设施,为各种网络应用提供全面的安全服务。
三、PKI能够提供什么?
真实性:标识与身份鉴别——确保与你通信的另一方是它所声称的真实身份。
完整性:不被修改,没有错误——保证信息在存储或传输过程中保持不被篡改、破坏。
机密性:隐私与保密——除了通信双方之外,其他方无法获知该信息。
非否认性:责任确定——任何一方无法抵赖自己曾做过的操作。
四、PKI系统组成结构
PKI基本结构由证书认证机构(certificate authority, CA)、证书持有者(certificate holder)、依赖方(relying party)三方构成:
1.CA是一个独立的可信第三方,为证书持有者签发数字证书,数字证书中声明了证书持有者的身份和公钥。CA在签发证书前应对证书持有者的身份信息进行核实验证,并根据其核验结果为其签发证书。
2.证书持有者向CA申请数字证书,并向CA提供必要的信息以证明其身份及能力,获得由CA签发的证书;证书持有者在与依赖方进行交互时,需向依赖方提供由CA签发的数字证书证明其有效身份。
3.依赖方是证书的验证方,依赖方与证书持有者进行交互(如建立通信连接)时,需获取证书持有者的数字证书,验证数字证书的真实性和有效性。依赖方可以指定其信任的CA列表,若证书持有者提供的数字证书不是受信CA签发的数字证书,依赖方将不认可该证书所声明的信息。
图3 PKI基本模型
除了上述3种最基本的实体组件之外,为了能够更好地提供服务,PKI系统中还经常包括以下各种辅助组件:
•RA注册机构,负责进行各种信息审查,确保证书申请者身份信息无误
• Repository资料库,用于发布CA系统的各种公开信息。例如,证书、CRL、CP、CPS、OCSP等
• CRL Issuer接收和处理撤销信息,专门定期签发证书撤销列表
• OCSP ServerOCSP也用于检查证书是否已经撤销,实时响应PKI用户的查询请求
• key management system密钥管理系统,用于大量的密钥管理工作,包括密钥的生成、备份、托管和恢复等。
五、数字证书
数字证书是PKI最基本的元素,也是承载PKI安全服务最重要的载体。
证书存在的意义在于回答“公钥属于谁”的问题,以帮助用户安全地获得对方的公开密钥。
证书中最基本的内容是证书持有者的身份信息和公钥数据,以及用于验证证书完整性的CA签名结果。X.509证书是通用的PKI数字证书格式,如下图所示。
图4 证书的基本结构
一张X.509数字证书由证书内容、签名算法和签名结果组成。需要使用他人证书的用户,依照签名算法,用CA的公钥验证签名结果,从而保证证书的完整性,安全地获取公钥。
证书内容应包括如下几部分:
• 版本号证书格式可能会不断改进,版本号给出了证书遵从的格式。到目前为止共有3个版本,分别用0、1、2来表示版本1、版本2和版本3,现在大部分证书都采用版本3的格式
• 证书主体这张证书的持有者
• 主体公钥信息指明所用的公钥算法和公钥信息本身
• 签发者签发该证书的CA
• 序列号序列号是每个CA用来唯一标识其所签发的证书,也就是说,对于某一个CA而言,其签发的每一张证书的序列号必须互不相同。用“签发者”和“序列号”就可以唯一地标识任何一张数字证书
• 有效期包括开始和结束日期,只有在有效期内的证书才是有效的。
• 证书扩展为能满足实际应用中的更多需求,证书需要携带更多的信息,于是又有了诸多扩展,证书扩展和上述基本内容一起被CA签名。
关键词: pki中文意思 PKI用途和作用 RA注册机构 证书认证机构 PKI系统组成结构 签名验签模型 标识与身份鉴别 加解密模型 公钥密码算法公钥信息 非对称密码算法