数字证书和数字签名.docx_第1页
数字证书和数字签名.docx_第2页
数字证书和数字签名.docx_第3页
数字证书和数字签名.docx_第4页
数字证书和数字签名.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字证书和数字签名本文力图以最浅显的语言解释数字证书和数字签名的科学原理,以及它们对网上交易信息的安全保障机制,可供各位网民参考。数字证书是一段包含用户身份信息、用户公钥信息以及身份验证机构数字签名的数据。身份验证机构的数字签名可以确保证书信息的真实性,用户公钥信息可以保证数字信息传输的完整性,用户的数字签名可以保证数字信息的不可否认性。 数字证书是各类终端实体和最终用户在网上进行信息交流及商务活动的身份证明,在电子交易的各个环节,交易的各方都需验证对方数字证书的有效性,从而解决相互间的信任问题。数字证书是一个经证书认证中心(CA)数字签名的包含公开密钥拥有者信息以及公开密钥的文件。认证中心(CA)作为权威的、可信赖的、公正的第三方机构,专门负责为各种认证需求提供数字证书服务。认证中心颁发的数字证书均遵循X.509 V3标准。X.509标准在编排公共密钥密码格式方面已被广为接受。X.509证书已应用于许多网络安全,其中包括IPSec(IP安全)、SSL、SET、S/MIME。网上银行交易中的安全问题在网上交易中,交易双方互不见面,有两个安全问题是会引起担心的。第一个问题是交易双方身份是否真实,会不会被人假冒。换句话说,就是在网上发送交易信息的主体是否是真实的。第二个问题是有关交易的信息,如对方的银行账号、金额等是否属实,有没有被人篡改过。在传统交易中,交易者身份的真实性通过各种证件的出示和验证得到检验;交易信息的真实有效性则通过签名盖章来解决。然而在网上交易中,传统的实物证件的查验和手写的签名盖章都不可能实现。那这两个问题又是怎么解决的呢?有办法。那就是用含有先进科技的数字证书和数字签名。公钥密码技术保护交易信息的安全我们还是从网上传递的信息讲起。两个人在互联网上作交易,保护交易信息的手段有多种,其中最重要的手段是信息加密技术。加了密的信息只有用密钥才能解开,双方可以提前约定密钥,只要密钥妥善保管,只有买卖双方知道,任何其他人破不了密,交易信息的传递就安全。现代的密码技术强度很大,可以充分地保证密码信息的安全。(请读者牢记这一事实,它是数字签名和数字证书存在的基础。)但是在互联网上,参加交易的人很多,例如银行,要面对成千上万的客户。想要一个一个地与每个客户约定密钥就变得不可能了。为了解决这个问题,一种新型的密码技术公钥密码技术应运而生。在这种密码技术中,每个通信者拥有一对独特的密钥公钥和私钥。公钥可以在网上公开,私钥则密不示人,而且是唯一的。如果某甲要向某乙发送交易信息,就用在网上公开的某乙的公钥来加密信息,送出去,某乙收到加密的信息后可以用自己的私钥来解密。其他人即使截获了加密的信息也无计可施,因为没有某乙的私钥是解不了密的。这样就保证了交易信息的安全。反过来,某乙向某甲发信息的过程可依此类推。数字签名的原理利用公钥技术还可以达到另一个目的,就是解决信息的完整性和有效性。如果某甲用自己的私钥加密交易信息,传给某乙,某乙可以用某甲的公钥来解密信息。这时,这个被加密的交易信息,例如支付的金额,账号等就是完整、有效的,同时也是不可抵赖的。这是因为某甲的私钥是世界唯一的,别人不可能掌握,如果有人篡改了加密信息,某乙将无法解密。那么,从效用上讲,这个用私钥加密交易信息的动作就像为一个文件签名盖章一样,经过“签名”后的信息是完整、有效的,不可篡改,也不可抵赖。当然,实际上的数字签名机制和过程比这要复杂一些。如果交易信息很长,用私钥去加密信息将花费较长的时间,效率太低,用户无法接受。因此需要使用一种数学算法哈希算法先对这段信息作一次数学变换,把这段信息进行压缩,形成了一段短短的“数字摘要”,让数字摘要来“代表”信息本身。可以通过检验数字摘要,借以判断信息本身是否发生了改变。这样,我们才可以构建真正实用的数字签名。 某甲在发信前使用哈希算法求出待发信息的数字摘要,然后用私钥对这个数字摘要进行加密而形成一段信息,这段信息就称为数字签名。某甲将这个数字签名信息附在待发信息后面,一起发送过去。某乙收到信息后,一方面用某甲的公钥对数字签名解密,得到了摘要H;另一方面把收到的信息本身用同样的哈希算法求出另一个摘要H,可称为摘要的副本。再把H和H相比较,看看两者是否相同。根据哈希算法的特性,如果两个摘要H和H完全符合,证明信息是完整的;如果不符合,就说明信息被人篡改了。 由于摘要一般只有128位或160位比特,比信息本身要短千百倍,数字签名的过程一般在一秒钟内即可完成。由于数字签名具有数学严格性,黑客对交易信息哪怕只改动一个字一个比特,系统都会发现识破。又因为私钥是不可仿造、伪造的,因此从某种意义上说,数字签名比手写签名更严格可靠。2004年国家颁发的中华人民共和国电子签名法赋予了电子签名的法律意义,其规定,“可靠的电子签名能够与手写签名、盖章一样,受到法律保护”。数字证书的原理说到这,明眼的观众一定会发现一个关键的问题,就是网上公开的公钥必须真实可靠,因为黑客也可以公布一个假的公钥冒充某甲或某乙来引你上钩呀。怎么来保证这个公钥是真的呢?这时候就要用到数字证书了。我们知道,身份证是由权威机关公安局颁发的,我们相信公安局,因而我们能够通过检验身份证,相信持有某甲身份证的个人就是某甲本人。同样,数字证书也是要由权威的认证机构来颁发。例如,中国金融认证中心就是一个权威可信的认证机构,它为数百万网上银行的用户颁发了数字证书。那么,数字证书怎样完成网上身份的认证呢?把数字证书说成是网上身份证,这是一种形象的比喻。实际上,数字证书所证明的是公钥的真实性。认证中心对用户的身份进行严格的审核后,为用户颁发数字证书。它通过公钥加密技术对用户的公钥信息和用户的身份信息作了数字签名,把用户所宣称的身份信息与公钥绑定在一起。于是,包含有用户个人身份信息、公钥和数字签名的一个特殊的电子文件就形成了数字证书。数字证书可以存储在硬盘里,也可以存储在软盘或USB Key里。存储数字证书的USB Key在网上交易中,用户双方要互相验证这个证书,用户相信认证中心的数字签名,也就相信这个公钥是真实的,因而相信公钥的持有者所发来的信息是真实的。虽然看上去数字证书认证过程与传统的身份证认证有很大差别,但从目的和效用上看,两者是一致的。都是证明发送交易信息主体的真实性。数字证书的认证、数字签名的发生与核验都是由专用的应用软件来自动实现的,速度极快,眨眼间就完成了,用户并不需要费心做什么操作。数字证书在网上交易中能够保证交易的安全。刚才我们提到了,黑客利用种种手段,盗取银行客户的密码、账号,进而企图盗窃客户帐户上的资金。如果网上银行业务采用了数字证书和数字签名的安全机制,黑客即使输入了正确的密码、账号也不能够盗走客户帐户里的资金,因为黑客不掌握客户的数字证书,也不能进行数字签名,网上银行系统就会拒绝交易,使黑客最终功亏一篑。中国人民银行、中国银监会、公安部、国家工商总局曾联合下发了关于加强银行卡安全管理预防和打击银行卡犯罪的通知,其中强调:持卡人开通网上银行转账的,应采用数字证书、电子签名等安全认证方式,否则单笔转账金额不应超过1000元人民币,每日累计转账金额不得超过5000元人民币。中国金融认证中心发布的2008年度网上交易调查结果中显示,数字证书版网上银行由于其较高的安全性而被超过半数(51.7%)的个人用户所选择,而在企业网银中这一比例高达65.1%。有人把数字证书昵称为网上交易的卫兵。请广大网上银行用户务必重视它,使用它。PKI的核心CA一、 什么是CA? 为解决互联网的安全问题,世界各国信息安全业者进行了多年的研究,形成了全方位、多层次的安全解决方案。其中,目前被广泛采用的PKI技术,在安全解决方案中占据了重要位置,它可以保证信息传输的机密性、真实性、完整性和不可否认性,从而保证信息的安全传输。 一个完整地PKI系统是由认证机构、密钥管理中心(KMC)、注册机构、目录服务、以及安全认证应用软件、证书应用服务等部分组成,其中认证机构(Certification Authority,CA)在PKI系统中居于核心地位。 我们知道,为了在信息传输的过程中,确保信息的机密性、真实性、完整性和不可否认性,采用了公开密钥加密机制。而公钥机制所涉及的公钥是公开的、需要通过互联网传送。因此,需要解决的一个重要问题就是公钥的信任问题。必须有一个可信任的机构对任何一个主体公钥进行公证,证明主体的身份以及它与公钥的匹配关系。CA就是这样的机构。为了确保CA的公信力,它必须具有高度的权威性、公正性和第三方性。目前在国内存在的CA基本上可以分为三类:第一类是行业性的CA,如中国金融认证中心(CFCA)、海关CA、商务部CA(国富安CA)等,这些CA是由相应行业的主管部门牵头建立的;第二类是地方性CA,如北京CA、上海CA、浙江CA等,这些CA是由当地地方政府牵头建立的;第三类CA是商业性CA,如天威诚信CA。这类CA进行商业化经营,并不从属于任何行业或地域,但它们也必须具有良好的公信力,必须由国家主管部门审批通过才能投入运营,以确保其权威、公正性。二、CA的基本功能 作为CA,必须具有如下基本功能: (1)签发数字证书 (2)CA密钥的管理 (3)接受证书申请,审核申请者身份 (4)证书管理 (5)提供证书和证书状态的查询 以上功能中,最为重要的是签发证书。CA对其签发的数字证书全部内容,包括证书用户姓名标识、公钥信息、颁发者标识、证书有效期、签名算法标识等信息,进行数字签名。从而权威地证明了证书持有者和公钥的唯一匹配关系。CA的另一项重要功能是证书查询。CA的证书库可以作为公钥的来源地。此外,证书有效性的查询对于安全认证也是至关重要的。由于证书遗失或其他原因,证书可能需要在失效期未到时就予以撤销。CA提供证书撤销列表(Certificate Revocation List,CRL)或其他方法供证书依赖方实时查询。CA自己的一对密钥管理,必须确保其具备高度的机密性,防止其被伪造而颠覆CA的权威性。在CFCA,根密钥被存放在安全的屏蔽机房,其访问受到了严格的管理。CA的密钥由通过国家认证的加密机产生,私钥一经产生将不能通过明文方式离开加密机。这些措施保证了CFCA根密钥的安全与CFCA的权威性。三、CA的组成部分 CA主要由以下部分组成: 1、CA服务器:这是CA的核心,是数字证书生成、发放的运行实体,同时提供发放证书的管理、证书废止列表(CRL)的生成和处理等服务。 2、证书下载中心:该中心连接在互联网上,用户通过登录CA网站访问证书下载中心,CA服务器生成的证书通过证书下载中心供用户下载。 3、目录服务器:它的功能是提供数字证书的存储,以及数字证书和证书撤销列表(CRL)的查询。业者有时把它称为”LDAP”,这是因为目录服务的技术标准遵循LDAP (轻量级目录访问协议)的缘故。4、OCSP服务器:该服务器向用户提供证书在线状态的查询。5、密钥管理中心(KMC):根据国家密码管理规定,加密用私钥必须由权威、可靠的机构进行备份和保管。CFCA被授权建立KMC,以备份和保管用户的加密密钥。 6、证书注册机构(Registration Authority,RA):它负责受理证书的申请和审核,其主要功能是接受客户证书申请并进行审核。 RA主要是远程的,CFCA的RA部署在各家用户银行、税务机关、或企业所在地。因为,这样一方面便于进行客户资料的审查,另一方面也便于银行将证书与客户的帐号进行绑定,以实现认证。但即使RA部署在远程所在地,这些RA也仍然是CA的组成部分。此外,CFCA还在其所在地部署了直属CA,对一些比较零散的,不适合或者不必要建立RA的用户提供注册服务。图一CA组成示意图四、CA的结构 一般的PKI/CA系统都为层次结构,这里就以CFCA系统结构为例来说明: 在系统设计之初,CA系统由根CA(1个)、政策CA(3个)和运营CA(多个) 三部分组成,其树形结构如图二所示。图二最初设计的CFCA系统结构 当初设计这种结构的初衷是, CFCA希望做成全国性的金融CA,向公众提供服务。这样根CA的作用主要是负责制定和审批CA的总策略,向政策CA发放证书,以及与国际其他PKI域的CA进行交叉认证。三个政策CA则分别负责制定和审批银行、证券、保险领域CA的策略,向运营CA发放证书。运营CA则负责颁发最终用户的证书。由于三层结构CA的证书链较长,认证速度效率较低,而且认证业务并没有按原来所设想的方向发展,政策CA实际上只建了1个,原来的初衷未能实现。因此,CFCA后来新建的CA系统全部采用RCA OCA两层的扁平结构,省却了政策CA这层。图三扁平结构CA系统五、CA的运作 从权威性、公正性出发,大部分CA都是作为独立的机构运营,为用户提供PKI数字证书认证服务,也有一些CA是作为本系统的IT单位之一,为系统内提供证书认证服务。由于CA是PKI系统的核心,CA的运作要求是很高的。如果CA出现故障停止对外服务,整个PKI系统就会瘫痪。因此,CA自身的安全性显得无比重要。CA的安全是多方面的。从物理安全上讲,要求CA机 房建筑必须 防火、防水、防震、防电磁辐射、防物理破坏和外人侵入。防电磁辐射是防止入侵者企图通过仪器接收计算机运算时发出的电磁波,来分析密码信息。为了达到这些目的,CA机房墙面地板和天花板一般采用厚钢板六面体焊接,门也要采用电磁屏蔽门。此外,除了一般的人工把守的门禁外,还要安装双人双指纹检测的门禁系统以及磁卡门禁记录系统。CA系统重要的操作必须有两人以上同时在场。由于CA要与互联网相连,所以CA在网络安全防护上也要采取严密的措施以防止病毒、非授权访问和恶意攻击。为了确保7乘24小时的不中断服务,系统必须采取高冗余度的配置,要求部署灾难备份中心。CA在人事管理上也是很严格的,在CA工作的员工必须安全可靠,要签署保密协议。按照信息产业部电子认证服务管理办法的规定,CA的密码方案必须经过国家密码管理局的审批认证,CA信息系统必须通过国家信息安全产品的评测认证,取得国家认可的资质,才能投入运营。CA 的运作必须符合认证运作规范(CPS)。 六、认证运作规范(CPS)CPS(Certification Practice Statement)也叫认证运作规范,是关于认证机构在全部数字证书服务生命周期中的业务实践(如签发、吊销、更新)所遵循规范的详细描述和声明。在CPS中,提供了相关业务、法律和技术方面的细节。它涉及CA的运营范围,遵循标准、证书生命周期管理、CA的运作管理、安全管理、CRL管理等全部范围。根据IETF RFC 3647 (公钥基础设施证书策略和证书运行框架)以及国家信息产业部电子认证服务管理办法、电子认证业务规则规范等规定,中国的CPS由九部分组成,分别是: (1)概述性描述(2)信息发布与信息管理(3)身份识别与鉴别(4)证书生命周期操作要求(5)认证机构设施管理和操作控制(6)认证系统技术安全控制(7)证书、证书吊销列表和在线证书状态协议(8)认证机构的审计(9)法律责任 这九部分内容详细地阐述了一个CA从诞生、运营,到生命终止的方方面面规定,是CA的纲领性的文件。有人形象地把CPS比作CA的宪法。不但CA的运营者必须严格遵守CPS中的规定,CA的CPS还必须在网站上公布,以接受证书持有者和依赖方的查询和监督。七、CFCA的国产化 中国的PKI市场起步较晚,CFCA作为国内较早的运营CA,在2000年正式对公众提供服务。由于当时国内并没有成熟的CA软件提供商,经过严格的国际招标流程,结果,CFCA选择采用Entrust公司提供的CA系统软件产品进行认证服务。在CFCA运营之初,Entrust CA软件由于其严谨的设计,强大丰富的功能,对CFCA业务发展起到了积极的推动作用。但随着客户的增加,其弊端也不断的暴露出来:由于其本土化能力有限,产品支持是一个难题,困扰着CFCA的业务拓展;同时其高昂的收费策略也影响了CFCA的持续发展。 随着国内CA产品系统的日渐成熟,以及国家对于CA业务的重视程度不断提高,2002年,在科技部和人民银行的大力支持下,CFCA国产化改造作为国家863项目之一正式启动了。经过各方努力,2004年底CFCA国产化CA项目宣告完成,正式对外提供服务。截至2007年9月,CFCA国产化系统共发放证书50万余张。同时,CFCA开发人员经过多年的开发和经验积累,不断向客户提供具有自主知识产权的丰富多彩的证书应用软件。国产PKI系统正成为CFCA的骄傲,推动着中国的信息安全事业更好地向前发展。安全认证应用软件安全认证应用软件是一类基于PKI机制实现的信息安全软件。主要用来在PKI的基础上为用户提供数字签名、数字信封、身份认证、安全传输等安全服务。PKI是“Public Key Infrastructure”的缩写,意为“公钥基础设施”。简单地说,PKI技术就是利用公钥理论和技术建立的提供信息安全服务的基础设施。安全认证应用软件为应用系统和PKI之间架起了一道桥梁。PKI利用非对称密码算法为身份认证、数字签名、安全传输提供了基础。安全认证软件利用PKI提供的基础实现了身份认证、数字签名、安全传输的功能。而上层应用软件则是通过安全认证软件来使用PKI所提供的基础安全服务。安全认证软件按照功能划分可分为两大类:安全传输和签名加密。每一大类又可以分成不同的小类。安全传输软件,顾名思义,就是通过这类软件可以实现数据的安全传输。按照使用的协议进行划分又可以分为SSL传输软件和SPKM传输软件。SSL和SPKM两类安全传输软件实现的原理大同小异,他们的区别是SPKM类安全传输软件安全性更高些,但效率要低些。综合安全性和效率的考虑,SSL类安全传输软件使用的范围更广些。SSL类安全传输软件包括:SSL安全代理软件、SSL安全网关软件和实现了SSL功能的应用服务器软件。签名加密软件,就是利用PKI机制实现了签名验签、加密解密功能的软件。按照实现方式的不同,又可以分为安全开发包和安全软件两类。安全开发包是在PKI基础上实现的应用调用接口,包括控件、动态链接库、jar包等形式。安全开发包实现了最基本的签名验签、加密解密的功能,同时还实现了一些基本的证书管理功能。安全软件是在PKI基础上实现的能够独立运行的软件。安全软件包括电子印章、桌面安全工具、代码签名工具等。安全软件在PKI的基础上实现了较为完善的签名验签、加密解密的功能,同时又集成了一些应用的需求在里边。下边我们就以CFCA自主开发的软件为例对安全认证软件做进一步的说明。安宝,这是一款可以在单机上独立运行的安全认证软件。按照上边的分类,它应该属于签名加密软件中的安全软件。它实现的功能包括:加密传输、加密保存、解密、签名、验签、签名加密、解密验签、证书管理。CFCA证书应用工具包,这是一套安全开发接口。按照上边的分类,它应该属于签名加密软件中的安全开发包。它实现的方式包括:控件、动态链接库、jar包。实现的功能包括:消息的签名验签、消息的加密解密、文件的签名验签、文件的加密解密、证书管理。安全代理软件,这是一款支持SSL功能的安全认证软件。按照上边的分类,它应该属于SSL类的安全传输软件,它实现的主要功能就是建立安全通道,保证数据的安全传输,同时还实现了一些管理功能。安全认证软件有两种使用方式:直接为最终用户提供安全服务;集成在应用系统中为用户提供服务。直接为最终用户提供服务的方式,我们就不在这里介绍了。那么,安全认证软件是怎么和应用系统进行结合的呢,我们在这里举一个例子进行说明。网上银行是一个使用安全认证软件的很好的例子。网上银行的安全通常是通过PKI机制来实现的。在网上银行中使用了两种安全认证软件,SSL安全传输软件和安全开发包。我们假设在网银中使用的是CFCA自主开发的证书应用工具包和安全代理软件,那么他们的结合方式和实现过程如下图所示:在客户端使用的是CFCA的签名验签控件,服务端使用的SSL安全代理服务器和java版证书应用工具包。证书应用工具包包括客户端的控件和服务端的工具包是通过接口调用的方式集成在网银应用中的。SSL安全代理软件是独立的部署在客户和网银应用之间的,通过网络协议和网银应用进行结合。具体结合过程简单介绍如下:1网银客户端首先与SSL安全代理服务器建立HTTPS安全连接;2网银客户端通过HTTPS连接向SSL安全代理服务器发送数据;3SSL安全代理服务器收到网银客户端的数据后以HTTP方式将数据转发给网银应用;4网银应用将响应数据以HTTP方式发送给SSL安全代理服务器;5SSL安全代理服务器收到网银应用的响应数据后,以HTTPS的方式转发给网银客户端;6在交易过程中,网银客户端调用CFCA的签名验签控件对交易数据进性签名,然后把签名数据发送给网银应用;7网银应用收到客户端发来的签名数据后,调用CFCA证书应用工具包进行验证签名。总之,安全认证应用软件可以和电子商务、电子政务和网上银行等应用系统结合,完成身份认证、数字签名、安全传输的功能,确保应用系统的安全。CFCA自主开发的安全认证应用产品也逐渐丰富,满足了市场对安全认证的需求。数字证书的存储和USBKey的安全性数字证书的产生、分发和存储 首先,让我们来回顾一下数字证书产生和分发的简要过程。一个网上用户怎样才能得到一张数字证书呢?他先要向RA提出注册申请。用户的申请经RA审批通过后,RA向CA提交注册建立请求。CA建立对于该用户的注册,并将注册建立结果返回给RA。RA将注册结果通知用户。注册结果中包含了两组数字,分别称为“参考号”和“授权码”。用户方的软件生成一对公钥和私钥。用户向CA提出证书请求。这个请求信息中还包含了用户的公钥和用户的可甄别名等信息,这些信息在CA创建证书时要用到。CA创建该用户的数字证书。通过适当方式将证书分发给用户。CA将证书分发给用户的途径有多种。第一种途径是带外分发(Out-of-band Distribution),即离线方式。例如,在北京国税的证书项目中,密钥对是由软件运营商代替客户生成,证书也是由运营商代替客户从CA下载,然后把私钥和下载的证书一起储存在软盘里,再交给用户的。这样做的好处是免去了用户上网下载证书的麻烦。第二种途径是带内分发(In-band distribution),即用户从网上下载数字证书到自己的电脑中。下载时,用户要向CA出示“参考号”和“授权码”,以向CA证明自己的身份。这样做成本较低,但对使用计算机不太熟悉的用户来说,可能在下载时会碰到一些麻烦。除了以上两种方式外,CA还把证书集中放置在公共的数据库中公布,用户可以随用随查询随调用。数字证书和私钥储存的介质有多种,可以存储在计算机硬盘、软盘、智能卡或USB key里。需要澄清的概念一、关于私钥的唯一性严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就会因为离职员工带走私钥而无法解密。)加密用的公/私钥对会要求在可信的第三方储存其备份。这样,加密用的私钥可能并不唯一。然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的不可否认性。在生成用户的密钥对时,用于加密的公/私钥对可以由CA、RA产生,也可以在用户终端的机器上用专用的程序(如浏览器程序或认证软件)来产生。用于数字签名的密钥对原则上只能由用户终端的程序自行产生,才能保证私钥信息的私密性以及通信信息的不可否认性。有人可能会产生疑问:在北京国税的证书项目中,加密和签名的密钥对都是由软件运营商代替客户生成的,这是否破坏了上述的私钥唯一性原则呢?答案是否定的。这时候,私钥的唯一性要依靠法律合同的保证以及操作过程中相应制度的约束,使得不可否认性得到支持。出于这种机制,我们仍然可以认为,用户的签名私钥是唯一的。 二、证书,私钥,到底保护哪一个?我们常常听到有人说:“保管好你的软盘,保管好你的KEY,不要让别人盗用你的证书。”有些教科书上也这样讲。应该说,这句话是有毛病的。数字证书可以在网上公开,并不怕别人盗用和篡改。因为证书的盗用者在没有掌握相应的私钥的情况下,盗用别人的证书既不能完成加密通信,又不能实现数字签名,没有任何实际用处。而且,由于有CA对证书内容进行了数字签名,在网上公开的证书也不怕黑客篡改。我们说,更该得到保护的是储存在介质中的私钥。如果黑客同时盗走了证书和私钥,危险就会降临。为什么说USB key安全性好不同的存储介质,安全性是不同的。如果证书和私钥储存在计算机的硬盘里,计算机一旦受到黑客攻击,(例如被埋置了木马程序)证书和私钥就可能被盗用。使用软盘或存储型IC卡来保存证书和私钥,安全性要比硬盘好一些,因为这两种介质仅仅在使用时才与电脑相连,用完后即被拔下,证书和私钥被窃取的可能性有所降低。但是黑客还是有机会,由于软盘和存储型IC卡不具备计算能力,在进行加密运算时,用户的私钥必须被调出软盘或IC卡进入外部的电脑,在这个过程中就会造成一定的安全隐患。使用智能卡(含CPU的IC卡)储存数字证书和私钥是更为安全的方式。为什么这样说呢?原来智能卡具有一定的计算机的功能,芯片中的CPU就是一台小小的计算机。产生公私密钥对的程序(指令集)是智能卡生产者烧制在芯片中的ROM中的,密码算法程序也是烧制在ROM中。公私密钥对在智能卡中生成后,公钥可以导出到卡外,而私钥则存储于芯片中的密钥区,不允许外部访问。智能卡中密钥文件存储在E2PROM之中。对密钥文件的读写和修改都必须由卡内的程序调用。从卡接口的外面,没有任何一条命令能够对密钥区的内容进行读出、修改、更新和删除、。除非设计和编写卡操作系统(COS)的人自己在COS上留了后门,只有他才知道如何从外部调出密钥区的内容。但我们可以排除黑客与COS设计者相勾结的这种几率极小的可能性。在加密和签名的运算过程中,外部计算机中的应用软件使用智能卡API调用的方式,输入参数、数据和命令,启动智能卡内部的数字签名运算、密码运算等,并获得返回结果。由于智能卡内部的CPU可以完成这些操作,全过程中私钥可以不出智能卡介质,黑客的攻击程序没有机会去截获私钥,因此这就比证书和私钥放在软盘或硬盘上要安全得多。从物理上讲,对智能卡芯片中的内容作整体拷贝也是几乎不可能的。虽然听说有人能够从智能卡芯片在操作过程中发生的微弱的电磁场变化,或者I/O口上反映出的微弱的电平变化中分析出芯片中的代码。但现在国际上对智能卡生产商的技术要求很高,要求上述的指标要低到不能够被测出来。国际上能够生产智能卡的公司只有少数几家,他们都采用了种种安全措施,确保智能卡内部的数据不能用物理方法从外部拷贝。USB Key和智能卡除了I/O物理接口不一样以外,内部结构和技术是完全一样的,其安全性也一样。只不过智能卡需要通过读卡器接到电脑的串行接口上,而USB Key通过电脑的通用串行总线(USB)接口直接与电脑相接。另外,USB接口的通信速度要远远高于串行接口的通信速度。现在出品的电脑已经把USB接口作为标准配置,而使用智能卡则需要加配读卡器。出于以上原因,各家CA都把USB Key作为首选的证书和私钥存储介质而加以推广。美中不足的是目前USB Key的成本还略显昂贵,各家银行在推行USB Key介质的证书时,要加收50至80元的成本费。仍需注意的问题这里需要指出的是,有些号称智能卡的产品实际上只是不含CPU的存储型IC卡,它仅仅具有存储功能。上文已经介绍过,存储型IC卡的安全性与软盘相仿,对于这两种不同类型的IC卡,用户需要甄别清楚。第二个问题是,尽管智能卡在设计和生产过程中,对安全机制给以了充分的考虑和保证,然而,由于人为因素,也可能带来安全隐患。例如智能卡上提供一个闪存(flash)随机存储区域,是供写入一般用户数据或增加卡片功能的程序之用的。敏感的数据和程序不允许写在闪存区,必须写在安全存储区。制作智能卡时,安全区要通过硬件方法做掩模处理。硬件的掩模处理费工费时成本高,一般需要3个月。有些卡商为了降低成本缩短工期迎合客户要求,将应该放在安全区中的敏感数据和程序放在闪存区中,闪存区里的内容是可以从卡片外部进行读写的,这就造成了可能被黑客侵入的安全隐患。这就要求我们对合作的IC卡厂商的工艺流程也要仔细审查。 另外,为了防止USB key 不慎丢失而可能被他人盗用,不少证书应用系统在使用过程中还设置了口令认证机制。如口令输入得不对,即使掌握了USB key,也不能登录进入应用系统。这种双因素认证机制可以使USB key更加安全可靠,值得提倡。关于信任模型与交叉认证本篇文章介绍建立信任关系的概念,在此基础上解决不同PKI(公钥基础设施)的互联互通,即交叉认证,也就是通常所说的证书信任传递问题。多个认证机构之间的信任关系必须保证所有的PKI用户不必依赖和信任唯一的认证机构CA(Certificate Authority),否则无法扩展和互通。我们的目的是确保一个认证机构所签发的身份证明能够被另一个认证机构的依赖方所信任。所谓信任模型就是提供了一个建立和管理信任关系的框架。在公钥基础设施中,当两个认证机构中的一方给对方的公钥或双方相互给对方的公钥颁发证书时,两者间就建立了这种信任关系。信任模型描述了如何建立不同认证机构之间的认证路径以及寻找和遍历信任路径的那些规则。信任模型的建立和交叉认证的实现是非常重要的。要实现电子商务或网上银行的跨行交易,就必须在全国甚至全世界范围内建立可信的身份,由许多不同的可信的PKI域来证明全球各种人的身份。我们暂且不说B2C上亿数量的百姓身份认证工作量,就只考虑B2B公司中的证书用户,那也需要几万个PKI信任域及潜在的数百万个身份打交道。这就导致了在大量人群中建立信任关系的必要性和建立信任关系时要保持较少的中间人的要求之间产生了一种矛盾,PKI域的互联互通,使得在大量人群中间建立可信身份变得容易了。这种多个PKI中实体的互认,是借助于证书的信任传递所完成的。信任模型有很多结构,如层次信任模型、网状信任模型、信任列表、桥接模型(既混合模型)等等,在众多的这些模型中,层次模型是应用得比较多的模型,因为它有很多优点,特别是适合完全中国金融界实际情况,本篇主要讲层次模型。1、认证机构的严格层次结构定义:认证机构CA的严格层次结构可以描绘为一棵倒置的树,树根在顶上,树枝向下伸展,树叶在最下面的末端。在这棵倒置的树上,根代表一个对整个PKI域内的所有实体都具有特别意义的CA,通常被称作根CA,把它作为信任的根或称“信任锚”。在根CA的下面是零层或多层的中间CA,因为是属于根的,也称作子CA,子CA可作为中间节点,再伸出分支,最后是树的叶子,被称作终端实体或称为终端用户。倒置大树的根,作为树结构的始点,它不仅是网络、通讯或子结构的始点,它还是信任的始点。在这个系统中的所有的实体(包括终端实体和所有的子CA)都以根CA的公钥作为他们信任的锚,即他们对所有证书决策的信任始点或终点。其结构如图一所示:图一:严格层次结构CA(2)建立规则在这个模型中,层次结构中的所有实体都信任唯一的根CA。根CA对直接在它下面的CA的认证是为其创建和签发根证书;这些CA中的每一个都认证零个或多个直接接在它下面的CA;最后一层CA认证终端实体。在该层次结构中的每个实体,包括中介CA和终端实体,都必须拥有根的公钥。该公钥的安装是这个模型中所进行的通讯处理的基础。因此,必须通过一种安全的带外方式来完成。在多层的严格层次结构中,终端实体被直接在其上面的CA所认证(即颁发证书)对于那些浅层次结构,对其所有的终端实体来说根和证书的颁布者是相同的。(3)终端实体的认证过程一个持有可信根CA公钥的终端实体甲,可以通过以下过程检验另一个终端实体乙的证书。假设乙的证书是由CA2签发的,而CA2的证书是由CA1签发的,CA1的证书是由CA签发的。因为甲拥有根CA的公钥KR,所以能够验证CA1的公钥K1,因此可以提取出可信的CA1的公钥。然后,这个公钥可以被用作验证CA2的公钥,类似的就可以得到CA2的可信公钥K2,公钥K2就能够来验证乙的证书,从而得到乙的可信公钥K乙。甲现在即可根据乙的密钥类型是加密密钥或是签名密钥,来使用密钥K乙.2、下属层次信任模型(1)定义:下属层次模型与通用层次模型有所区别,下属层次模型是通用层次模型的子集通用层次模型允许双向信任关系,而下属层次模型只是单向证明下一层的下属CA。在下属层次模型中,根CA具有特殊意义,它被任命为所有终端用户公共信任锚。根据定义它是最可信的证书权威,所有其他信任关系都源于它。在模型中,只有上级CA可以给下级CA发证,而下级CA不能反过来为上级CA发证,来证明上级CA。如图二所示图二.下属层次信任模型(2)根证书由于在模型中根CA是唯一的信任锚,且信任关系是从最可信的CA建立起来的,所以没有别的认证机构可以为根CA颁发证书。根CA给自己颁发一个自签的CA,这样证书主体和证书颁发者就是相同的。在证书中证明的公钥与用于证书签名的私钥是相对应的。根CA作为惟一指定的信任锚,该根证书必须分发给所有的证书用户,因为在模型中,所有路径必须包括根证书,所以,根CA的密钥非常重要,一旦泄露,对整个信任模型都将产生灾难性的后果。但是,在此模型中根CA本身很少用到,因为根CA的主要工作是证明下属CA的身份,这种事是很少进行的。一般颁布证书的CA都设置一个证书库,即目录服务器供用户随时访问,这样信任模型中的用户就很少与根CA直接打交道。结果是根CA大部分时间可以离线运作,把签名私钥放在硬件模块中安全地保护起来。(3)特点下属层次结构,所有证书路径都在根CA证书处终止,所以只有通向根CA的证书路径才需要遍查和验证,并不需要建立或验证从根CA到证书用户CA的反路径。证书路径比通用层次模型缩短了一半。如图三所示:图三.下属层次模型证书认证路径图中根CA为自己自签名颁发了根证书,然后为用户CA签发证书,用户CA为最终用户签发了证书。其中粗线为证书认证路径,用户证书签发者名称为用户CA证书的主体名;用户CA证书的签发者名称为根CA证书的主体名称;根CA证书的签发者名称为根CA自己的主体名称,即自签证书,到达了信任的终点。下属层次结构模型在支持严格层次结构的环境中使用最为有效。美国国防部采用了下属层次模型支持防御系统(DMS),因为美国国防部的组织结构本身就是层次型的。严格下属层次结构另一个著名应用是因特网增强保密电子邮件PEM。PEM引入了称为名称从属关系的概念,名称从属关系允许一个待证明的CA只能在一个从属于自己名字的X.500完整名字空间的受限子集中颁发证书(子树)。例如:在RSA公司中,一个工程(engineering)CA可能有如下X.500名字:Country=us,Organigation=SRA Security,Organizational Unit=Engineering.按照名字从属规则颁发的所有证书都要有一个以CA的X.500名字为前缀的主体名字。于是工程CA不能颁发在主体名字中暗含ou=marketing的证书。Country=us,Organization=SRASecurity,Organizational Unit=Marketing。解决这一问题的办法,可以用直接交叉认证。称“直接交叉认证链接”。3、层次PKI应用举例 加拿大政府PKI/CA层次结构 (1)结构加拿大政府PKI体系是由若干个CA所组成,这些CA组成层次结构(即树状结构)。如图五所示PKI/CA的最上层是政策管理机构(PMA),第二层是中央认证机构(CCF),第三层是一级CA,第四层是本地注册机构(LRA)。其中,PMA是一个若干部门共同组成的机构,由加拿大政府财政部秘书处领导,为政府PKI体系提供全面的政策指导,负责监督和管理加拿大政府PKI体系的政策和实施情况。CCF是中央认证机构,它实施政府PKI体系中的所有策略,签署和管理与一级CA与一级CA交叉认证的证书。一级CA是由政府营运 ,制定一个或多个证书担保的等级,颁发和管理数字证书,定期颁发证书注销黑名单。LRA是一级CA设置的认证申请注册登记机构,其职责是认证和鉴别申请者的身份,为密钥匙恢复或证书恢复申请进行审批,接受并审批证书的注销请求。(2)特点加拿大政府PKI体系是一个完全政府行为的公开密钥体系结构,充分考虑了交易的保密性和安全性,亦将其列为信息高速公路的首要问题;因体系为树状结构,查询信任关系更加快捷,建立信任关系也更加容易,只需要与相应的一级进行交叉认证即可;树状结构,结构简单,中央认证机构是一个根CA;各信任域之间建立信任关系必须经过中央认证机构;证书路径由于其单向性,容易扩展,可生成从用户证书到可信任点的简单的、明确的认证路径;亦且证书路径较短,最长的等于树的深度加1;层次结构中使用的证书可以比树状结构中使用的证书更少。更简单。层次结构PKI的缺点:由于依赖于一个单一的信任起点,安全性集中,信任“锚”的安全削弱使得整体PKI系统安全削弱。根CA出故障会影响全局。只适用于严格层次结构的组织,不适合组织关系比较复杂的情况。对于那些已有多个根CA的情况下,构建一个单一的,共同的根CA来统一所有的CA,形成一个层次结构,有一定的难度,要对原有CA进行改造。 图四,加拿大政府PKI体系4、证书链的认证实例所谓的证书链的认证,是想通过证书链追溯到可信赖的CA的根(ROOT)。换句话说,要验证签发用户实体证书的CA是否是权威可信的CA,如:CFCA。证书链验证的要求是:路径中每个证书从最终实体到根证书都是有效的,并且每个证书都要正确地对应发行该证书的权威可信任性CA。操作表达式为:Ap.ABBC,它指出该操作使用A的公钥,从B的证书中获得B的公钥Bp,然后再通过Bp来解封C的证书。操作的最终结果得到了C的公钥Cp。这就是一个证书链的认证拆封过程。从用户实体证书到ROOT CA的证书链确认,其具体的做法如表1所示。表1 证书对比与验证从以上对比中可以看出:用户实体证书中的AuthorityKeyIdentifier扩展项CertIssuer,即证书签发者的甄别名,应当与CA证书中签发此证书的CA名称相匹配,如表中箭头所指。即CA证书中的Subject Name是用户实体证书中Issuer Name的父名,对上级CA来说又成为子名,CA证书中Issuer Name是上一级CA的名字,成为可信任的链状结构。这样通过各级实体证书的验证,逐渐上溯追逆到链的终止点可信任的CA,如CFCA的Root CA。PKI简介PKI(Pubic Key Infrastructure)是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范。用户可利用PKI平台提供的服务进行安全通信。 使用基于公钥技术系统的用户建立安全通信信任机制的基础是:网上进行的任何需要安全服务的通信都是建立在公钥的基础之上的,而与公钥成对的私钥只掌握在他们与之通信的另一方。这个信任的基础是通过公钥证书的使用来实现的。公钥证书就是一个用户的身份与他所持有的公钥的结合,在结合之前由一个可信任的权威机构CA来证实用户的身份, 然后由其对该用户身份及对应公钥相结合的证书进行数字签名,以证明其证书的有效性。 PKI必须具有权威认证机构CA在公钥加密技术基础上对证书的产生、管理、存档、发 放 以及作废进行管理的功能,包括实现这些功能的全部硬件、软件、人力资源、相关政策和操作程序,以及为PKI体系中的各成员提供全部的安全服务。如:实现通信中各实体的身份认证、保证数据的完整、抗否认性和信息保密等。 PKI的基础技术包括加密、数字签名、数据完整性机制、数字信封、双重数字签名等。 1、加密定义:加密是指使用密码算法对数据作变换,使得只有密钥持有人才能恢复数据面貌,主要目的是防止信息的非授权泄漏。现代密码学的基本原则是:一切密码寓于密钥之中即算法公开,密钥保密。密码算法的分类: (1)对称密码算法:加密密钥和解密密钥相同,Ke=kd,密钥必须特殊保管。 优点:保密强度高,计算开销小,处理速度快。 缺点:密钥管理困难(2)非对称密码算法:加密密钥与解密密钥不同,不可能由加密密钥解出解密 密 钥。每个用户都有两个密钥:一个在信息团体内公开称公钥,一个由用户秘密保存,称为私钥。 优点:便于密钥管理、分发、便于签字签名。 缺点:计算开销大,处理速度慢。若以公钥KPB加密,用私钥KPV解密,可实现多个用户加密信息,只能由一个用户解读,是用于保密通信;若以私钥KPV加密,用公钥KPB解密,能实现由一个用户加密 的信息而由多个用户解密,是用于数字签名。 (3)单向函数算法:也称HASH算法,能够非常容易地把明文变成密文(把密文转成明文是困难的) 特点:1)适用不需要把密文转换为明文的场合。 2)很容易地将明文转换密文(密文再转明文不可能) 3)适用不需要解密的场合(鉴别、密钥管理) 用hash函数变换得到的hash值,通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论