1. 公钥基础设施简介
(1)PKI的概念
公钥基础设施,利用公钥理论和技术建立的提供信息安全服务的基础设施。在公钥体制中,加密密钥与解密密钥各不相同,发送者利用接收者的公钥发送加密信息,接收者利用自己的私钥进行解密。这种方式保证了信息的机密性、不可抵赖性。
公钥体制主要用于CA认证、数字签名和密钥交换等。
PKI基于公开密钥理论和技术的安全体系,提供信息安全服务的具有普适性的安全基础设施;
该体系在统一的安全认证标准和规范基础上,提供在线身份认证,是CA认证、数字证书、数字签名以及相关安全应用组件模块的集合;
PKI是认证、完整性、机密性和不可否认性的技术基础,从技术上解决网上身份认证、信息完整性和抗抵赖等安全问题,为网络应用提供可靠的安全保障。
PKI的核心是要解决信息网络空间中的信任问题,确定信息网络空间中各种主体身份的惟一性、真实性和合法性,保护信息网络空间中各种主体的安全利益。
PKI是信息安全基础设施的一个重要组成部分,是一种普遍适用的网络安全基础设施;授权管理基础设施、可信时间戳服务系统、安全保密管理系统、统一的安全电子政务平台等的构筑都离不开它的支持。数字证书认证中心CA、审核注册中心RA(Registration Authority)、密钥管理中心KM(Key Manager)都是组成PKI的关键组件。
(2) PKI的内容
PKI是以公开密钥技术为基础,以数据的机密性、完整性和不可抵赖性为安全目的而构建的认证、授权、加密等硬件、软件的综合设施。根据美国国家标准技术局的描述,在网络通信和网络交易中,特别是在电子政务和电子商务业务中,最需要的安全保证包括四个方面:身份标识和认证、保密或隐私、数据完整性和不可否认性。
PKI可以完全提供以上四个方面的保障,它所提供的服务主要包括以下三个方面。
①认证。在现实生活中,认证方式通常是两个人事前协商,确定一个秘密,依据这个秘密相互认证。随着网络规模的扩大,两两协商几乎不可能;透过一个密钥管理中心来协调困难也会很大,当网络规模巨大时,密钥管理中心成为网络通信的瓶颈。PKI通过证书进行认证,认证时对方知道你就是你,但却无法知道你为什么是你。在这里,证书是一个可信的第三方证明,通过它,通信双方可以安全地进行互相认证,而不用担心对方是假冒的。
②支持密钥管理。通过加密证书,通信双方可以协商一个秘密,而这个秘密可以作为通信加密的密钥。在需要通信时,可以在认证的基础上协商一个密钥。在大规模的网络中,密钥恢复也是密钥管理的一个重要方面。PKI提供可信的、可管理的密钥恢复机制,PKI提供全面的密钥恢复与管理能力,保证网上活动的健康有序发展。
③完整性与不可否认。完整性与不可否认是PKI提供的最基本的服务。PKI提供的完整性是可以通过第三方仲裁的,并且这种由第三方进行仲裁的完整性是通信双方都不可否认的。不可否认是通过PKI的数字签名机制来提供服务的,当法律许可时,该“不可否认性”可以作为法律依据。正确使用时,PKI的安全性高于纸面图章系统。
(3) PKI的体系结构
一个标准PKI系统具备以下主要内容:
①认证机构CA,是PKI的核心执行机构,通常称为认证中心。CA还包括RA,它是数字证书的申请注册、证书签发和管理机构。
CA主要职责:验证并标识证书申请者身份;对申请者的信用度、申请证书的目的、身份的真实可靠性等进行审查,确保证书与身份绑定的正确性。
确保CA用于签名证书的非对称密钥的质量和安全性。CA用于签名的私钥长度必须足够长,并且私钥必须由硬件卡产生,私钥不出卡。
管理证书信息资料。管理证书序号和CA标识,确保证书主体标识的惟一性,防止证书主体名字的重复。在使用中检查证书有效期,不使用过期或作废证书,确保网上交易安全。维护作废证书列表CRL,因某种原因证书作废,必须将其作为“黑名单”发布在CRL中,以供交易时在线查询,防止交易风险。对已签发证书的使用全过程进行监视跟踪,作全程日志记录,以备发生交易争端时,提供公正依据,参与仲裁。
由此可见,CA是保证电子商务、电子政务、网上银行、网上证券等交易的权威性、可信任性和公正性的第三方机构。
②证书和证书库。证书是数字证书或电子证书的简称,它符合X.509标准,是网上实体身份的证明。证书是由具备权威性、可信任性和公正性的第三方机构签发的,因此,它是权威性的电子文档。
证书库是CA颁发证书和撤消证书的集中存放地,可供公众进行开放式查询。一般来说,查询的目的有两个:其一是想得到与之通信实体的公钥;其二是要验证通信对方的证书是否已进入 “黑名单”。证书库支持分布式存放,即可以采用数据库镜像技术,将CA签发的证书中与本组织有关的证书和证书撤消列表存放到本地,以提高证书的查询效率,减少向总目录查询的瓶颈。
③密钥备份及恢复,是密钥管理的主要内容,如果用户的解密数据的密钥丢失,从而使已被加密的密文无法解开。
为避免这种情况的发生,PKI提供了密钥备份与密钥恢复机制:当用户证书生成时,加密密钥即被CA备份存储;当需要恢复时,用户只需向CA提出申请,CA就会为用户自动进行恢复。
④密钥和证书的更新。一个证书的有效期是有限的,这种规定在理论上是基于当前非对称算法和密钥长度的可破译性分析;在实际应用中是由于长期使用同一个密钥有被破译的危险。因此,证书和密钥必须有一定的更换频度,PKI对已发的证书进行密钥更新或证书更新。
证书更新由PKI系统自动完成,不需要用户干预。用户在使用证书的过程中,PKI会自动到目录服务器中检查证书的有效期,当有效期结束之前,PKI/CA会自动生成一个新证书来代替旧证书。
⑤证书历史档案。从密钥更新的过程,经过一段时间后,每个用户都会形成多个旧证书和至少一个当前新证书。旧证书和相应的私钥组成了用户密钥和证书的历史档案,记录整个密钥历史。例如,用户几年前用自己的公钥加密的数据无法用现在的私钥解密,那么该用户就必须从他的密钥历史档案中,查找到几年前的私钥来解密数据。
⑥客户端软件。为方便客户操作,解决PKI的应用问题,在客户装有客户端软件,以实现数字签名、加密传输数据等功能。
⑦交叉认证。交叉认证就是多个PKI域之间实现互操作。
(4) PKI的相关标准
从PKI体系建立与发展历程来看,PKI标准主要包括:
①X.509(1993)信息技术之开放系统互联鉴别框架。X.509由国际电信联盟(ITU-T)制定的数字证书标准。X.500确保用户名称惟一性,X.509为用户名称提供通信实体鉴别机制,规定实体鉴别过程中适用的证书语法和数据接口。X.509证书由用户公共密钥和用户标识符组成,还包括版本号、证书序列号、CA标识符、签名算法标识、签发者名称、证书有效期等信息。
②PKCS系列标准。由RSA实验室制订的PKCS系列标准,是一套针对PKI体系的加解密、签名、密钥交换、分发格式及行为标准,该标准目前已经成为PKI体系中不可缺少的一部分。
③OCSP在线证书状态协议。OCSP(Online Certificate Status Protocol)是IETF颁布的用于检查数字证书在某一交易时刻是否仍然有效的标准。该标准提供给PKI用户一条方便快捷的数字证书状态查询通道,使PKI体系能够更有效、更安全地在各个领域中被广泛应用。
(5) PKI的应用
①虚拟专用网络(Virtual Private Network),将分布在不同地点的物理网络通过Internet连接而成的逻辑虚拟子网。VPN利用PKI与PMI和访问控制技术提高安全性,VPN需要认证、机密、完整、不可否认等完善的安全技术。PKI技术是架构VPN的基础,为路由器之间、PKI与PMI之间或路由器和PKI与PMI之间提供加密和认证的通信。
②安全电子邮件,一种标准信息交换工具,安全需求是完整、认证和不可否认。利用PKI技术,用户可以对他所发的邮件进行数字签名。安全电子邮件协议S/MIME (Secure Multi-purpose InternetMail Extension),是一个加密和签名邮件协议,实现依赖于PKI技术。
③Web安全,Web交易安全问题:诈骗、泄漏、篡改、攻击。解决Web安全问题,入手点是浏览器。IE和Firefox支持SSL协议(Secure Sockets Layer),SSL是一个在传输层和应用层之间的安全通信层。利用PKI技术,SSL协议允许在浏览器和服务器之间进行加密通信。
2. 证书权威(CA)
CA是在PKI基础之上的产生和确定数字证书的第三方可信机构(trusted third party),主要功能发放身份证书,管理证书正常使用。
ca具有权威性、可信赖性及公正性,承担公钥体系中公钥合法性检验。
ca为每个使用公钥的用户发放一个数字证书,其作用是证明证书中列出的用户,合法拥有证书中列出的公钥。
ca数字签名,攻击者不能伪造和篡改证书,ca负责吊销证书、发布证书吊销列表(crl),负责产生、分配和管理网上实体所需的数字证书。
(1) CA的功能和组成
①CA认证体系组成
一ca,负责产生和确定用户实体的数字证书;
二审核授权部门ra,审查证书申请者的资格,决定是否同意给申请者发放证书;承担资格审核错误引起的一切后果。
三证书操作部门cp,为已授权用户发放和管理证书,承担运营错误产生的一切后果,包括失密和为没有授权的人发放证书,可由ra或第三方担任。
四密钥管理部门km,负责产生实体加密钥对,提供解密私钥托管服务。
五证书存储池(dir),包括网上所有的证书目录。
在ca认证体系中,各组成部分彼此之间认证关系:
用户与ra之间:用户将自己身份信息提交ra、请求ra审核,ra审核后、安全地将该信息转发ca。
ra与ca之间:ra以安全可靠方式把用户身份识别信息传送ca。ca以安全可行方式将用户数字证书传送ra或直接传送用户。
用户与dir之间:用户可以在dir中查询、撤销证书列表和数字证书。
dir与ca之间:ca将自己产生的数字证书直接传送给目录dir,登记在目录中,在目录中登记数字证书要求用户鉴别和访问控制。
用户与km之间:km接受用户委托,代表用户生成加密密钥对;用户所持证书的加密密钥必须委托km生成;用户可以申请解密私钥恢复服务;km为用户提供解密私钥恢复服务。用户解密私钥必须统一在km托管。
ca与km之间:二者之间用通讯证书来保证安全性。通讯证书是ca与km、上级或下级ca进行通讯时使用的计算机设备证书,这些专用设备必须安装ca发布的专用通讯证书、km、上级或下级认证机构专用通讯计算机设备所持有的通讯密钥证书和认证机构的根证书。
②CA认证体系的职责
验证并标识公开密钥信息提交认证的实体的身份;确保用于产生数字证书的非对称密钥对的质量;保证认证过程和用于签名公开密钥信息的私有密钥的安全;
确保两个不同的实体未被赋予相同的身份,以便把它们区别开来;管理包含于公开密钥信息中的证书材料信息,例如数字证书序列号、认证机构标识等;维护并发布撤销证书列表;
指定并检查证书的有效期;通知在公开密钥信息中标识的实体,数字证书已经发布;记录数字证书产生过程的所有步骤。
③CA认证体系的功能
签发数字证书、管理下级审核注册机构、接受下级审核注册机构的业务申请、维护和管理所有证书目录服务、向密钥管理中心申请密钥、实体鉴别密钥器的管理等等。
(2) CA自身证书的管理
自身证书的查询。PKI CA具有报表功能,它能够在CA中产生一个用户清单,用户可以使用这一工具对所有CA的证书和状态进行查询。
CRL查询。通过特定的应用程序和工具包,可以访问CRL。
查询操作日志。PKI安装了审计跟踪文件,提供了一个非常广泛的存档和审计能力,用于记录涉及认证的所有日常交易,包括管理员注册和注销以及用户初始化等。每个审计记录是自动创建的管理员可以查询所有审计记录,但不能修改。
统计报表输出。PKI提供了创建报表的灵活方法,包括固定格式和自定义格式的报表。这些报表内容可以是统计各类用户表单,或有关用户密钥恢复的信息等。
(3) CA对用户证书的管理
如果用户想得到一份证书,他首先需要向CA提出申请。CA对申请者的身份进行认证后,由用户或CA生成一对密钥,私钥由用户妥善保存,CA将公钥与申请者的相关信息绑定,并签名,形成证书发给申请者。如果用户想验证CA签发的另一个证书,可以用CA得公钥对此证书上的签名进行验证,一旦验证通过,该证书就认为是有效地。CA除了签发证书,还负责证书和密钥的管理。
(4) 密钥管理和KMC
密钥管理是数据加密技术中的重要一环,密钥管理的目的是确保密钥的安全性。
一个好的密钥管理系统应该做到:密钥难以被窃取;在一定条件下窃取了密钥也没有用,密钥有使用范围和时间的限制;密钥的分配和更换过程对用户透明,用户不一定要亲自掌管密钥。
密钥管理中心(Key Management Center,KMC)向CA服务提供相关密钥服务,如密钥生成、密钥存储、密钥备份、密钥恢复、密钥更新和密钥销毁等,如图3-28所示。
⑴密钥生成。
KMC职能是为用户产生加密密钥对、提供解密私钥的托管服务,加密密钥对是在独立设备中产生,支持在线生成和离线密钥池方式。
①认证机构将证书序列号、法人实体的验证签名公钥、法人相关信息提交给KMC,请求KMC代法人产生加密密钥对。密钥生成请求信息括:法人永久性ID;实体鉴别密码器m;证书服务编号;密钥长度。
②KMC在收到认证机构提交的密钥对产生请求后立即产生加密密钥对。
③KMC向CA中心返回处理结果,包括:加密公钥;经加密的解密私钥;KMC对密钥对的签名。
密钥对产生有二种方式:签名密钥使用者自己产生,只有使用者自己知道密钥,不会泄漏给第三者。在CA中心产生加密密钥,在实体的保护下将密钥交给使用者,并将产生密钥有关的数据及密钥本身销毁。
当用户证书生成后,用户信息通过RA上传到KMC,与加密密钥一起存到当前库进行托管保存,以便以后查询和恢复操作。所有的托管密钥都必须以分割和加密的方式保存在密钥数据库服务器中。
⑵密钥存储。
双证书绑定同一个用户,其私钥保存硬件介质,签名证书私钥是用户自己产生。信任方可以相信,证书中包含的公钥验证的信息确系证书所绑定的实体签名,保证信息的完整性和不可抵赖性。
加密证书私钥由KMC产生,在该机构数据库中备份了用户私钥,实现用户密钥托管。用户和KMC都拥有用户加密证书所对应的私钥。
用户本地存储私钥,口令加密保存;当需要使用私钥时,输入口令对话框,读取相应私钥进行相应的操作。
用户公钥明文和用户信息存储在一个数据表中,私钥经过加密、采用根CA公钥进行加密,存储与另一表中;其读取应输入相应管理员口令,公钥与私钥可以通过ID进行联系。
⑶密钥传输。
用户提交申请信息,同时在用户端产生签名公钥与私钥,公钥经过加密上传CA中心,经审核后产生双证书;使用该用户的签名公钥进行加密返回用户,返回方式以使用网站挂起或用户邮箱进行发送
⑷密钥备份。
①冷备(Cold Standby),通过定期的对生产系统数据库进行备份,并将备份数据存储在磁盘等介质。备份数据平时处于一种非激活的状态,直到故障发生导致生产数据库系统不可用、才激活。
②热备(Warm Standby),需要一个备用的数据库系统。与冷备相似,只不过当生产数据库发生故障时,通过备用数据库的数据进行业务恢复。因此,热备的恢复时间比冷备大大缩短。
⑸密钥和证书的更新。
证书更新的过程和证书签发非常相似,因为用户只是更新证书,在申请证书时己经通过审核,在证书更新时不再需要审核过程。
①CA依其实际需要,对新旧证书的有效期限,制定自己的策略。前后证书的期限可以重叠或不重叠。若允许有效期重叠,可以避免CA可能在同一失效期限,必须重新签发大量的证书问题。
②已逾期证书需从目录服务中删除。CA提供不可否认服务,需将旧证书保存一段时间;以备将来有争议时,验证签名解决争议之用。
⑹查询。
OCSP是一个简单的请求/响应协议,使得客户端应用程序可以测定所需验证证书体系的状态。一个OCSP客户端发送一个证书状态查询给一个OCSP响应器,等待响应器返回一个响应。
协议对OCSP客户端和OCSP响应器之间需要交换的数据进行描述。
OCSP请求包含:协议版本、服务请求 、目标证书标识和可选的扩展项等。
OCSP响应器对收到的请求返回一个响应;OCSP响应器返回出错信息时,该响应不用签名;响应器返回确定的回复,该响应必须进行数字签名。
每一张被请求证书回复中包含证书状态值,正常、撤销、末知。“正常”状态表示证书没有被撤销,“撤销”状态表示证书己被撤销,“未知”状态表示响应器不能判断请求的证书状态。
⑺注销。
当有一些特殊状况时,CA必须停止某些证书的使用,注销此证书。例如使用者在证书有效期未满之前,自觉其密钥不安全,或是CA对此使用者已丧失管辖权等状况,必须注销此证书。
(5) 时间戳服务
时间戳是一个具有法律效力的电子凭证,是各种类型电子文件在时间、权属及内容完整性方面的证明。时间戳能证明用户在什么时间拥有一个什么样的电子文件。
时间戳主要用在商业秘密保护、工作文档的责任认定、著作权保护、原创作品、软件代码、发明专利、学术论文、试验数据、电子单据等方面。
时间戳颁发必须由可信第三方时间戳服务机构提供可信赖的且不可抵赖的时间戳服务,其产生的时间戳具有法律效力。时间戳服务中心TSA由国家授时中心与共同建设的权威第三方时间戳服务机构。
时间戳服务是TSA通过我国法定时间源和现代密码技术结合而提供的一种第三方服务,时间戳证明数据电文产生的时间及内容完整性。
解决了数据电文的内容和时间易被人为篡改、证据效力低、当事人举证困难的问题,按照《中华人民共和国电子签名法》规定,加盖时间戳的数据电文可以作为有效法律证据,达到“不可否认”或“抗抵赖”的目的。
(6) 数字证书的定义
从数字证书技术角度,CA证书分为两类:SSL证书和SET证书。SSL证书服务于银行对企业、企业对企业的电子商务活动;SET证书服务于持卡消费、网上购物。
SSL证书功能是通过公钥证明持证人的身份,SET证书作用是通过公钥证明、持证人在指定银行拥有该信用卡账号、证明了持证人的身份。
①个人身份证书,符合X.509标准的数字安全证书,证书包含个人身份信息和个人公钥,用于标识证书持有人的个人身份。数字安全证书和对应私钥存储E-key,用于个人进行合同签定、定单、录入审核、操作权限、支付信息等活动中标明身份。
②企业机构身份证书,符合X.509标准的数字安全证书,证书包含企业信息和企业公钥,用于标识证书持有企业的身份。数字安全证书和对应私钥存储E-key或IC卡,用于企业在电子商务方面的合同签定、网上证券交易、交易支付信息等方面。
③支付网关证书,证书签发中心针对支付网关签发的数字证书,是支付网关实现数据加解密的主要工具,用于数字签名和信息加密。支付网关证书仅用于支付网关提供的服务。
④服务器证书,符合X.509 标准的数字安全证书,证书包含服务器信息和服务器公钥,在网络通讯中用于标识和验证服务器的身份。数字安全证书和对应私钥存储E-key。服务器软件利用证书机制保证与其它服务器、客户端通信时身份的真实性、安全性、可信任度。
⑤企业机构代码签名证书,CA 中心签发给软件提供商数字证书,包含软件提供商身份信息、公钥及CA签名。软件提供商使用代码签名证书对软件签名后放到Internet上,用户下载该软件时得到提示,可以确信软件来源、软件自签名后到下载前、没有遭到修改或破坏。
⑥安全电子邮件证书,符合X.509标准的数字安全证书,通过IE申请,用IE申请的证书存储windows注册表。用于安全电子邮件或向需要客户验证的WEB服务器表明身份。
⑦个人代码签名证书,CA中心签发给软件提供人数字证书,包含软件提供个人身份信息、公钥及CA签名。软件提供人使用代码签名证书对软件签名后放到Internet上,用户下载该软件时得到提示,可以确信软件来源,软件自签名后到下载前、没有遭到修改或破坏。
@木子雨辰,将一直带给大家信息安全知识,由浅至深、采用体系化结构逐步分享,大家有什么建议和问题,可以及留言,多谢大家点击关注、转发,谢谢大家。