版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数字证书一 . 什么是数字证书?数字证书就是网络通讯中标志通讯各方身份信息的一系列数据, 其作用类似于现实生活中的身份证。 它是由一个权威机构发行的, 人们可以在互联网上用它来识别对方的身份。最简单的证书包含一个公开密钥、 名称以及证书授权中心的数字签名。 一般情况下证书中还包括密钥的有效时间,发证机关(证书授权中心) 的名称,该证书的序列号等信息,证书的格式遵循itut x.509 国际标准。一个标准的 x.509 数字证书包含以下一些内容:证书的版本信息;证书的序列号,每个证书都有一个唯一的证书序列号;证书所使用的签名算法;证书的发行机构名称,命名规则一般采用x.500 格式;证书的有效期
2、,现在通用的证书一般采用utc 时间格式,它的计时范围为1950-2049;证书所有人的名称,命名规则一般采用 x.500 格式;证书所有人的公开密钥;证书发行者对证书的签名。x.509v3证书属性证书序列号有效明证书持有者公钥颁发者 x.500电字证书持有着 x,5q。名字ersions-12345678 尸 七、rswithmd?- v,c=usjozstreetmarket 'starts01/01/2000 expiry=12/31/2oor7=-*c:u5,i o:streetmarket, cn=bart simpson,rsa wrtrf使用数字证书,通过运用对称和非对称
3、密码体制等密码技术建立起一套严密 的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发送方对 于自己的信息不能抵赖。二.为什么要使用数字证书?基于internet网的电子商务系统技术使在网上购物的顾客能够极其方便轻松 地获得商家和企业的信息,但同时也增加了对某些敏感或有价值的数据被滥用 的风险。买方和卖方都必须对于在因特网上进行的一切金融交易运作都是真实 可靠的,并且要使 顾客、商家和企业等交易各方都具有绝对的信心,因而因特 网(internet)电子商务 系统必须保证具有十分可靠的安全保密技术,也就是说, 必须
4、保证网络安全的四大要 素,即信息传输的保密性、数据交换的完整性、发 送信息的不可否认性、交易者身份的确定性。1、信息的保密性交易中的商务信息均有保密的要求如信用卡账号和用户名被人知悉,就可能 被盗用,订货和付款的信息被竞争对手获悉,就可能丧失商机。因此在电子商务的信息传播中一般均有加密的要求。2、交易者身份的确定性网上交易的双方很可能素昧平生, 相隔千里。 要使交易成功首先要能确认对方的 身份,对商家要考虑客户端不能是骗子,而客户也会担心网上的商店不是一个玩弄欺 诈的黑店。因此能方便而可靠地确认对方身份是交易的前提。对于为顾客或用户开展服务的银行、 信用卡公司和销售商店, 为了做到安全、 保密
5、、可靠地开展服务活动, 都要进行身份认证的工作。对有关的销售商店来说,他们对顾客所用的信用卡的号码是不知道的,商店只能把信用卡的确认工作完全交给银行来完成。银行和信用卡公司 可以采用各种保密与识别方法,确认顾客的身份是否合法,同时还要防止发生拒付款 问题以及确认订货和订货收据信息等。3、不可否认性由于商情的千变万化, 交易一旦达成是不能被否认的。 否则必然会损害一方的利 益。例如订购黄金,订货时金价较低,但收到订单后,金价上涨了,如收单方能否认 受到订单的实际时间,甚至否认收到订单的事实,则订货方就会蒙受损失。因此电子交易通信过程的各个环节都必须是不可否认的。4、不可修改性交易的文件是不可被修
6、改的, 如上例所举的订购黄金。 供货单位在收到订单后, 发现金价大幅上涨了,如其能改动文件内容,将订购数1 吨改为 1 克,则可大幅受益, 那么订货单位可能就会因此而蒙受损失。因此电子交易文件也要能做到不可修改,以 保障交易的严肃和公正。人们在感叹电子商务的巨大潜力的同时, 不得不冷静地思考, 在人与人互不见面 的计算机互联网上进行交易和作业时,怎么才能保证交易的公正性和安全性,保证交易双方身份的真实性。国际上已经有比较成熟的安全解决方案, 那就是建立安全证书体系结构。数字安全证书提供了一种在网上验证身份的方式。安全证书体制主要采 用了公开密钥体制, 其它还包括对称密钥加密、 数字签名、数字信
7、封等技术。我们可以使用数字证书, 通过运用对称和非对称密码体制等密码技术建立起一套严密的身份认证系统,从而保证:信息除发送方和接收方外不被其它人窃取;信息在传输过程中不被篡改;发送方能够通过数字证书来确认接收方的身份;发 送方对于自己的信息不能抵赖。三.数字证书原理?1 .密码学在密码学中,有一个五元组:明文、密文、密钥、加密算法、解密算法, 对应的加密方案称为密码体制(或密码)。明文:是作为加密输入的原始信息,即消息的原始形式所有可能明文的有限 集称为明文空间。密文:是明文经加密变换后的结果,即消息被加密处理后的形式,所有可能 密文的有限集称为密文空间。密钥:是参与密码变换的参数,一切可能的
8、密钥构成的有限集称为密钥空间。加密算法:是将明文变换为密文的变换函数, 相应的变换过程称为加密,即 编码的过程。解密算法:是将密文恢复为明文的变换函数, 相应的变换过程称为解密,即 解码的过程。现代密码学算法:对称算法:加密和解密使用同一密钥主要算法包括:des、3des、rc2、rc4加/解密速度快,但密钥分发问题严重非对称算法:不需要首先共享秘密两个密钥同时产生:一把密钥(公钥)是公开的,任何人都可 以得到。另一把密钥(私人密钥)只有密钥的拥有者知道。用其中一把密钥(公钥或者是私钥)加密的信息,只能用另一把 打开。rsa算法,ecc (椭圆曲线)算法由已知的公钥几乎不可能推导出私钥强度依赖
9、于密钥的长度很慢-不适合加密大数据公钥可以广泛地、开放地分发 用于加密,签名/校验,密钥交换主要算法包括:rsa, ecc, diffie-hellman , dsa公 钥私公钥解密明文加密数字摘要:把可变输入长度用转换成固定长度输出用的一种函数。 称输出用为输入用的指纹,或者数字摘要;不同明文的摘要相同的概要是非常非常小的; 而同样明文其摘要必定一致;明文的长度不固定,摘要的长度固定没有密钥不可回溯典型算法:md5, sha-1用于完整性检测,产生数字签名函敢f a最好的解决方案:使用对称算法加密大的数据- 每次加密先产生新的随机密钥使用非对称算法交换随机产生的密钥用非对称算法做数字签名(对
10、散列值即摘要做数字签名)四条基本规则- 先签名,然后加密- 加密之前先压缩- 用你自己的私钥做签名- 用接收者的公钥做加密加密:重要文件随机对称密钥解密:怎样解决4个通讯安全需求?- 私密性加密 - 完整性 ?-不可否认性?-身份认证 ?问题:如何解决以上三个问题?随机对称密钥2 .数字签名数字签名采用公钥体制(pki),即利用一对互相匹配的密钥进行加密、解密。每个用户自己设定一把特定的仅为本人所知的私有密钥(私钥),用它进行解密和签名;同时设定一把公共密钥(公钥)并由本人公开,为一组用户所共享,用 于加密和验证签名。当发送一份保密文件时,发送方使用接收方的公钥对数据加 密,而接收方则使用自己
11、的私钥解密,这样信息就可以安全无误地到达目的地了。通过这种手段保证加密过程是一个不可逆过程,即只有用私有密钥才能解密。在公开密钥密码体制中,常用的一种是 rsa体制。其数学原理是将一个大数分解 成两个质数的乘积,加密和解密用的是两个不同的密钥。 即使已知明文、密文和 加密密钥(公开密钥),想要推导出解密密钥(私密密钥),在计算上是不可能的。 按现在的计算机技术水平,要破解目前采用的1024位rsa密钥,需要上千年的 计算时间。公开密钥技术解决了密钥发布的管理问题, 商户可以公开其公开密钥, 而保留其私有密钥。购物者可以用人人皆知的公开密钥对发送的信息进行加密, 安全地传送给商户,然后由商户用自
12、己的私有密钥进行解密。用户也可以采用自己的私钥对信息加以处理, 由于密钥仅为本人所有,这样 就产生了别人无法生成的文件,也就形成了数字签名。采用数字签名,能够确认 以下两点:(1)保证信息是由签名者自己签名发送的,签名者不能否认或难以否认;(2)保证信息自签发后到收到为止未曾作过任何修改,签发的文件是真实文 件。数字签名具体做法是:(1)将报文按双方约定的hash算法计算得到一个固定位数的报文摘要。在 数学上保证:只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的 值不相符。这样就保证了报文的不可更改性。(2)将该报文摘要信用发送者的私人密钥加密,然后连同原报文一起发送给 接收者,而产
13、生的报文即称数字签名。这样就保证了签发者不可否认性。(3)接收方收到数字签名后,用同样的 hash算法对报文计算摘要值,然后 与用发送者的公开密钥进行解密解开的报文摘要值相比较。如相等则说明报文确实来自所称的发送者。信息摘要散列函数制铝加密c笠名公钥解专数字数字 桀名信息l比蛟两者敦列函数接收方信息 被强认信息被篡改发送方四.数字证书是如何生成的?数字证书是数字证书在一个身份和该身份的持有者所拥有的公/私钥对之间建立了一种联系,由认证中心(ca)或者认证中心的下级认证中心颁发的。根 证书是认证中心与用户建立信任关系的基础。 在用户使用数字证书之前必须首先 下载和安装。认证中心是一家能向用户签发
14、数字证书以确认用户身份的管理机构。为了防止数字凭证的伪造,认证中心的公共密钥必须是可靠的, 认证中心必须公布其公 共密钥或由更高级别的认证中心提供一个电子凭证来证明其公共密钥的有效性, 后一种方法导致了多级别认证中心的出现。数字证书颁发过程如下:用户产生了自己的密钥对,并将公共密钥及部分个 人身份信息(称彳p10请求)传送给一家认证中心。认证中心在核实身份后,将执 行一些必要的步骤,以确信请求确实由用户发送而来, 然后,认证中心将发给用 户一个数字证书,该证书内附了用户和他的密钥等信息, 同时还附有对认证中心 公共密钥加以确认的数字证书。当用户想证明其公开密钥的合法性时, 就可以提 供这一数字
15、证书。证书的产生:认证中心把用户证书的基本信息做哈希算法, 然后用自己的私 钥对哈希值进行加密。五.数字证书是如何分发的?ca将证书分发给用户的途径有多种。第一种途径是带外分发(out-of-banddistribution),即离线方式。例如,密钥对是由软件运营商代替客户生成,证书 也是由运营商代替客户从 ca下载,然后把私钥和下载的证书一起储存在软盘 里,再交给用户的。这样做的好处是免去了用户上网下载证书的麻烦。第二种途径是带内分发(in-band distribution),即用户从网上下载数字证书到自己的电脑 中。下载时,用户要向ca出示“参考号”和“授权码”,以向ca证明自己的 身份
16、。这样做成本较低,但对使用计算机不太熟悉的用户来说,可能在下载时会 碰到一些麻烦。除了以上两种方式外,ca还把证书集中放置在公共的数据库中 公布,用户可以随用随查询随调用。六.数字证书是如何存储的?数字证书和私钥储存的介质有多种,大致分为硬证书和软证书。可以存储在 计算机硬盘、软盘、智能卡或 usb key里。1、关于私钥的唯一性严格地讲,私钥既然是世上唯一且只由主体本身持有,它就必须由主体的计算机程序来生成。因为如果在别处生成将会有被拷贝的机会。然而在实际应用上并非如此,出于某些特殊需要(例如,如果只有一份私钥,单位的加密文件就会因为离职员工带走 私钥而无法解密。 )加密用的公/私钥对会要求
17、在可信的第三方储存其备份。 这样, 加密用的私钥可能并不唯一。 然而签名用的私钥则必须保持唯一,否则就无法保证被签名信息的不可否认性。在生成用户的密钥对时,用于加密的公/私钥对可以由ca 、 ra 产生,也可以在用户终端的机器上用专用的程序(如浏览器程序或认证软件)来产生。用于数字签名的密钥对原则上只能由用户终端的程序自行产生, 才能保证私钥信息的私密性以及通信信息的不可否认性。有人可能会产生疑问: 有的加密和签名的密钥对都是由软件运营商代替客户生成的, 这是否破坏了上述的私钥唯一性原则呢?答案是否定的。 这时候, 私钥的唯一性要依靠法律合同的保证以及操作过程中相应制度的约束, 使得不可否认性
18、得到支持。出于这种机制,我们仍然可以认为,用户的签名私钥是唯一的。2、证书,私钥,到底保护哪一个?我们常常听到有人说: “保管好你的软盘,保管好你的 key ,不要让别人盗用你的证书。 ”有些教科书上也这样讲。应该说,这句话是有毛病的。数字证书可以在网上公开, 并不怕别人盗用和篡改。 因为证书的盗用者在没有掌握相应的私钥的情况下, 盗用别人的证书既不能完成加密通信, 又不能实现数字签名, 没有任何实际用处。而且,由于有ca 对证书内容进行了数字签名,在网上公开的证书也不怕黑客篡改。 我们说, 更该得到保护的是储存在介质中的私钥。 如果黑客同时盗走了证书和私钥,危险就会降临。3、为什么说usb
19、key 安全性好?不同的存储介质, 安全性是不同的。 如果证书和私钥储存在计算机的硬盘里,计算机一旦受到黑客攻击,(例如被埋置了木马程序)证书和私钥就可能被盗用。使用软盘或存储型ic 卡来保存证书和私钥,安全性要比硬盘好一些,因为这两种介质仅仅在使用时才与电脑相连, 用完后即被拔下, 证书和私钥被窃取的可能性有所降低。但是黑客还是有机会,由于软盘和存储型ic 卡不具备计算能力,在进行加密运算时,用户的私钥必须被调出软盘或ic 卡进入外部的电脑,在这个过程中就会造成一定的安全隐患。使用智能卡(含cpu 的 ic 卡)储存数字证书和私钥是更为安全的方式。为什 么这样说呢?原来智能卡具有一定的计算机
20、的功能,芯片中的 cpu 就是一台小 小的计算机。产生公私密钥对的程序(指令集)是智能卡生产者烧制在芯片中的 rom 中的,密码算法程序也是烧制在rom 中。公私密钥对在智能卡中生成后,公钥可以导出到卡外,而私钥则存储于芯片中的密钥区,不允许外部访问。智能卡中密钥文件存储在 e2prom 之中。对密钥文件的读写和修改都必须由卡内的程序调用。 从卡接口的外面, 没有任何一条命令能够对密钥区的内容进行读出、修改、更新和删除、。除非设计和编写卡操作系统(cos)的人自己在cos 上留了后门, 只有他才知道如何从外部调出密钥区的内容。 但我们可以排除黑客与 cos 设计者相勾结的这种几率极小的可能性。
21、在加密和签名的运算过程中,外部计算机中的应用软件使用智能卡 api 调 用的方式,输入参数、数据和命令,启动智能卡内部的数字签名运算、密码运算等,并获得返回结果。由于智能卡内部的 cpu 可以完成这些操作,全过程中私钥可以不出智能卡介质, 黑客的攻击程序没有机会去截获私钥, 因此这就比证书 和私钥放在软盘或硬盘上要安全得多。从物理上讲, 对智能卡芯片中的内容作整体拷贝也是几乎不可能的。 虽然听说有人能够从智能卡芯片在操作过程中发生的微弱的电磁场变化, 或者 i/o 口上反映出的微弱的电平变化中分析出芯片中的代码。 但现在国际上对智能卡生产商的技术要求很高, 要求上述的指标要低到不能够被测出来。
22、 国际上生产智能卡的公司都采用了种种安全措施,确保智能卡内部的数据不能用物理方法从外部拷 贝。为了防止usbkey不慎丢失而可能被他人盗用,不少证书应用系统在使用过 程中还设置了口令认证机制。如口令输入得不对,即使掌握了usb key,也不能登录进入应用系统。这种双因素认证机制可以使usb key 更加安全可靠,值得提倡。usb key 和智能卡除了 i/o 物理接口不一样以外, 内部结构和技术是完全一样的,其安全性也一样。只不过智能卡需要通过读卡器接到电脑的串行接口上,而usb key通过电脑的通用串行总线(usb)接口直接与电脑相接。另外,usb 接口的通信速度要远远高于串行接口的通信速度
23、。现在出品的电脑已经把usb接口作为标准配置,而使用智能卡则需要加配读卡器。出于以上原因,各家ca都把 usb key 作为首选的证书和私钥存储介质而加以推广。4、第二代usb key第二代 usbkey 带有液晶显示屏和安全按键,按上下键可在显示屏上查看转账信息 (包括收款账号、 收款人姓名和交易金额等) , 如发现转账内容不正确,按清除键可以清楚所有输入的内容, 再重新输入。 当输入无误, 需要使用 usbkey 进行签名时,在有效时限内按下物理按键后签名才能成功,否则签名操作失败,即使 usbkey 的密码被人截取,木马程序发起一个非法的交易申请,由于无法进行物理上的按键操作致使整个交易
24、不能进行下去。 可保证交易的内容不会被黑客程序非法修改,有效防止交易伪造和交易劫持的攻击。5、仍需注意的问题这里需要指出的是,有些号称智能卡的产品实际上只是不含 cpu 的存储型ic 卡,它仅仅具有存储功能。上文已经介绍过,存储型ic 卡的安全性与软盘相仿,对于这两种不同类型的 ic 卡,用户需要甄别清楚。第二个问题是, 尽管智能卡在设计和生产过程中, 对安全机制给以了充分的考虑和保证,然而,由于人为因素,也可能带来安全隐患。例如智能卡上提供一个闪存(flash)随机存储区域,是供写入一般用户数据或增加卡片功能的程序之用的。 敏感的数据和程序不允许写在闪存区, 必须写在安全存储区。 制作智能卡
25、时,安全区要通过硬件方法做掩模处理。 硬件的掩模处理费工费时成本高, 一般需要时间较长。 有些卡商为了降低成本缩短工期迎合客户要求, 将应该放在安全区中的敏感数据和程序放在闪存区中,闪存区里的内容是可以从卡片外部进行读写的,这就造成了可能被黑客侵入的安全隐患。这就要求我们对合作的 ic 卡厂商的工艺流程也要仔细审查。7 .如何验证数字证书?以 alice 验证 bob 证书为例:校验 bob 的证书的合法性( 1) alice 获得 bob 的证书和签发bob 证书的 ca 的证书( 2)用ca 的公钥解密 bob 的证书摘要( 3)计算bob 的证书的摘要( 4)比较这两个摘要( 5)校验b
26、ob 的证书证书有效期( 6)校验签发者签名(证书链)( 7)检查证书作废列表(crl,ocsp)8 .crl和ocsp是什么?证书的有效性取决于两个方面因素:第一个因素是证书有效期: 证书的有效期在证书被颁发之日就已经确定了, 例如cfca( 中国金融认证中心)规定个人证书的有效期是一年(可扩展),企业证书的有效期是三年。 证书的有效期 ( validity period ) 作为一项内容被写进了数字证书之中,它用两个日期 证书开始生效的日期和证书失效的日期来表示。显然,已经过了有效期的证书不能通过验证。证书有效期的设定是出于安全的考虑, 当一张证书有效期将结束时, 如果想继续使用就需要更新
27、, 证书更新时将产生新的公私密钥对, 密钥定期更新对于证书的安全性是有好处的。第二个因素是证书注销 : 虽然证书有效期没有过, 但是如果发生了特殊情况, 例如用户发现证书遗失或私钥失密, 用户会向 ca/ra 提出注销证书的申请, ca/ra 经过审核后将实施证书注销。那么,被注销的证书也不能通过验证。第一种情况比较简单, 证书的有效期就写在了证书之中, 安全认证应用软件只要调出证书的内容,判断一下就知道这张数字证书当前是否还在有效期内。第二种情况则比较复杂, 证书一旦发出, 是不可能收回的。 怎么办呢?只能申请注销。所谓注销,就是要求当初颁发这张证书的单位( ca )出一张告示,宣布某张证书
28、已经被注销作废, 警告有关的交易者注意, 不要再使用与这张证书绑定的公钥。在pki 安全认证体系中,这种“告示”称为证书注销列表(或证书撤销清单、 证书注销清单、 证书废止列表等) , 英文原文是certificate revocationlist ,缩写为crl 。对于第二种情况, 安全认证应用软件在验证证书的有效性时就需要去访问证书注销列表(crl ) 。这个列表相当于“黑名单”,一旦发现通信对方的证书在这张列表中,就不能通过验证。证书注销机制可以防止证书遗失或发现私钥失密后,不法分子冒用用户证 书、私钥实行欺诈交易所带来的损失。这和信用卡注销、有效证件注销的机制十 分类似。注销证书的其他
29、原因还包括:银行方面认为证书用户信用丧失、用户身份姓名 发生改变、用户从他所属单位离职、岗位和职权发生变更等情况。crl的内容根据x.509标准,crl的内容和数据结构定义如所示:剧版本剧签名算法剧签发者更新时间m下一次更新时间m废止的证书列表生用户证书序列号由废止时间等crl入口扩展证书吊销列表w篇销痛射 证书吊柏列表信息域值三1版本 三颁发者v2abcrootca abczkbank, ch三生效日期20口 年 1。月 12 日 15:41:15下一次的更新2011年10月日 16:41:15三赛名算法shilrsa值 ca):确定证书吊销列表常规吊销列表吊销的讦书何】:序列号吊销日期;a
30、"00"0345454545丁sa 00 04电白口口。5ea 00 00电&00 09201110x90gll-l-llti-a. ya 8. .1j l-i . -.lli - i2011年10月2011年1 0刖日2011电0月11日2011年1。月11日m q /t- g c?吧 * i 9:45: 支缸9:5口15:, 15:.21胫5t吊销项确定crl的内容包括crl的版本号、计算本crl的数字签名所用的算法的标识 符(如加密算法rsa、数字摘要算法md5等算法的标识符)、颁发crl的ca 的可识别名(dn)、crl的发布/更新时间、被注销证书的列表(仅
31、列出被注销 证书的唯一序列号)以及扩展项。扩展项中的内容有:(1)理由代码指出该证书被注销的理由,如:密钥损坏、 ca损坏、关系 变动、操作终止等;(2)证书颁发者一一列出该证书颁发者的名字;(3)控制指示代码一一用于证书的临时冻结;(4)失效日期一一列出该证书不再有效的日期。为了保证crl的真实性和完整性,crl数据的后面附有颁发crl的ca对 crl的数字签名。crl的发布crl的数据形成后,要把它公布在网上,放在哪里呢?首先,在cfca的证书系统中,设置了一个ldap服务器,它与互联网相连接,有特定的ip地址,crl 的数据就放在这里供用户查询。 ldap 的全称是 lightweigh
32、t directory accessprotocol,即轻型目录访问协议。ldap的信息模型是建立在 条目"(entries)的 基础上,目录的基本信息单元是条目。目录条目呈现为一个层次状的树形结构。crl 的数据以条目的形式存放在ldap 服务器中。根据ldap 目录服务所具有的特性,用户可以在网上方便快捷地对crl 进行查询。然而, crl 的数据集中存放在ca 的服务器中可能带来另一个问题, 就是当用户数量庞大,而且到了交易集中发生的高峰时期时,对ldap 服务器的并发访问可能造成网络和服务器的拥塞,致使交易效率急剧下降甚至超时。解决这个问题有以下两个办法:第一个办法是使用分段
33、的crl ,就是把庞大的crl 分成很多可控的片段,并允许一个ca 的证书注销信息通过多个crl 发布出来。在证书的扩展项中,有一个子项称为 crl 分布点, 它指出 crl 分布点的分布位置, 用户可以根据这个参数来访问相应的 crl 。第二个办法是建立远程的镜像 ldap 服务器。这些镜像服务器分布在其他城市或一些大客户的所在地。 ca 的 ldap 主服务器负责对这些镜像服务器进行定期数据更新, 以便使镜像服务器的数据内容和主服务器保持一致。 设置镜像服务器的目的有两个: 一是加快当地用户访问目录服务器的响应时间。 二是通过设置镜像服务器可以对大量的并发访问进行分流,减轻高峰时间 lda
34、p 主服务器的负担。 此外, 作为一种备份机制, 镜像服务器还可以在主服务器故障期间起到备份作用,提供不间断服务,这就提高了整个系统的可用率。crl 的更新从安全的角度上讲, crl 最好是进行实时更新,即一旦发生证书注销事件就立即更新, 以杜绝欺诈案件的得逞。 但这种实时更新的代价非常高, 要占用大量的网络资源和服务器资源, 反过来又会影响到网上交易的进行。 因此, 业内普遍的做法是定期更新,如 cfca 的管理策略是对主服务器的 crl 和所有远程镜 像 crl 每天更新一次。然而,当 crl 数据总量非常庞大时,即使是每天更新一次也会给系统带来过大的负担。因此,又出现了增量crl 的概念
35、。增量crl 的想法就是不需要每注销一张证书就产生一个完整的、越来越大的 crl ,它只是产生一个与注销该 证书相关的增加信息。根据定义,增量crl 是以已经颁发的注销信息为基础的,这个已经颁发的注销信息称为基本crl , 增量 crl 中含有的是基本crl 中不含有的信息。 引入增量 crl 概念的好处是体积很小的增量crl 可以比基本crl 的更新频率高得多。例如,庞大的基本crl 的更新周期如果是一周的话,增量 crl 的更新周期可以定为 8 小时,甚至更短。显然,这样的安全策略具有较高的安全性,而且不会给系统造成大的负担。在线查询机制 ocsp我们在上文已经提到, crl 方法存在一些
36、缺点,其一就是crl 不可能实时更新,由于 ca 每隔一定时间才发布crl ,所以crl 不能及时地反应证书的状态,在安全性上有一定局限;其二,即使定期更新crl 也有麻烦,当注销证书的数量很大及用户基础很大时, crl 常常会越变越大。 每次 crl 分发会大量消耗网络带宽和服务器处理能力。 对于很多集群客户来说 (例如一家银行和它的众多客户或者一家大企业和它的子公司、分销店) ,为了提高证书有效性验证效率,往往把crl 先下载到自己的服务器上,以减少对crl 的在线查询。然而频繁地下载 crl 也是令用户头疼的问题。 有时候, 这种 crl 处理方式还要求用户配置客户 pc 来处理来自多个
37、证书机构的 crl 。于是, 另一种证书有效性的管理和查询方法, 即在线查询机制应运而生。 它使用的协议称为在线证书状态协议,英文是ocsp( online certificate statusprotocol) 。在线证书状态协议(ocsp)是ietf颁布的用于检查数字证书在某一交易时间是否有效的标准,在rfc 2560 中有描述。它为网上业务提供了一种检验数字证书有效性的途径,比下载和处理证书注销列表(crl )的传统方式更快、更方便和更具独立性。ocsp实时在线地向用户提供证书状态,其结果是它比crl处理快得多,并避免了令人头痛的逻辑问题和处理开销。ocsp在线查询机制的简单过程如下(见
38、插图):12:管区证书找重用户的客户机形成查询指定证书状态请求, 并将请求转发到一个ocsp应答 器(服务器),应答器建立与ca证书库的连接,并查询 ca证书库而获得该证书 的状态,应答器返回客户机有关证书有效性信息。简单地说,一个ocsp请求,由协议版本号、服务请求类型及一个或多个证 书标识符等信息所组成;响应信息是由证书标识符、证书状态有效”、注销”或朱知”三个中的一个、以及验证相应时间等信息所组成。详细信息见下表 所示。城值或值割鼠制秋森潴&铁春, 国括成功. 慎事格式it浬.内fi群ii皂珂演试、福求授灯 釜名利普求餐名证书无携核,当状袤为成动酎必领包括以下各项.概本vi普名以
39、法替发 00或吃;5法.制用 5kai vith ssa encrypt roti x3ali3549. l l 5及法釜名.swt*也发85p的金怫拶发者金相的sha1曲也卷霎11和应存套密名.产生的间ocsp哨应的产生对闱l证书状百列 a包括滑求中月津谒的证书状毒列泰.讨个证书就得包店证书标谀,证书 优泰烟在节拄珀信息.证书标谀包括魏据除法tshn on: vxio.2.as), il将量别名釐焦 值、国班公相犊霜瞿值加证朝不列号.证书状意证书的最新校您*包括鞫府.注箱和宰制.证书法扣信 息当顿历节状布为注丽包含注曲?值堀在福度因*响应信息必须经过数字签名,以保证这个信息的真实性和完整性(
40、未被篡 改)。签名密钥属于 ca,即颁发这张证书的权威、可信的第三方机构,因此, 在任何情况下,用户都能够信任这个信息。ocsp在线查询机制只能检测证书的注销状态,没有其他功能,例如不能检 查证书的有效期,也不返回用户一个完全的证书。但是这种用法在某些应用场合 下,对于验证证书的有效性来说是快速有效的。由于使用ocsp在线查询必须保持用户在线状态,且用户访问的对象集中在 ca的ocsp服务器上,这同样会带来高峰负载过重,交通拥塞效率下降的问题。从以上的描述中我们可以看到,crl和ocsp两种机制所针对的目标和实 现的功能是一样的,只不过实现的方法途径不一样,两者具有异曲同工之妙。用 户可根据自
41、己的需求决定使用哪种方法,目前,cfca对这两种方法都提供服务。九.常见的数字证书格式1 .在security编程中,有几种典型的密码交换信息文件格式:der-encoded certificate : .cer, .crtpem-encoded message .pempkcs#12 personal information exchange : .pfx, .p12pkcs#10 certification request : .p10pkcs#7 cert request response : .p7rpkcs#7 binary message : .p7b.cer/.crt 是用于存放
42、证书,它是2进制形式存放的,不含私钥。.pem跟crt/cer 的区别是它以 ascii来表示。pfx/p12 用于存放个人证书 /私钥,他通常包含保护密码, 2进制方式p10是证书请求p7r是ca对证书请求的回复,只用于导入p7b 以树状展示证书链(certificate chain) ,同时也支持单个证书,不含私钥。2 . 数字证书文件格式( cer 和 pfx )的区别作为文件形式存在的证书一般有这几种格式:1. 带有私钥的证书由 public key cryptography standards #12, pkcs#1标准定义,包含了公钥和私钥的二进制格式的证书形式,以pfx 作为证书
43、文件后缀名。2. 二进制编码的证书证书中没有私钥,der编码二进制格式的证书文件,以cer作为证书文件后 缀名。3.base64 编码的证书证书中没有私钥,base64编码格式的证书文件,也是以cer作为证书文件 后缀名。 由定义可以看出,只有pfx 格式的数字证书是包含有私钥的, cer 格式的数字证书里面只有公钥没有私钥。 在 pfx 证书的导入过程中有一项是“标志 此密钥是可导出的。 这将您在稍候备份或传输密钥”。 一般是不选中的, 如果选 中,别人就有机会备份你的密钥了。如果是不选中,其实密钥也导入了,只是不 能再次被导出。这就保证了密钥的安全。如果导入过程中没有选中这一项,做证书备份
44、时“导出私钥”这一项是灰色的,不能选。只能导出 cer 格式的公钥。如果导入时选中该项,则在导出时“导出私钥”这一项就是可选的。如果要导出私钥 ( pfx), 是需要输入密码的, 这个密码就是对私钥再次加密,这样就保证了私钥的安全,别人即使拿到了你的证书备份(pfx), 不知道加密私钥的密码,也是无法导入证书的。相反,如果只是导入导出cer 格式的证书,是不会提示你输入密码的。因为公钥一般来说是对外公开的,不用加密3.x.509 定义了两种证书:公钥证书和属性证书pkcs#7ffi pkcs#1彼用的都是公钥证书pkcs 7 的 signeddata 的一种退化形式可以分发公钥证书和 crl一
45、个 signeddata 可以包含多张公钥证书pkcs 12可以包含公钥证书及其私钥,也可包含整个证书链十.数字证书命名c(county ) 国家o( organization )颁发机构名称ou(organizational unit ) 组织单位名称cn ( common name ) 持有者的名称例如:cn=zhangsan, ou=beijingicbcbank , o=icbcbank十一.证书工具使用1.keytool 工具java 自带的 keytool 工具是个密钥和证书管理工具。它使用户能够管理自己的公钥 / 私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户 /
46、 服务认证自己)或数据完整性以及认证服务。它还允许用户储存他们的通信对等者的公钥 (以证书形式) 。 keytool 将密钥和证书储存在一个所谓的密钥仓库( keystore )中。缺省的密钥仓库实现将密钥仓库实现为一个文件。它用口令来保护私钥。java keystore 的类型jks和jcek配java密钥库(keystore)的两种比较常见类型(我所知道的共 有 5种, jks, jceks, pkcs12, bks, uber。)jks的provider是sun在每个版本的jdk中者b有,jceks勺provider是 sunjc,e 1.4 后我们都能够直接使用它。jceksft安全级
47、别上要比jks强,使用的provider是jceks(隹荐),尤其在保护 keystore 中的私钥上(使用 tripledes )。pkcs#1费公钥加密标准,它规定了可包含所有私钥、公钥和证书。其以二进制格式存储,也称为 pfx 文件,在windows中可以直接导入到密钥区,注意,pkcs#12勺密钥库保护密码同时也用于保护key。bks 来自 bouncycastle provider ,它使用的也是tripledes 来保护密钥库中的 key, 它能够防止证书库被不小心修改 ( keystore 的 keyentry 改掉 1 个 bit都会产生错误),bksfg够跟jks互操作,读者
48、可以用keytool去trytry。uber 比较特别,当密码是通过命令行提供的时候,它只能跟keytool 交互。整个keystore是通过pbe/sha1/two巾sh加密,因此keystore能够防止被误改、察 看以及校验。以前,sun jdk(提供者为sun允许你在不提供密码的情况下直接 加载一个keystore ,类似cacerts , ube诈允许这种情况。证书导入der/cer 证书导入:要从某个文件中导入某个证书,使用 keytool 工具的 -import 命令:keytool -import -file mycert.der -keystore mykeystore.jks
49、如果在 -keystore 选项中指定了一个并不存在的密钥仓库,则该密钥仓库将被创建。如果不指定-keystore 选项,则缺省密钥仓库将是宿主目录中名为 .keystore 的文件。如果该文件并不存在,则它将被创建。创建密钥仓库时会要求输入访问口令,以后需要使用此口令来访问。可使用 -list 命令来查看密钥仓库里的内容:keytool -list -rfc -keystore mykeystore.jksp12格式证书导入:keytool无法直接导入pkcs12fc件。第一种方法是使用 ie 将 pfx 证书导入, 再导出为 cert 格式文件。 使用上面介绍的方法将其导入到密钥仓库中。
50、这样的话仓库里面只包含了证书信息, 没有 私钥内容。第二种方法是将pfx 文件导入到 ie 浏览器中,再导出为 pfx 文件。新生成的 pfx 不能被导入到 keystore 中,报错: keytool 错误:java.lang.exception : 所输入的不是一个x.509 认证。新生成的 pfx 文件可以被当作keystore 使用。但会报个错误as unknown attr1.3.6.1.4.1.311.17.1,查了下资料, 说 ie 导出的就会这样, 使用 netscape 就不会有这个错误.第三种方法是将pfx 文件当作一个keystore 使用。但是通过微软的证书管理控制台生
51、成的 pfx 文件不能直接使用。keytool 不认此格式, 报 keytool 错误: java.io.ioexception : failed to decrypt safe contents entry 。需要通过openssl专换一下:1) openssl pkcs12 -in mycerts.pfx -out mycerts.pem2) openssl pkcs12 -export -in mycerts.pem -out mykeystore.p12通过keytool的-list命令可检查下密钥仓库中的内容:keytool -rfc -list -keystore mykeysto
52、re.p12 -storetype pkcs12这里需要指明仓库类型为 pkcs12 , 因为缺省的类型为 jks 。 这样此密钥仓库就即包含证书信息也包含私钥信息。p7b格式证书导入:keytool 无法直接导入 p7b 文件。需要将证书链rootserver.p7b (包含根证书)导出为根rootca.cer 和子rootcaserver.cer 。将这两个证书导入到可信任的密钥仓库中。keytool -import -alias rootca -trustcacerts -file rootca.cer-keystore testkeytrust.jks遇到是否信任该证书提示时,输入 ykeytool -import -alias rootcaserver -trustcacerts -filerootcaserver.cer -keystore testkeytrust.jks总结:1)p12 格式的证书是不能使用 keytool 工具导入到 keystore 中的2)the sun's pkcs12 keystore 对从 ie 和其他的 windows程序生成的 pfx格式的证书支持不太好.3)p7b证
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年车位租赁合同
- 磷化处理设备全生命周期维修保养技术规范
- PDCA循环优化下肢静脉血栓护理
- 2025年舟山市岱山县残联招聘真题
- 2025年中国海洋大学辅导员和专职党政管理人员招聘考试真题
- 2025年闽侯县公安局招聘警务辅助人员考试真题
- 2025年达州宣汉县公安局招聘警务辅助人员真题
- 2026年博尔塔拉蒙古市住房和城乡建设系统事业单位人员招聘考试备考试题及答案详解
- 孩子职业规划启蒙指南
- 2026年安徽省卫生健康系统人员招聘笔试参考题库及答案解析
- 2026年4月23日四川省宜宾市五方面人员选拔笔试真题及答案深度解析
- 2026广东建设职业技术学院第二批招聘6人备考题库附答案详解(考试直接用)
- 2026秋招:重庆水务环境控股集团笔试题及答案
- GB 4706.15-2008家用和类似用途电器的安全皮肤及毛发护理器具的特殊要求
- 《眼科学》课件-温医大-视神经及视路疾病
- 四百米障碍完整的教案
- 《材料分析测试技术》全套教学课件
- 天津英华插班生考试卷五年级
- 2021一级消防工程师继续教育考试石油化工类答案
- 小学音乐人教版 六年级下册爱我中华1 课件
- 深圳珠宝参展商名录
评论
0/150
提交评论