桂林电子科技大学 阳江职业技术学院 贺慧玲
PKI是一个以公钥密码技术为基础,数字证书为媒介,结合对称加密和非对称加密技术,将个人的信息和公钥绑在一起的系统。其主要目的是通过管理密钥和证书,为用户建立一个安全、可信的网络应用环境,使用户可以在网络上方便地使用加密和数字签名技术,在Internet上验证通信双方身份,从而保证了互联网上所传输信息的真实性、完整性、机密性和不可否认性。完整的PKI系统包括一个RA中心、CA中心、用户终端系统EE、证书/CRL资料库和秘钥管理系统。
PKI作为安全基础设施,主要提供的服务有保密性服务、身份认证服务、验证信息完整性服务以及电子商务中的不可抵赖性服务。
1.保密性服务
所谓保密性服务就是提供信息的保密性服务,包括存储文件和传输信息的保密性,所有需要保密的信息都加密,这样即使被攻击者获取到也只是密文形式,攻击者没有解密密钥,无法得到信息的真实内容,从而实现了对信息的保护。PKI提供了保密性服务,并且这个服务对于所有用户都是透明的。
2.身份认证服务
PKI的认证服务在ITU-TX.509标准中定义为强鉴别服务,即采用公开密钥技术、数字签名技术和安全的认证协议进行强鉴别的服务。
3.完整性服务
完整性服务就是保证数据在保存或传输过程中没有被非法篡改,PKI体系中采用对信息的信息摘要进行数字签名的方式验证信息的完整性。
4.不可抵赖性服务
不可抵赖性服务是对参与者对做过某件事提供一个不可抵赖的证据。在PKI体系中,发送方的数字签名就是不可抵赖的证据。
基于PKI的数字签名,用户首先向PKI的RA中心注册自己的信息,RA审核用户信息,审核通过则向CA中心发起证书申请请求,CA中心为用户生成秘钥对,私钥私密保存好,公钥和用户信息打包并用CA私钥进行数字签名,形成数字证书并发布在CA服务器的证书列表,用户到证书列表查看并下载证书。
假设用户A要向用户B发送信息M,用户A首先对信息进行哈希函数h运算得到M的信息摘要hA,再用自己的私钥DA对hA进行加密得到数字签名Sig(hA)。将明文M、数字签名Sig(hA)以及A的证书CertA组成信息包,用B的公钥EB加密得到密文C并传送给B。其中数字签名与信息原文一起保存,私钥DA只有用户A拥有,因此别人不可能伪造A的数字签名;又由于B的私钥只有B拥有,所以只有B可以解密该信息包,这样就保证了信息的保密性。
数字签名的验证过程是接收方B在收到密文C后,先用自己的私钥解密C得到信息明文M、CertA和Sig(hA),然后验证CertA是否合法,再用A的公钥EA将收到的Sig(hA)解密得到数字摘要hA,其次对信息明文M进行哈希运算得信息摘要hA’,最后比较hA和hA’,如果hA=hA’则验证数字签名为真,且信息是完整的没有被篡改;否则判定收到的信息有误,丢弃。
从基于PKI数字签名的实现过程和验证过程中我们知道,数字签名的安全性取决于以下几点:
1.CA服务器确实安全可靠,用户的证书不会被篡改。CA服务器的安全性主要包括物理安全和系统安全。所谓物理安全是指CA服务器放置在物理环境安全的地方,不会有水、火、虫害、灰尘等的危害;系统安全是指服务器系统的安全,可以由计算机安全技术与防火墙技术实现。
2.用户私钥确实被妥善管理,没有被篡改或泄露。现在采用的技术是USB Key或智能卡存储用户私钥,并由用户用口令方式保护私钥,而且实现了私钥不出卡,要用私钥必须插卡,从技术实现了私钥不会被篡改和泄露。
3.数字签名方案的安全性好。基于PKI公钥加密技术的数字签名是建立在一些难解的数学难题的基础上,其中基于RSA算法的签名方案应用最多。RSA算法是基于大数分解的困难性,目前当模数达到1024位时,分解其因子几乎是不可能的,未来十年内也是安全的。但是由于RSA算法保存了指数运算的特性,RSA不能抵御假冒攻击,就算攻击者不能破解密钥,也可进行假冒攻击实现消息破译和骗取用户签名。
4.从上面的签名流程和验证流程我们发现,该方案不能抵御接收方是否接收过信息的抵赖性。
由安全性分析我们得出基于PKI的数字签名的安全性存在不足,本节主要就加密解密算法做深入研究并提出改进措施,在本文中我提出新的加密和解密方案:即在加密的过程中添加随机因子和时间戳,从而使得即使是相同的明文经过同样的加密所得密文也不同,从而能够抵御假冒攻击。接下来对添加随机因子和时间戳的RSA算法具体描述如下:
1.关于算法的一些说明
(1)选取两个很大且相近的素数p、q,越大越好,计算n=p*q,p、q保密n公开;
(2)随机选择加密密钥e(e公开),计算φ(n)=(p-1)*(q-1)且e和φ(n)互质。
(3)利用Euclid算法计算密钥d,d*e=1 mod φ(n)(e、n是公钥要公开,d为私钥,p、q丢弃绝对不能泄露)。在加密信息m时,首先将m分组成等长度且长度小于n的小块的m1,m2,m3……mi,对单个分组mi加密形成密文小块,每个密文小组长度也相同,密文小块组成加密后的密文c。
对应的加密计算是:c=memod n
ii
对应的解密计算是:mi=cidmod n
(4)一些合理的假设:发送方为A,发送方的公钥为(eA,nA),发送方私钥为dA;信息接收方为B,接收方的公钥为(eB,nB),接受方私钥为dB。假设发送方A要将明文分组m传送给接收方B,则发送方A随机选择一个整数x0,x0≤nA且x0≤nB。x1=x0eB(mod nB),x0保密,x1对外公开,且随信息密文发送给接收方B。
2.加密和签名过程
(l)用户A向DTS获得此次通信的时间戳ts,并将x0联接此次通信的时间戳ts,得到:s=x0||ts;A生成对称密钥k,用k对ts加密得到ts1=Ek(ts);对ts1用A私钥签名得到ts2=ts1dAmod nA;用发送方公钥eB对ts2加密得到ts3=ts2eBmod nB;将密文ts3发送给用户B;
(2)用户B收到密文ts3,B用私钥解密得到ts2,用A的公钥解密得到ts1’,将ts1’发送给A;
(3)A验证B发送回的ts1’,匹配则接受B的身份;
(4)A用私钥对k签名,再用B公钥加密,将k的密文发送给B;B接收并解密得到k;
(5)通过hash函数h产生随机数h(s),计算c1=m⊕h(s),计算c2=c1eB(mod nB),计算c3=c2dA(mod nA),将密文c3传输给用户B;
(6)计算信息m的信息摘要h(m)用A私钥签名后用B公钥加密,并发送给B。
3.解密和验证签名的过程
当用户B接收到密文c3后,进行如下解密操作:
(l)计算c3eA(mod nA)=(c2dA)eA(mod nA)=(c2dA.eA)(mod nA)=c2KnA+1(mod nA)=c2;
(2)计算c1=c2dB(mod nB);
(3)计算x0=x1dB(mod nB);用k解密的对称密钥解密Ek(ts)得到ts,计算s=x0||ts;
(4)通过hash函数h产生随机数h(s),计算m’=c1⊕h(s);
(5)将收到的h(m)密文解密,将m’进行哈希计算得到h(m’),比较h(m)和h(m’)若一样则接收信息。
4.改进方案的安全性分析
(1)该方案基于RSA算法,算法破解难度大,模数为1024位的大数眼下破解的可能性很低;
(2)每次加密添加了随机因子x0和引入了可靠的时间戳ts,分别发送以不同的加密方式加密的x0和ts给接收方,攻击者截获这两组密文的可能性极低,所以攻击者得到h(s)的可能性极低;
(3)每次加密的明文都进行c1=m⊕h(s)技术,就算是相同的明文m也会得到不同的c1,从而得到不同的密文,攻击者就算截获了信息密文也不能发起假冒攻击,弥补了基于RAS算法的安全缺陷。
在电子商务交易的过程中,PKI系统是降低电子商务交易风险的一种常用且有效的方法,本文介绍了PKI系统的组成,PKI系统提供的服务,分析了基于PKI通信的安全性,其安全主要通过数字证书和数字签名来实现,而数字签名的安全性则主要依赖于签名方案,在研究和分析现有数字签名方案的基础上提出了改进的新方案,即添加随机因子和时间戳的RSA签名方案,新方案增加了通信双方交互次数,虽然系统效率有所降低,但提高了方案的安全性,并且新方案既可保证信息的保密性、完整性,又使得通信双方都具备了不可抵赖性,具有很高安全性和较强的实用意义。
[1]刘颖.基于身份的数字签名的研究[D].西安电子科技大学硕士学位论文,2006,1.
[2]段保护.一种改进的基于时间戳的数字签名方案[D].长沙理工大学硕士学位论文,2009,3.
[3]陈昕.基于一次性口令的身份认证系统研究及实现[D].南京信息工程大学硕士学位论文,2009,5.
[4]潘恒.电子商务环境下基于PKI的信任问题研究[D].信息工程大学博士学位论文,2006,10.
[5]张宁.电子商务安全性分析[D].北京邮电大学硕士研究生学位论文,2007,3.
[6]任晓东.基于PKI的认证中心研究与实现[D].西南交通大学硕士学位论文,2008,5.
[7]梁雪梅.安全数字签名在电子商务中的应用研究[D].重庆大学硕士学位论文,2008,9.
[8]贾杰.基于RSA的概率公钥密码算法[D].中央民族大学硕士学位论文,2009,4.