收藏 分享(赏)

数字证书和数字签名.docx

上传人:dzzj200808 文档编号:2294248 上传时间:2018-09-09 格式:DOCX 页数:23 大小:438.76KB
下载 相关 举报
数字证书和数字签名.docx_第1页
第1页 / 共23页
数字证书和数字签名.docx_第2页
第2页 / 共23页
数字证书和数字签名.docx_第3页
第3页 / 共23页
数字证书和数字签名.docx_第4页
第4页 / 共23页
数字证书和数字签名.docx_第5页
第5页 / 共23页
点击查看更多>>
资源描述

1、数字证书和数字签名本文力图以最浅显的语言解释数字证书和数字签名的科学原理,以及它们对网上交易信息的安全保障机制,可供各位网民参考。数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。 数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。认证中心(

2、CA)作为权威的、可信赖的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心颁发的数字证书均遵循 X.509 V3 标准。X.509 标准在编排公共密钥密码格式方面已被广为接受。X.509 证书已应用于许多网络安全,其中包括 IPSec(IP 安全) 、SSL、SET、S/MIME。网上银行交易中的安全问题在网上交易中,交易双方互不见面,有两个安全问题是会引起担心的。第一个问题是交易双方身份是否真实,会不会被人假冒。换句话说,就是在网上发送交易信息的主体是否是真实的。第二个问题是有关交易的信息,如对方的银行账号、金额等是否属实,有没有被人篡改过。在传统交易中,交易者身份的真实

3、性通过各种证件的出示和验证得到检验;交易信息的真实有效性则通过签名盖章来解决。然而在网上交易中,传统的实物证件的查验和手写的签名盖章都不可能实现。那这两个问题又是怎么解决的呢?有办法。那就是用含有先进科技的数字证书和数字签名。公钥密码技术保护交易信息的安全我们还是从网上传递的信息讲起。两个人在互联网上作交易,保护交易信息的手段有多种,其中最重要的手段是信息加密技术。加了密的信息只有用密钥才能解开,双方可以提前约定密钥,只要密钥妥善保管,只有买卖双方知道,任何其他人破不了密,交易信息的传递就安全。现代的密码技术强度很大,可以充分地保证密码信息的安全。 (请读者牢记这一事实,它是数字签名和数字证书

4、存在的基础。 )但是在互联网上,参加交易的人很多,例如银行,要面对成千上万的客户。想要一个一个地与每个客户约定密钥就变得不可能了。为了解决这个问题,一种新型的密码技术公钥密码技术应运而生。在这种密码技术中,每个通信者拥有一对独特的密钥公钥和私钥。公钥可以在网上公开,私钥则密不示人,而且是唯一的。如果某甲要向某乙发送交易信息,就用在网上公开的某乙的公钥来加密信息,送出去,某乙收到加密的信息后可以用自己的私钥来解密。其他人即使截获了加密的信息也无计可施,因为没有某乙的私钥是解不了密的。这样就保证了交易信息的安全。反过来,某乙向某甲发信息的过程可依此类推。数字签名的原理利用公钥技术还可以达到另一个目

5、的,就是解决信息的完整性和有效性。如果某甲用自己的私钥加密交易信息,传给某乙,某乙可以用某甲的公钥来解密信息。这时,这个被加密的交易信息,例如支付的金额,账号等就是完整、有效的,同时也是不可抵赖的。这是因为某甲的私钥是世界唯一的,别人不可能掌握,如果有人篡改了加密信息,某乙将无法解密。那么,从效用上讲,这个用私钥加密交易信息的动作就像为一个文件签名盖章一样,经过“签名” 后的信息是完整、有效的,不可篡改,也不可抵赖。当然,实际上的数字签名机制和过程比这要复杂一些。如果交易信息很长,用私钥去加密信息将花费较长的时间,效率太低,用户无法接受。因此需要使用一种数学算法哈希算法 先对这段信息作一次数学

6、变换,把这段信息进行压缩,形成了一段短短的“数字摘要” ,让数字摘要来“代表” 信息本身。可以通过检验数字摘要,借以判断信息本身是否发生了改变。这样,我们才可以构建真正实用的数字签名。某甲在发信前使用哈希算法求出待发信息的数字摘要,然后用私钥对这个数字摘要进行加密而形成一段信息,这段信息就称为数字签名。某甲将这个数字签名信息附在待发信息后面,一起发送过去。某乙收到信息后,一方面用某甲的公钥对数字签名解密,得到了摘要 H;另一方面把收到的信息本身用同样的哈希算法求出另一个摘要 H,可称为摘要的副本。再把 H 和 H相比较,看看两者是否相同。根据哈希算法的特性,如果两个摘要 H 和 H完全符合,证

7、明信息是完整的;如果不符合,就说明信息被人篡改了。 由于摘要一般只有 128 位或 160 位比特,比信息本身要短千百倍,数字签名的过程一般在一秒钟内即可完成。由于数字签名具有数学严格性,黑客对交易信息哪怕只改动一个字一个比特,系统都会发现识破。又因为私钥是不可仿造、伪造的,因此从某种意义上说,数字签名比手写签名更严格可靠。2004 年国家颁发的中华人民共和国电子签名法赋予了电子签名的法律意义,其规定, “可靠的电子签名能够与手写签名、盖章一样,受到法律保护”。数字证书的原理说到这,明眼的观众一定会发现一个关键的问题,就是网上公开的公钥必须真实可靠,因为黑客也可以公布一个假的公钥冒充某甲或某乙

8、来引你上钩呀。怎么来保证这个公钥是真的呢?这时候就要用到数字证书了。我们知道,身份证是由权威机关公安局颁发的,我们相信公安局,因而我们能够通过检验身份证,相信持有某甲身份证的个人就是某甲本人。同样,数字证书也是要由权威的认证机构来颁发。例如,中国金融认证中心就是一个权威可信的认证机构,它为数百万网上银行的用户颁发了数字证书。那么,数字证书怎样完成网上身份的认证呢?把数字证书说成是网上身份证,这是一种形象的比喻。实际上,数字证书所证明的是公钥的真实性。认证中心对用户的身份进行严格的审核后,为用户颁发数字证书。它通过公钥加密技术对用户的公钥信息和用户的身份信息作了数字签名,把用户所宣称的身份信息与

9、公钥绑定在一起。于是,包含有用户个人身份信息、公钥和数字签名的一个特殊的电子文件就形成了数字证书。数字证书可以存储在硬盘里,也可以存储在软盘或 USB Key 里。存储数字证书的 USB Key在网上交易中,用户双方要互相验证这个证书,用户相信认证中心的数字签名,也就相信这个公钥是真实的,因而相信公钥的持有者所发来的信息是真实的。虽然看上去数字证书认证过程与传统的身份证认证有很大差别,但从目的和效用上看,两者是一致的。都是证明发送交易信息主体的真实性。数字证书的认证、数字签名的发生与核验都是由专用的应用软件来自动实现的,速度极快,眨眼间就完成了,用户并不需要费心做什么操作。数字证书在网上交易中

10、能够保证交易的安全。刚才我们提到了,黑客利用种种手段,盗取银行客户的密码、账号,进而企图盗窃客户帐户上的资金。如果网上银行业务采用了数字证书和数字签名的安全机制,黑客即使输入了正确的密码、账号也不能够盗走客户帐户里的资金,因为黑客不掌握客户的数字证书,也不能进行数字签名,网上银行系统就会拒绝交易,使黑客最终功亏一篑。中国人民银行、中国银监会、公安部、国家工商总局曾联合下发了关于加强银行卡安全管理预防和打击银行卡犯罪的通知 ,其中强调:持卡人开通网上银行转账的,应采用数字证书、电子签名等安全认证方式,否则单笔转账金额不应超过 1000 元人民币,每日累计转账金额不得超过 5000 元人民币。中国

11、金融认证中心发布的 2008 年度网上交易调查结果中显示,数字证书版网上银行由于其较高的安全性而被超过半数(51.7%)的个人用户所选择,而在企业网银中这一比例高达 65.1%。有人把数字证书昵称为网上交易的卫兵。请广大网上银行用户务必重视它,使用它。PKI 的核心 CA一、 什么是 CA? 为解决互联网的安全问题,世界各国信息安全业者进行了多年的研究,形成了全方位、多层次的安全解决方案。其中,目前被广泛采用的 PKI 技术,在安全解决方案中占据了重要位置,它可以保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。 一个完整地 PKI 系统是由认证机构、密钥管理中心(KM

12、C ) 、注册机构、目录服务、以及安全认证应用软件、证书应用服务等部分组成,其中认证机构(Certification Authority,CA)在 PKI 系统中居于核心地位。我们知道,为了在信息传输的过程中,确保信息的机密性、真实性、完整性和不可否认性,采用了公开密钥加密机制。而公钥机制所涉及的公钥是公开的、需要通过互联网传送。因此,需要解决的一个重要问题就是公钥的信任问题。必须有一个可信任的机构对任何一个主体公钥进行公证,证明主体的身份以及它与公钥的匹配关系。CA 就是这样的机构。为了确保 CA 的公信力,它必须具有高度的权威性、公正性和第三方性。目前在国内存在的 CA 基本上可以分为三类

13、:第一类是行业性的 CA,如中国金融认证中心(CFCA) 、海关 CA、商务部 CA(国富安 CA)等,这些 CA 是由相应行业的主管部门牵头建立的;第二类是地方性 CA,如北京 CA、上海 CA、浙江 CA 等,这些 CA 是由当地地方政府牵头建立的;第三类 CA 是商业性 CA,如天威诚信 CA。这类 CA 进行商业化经营,并不从属于任何行业或地域,但它们也必须具有良好的公信力,必须由国家主管部门审批通过才能投入运营,以确保其权威、公正性。二、CA 的基本功能 作为 CA,必须具有如下基本功能: (1)签发数字证书 (2)CA 密钥的管理 (3)接受证书申请,审核申请者身份 (4)证书管理

14、 (5)提供证书和证书状态的查询 以上功能中,最为重要的是签发证书。CA 对其签发的数字证书全部内容,包括证书用户姓名标识、公钥信息、颁发者标识、证书有效期、签名算法标识等信息,进行数字签名。从而权威地证明了证书持有者和公钥的唯一匹配关系。CA 的另一项重要功能是证书查询。CA 的证书库可以作为公钥的来源地。此外,证书有效性的查询对于安全认证也是至关重要的。由于证书遗失或其他原因,证书可能需要在失效期未到时就予以撤销。CA提供证书撤销列表(Certificate Revocation List,CRL)或其他方法供证书依赖方实时查询。CA 自己的一对密钥管理,必须确保其具备高度的机密性,防止其

15、被伪造而颠覆 CA 的权威性。在CFCA,根密钥被存放在安全的屏蔽机房,其访问受到了严格的管理。CA 的密钥由通过国家认证的加密机产生,私钥一经产生将不能通过明文方式离开加密机。这些措施保证了 CFCA 根密钥的安全与 CFCA 的权威性。三、CA 的组成部分 CA 主要由以下部分组成: 1、CA 服务器:这是 CA 的核心,是数字证书生成、发放的运行实体,同时提供发放证书的管理、证书废止列表(CRL)的生成和处理等服务。 2、证书下载中心:该中心连接在互联网上,用户通过登录 CA 网站访问证书下载中心,CA 服务器生成的证书通过证书下载中心供用户下载。 3、目录服务器:它的功能是提供数字证书

16、的存储,以及数字证书和证书撤销列表(CRL)的查询。业者有时把它称为”LDAP”,这是因为目录服务的技术标准遵循 LDAP (轻量级目录访问协议 )的缘故。4、OCSP 服务器:该服务器向用户提供证书在线状态的查询。5、密钥管理中心(KMC) :根据国家密码管理规定,加密用私钥必须由权威、可靠的机构进行备份和保管。CFCA 被授权建立 KMC,以备份和保管用户的加密密钥。 6、证书注册机构(Registration Authority,RA):它负责受理证书的申请和审核,其主要功能是接受客户证书申请并进行审核。 RA 主要是远程的, CFCA 的 RA 部署在各家用户银行、税务机关、或企业所在

17、地。因为,这样一方面便于进行客户资料的审查,另一方面也便于银行将证书与客户的帐号进行绑定,以实现认证。但即使 RA 部署在远程所在地,这些 RA 也仍然是 CA 的组成部分。此外,CFCA 还在其所在地部署了直属 CA,对一些比较零散的,不适合或者不必要建立 RA 的用户提供注册服务。图一 CA 组成示意图四、CA 的结构 一般的 PKI/CA 系统都为层次结构,这里就以 CFCA 系统结构为例来说明: 在系统设计之初,CA 系统由根 CA(1 个) 、政策 CA(3 个)和运营 CA(多个) 三部分组成,其树形结构如图二所示。图二最初设计的 CFCA 系统结构 当初设计这种结构的初衷是, C

18、FCA 希望做成全国性的金融 CA,向公众提供服务。这样根 CA 的作用主要是负责制定和审批 CA 的总策略,向政策 CA 发放证书,以及与国际其他 PKI 域的 CA 进行交叉认证。三个政策 CA 则分别负责制定和审批银行、证券、保险领域 CA 的策略,向运营 CA 发放证书。运营 CA 则负责颁发最终用户的证书。由于三层结构 CA 的证书链较长,认证速度效率较低,而且认证业务并没有按原来所设想的方向发展,政策 CA 实际上只建了 1 个,原来的初衷未能实现。因此,CFCA 后来新建的 CA 系统全部采用 RCA OCA两层的扁平结构,省却了政策 CA 这层。图三 扁平结构 CA 系统五、C

19、A 的运作 从权威性、公正性出发,大部分 CA 都是作为独立的机构运营,为用户提供 PKI 数字证书认证服务,也有一些 CA 是作为本系统的 IT 单位之一,为系统内提供证书认证服务。由于 CA 是 PKI 系统的核心,CA 的运作要求是很高的。如果 CA 出现故障停止对外服务,整个 PKI 系统就会瘫痪。因此,CA 自身的安全性显得无比重要。CA 的安全是多方面的。从物理安全上讲,要求 CA 机 房建筑必须 防火、防水、防震、防电磁辐射、防物理破坏和外人侵入。防电磁辐射是防止入侵者企图通过仪器接收计算机运算时发出的电磁波,来分析密码信息。为了达到这些目的,CA 机房墙面地板和天花板一般采用厚

20、钢板六面体焊接,门也要采用电磁屏蔽门。此外,除了一般的人工把守的门禁外,还要安装双人双指纹检测的门禁系统以及磁卡门禁记录系统。CA 系统重要的操作必须有两人以上同时在场。由于 CA 要与互联网相连,所以 CA 在网络安全防护上也要采取严密的措施以防止病毒、非授权访问和恶意攻击。为了确保 7 乘 24 小时的不中断服务,系统必须采取高冗余度的配置,要求部署灾难备份中心。CA 在人事管理上也是很严格的,在 CA 工作的员工必须安全可靠,要签署保密协议。按照信息产业部电子认证服务管理办法的规定,CA 的密码方案必须经过国家密码管理局的审批认证,CA 信息系统必须通过国家信息安全产品的评测认证,取得国

21、家认可的资质,才能投入运营。CA 的运作必须符合认证运作规范(CPS ) 。 六、认证运作规范(CPS)CPS(Certification Practice Statement)也叫认证运作规范,是关于认证机构在全部数字证书服务生命周期中的业务实践(如签发、吊销、更新)所遵循规范的详细描述和声明。在 CPS 中,提供了相关业务、法律和技术方面的细节。它涉及 CA 的运营范围,遵循标准、证书生命周期管理、 CA 的运作管理、安全管理、CRL 管理等全部范围。根据 IETF RFC 3647 (公钥基础设施证书策略和证书运行框架)以及国家信息产业部电子认证服务管理办法 、 电子认证业务规则规范等规

22、定,中国的 CPS 由九部分组成,分别是: (1)概述性描述(2)信息发布与信息管理(3)身份识别与鉴别(4)证书生命周期操作要求(5)认证机构设施管理和操作控制(6)认证系统技术安全控制(7)证书、证书吊销列表和在线证书状态协议(8)认证机构的审计(9)法律责任 这九部分内容详细地阐述了一个 CA 从诞生、运营,到生命终止的方方面面规定,是 CA 的纲领性的文件。有人形象地把 CPS 比作 CA 的宪法。不但 CA 的运营者必须严格遵守 CPS 中的规定,CA 的 CPS 还必须在网站上公布,以接受证书持有者和依赖方的查询和监督。七、CFCA 的国产化 中国的 PKI 市场起步较晚,CFCA

23、 作为国内较早的运营 CA,在 2000 年正式对公众提供服务。由于当时国内并没有成熟的 CA 软件提供商,经过严格的国际招标流程,结果, CFCA 选择采用 Entrust 公司提供的 CA 系统软件产品进行认证服务。在 CFCA 运营之初,Entrust CA 软件由于其严谨的设计,强大丰富的功能,对CFCA 业务发展起到了积极的推动作用。但随着客户的增加,其弊端也不断的暴露出来:由于其本土化能力有限,产品支持是一个难题,困扰着 CFCA 的业务拓展;同时其高昂的收费策略也影响了 CFCA 的持续发展。 随着国内 CA 产品系统的日渐成熟,以及国家对于 CA 业务的重视程度不断提高,200

24、2 年,在科技部和人民银行的大力支持下,CFCA 国产化改造作为国家 863 项目之一正式启动了。经过各方努力,2004 年底 CFCA 国产化 CA 项目宣告完成,正式对外提供服务。截至 2007 年 9 月,CFCA 国产化系统共发放证书50 万余张。同时,CFCA 开发人员经过多年的开发和经验积累,不断向客户提供具有自主知识产权的丰富多彩的证书应用软件。国产 PKI 系统正成为 CFCA 的骄傲,推动着中国的信息安全事业更好地向前发展。安全认证应用软件安全认证应用软件是一类基于 PKI 机制实现的信息安全软件。主要用来在 PKI 的基础上为用户提供数字签名、数字信封、身份认证、安全传输等

25、安全服务。PKI 是 “Public Key Infrastructure”的缩写,意为“ 公钥基础设施”。简单地说,PKI 技术就是利用公钥理论和技术建立的提供信息安全服务的基础设施。安全认证应用软件为应用系统和 PKI 之间架起了一道桥梁。PKI 利用非对称密码算法为身份认证、数字签名、安全传输提供了基础。安全认证软件利用 PKI 提供的基础实现了身份认证、数字签名、安全传输的功能。而上层应用软件则是通过安全认证软件来使用 PKI 所提供的基础安全服务。安全认证软件按照功能划分可分为两大类:安全传输和签名加密。每一大类又可以分成不同的小类。安全传输软件,顾名思义,就是通过这类软件可以实现数

26、据的安全传输。按照使用的协议进行划分又可以分为 SSL 传输软件和 SPKM 传输软件。SSL 和 SPKM 两类安全传输软件实现的原理大同小异,他们的区别是 SPKM 类安全传输软件安全性更高些,但效率要低些。综合安全性和效率的考虑,SSL 类安全传输软件使用的范围更广些。SSL 类安全传输软件包括:SSL 安全代理软件、SSL 安全网关软件和实现了 SSL 功能的应用服务器软件。签名加密软件,就是利用 PKI 机制实现了签名验签、加密解密功能的软件。按照实现方式的不同,又可以分为安全开发包和安全软件两类。安全开发包是在 PKI 基础上实现的应用调用接口,包括控件、动态链接库、jar 包等形

27、式。安全开发包实现了最基本的签名验签、加密解密的功能,同时还实现了一些基本的证书管理功能。安全软件是在 PKI 基础上实现的能够独立运行的软件。安全软件包括电子印章、桌面安全工具、代码签名工具等。安全软件在 PKI 的基础上实现了较为完善的签名验签、加密解密的功能,同时又集成了一些应用的需求在里边。下边我们就以 CFCA 自主开发的软件为例对安全认证软件做进一步的说明。安宝,这是一款可以在单机上独立运行的安全认证软件。按照上边的分类,它应该属于签名加密软件中的安全软件。它实现的功能包括:加密传输、加密保存、解密、签名、验签、签名加密、解密验签、证书管理。CFCA 证书应用工具包,这是一套安全开

28、发接口。按照上边的分类,它应该属于签名加密软件中的安全开发包。它实现的方式包括:控件、动态链接库、jar 包。实现的功能包括:消息的签名验签、消息的加密解密、文件的签名验签、文件的加密解密、证书管理。安全代理软件,这是一款支持 SSL 功能的安全认证软件。按照上边的分类,它应该属于 SSL 类的安全传输软件,它实现的主要功能就是建立安全通道,保证数据的安全传输,同时还实现了一些管理功能。安全认证软件有两种使用方式:直接为最终用户提供安全服务;集成在应用系统中为用户提供服务。直接为最终用户提供服务的方式,我们就不在这里介绍了。那么,安全认证软件是怎么和应用系统进行结合的呢,我们在这里举一个例子进

29、行说明。网上银行是一个使用安全认证软件的很好的例子。网上银行的安全通常是通过 PKI 机制来实现的。在网上银行中使用了两种安全认证软件, SSL 安全传输软件和安全开发包。我们假设在网银中使用的是 CFCA 自主开发的证书应用工具包和安全代理软件,那么他们的结合方式和实现过程如下图所示:在客户端使用的是 CFCA 的签名验签控件,服务端使用的 SSL 安全代理服务器和 java 版证书应用工具包。证书应用工具包包括客户端的控件和服务端的工具包是通过接口调用的方式集成在网银应用中的。SSL 安全代理软件是独立的部署在客户和网银应用之间的,通过网络协议和网银应用进行结合。具体结合过程简单介绍如下:

30、1网银客户端首先与 SSL 安全代理服务器建立 HTTPS 安全连接;2网银客户端通过 HTTPS 连接向 SSL 安全代理服务器发送数据;3SSL 安全代理服务器收到网银客户端的数据后以 HTTP 方式将数据转发给网银应用;4网银应用将响应数据以 HTTP 方式发送给 SSL 安全代理服务器;5SSL 安全代理服务器收到网银应用的响应数据后,以 HTTPS 的方式转发给网银客户端;6在交易过程中,网银客户端调用 CFCA 的签名验签控件对交易数据进性签名,然后把签名数据发送给网银应用;7网银应用收到客户端发来的签名数据后,调用 CFCA 证书应用工具包进行验证签名。总之,安全认证应用软件可以

31、和电子商务、电子政务和网上银行等应用系统结合,完成身份认证、数字签名、安全传输的功能,确保应用系统的安全。CFCA 自主开发的安全认证应用产品也逐渐丰富,满足了市场对安全认证的需求。数字证书的存储和 USBKey 的安全性数字证书的产生、分发和存储首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢?他先要向 RA 提出注册申请。用户的申请经 RA 审批通过后,RA 向 CA 提交注册建立请求。CA 建立对于该用户的注册,并将注册建立结果返回给 RA。RA 将注册结果通知用户。注册结果中包含了两组数字,分别称为“参考号”和“授权码” 。用户方的软件生成一对

32、公钥和私钥。用户向 CA 提出证书请求。这个请求信息中还包含了用户的公钥和用户的可甄别名等信息,这些信息在 CA 创建证书时要用到。CA 创建该用户的数字证书。通过适当方式将证书分发给用户。CA 将证书分发给用户的途径有多种。第一种途径是带外分发(Out-of-band Distribution) ,即离线方式。例如,在北京国税的证书项目中,密钥对是由软件运营商代替客户生成,证书也是由运营商代替客户从CA 下载,然后把私钥和下载的证书一起储存在软盘里,再交给用户的。这样做的好处是免去了用户上网下载证书的麻烦。第二种途径是带内分发(In-band distribution) ,即用户从网上下载数

33、字证书到自己的电脑中。下载时,用户要向 CA 出示“参考号” 和“授权码”,以向 CA 证明自己的身份。这样做成本较低,但对使用计算机不太熟悉的用户来说,可能在下载时会碰到一些麻烦。除了以上两种方式外,CA 还把证书集中放置在公共的数据库中公布,用户可以随用随查询随调用。数字证书和私钥储存的介质有多种,可以存储在计算机硬盘、软盘、智能卡或 USB key 里。需要澄清的概念一、关于私钥的唯一性严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就

34、会因为离职员工带走私钥而无法解密。 )加密用的公/私钥对会要求在可信的第三方储存其备份。这样,加密用的私钥可能并不唯一。然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的不可否认性。在生成用户的密钥对时,用于加密的公/私钥对可以由 CA、RA 产生,也可以在用户终端的机器上用专用的程序(如浏览器程序或认证软件)来产生。用于数字签名的密钥对原则上只能由用户终端的程序自行产生,才能保证私钥信息的私密性以及通信信息的不可否认性。有人可能会产生疑问:在北京国税的证书项目中,加密和签名的密钥对都是由软件运营商代替客户生成的,这是否破坏了上述的私钥唯一性原则呢?答案是否定的。这时候,私钥的唯一性要

35、依靠法律合同的保证以及操作过程中相应制度的约束,使得不可否认性得到支持。出于这种机制,我们仍然可以认为,用户的签名私钥是唯一的。 二、证书,私钥,到底保护哪一个?我们常常听到有人说:“保管好你的软盘,保管好你的 KEY,不要让别人盗用你的证书。 ”有些教科书上也这样讲。应该说,这句话是有毛病的。数字证书可以在网上公开,并不怕别人盗用和篡改。因为证书的盗用者在没有掌握相应的私钥的情况下,盗用别人的证书既不能完成加密通信,又不能实现数字签名,没有任何实际用处。而且,由于有 CA 对证书内容进行了数字签名,在网上公开的证书也不怕黑客篡改。我们说,更该得到保护的是储存在介质中的私钥。如果黑客同时盗走了

36、证书和私钥,危险就会降临。为什么说 USB key 安全性好不同的存储介质,安全性是不同的。如果证书和私钥储存在计算机的硬盘里,计算机一旦受到黑客攻击, (例如被埋置了木马程序)证书和私钥就可能被盗用。使用软盘或存储型 IC 卡来保存证书和私钥,安全性要比硬盘好一些,因为这两种介质仅仅在使用时才与电脑相连,用完后即被拔下,证书和私钥被窃取的可能性有所降低。但是黑客还是有机会,由于软盘和存储型 IC 卡不具备计算能力,在进行加密运算时,用户的私钥必须被调出软盘或 IC 卡进入外部的电脑,在这个过程中就会造成一定的安全隐患。使用智能卡(含 CPU 的 IC 卡)储存数字证书和私钥是更为安全的方式。

37、为什么这样说呢?原来智能卡具有一定的计算机的功能,芯片中的 CPU 就是一台小小的计算机。产生公私密钥对的程序(指令集)是智能卡生产者烧制在芯片中的 ROM 中的,密码算法程序也是烧制在 ROM 中。公私密钥对在智能卡中生成后,公钥可以导出到卡外,而私钥则存储于芯片中的密钥区,不允许外部访问。智能卡中密钥文件存储在 E2PROM 之中。对密钥文件的读写和修改都必须由卡内的程序调用。从卡接口的外面,没有任何一条命令能够对密钥区的内容进行读出、修改、更新和删除、 。除非设计和编写卡操作系统(COS) 的人自己在 COS 上留了后门,只有他才知道如何从外部调出密钥区的内容。但我们可以排除黑客与 CO

38、S 设计者相勾结的这种几率极小的可能性。在加密和签名的运算过程中,外部计算机中的应用软件使用智能卡 API 调用的方式,输入参数、数据和命令,启动智能卡内部的数字签名运算、密码运算等,并获得返回结果。由于智能卡内部的 CPU 可以完成这些操作,全过程中私钥可以不出智能卡介质,黑客的攻击程序没有机会去截获私钥,因此这就比证书和私钥放在软盘或硬盘上要安全得多。从物理上讲,对智能卡芯片中的内容作整体拷贝也是几乎不可能的。虽然听说有人能够从智能卡芯片在操作过程中发生的微弱的电磁场变化,或者 I/O 口上反映出的微弱的电平变化中分析出芯片中的代码。但现在国际上对智能卡生产商的技术要求很高,要求上述的指标

39、要低到不能够被测出来。国际上能够生产智能卡的公司只有少数几家,他们都采用了种种安全措施,确保智能卡内部的数据不能用物理方法从外部拷贝。USB Key 和智能卡除了 I/O 物理接口不一样以外,内部结构和技术是完全一样的,其安全性也一样。只不过智能卡需要通过读卡器接到电脑的串行接口上,而 USB Key 通过电脑的通用串行总线(USB)接口直接与电脑相接。另外,USB 接口的通信速度要远远高于串行接口的通信速度。现在出品的电脑已经把USB 接口作为标准配置,而使用智能卡则需要加配读卡器。出于以上原因,各家 CA 都把 USB Key 作为首选的证书和私钥存储介质而加以推广。美中不足的是目前 US

40、B Key 的成本还略显昂贵,各家银行在推行USB Key 介质的证书时,要加收 50 至 80 元的成本费。仍需注意的问题这里需要指出的是,有些号称智能卡的产品实际上只是不含 CPU 的存储型 IC 卡,它仅仅具有存储功能。上文已经介绍过,存储型 IC 卡的安全性与软盘相仿,对于这两种不同类型的 IC 卡,用户需要甄别清楚。第二个问题是,尽管智能卡在设计和生产过程中,对安全机制给以了充分的考虑和保证,然而,由于人为因素,也可能带来安全隐患。例如智能卡上提供一个闪存(flash)随机存储区域,是供写入一般用户数据或增加卡片功能的程序之用的。敏感的数据和程序不允许写在闪存区,必须写在安全存储区。

41、制作智能卡时,安全区要通过硬件方法做掩模处理。硬件的掩模处理费工费时成本高,一般需要 3 个月。有些卡商为了降低成本缩短工期迎合客户要求,将应该放在安全区中的敏感数据和程序放在闪存区中,闪存区里的内容是可以从卡片外部进行读写的,这就造成了可能被黑客侵入的安全隐患。这就要求我们对合作的 IC卡厂商的工艺流程也要仔细审查。另外,为了防止 USB key 不慎丢失而可能被他人盗用,不少证书应用系统在使用过程中还设置了口令认证机制。如口令输入得不对,即使掌握了 USB key,也不能登录进入应用系统。这种双因素认证机制可以使 USB key 更加安全可靠,值得提倡。关于信任模型与交叉认证本篇文章介绍建

42、立信任关系的概念,在此基础上解决不同 PKI(公钥基础设施)的互联互通,即交叉认证,也就是通常所说的证书信任传递问题。多个认证机构之间的信任关系必须保证所有的 PKI 用户不必依赖和信任唯一的认证机构CA( Certificate Authority) ,否则无法扩展和互通。我们的目的是确保一个认证机构所签发的身份证明能够被另一个认证机构的依赖方所信任。所谓信任模型就是提供了一个建立和管理信任关系的框架。在公钥基础设施中,当两个认证机构中的一方给对方的公钥或双方相互给对方的公钥颁发证书时,两者间就建立了这种信任关系。信任模型描述了如何建立不同认证机构之间的认证路径以及寻找和遍历信任路径的那些规

43、则。信任模型的建立和交叉认证的实现是非常重要的。要实现电子商务或网上银行的跨行交易,就必须在全国甚至全世界范围内建立可信的身份,由许多不同的可信的 PKI 域来证明全球各种人的身份。我们暂且不说 B2C 上亿数量的百姓身份认证工作量,就只考虑 B2B 公司中的证书用户,那也需要几万个 PKI 信任域及潜在的数百万个身份打交道。这就导致了在大量人群中建立信任关系的必要性和建立信任关系时要保持较少的中间人的要求之间产生了一种矛盾,PKI 域的互联互通,使得在大量人群中间建立可信身份变得容易了。这种多个 PKI 中实体的互认,是借助于证书的信任传递所完成的。信任模型有很多结构,如层次信任模型、网状信

44、任模型、信任列表、桥接模型(既混合模型)等等,在众多的这些模型中,层次模型是应用得比较多的模型,因为它有很多优点,特别是适合完全中国金融界实际情况,本篇主要讲层次模型。1 、认证机构的严格层次结构定义:认证机构 CA 的严格层次结构可以描绘为一棵倒置的树,树根在顶上,树枝向下伸展,树叶在最下面的末端。在这棵倒置的树上,根代表一个对整个 PKI 域内的所有实体都具有特别意义的 CA,通常被称作根 CA,把它作为信任的根或称“ 信任锚” 。在根 CA 的下面是零层或多层的中间 CA,因为是属于根的,也称作子 CA,子 CA 可作为中间节点,再伸出分支,最后是树的叶子,被称作终端实体或称为终端用户。

45、倒置大树的根,作为树结构的始点,它不仅是网络、通讯或子结构的始点,它还是信任的始点。在这个系统中的所有的实体(包括终端实体和所有的子 CA)都以根 CA 的公钥作为他们信任的锚,即他们对所有证书决策的信任始点或终点。其结构如图一所示:图一:严格层次结构 CA(2)建立规则在这个模型中,层次结构中的所有实体都信任唯一的根 CA。根 CA 对直接在它下面的 CA 的认证是为其创建和签发根证书;这些 CA 中的每一个都认证零个或多个直接接在它下面的 CA;最后一层 CA 认证终端实体。在该层次结构中的每个实体,包括中介 CA 和终端实体,都必须拥有根的公钥。该公钥的安装是这个模型中所进行的通讯处理的

46、基础。因此,必须通过一种安全的带外方式来完成。在多层的严格层次结构中,终端实体被直接在其上面的 CA 所认证(即颁发证书)对于那些浅层次结构,对其所有的终端实体来说根和证书的颁布者是相同的。(3)终端实体的认证过程一个持有可信根 CA 公钥的终端实体甲,可以通过以下过程检验另一个终端实体乙的证书。假设乙的证书是由 CA2 签发的,而 CA2 的证书是由 CA1 签发的,CA1 的证书是由 CA 签发的。因为甲拥有根 CA 的公钥 KR,所以能够验证 CA1 的公钥 K1,因此可以提取出可信的 CA1 的公钥。然后,这个公钥可以被用作验证 CA2 的公钥,类似的就可以得到 CA2 的可信公钥 K

47、2,公钥 K2 就能够来验证乙的证书,从而得到乙的可信公钥 K 乙。甲现在即可根据乙的密钥类型是加密密钥或是签名密钥,来使用密钥 K 乙 .2、下属层次信任模型(1)定义:下属层次模型与通用层次模型有所区别,下属层次模型是通用层次模型的子集通用层次模型允许双向信任关系,而下属层次模型只是单向证明下一层的下属 CA。在下属层次模型中,根 CA 具有特殊意义,它被任命为所有终端用户公共信任锚。根据定义它是最可信的证书权威,所有其他信任关系都源于它。在模型中,只有上级 CA 可以给下级 CA 发证,而下级 CA 不能反过来为上级 CA 发证,来证明上级CA。如图二所示图二.下属层次信任模型(2)根证

48、书由于在模型中根 CA 是唯一的信任锚,且信任关系是从最可信的 CA 建立起来的,所以没有别的认证机构可以为根 CA 颁发证书。根 CA 给自己颁发一个自签的 CA,这样证书主体和证书颁发者就是相同的。在证书中证明的公钥与用于证书签名的私钥是相对应的。根 CA 作为惟一指定的信任锚,该根证书必须分发给所有的证书用户,因为在模型中,所有路径必须包括根证书,所以,根 CA 的密钥非常重要,一旦泄露,对整个信任模型都将产生灾难性的后果。但是,在此模型中根 CA 本身很少用到,因为根 CA 的主要工作是证明下属 CA 的身份,这种事是很少进行的。一般颁布证书的 CA 都设置一个证书库,即目录服务器供用

49、户随时访问,这样信任模型中的用户就很少与根 CA 直接打交道。结果是根 CA 大部分时间可以离线运作,把签名私钥放在硬件模块中安全地保护起来。(3)特点下属层次结构,所有证书路径都在根 CA 证书处终止,所以只有通向根 CA 的证书路径才需要遍查和验证,并不需要建立或验证从根 CA 到证书用户 CA 的反路径。证书路径比通用层次模型缩短了一半。如图三所示:图三.下属层次模型证书认证路径图中根 CA 为自己自签名颁发了根证书,然后为用户 CA 签发证书,用户 CA 为最终用户签发了证书。其中粗线为证书认证路径,用户证书签发者名称为用户 CA 证书的主体名;用户 CA 证书的签发者名称为根 CA 证书的主体名称;根 CA 证书的签发者名称为根 CA 自己的主体名称,即自签证书,到达了信任的终点。下属层次结构模型在支持严格层次结构的环境中使用最为有效。美国国防部采用了下属层次模型支持防御系统(DMS) ,因为美国国防部的组织结构本身就是层次型的。严格下属层次结构另一个著名应用是因特网增强保密电子邮件 PEM。PEM 引入了称为名称从属关系的概念,名称从属关系允许一个待证明的 CA 只能在一个从属于自己名字的 X.500 完整名字空间的受限子集中颁发证书(子树) 。例如:在 RSA 公司中,一个工程(en

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报