桂林電子科技大學(xué) 陽江職業(yè)技術(shù)學(xué)院 賀慧玲
PKI是一個以公鑰密碼技術(shù)為基礎(chǔ),數(shù)字證書為媒介,結(jié)合對稱加密和非對稱加密技術(shù),將個人的信息和公鑰綁在一起的系統(tǒng)。其主要目的是通過管理密鑰和證書,為用戶建立一個安全、可信的網(wǎng)絡(luò)應(yīng)用環(huán)境,使用戶可以在網(wǎng)絡(luò)上方便地使用加密和數(shù)字簽名技術(shù),在Internet上驗證通信雙方身份,從而保證了互聯(lián)網(wǎng)上所傳輸信息的真實性、完整性、機密性和不可否認性。完整的PKI系統(tǒng)包括一個RA中心、CA中心、用戶終端系統(tǒng)EE、證書/CRL資料庫和秘鑰管理系統(tǒng)。
PKI作為安全基礎(chǔ)設(shè)施,主要提供的服務(wù)有保密性服務(wù)、身份認證服務(wù)、驗證信息完整性服務(wù)以及電子商務(wù)中的不可抵賴性服務(wù)。
1.保密性服務(wù)
所謂保密性服務(wù)就是提供信息的保密性服務(wù),包括存儲文件和傳輸信息的保密性,所有需要保密的信息都加密,這樣即使被攻擊者獲取到也只是密文形式,攻擊者沒有解密密鑰,無法得到信息的真實內(nèi)容,從而實現(xiàn)了對信息的保護。PKI提供了保密性服務(wù),并且這個服務(wù)對于所有用戶都是透明的。
2.身份認證服務(wù)
PKI的認證服務(wù)在ITU-TX.509標準中定義為強鑒別服務(wù),即采用公開密鑰技術(shù)、數(shù)字簽名技術(shù)和安全的認證協(xié)議進行強鑒別的服務(wù)。
3.完整性服務(wù)
完整性服務(wù)就是保證數(shù)據(jù)在保存或傳輸過程中沒有被非法篡改,PKI體系中采用對信息的信息摘要進行數(shù)字簽名的方式驗證信息的完整性。
4.不可抵賴性服務(wù)
不可抵賴性服務(wù)是對參與者對做過某件事提供一個不可抵賴的證據(jù)。在PKI體系中,發(fā)送方的數(shù)字簽名就是不可抵賴的證據(jù)。
基于PKI的數(shù)字簽名,用戶首先向PKI的RA中心注冊自己的信息,RA審核用戶信息,審核通過則向CA中心發(fā)起證書申請請求,CA中心為用戶生成秘鑰對,私鑰私密保存好,公鑰和用戶信息打包并用CA私鑰進行數(shù)字簽名,形成數(shù)字證書并發(fā)布在CA服務(wù)器的證書列表,用戶到證書列表查看并下載證書。
假設(shè)用戶A要向用戶B發(fā)送信息M,用戶A首先對信息進行哈希函數(shù)h運算得到M的信息摘要hA,再用自己的私鑰DA對hA進行加密得到數(shù)字簽名Sig(hA)。將明文M、數(shù)字簽名Sig(hA)以及A的證書CertA組成信息包,用B的公鑰EB加密得到密文C并傳送給B。其中數(shù)字簽名與信息原文一起保存,私鑰DA只有用戶A擁有,因此別人不可能偽造A的數(shù)字簽名;又由于B的私鑰只有B擁有,所以只有B可以解密該信息包,這樣就保證了信息的保密性。
數(shù)字簽名的驗證過程是接收方B在收到密文C后,先用自己的私鑰解密C得到信息明文M、CertA和Sig(hA),然后驗證CertA是否合法,再用A的公鑰EA將收到的Sig(hA)解密得到數(shù)字摘要hA,其次對信息明文M進行哈希運算得信息摘要hA’,最后比較hA和hA’,如果hA=hA’則驗證數(shù)字簽名為真,且信息是完整的沒有被篡改;否則判定收到的信息有誤,丟棄。
從基于PKI數(shù)字簽名的實現(xiàn)過程和驗證過程中我們知道,數(shù)字簽名的安全性取決于以下幾點:
1.CA服務(wù)器確實安全可靠,用戶的證書不會被篡改。CA服務(wù)器的安全性主要包括物理安全和系統(tǒng)安全。所謂物理安全是指CA服務(wù)器放置在物理環(huán)境安全的地方,不會有水、火、蟲害、灰塵等的危害;系統(tǒng)安全是指服務(wù)器系統(tǒng)的安全,可以由計算機安全技術(shù)與防火墻技術(shù)實現(xiàn)。
2.用戶私鑰確實被妥善管理,沒有被篡改或泄露?,F(xiàn)在采用的技術(shù)是USB Key或智能卡存儲用戶私鑰,并由用戶用口令方式保護私鑰,而且實現(xiàn)了私鑰不出卡,要用私鑰必須插卡,從技術(shù)實現(xiàn)了私鑰不會被篡改和泄露。
3.數(shù)字簽名方案的安全性好?;赑KI公鑰加密技術(shù)的數(shù)字簽名是建立在一些難解的數(shù)學(xué)難題的基礎(chǔ)上,其中基于RSA算法的簽名方案應(yīng)用最多。RSA算法是基于大數(shù)分解的困難性,目前當模數(shù)達到1024位時,分解其因子幾乎是不可能的,未來十年內(nèi)也是安全的。但是由于RSA算法保存了指數(shù)運算的特性,RSA不能抵御假冒攻擊,就算攻擊者不能破解密鑰,也可進行假冒攻擊實現(xiàn)消息破譯和騙取用戶簽名。
4.從上面的簽名流程和驗證流程我們發(fā)現(xiàn),該方案不能抵御接收方是否接收過信息的抵賴性。
由安全性分析我們得出基于PKI的數(shù)字簽名的安全性存在不足,本節(jié)主要就加密解密算法做深入研究并提出改進措施,在本文中我提出新的加密和解密方案:即在加密的過程中添加隨機因子和時間戳,從而使得即使是相同的明文經(jīng)過同樣的加密所得密文也不同,從而能夠抵御假冒攻擊。接下來對添加隨機因子和時間戳的RSA算法具體描述如下:
1.關(guān)于算法的一些說明
(1)選取兩個很大且相近的素數(shù)p、q,越大越好,計算n=p*q,p、q保密n公開;
(2)隨機選擇加密密鑰e(e公開),計算φ(n)=(p-1)*(q-1)且e和φ(n)互質(zhì)。
(3)利用Euclid算法計算密鑰d,d*e=1 mod φ(n)(e、n是公鑰要公開,d為私鑰,p、q丟棄絕對不能泄露)。在加密信息m時,首先將m分組成等長度且長度小于n的小塊的m1,m2,m3……mi,對單個分組mi加密形成密文小塊,每個密文小組長度也相同,密文小塊組成加密后的密文c。
對應(yīng)的加密計算是:c=memod n
ii
對應(yīng)的解密計算是:mi=cidmod n
(4)一些合理的假設(shè):發(fā)送方為A,發(fā)送方的公鑰為(eA,nA),發(fā)送方私鑰為dA;信息接收方為B,接收方的公鑰為(eB,nB),接受方私鑰為dB。假設(shè)發(fā)送方A要將明文分組m傳送給接收方B,則發(fā)送方A隨機選擇一個整數(shù)x0,x0≤nA且x0≤nB。x1=x0eB(mod nB),x0保密,x1對外公開,且隨信息密文發(fā)送給接收方B。
2.加密和簽名過程
(l)用戶A向DTS獲得此次通信的時間戳ts,并將x0聯(lián)接此次通信的時間戳ts,得到:s=x0||ts;A生成對稱密鑰k,用k對ts加密得到ts1=Ek(ts);對ts1用A私鑰簽名得到ts2=ts1dAmod nA;用發(fā)送方公鑰eB對ts2加密得到ts3=ts2eBmod nB;將密文ts3發(fā)送給用戶B;
(2)用戶B收到密文ts3,B用私鑰解密得到ts2,用A的公鑰解密得到ts1’,將ts1’發(fā)送給A;
(3)A驗證B發(fā)送回的ts1’,匹配則接受B的身份;
(4)A用私鑰對k簽名,再用B公鑰加密,將k的密文發(fā)送給B;B接收并解密得到k;
(5)通過hash函數(shù)h產(chǎn)生隨機數(shù)h(s),計算c1=m⊕h(s),計算c2=c1eB(mod nB),計算c3=c2dA(mod nA),將密文c3傳輸給用戶B;
(6)計算信息m的信息摘要h(m)用A私鑰簽名后用B公鑰加密,并發(fā)送給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函數(shù)h產(chǎn)生隨機數(shù)h(s),計算m’=c1⊕h(s);
(5)將收到的h(m)密文解密,將m’進行哈希計算得到h(m’),比較h(m)和h(m’)若一樣則接收信息。
4.改進方案的安全性分析
(1)該方案基于RSA算法,算法破解難度大,模數(shù)為1024位的大數(shù)眼下破解的可能性很低;
(2)每次加密添加了隨機因子x0和引入了可靠的時間戳ts,分別發(fā)送以不同的加密方式加密的x0和ts給接收方,攻擊者截獲這兩組密文的可能性極低,所以攻擊者得到h(s)的可能性極低;
(3)每次加密的明文都進行c1=m⊕h(s)技術(shù),就算是相同的明文m也會得到不同的c1,從而得到不同的密文,攻擊者就算截獲了信息密文也不能發(fā)起假冒攻擊,彌補了基于RAS算法的安全缺陷。
在電子商務(wù)交易的過程中,PKI系統(tǒng)是降低電子商務(wù)交易風(fēng)險的一種常用且有效的方法,本文介紹了PKI系統(tǒng)的組成,PKI系統(tǒng)提供的服務(wù),分析了基于PKI通信的安全性,其安全主要通過數(shù)字證書和數(shù)字簽名來實現(xiàn),而數(shù)字簽名的安全性則主要依賴于簽名方案,在研究和分析現(xiàn)有數(shù)字簽名方案的基礎(chǔ)上提出了改進的新方案,即添加隨機因子和時間戳的RSA簽名方案,新方案增加了通信雙方交互次數(shù),雖然系統(tǒng)效率有所降低,但提高了方案的安全性,并且新方案既可保證信息的保密性、完整性,又使得通信雙方都具備了不可抵賴性,具有很高安全性和較強的實用意義。
[1]劉穎.基于身份的數(shù)字簽名的研究[D].西安電子科技大學(xué)碩士學(xué)位論文,2006,1.
[2]段保護.一種改進的基于時間戳的數(shù)字簽名方案[D].長沙理工大學(xué)碩士學(xué)位論文,2009,3.
[3]陳昕.基于一次性口令的身份認證系統(tǒng)研究及實現(xiàn)[D].南京信息工程大學(xué)碩士學(xué)位論文,2009,5.
[4]潘恒.電子商務(wù)環(huán)境下基于PKI的信任問題研究[D].信息工程大學(xué)博士學(xué)位論文,2006,10.
[5]張寧.電子商務(wù)安全性分析[D].北京郵電大學(xué)碩士研究生學(xué)位論文,2007,3.
[6]任曉東.基于PKI的認證中心研究與實現(xiàn)[D].西南交通大學(xué)碩士學(xué)位論文,2008,5.
[7]梁雪梅.安全數(shù)字簽名在電子商務(wù)中的應(yīng)用研究[D].重慶大學(xué)碩士學(xué)位論文,2008,9.
[8]賈杰.基于RSA的概率公鑰密碼算法[D].中央民族大學(xué)碩士學(xué)位論文,2009,4.