谢宗晓 甄杰
1 公钥基础设施(PKI)的定义与范围
对消息进行加密传输是目前安全传递消息的可行途径之一。发送者将消息加密后传输,就不用担心被窃听了。因为窃听者即使获取了的也是密文,没有解密密钥毫无意义。这就是对称密码算法的基本逻辑,但是,在实践中这存在一个很大的缺陷,密钥如何安全地传输给对方?如果将密钥用明文传输,可能会被窃听,如果用密文传输,那么接收者还是无法解读。实际情况是,为了解决对称密码算法中的密钥传输问题,需要一系列复杂的步骤,包括建立密钥分发中心等。
Whitfield Diffie和Martin Hellman在1976年提出了公钥密码算法的设计思想,发送者用公钥加密,接收者用私钥解密。公钥一般是公开的,不必担心窃听,私钥又不存在传输的问题。这解决了对称密码中难以解决的密钥配送问题。但是,开始并没有找到合适的算法。1978年,Ron Rivest、Adi Shamir和Leonard Adleman发明了RSA算法,这使得公钥密码算法变得现实可用。当然,在后续的研究中又发明了一系列的算法,例如,椭圆加密算法(ECC)和ElGamal等。
但是,在非对称密码算法中,接收者依然无法判断收到的公钥是否是合法的,因为有可能是中间人假冒的。事实上,仅靠公钥密码本身,无法防御中间人攻击。于是,需要(认证机构)对公钥进行签名,从而确认公钥没有被篡改。加了数字签名的公钥称为证书(公钥证书,一般简称为证书)。有了证书来认证,可以有效地防御中间人攻击,随之带来了一系列非技术性工作,例如,谁来发证书?如何发证书?不同机构的证书怎么互认?纸质证书作废容易,数字证书如何作废?解决这些问题,需要制定统一的规则,即公钥基础设施(Public Key Infrastructure,PKI)体系。
PKI是指支持公钥管理体制的基础设施,提供鉴别、加密、完整性和不可否认性服务1)。通俗地讲,PKI是集机构、系统(硬件和软件)、人员、程序、策略和协议为一体,利用公钥概念和技术来实现和提供安全服务的、具有普适性的安全基础设施2)。PKI体系是通过颁发与管理公钥证书的方式为终端用户提供服务的系统,最核心的元素无疑是证书,围绕证书构成了该体系的要素:使用PKI的用户,颁发证书的机构(Certificate Authority,CA)和保存证书的仓库。
2 作为基础的ISO/IEC 9594-8
在整个PKI体系中,ISO/IEC 9594-8为其中的基础标准,该标准最新版本为ISO/IEC 9594-8: 2017,发布于2017年5月,该标准与国际电信联盟电信标准分局(ITU-T)共同开发,被同步发布为ITU-T X.509(10/2016)。在业界,一般沿用ITU-T X.509,而很少用ISO/IEC 9594-8。
ITU-T X.509最早发布于1988年,从一开始就与ISO 9594-8保持了合作同步开发。X.509的版本变迁非常复杂,目前最新版本为V8。ITU-T X.509(10/2016)最重要的贡献是定义了公钥证书的数据格式,在此基础上,定义了公钥证书框架和属性证书(attribute certificates)框架。其中包括证书撤销列表(Certificate Revocation Lists,CRLs)和特定权限管理基础设施(Privilege Management Infrastructure,PMI)等PKI要素。
值得指出的是,ISO/IEC 9594为开放系统互连(Open Systems Interconnection,OSI)的系列标准之一,这意味着ISO/IEC 9594-8在互联网应用中有着重要的意义。事实情况的确如此,为了在Internet应用基于X.509的PKI,互联网工程任务组(IETF)在1995年成立了PKIX工作组。
3 PKI相关的国家标准
ITU-T X.509并没有特定某个国家标准与之对应,但是主要内容都被分拆至不同的标准中。例如,GB/T 20518—2006专门定义了数字证书格式,作为配套标准的GB/T 20519—2006《信息安全技术 公钥基础设施 特定权限管理中心技术规范》(已废止)和GB/T 16264.8—2005《信息技术 开放系统互连 目录 第8部分:公钥和属性证书框架》则配合构成完整的权限管理系统标准。整体而言,全国信息安全标准化技术委员会(SAC/TC 260)发布的国家标准与上述国际标准基本保持了一致,只是成文的组织形式略有区别。
数字证书格式在不同的领域或者不同的国家,应用时是否需要与ITU-T X.509保持一致,只是习惯问题,或者是否看重国际互认。但是,作为PKI体系在各个国家应用,一般会重新进行规范,而且类似CA机构建立等问题,本身就是行政管理的范畴。
表1~5根据SAC/TC 260的标准分类,给出了PKI相关国家标准的目录,并进行了简要的介绍。表1中为即将实施的2个标准,都比较基础,尤其是GB/T 20518—2018,是PKI中最重要的国家标准。
GB/T 25056—2018将代替GB/T 25056—2010。两个版本的最大变化是对算法要求,以及修改了相关的密码协议。新版本引用了两个重要的标准,GM/T 0014—2012《数字证书认证系统密码协议规范》和GM/T 0019—2012《通用密码服务接口规范》。
GB/T 20518—2006主要参考RFC 2459,后来更新为RFC 3280,目前最新的版本為RFC 5280,就时效性而言,也需要更新。GB/T 20518—2018标识的规范性引用文件为GB/T 16264.8—2005,而该标准等同采用的ISO/IEC 9594-8:2001,也就是说对应的是X.509 V4,而RFC 2459对应的则是X.509 V3。GB/T 20518的改版主要也是因为对国产算法的支持,例如,在附录E中增加了对SM2和SM3密码算法的支持,删除了MD5和SHA-1的介绍。
根据SAC/TC 260的分类,PKI相关标准主要在“验证与证明”中,表2中给出了该类标准中PKI相关的国家标准。
GB/T 35285—2017主要解决从技术上实现可靠的电子签名以及如何验证电子签名的可靠性问题。
GB/T 32213—2015基于非对称密码学,构造了更安全的口令鉴别协议。由于口令便于记忆,不需要其他载体,而且基于口令的鉴别协议简单高效,因此在相当长的一段时间内,口令还是作为重要的鉴别技术存在。
GB/T 31508—2015主要讨论了证书策略(Certificate Policy,CP),即数字证书可以应用于什么场景,以及适用于什么样的安全要求等。只有这样,证书的依赖方才可以阅读响应的证书策略,从而正确地评估证书的安全程度,例如,某证书仅用于测试,或者仅用于访问网络,或者仅用于金融交易并且有10万元担保。
GB/T 29767—2013将桥CA证书策略划分为4个应用级和1个测试级,并参考RFC 3647对各个级别的证书策略做了明确说明。
GB/T 26855—2011也主要参考RFC 3647规定了证书策略和认证业务声明(Certificate Practice Statement,CPS)應该共同遵守的文档标题框架。
GB/T 25061—2010主要参考RFC 3275,规定了创建和表示XML数字签名的语法和处理规则。
GB/T 25064—2010定义了电子签名与主要参与方,电子签名的类型、验证和仲裁要求,并且规范了电子签名的数据格式,包括基本数据格式、验证数据格式和签名策略数据格式。
GB/T 25065—2010规定了产生可靠电子签名的签名生成应用程序(Signature Creation Application,SCA)的要求。
GB/T 21054—2007按照GB 17859—1999《计算机信息系统 安全保护等级划分准则》中5个安全等级的划分,对PKI系统安全保护进行了等级划分。
GB/T 21053—2007根据GB/T 21054—2007的等级划分,规定了不同PKI等级的安全要求。
GB/T 20520—2006主要对时间戳协议的请求响应消息格式作出了规定,并在此基础上增加了对时间戳的产生和办法方式、时间戳系统组成、时间戳管理、时间戳系统安全的要求。
GB/T 19713—2005主要参考RFC 2560,规定了一种无须请求证书撤销列表(CRL)即可查询数字证书状态的机制(即在线证书状态协议-OCSP)。
GB/T 19714—2005主要依据RFC 2510,描述了PKI中的证书管理协议,定义了与证书产生和管理相关的各方面所需要的协议消息,这些消息主要包括申请证书、撤销证书、密钥更新、密钥恢复和交叉认证等。
表3中为现行的PKI国家标准中被分类至集成应用与身份管理的集成应用2项标准。
GB/T 29241—2012从PKI系统和PKI应用的5个互操作能力等级,完成了分等级的PKI互操作性评估准则,为PKI系统和PKI应用提供了互操作能力等级评估的依据。GB/T 19771—2005主要讨论了公钥证书的产生、更新和撤销,签名的产生和验证,以及证书和证书认证路径检验等内容。
表4是现行国家标准中分类为集成应用及身份管理的身份管理2项标准。
GB/T 35288-2017规定了电子认证服务机构的岗位划分及从业人员岗位技能要求。GB/T 35289-2017规定了电子认证服务机构业务服务质量要求、保障服务质量要求及服务质量分级,明确了电子认证服务机构服务质量的具体指标要求。
表5是已经废止的标准,仅供参考,不再详细介绍。
4 小结
综上所述,PKI可以认为是一系列的规范和标准,在此基础上发展出的为了实现安全基础服务目的的技术都可以称为PKI。从这个角度讲,需要强调两点:第一,标准化是PKI的内在要求,或者说,PKI本身就是一类标准的总称;第二,PKI是广义词汇,原则上说,任何以公钥密码技术为基础的安全基础设施都是PKI。基于此,本文首先介绍了PKI基础标准X.509(ISO/IEC 9594-8),然后介绍了目前的PKI相关国家标准,其中包括现行标准19项,即将实施标准2项,已经废止的标准7项。