现在在Internet上广泛运用依据公共密钥的身份认证机制,公钥基础设施PKI(Public KeyInfrastructure)便是经过运用公开密钥技能和数字证书来保证体系信息安全并担任验证数字证书持有者身份的一种体系。在PKI中所有安全操作都是经过数字证书完结的,但依据X.509规范,数字证书的主体名域中会标有证书持有者的实在称号等个人信息,这就构成了用户个人身份信息的走漏。因而,这种实名数字证书就不能用在维护个人隐私的匿名服务中,如电子投票、电子推举、匿名通讯,所以,关于匿名证书的发布成为近几年研讨的热门,本文提出一种匿名数字证书发布计划,并在现有的PKI体系中构建了一个匿名数字证书体系。
一、计划的描绘
匿名证书发布计划中共有四个实体,别离是用户、CA、AI和BI,其间AI和BI组成匿名证书域PCA.CA、AI和BI别离具有自己的数据库,用来存储追寻匿名证书时所用的加密信息。
PCA、AI和BI均由CA授权的安排来担任,而且别离具有CA发布的数字证书。计划中运用RSA算法,界说AI和BI同享相同的公钥参数.
关于PCA的RSA私钥d,为了发生各自的证书,把它分红两部份,这样AI和BI各自的私钥别离是d2,d1,在这儿d 有= dd1=dd21dm2mooddΦ((NN))。用户至少应该知道三个公钥,PCA,AI和BI的公钥,计划的假定条件是AI和BI不能勾结。计划中运用的首要符号见表1.
1.匿名证书的发布
(1)CA经过安全信道为用户U发布一个实名证书Cert,此刻CA现已承认用户的实在身份,并把实名证书存储在CA库中。
(2)用户U设置匿名PNU,并发生匿名密钥对.用户经过挑选一个128位的随机数ρ 来核算匿名证书的序列号SNU=H(APUU,ρ )。
用户构建一个X.509匿名证书的头部b为:,这个匿名证书的内容M为:.随后,用户核算h=H(M)。最终,用户核算u=h·remodN,这儿r在{0,1}之间随机挑选(k=128),核算后把u的值以及用户用自己的私钥签名的信息m传给BI.
(3)当BI收到信息后,BI经过用户的公钥验证签名,承认用户的身份。然后BI核算w=ud1modN,再把信息存储在BI库中,其间IDU为实名证书中用户的主体仅有标识。BI核算Ee(w),并把这个值回来给用户U.
(4)当用户接到信息Ee(w)后,用户核算sigAPRU(M),并把信息发送给AI.
(5)当AI收到这个信息后,AI先验证sigAPRU(M)是否是合法有用的。然后,AI核算z=wd2modN.
AI验证z·r-1modN能否被证明。最终,AI把信息
2.匿名证书的吊销
当发现匿名证书被乱用、私钥走漏或许证书过期时就需求对匿名证书进行吊销,因为本计划中的匿名证书是在用户已取得实名证书的基础上由实名证书结构而成的,所以匿名证书的吊销就有必要分两步:吊销实名证书和吊销匿名证书,依照以下进程就能够吊销匿名证书。
(1)用户向PCA提出匿名证书的吊销恳求,并供给相关个人信息。
(2)PCA依据匿名证书的序列号经过匿名证书追寻功用追寻到用户的IDU.
(3)PCA把用户的吊销恳求连同用户的身份IDU发送给CA.
(4)CA依据用户的IDU在CA库中检索出用户的实名证书,核准用户信息后,同意吊销,把实名证书放入CRL中,并给PCA发送应对信息。
(5)PCA对匿名证书进行吊销,把匿名证书放入CRL中,并把履行成果发送给用户。
3.计划的运用
在实践的运用中,许多网上活动都能够运用本计划中发布的匿名数字证书,特别是需求维护用户的隐私又要能够证明用户身份的运用中。在详细的完结方面,能够选用以下两种状况:
(1)PCA域由AI和BI构成,而AI和BI能够别离由CA授权的实体来担任。例如,一个站点(或许由站点授权的CA)能够成为AI,而BI能够是法院,银行,行事机关或其它政府署理安排。
(2)这个计划最大的特点是答应在现有PKI体系中运用,在这种状况下,不需求对现行的PKI体系作任何修正就能够完结本计划,此刻,PCA域就由CA和RA来构成,AI就能够由CA来担任,BI能够由RA来担任,则取得匿名证书的进程如下:
①用户向RA恳求实名证书,填写证书恳求表。
②RA对用户的身份进行审阅,审阅经过后向CA提交证书恳求恳求。
③CA生成用户实名证书,并把证书回来给RA.
④RA将实名证书发放给用户。
⑤用户依据实名证书结构匿名证书,并对其哈希值盲化后发送给RA.
⑥RA对盲化后的匿名证书签名,把签名值给用户。
⑦用户把经RA签名后的值发送给CA.
⑧CA再对该值进行签名并发送给用户,此刻用户就到了匿名证书及RA和CA对其进行的签名。
二、构建匿名数字证书体系
本文依据提出的匿名证书发布计划规划了一个匿名数字证书体系,本体系是依照通用的规范规划的,是选用先进的信息安全技能开发的匿名数字证书签发与办理体系。该匿名数字证书体系严格遵守ITU-TX.509规范,其间运用的悉数协议都是被国际上广泛选用的规范协议。本体系中公钥/私钥对的生成以及运用公钥/私钥对的加密/解密运算选用可靠性极高的RSA算法,加密用的公开密钥和私有密钥的长度都是1024位。数字签名中的摘要技能选用MD5算法,它是现在可靠性较好和运用最为广泛的算法。匿名数字证书体系的整体结构如图1所示。
1.恳求匿名证书:若用户已取得由CA发布的实名证书,则用户能够经过该功用由实名证书构成匿名证书;若用户没有实名证书,则能够经过该功用先恳求一个实名证书,再由此实名证书结构匿名证书。此刻,恳求人需求填写恳求实名证书的相关材料,由RA进行审阅,核准后由CA签发实名证书,并由RA颁发给用户。
2.签发匿名证书:结构生成匿名证书后,经由BI和AI处理器一起处理,得到由PCA签发的匿名证书。
3.查询匿名证书:用户能够经过互连网直接拜访体系的LDAP证书库查询匿名证书和匿名证书吊销列表CRL.
4.追寻匿名证书:当需求对匿名证书进行追寻时,可经过此功用由匿名证书的序列号追寻到用户的实在身份。
5.吊销匿名证书:体系能够依据用户提出的匿名证书吊销恳求对指定的匿名证书及实名证书予以吊销,并一起更新LDAP证书库和证书吊销列CRL.
三、匿名数字证书体系的完结
本体系中的CA,BI,AI都选用三层B/S架构,规划首要选用Java技能、数字签名和加密等技能,在完结进程中把RA集成在CA中,该体系首要有四个中心模块:Web服务器模块、CA服务器模块、BI服务器模块和AI服务器模块。该匿名数字证书体系需求三台服务器,别离是CA服务器、BI服务器和AI服务器。在三台服务器上别离装置WebLogic 8.1作为运用服务器,装置Oracel 10g企业版作为后台数据库。
1.恳求匿名数字证书
因为本体系中的匿名证书是经过用户已有的实名证书结构而成的,所以若用户没有实名证书,能够先恳求一个实名证书,若用户现已取得一个实名证书,就能够直接进入签发匿名证书模块。
(1)用户恳求和签发实名证书
用户恳求实名证书需求填写实名证书恳求表并提交给CA服务器,CA服务器需求验证用户的有用证书是否存在,假如不存在则首要生成自签名证书,再运用服务器签名证书私钥进行签名,将证书存入证书数据库,并将证书紧缩成zip格局经过Email发送给用户。
①恳求实名证书
用户需求填写恳求个人证书恳求表,其间公共称号和单位称号为承认用户或单位身份的首要字段。安排称号、省、市、邮编为可选项。密钥巨细可挑选1024或2048.Email地址为生成证书时传递证书时运用,有必要输入有用的地址,不然恳求不成功。
②生成密钥
经过c o m . i b m . s e c u r i t y . x 5 0 9包中的CertAndKeyGen类设置生成证书的公钥算法、签名算法和Provider.若公钥算法是RSA,则签名算法为MD5withRSA;若公钥算法为DSA,则签名算法为SHA1withDSA.
③生成证书
生成证书进程又能够分为五个进程,别离是生成主体信息,生成自签名证书,提取自签名证书信息,对自签名证书信息进行设置和构成证书。
④签发证书
经过KeyStore目标取得服务器证书的私钥caprk,经过证书的签名办法对新证书进行签名。
⑤把证书保存在证书库中
在密钥库中生成新实体,并将新实体与新签发的证书对应。
⑥将证书紧缩发送给用户
规划中运用BASE64Encoder类转换为证书规范格局–BASE64编码,编码后的证书字符就能够在屏幕上显现、仿制或打印。为了作为Email附件进行发送,有必要将生成的证书编码进行紧缩,规划中运用ZipOutputStream类进行处理,处理后生成zip格局的紧缩文件,然后经过编写的发送邮件类MailandFile给用户发送Email,恳求证书进程完结。
(2)签发匿名数字证书
签发匿名证书的进程是由BI服务器和AI服务器一起来完结。该进程首要包含:结构匿名证书、生成摘要并盲化、由BI服务器签名和由AI服务器签名。
①结构匿名证书
匿名证书的结构是经过运用程序生成的匿名证书的主体名、匿名密钥和匿名证书的序列号与取来的实名证书的其它字段的值一起结构成匿名证书。经过调用KeyPairGenerator办法来生成匿名密钥对,选用RSA算法,生成匿名证书序列号,经过运用SecureRandom类生成一个128位的随机数r1,再运用MessageDigest对匿名公钥及随机数生成摘要构成匿名证书序列号sn,然后,经过调用X500Name类