鄭孝宗
【中圖分類號(hào)】TP393.08
1、安全數(shù)字簽名對(duì)于電子商務(wù)的重要性
隨著電子商務(wù)在我國(guó)的迅猛發(fā)展,電子商務(wù)中的網(wǎng)絡(luò)安全問題日漸突出。在電子商務(wù)交易中,商家、客戶和銀行等各參與方是通過開放的互聯(lián)網(wǎng)連接在一起的,相互之間的信息傳遞也要通過互聯(lián)網(wǎng)來進(jìn)行,這一特點(diǎn)使交易的風(fēng)險(xiǎn)性和不確定性加大,從而對(duì)網(wǎng)絡(luò)傳輸過程中數(shù)據(jù)的安全和保密提出了更高的要求,尤其對(duì)于電子商務(wù)支付中涉及到的敏感數(shù)據(jù),則更需確保其萬(wàn)無一失。
所以,在我看來,電子商務(wù)的安全首先是一個(gè)復(fù)雜的管理問題。企業(yè)內(nèi)部網(wǎng)絡(luò)的環(huán)境已很復(fù)雜,而當(dāng)把企業(yè)網(wǎng)與完全開放的因特網(wǎng)相連時(shí),整個(gè)系統(tǒng)的安全性、可靠性及可管理性等方面就更加難以控制。其次,它是一個(gè)復(fù)雜的技術(shù)問題。電子商務(wù)是通過計(jì)算機(jī)網(wǎng)絡(luò)傳輸商務(wù)信息和進(jìn)行貿(mào)易的,如何保證與傳統(tǒng)商業(yè)活動(dòng)類似的票據(jù)傳遞和商業(yè)確認(rèn),這首先需要技術(shù)上的支持,如電子簽名、電子識(shí)別等技術(shù)手段的采用。再次,它是一個(gè)法律問題,電子商務(wù)安全問題的真正解決需要通過法律的完善來加以保證。
2、數(shù)字簽名的實(shí)現(xiàn)方法
實(shí)現(xiàn)數(shù)字簽名有很多方法,目前數(shù)字簽名采用較多的是公鑰加密技術(shù),如基于RSA Data Security公司的PKCS(Public Key Cryptography Standards)、DSA(Digital Signature Algorithm)、x.509、PGP(Pretty Good Privacy)。1994年美國(guó)標(biāo)準(zhǔn)與技術(shù)協(xié)會(huì)公布了數(shù)字簽名標(biāo)準(zhǔn)(DSS)而使公鑰加密技術(shù)廣泛應(yīng)用。同時(shí)應(yīng)用散列算法(Hash)也是實(shí)現(xiàn)數(shù)字簽名的一種方法。我主要分析基于公鑰加密的數(shù)字簽名技術(shù)。
2. 1非對(duì)稱密鑰密碼算法進(jìn)行數(shù)字簽名
算法的含義:非對(duì)稱密鑰密碼算法使用兩個(gè)密鑰:公開密鑰和私有密鑰,分別用于對(duì)數(shù)據(jù)的加密和解密,即如果用公開密鑰對(duì)數(shù)據(jù)進(jìn)行加密,只有用對(duì)應(yīng)的私有密鑰才能進(jìn)行解密;如果用私有密鑰對(duì)數(shù)據(jù)進(jìn)行加密,則只有用對(duì)應(yīng)的公開密鑰才能解密。使用公鑰密碼算法進(jìn)行數(shù)字簽名通用的加密標(biāo)準(zhǔn)有: RSA,DSA,Diffie-Hellman等。
簽名和驗(yàn)證過程:
1. 發(fā)送方(甲)首先用公開的單向函數(shù)對(duì)報(bào)文進(jìn)行一次變換,得到數(shù)字簽名,然后利用私有密鑰對(duì)數(shù)字簽名進(jìn)行加密后附在報(bào)文之后一同發(fā)出。
2. 接收方(乙)用發(fā)送方的公開密鑰對(duì)數(shù)字簽名進(jìn)行解密交換,得到一個(gè)數(shù)字簽名的明文。發(fā)送方的公鑰可以由一個(gè)可信賴的技術(shù)管理機(jī)構(gòu)即認(rèn)證中心(CA)發(fā)布的。接收方將得到的明文通過單向函數(shù)進(jìn)行計(jì)算,同樣得到一個(gè)數(shù)字簽名,再將兩個(gè)數(shù)字簽名進(jìn)行對(duì)比,如果相同,則證明簽名有效,否則無效。
這種方法使任何擁有發(fā)送方公開密鑰的人都可以驗(yàn)證數(shù)字簽名的正確性。由于發(fā)送方私有密鑰的保密性,使得接受方既可以根據(jù)結(jié)果來拒收該報(bào)文,也能使其無法偽造報(bào)文簽名及對(duì)報(bào)文進(jìn)行修改,原因是數(shù)字簽名是對(duì)整個(gè)報(bào)文進(jìn)行的,是一組代表報(bào)文特征的定長(zhǎng)代碼,同一個(gè)人對(duì)不同的報(bào)文將產(chǎn)生不同的數(shù)字簽名。這就解決了銀行通過網(wǎng)絡(luò)傳送一張支票,而接收方可能對(duì)支票數(shù)額進(jìn)行改動(dòng)的問題,也避免了發(fā)送方逃避責(zé)任的可能。
2. 2對(duì)稱密鑰密碼算法進(jìn)行數(shù)字簽名。
算法含義:對(duì)稱密鑰密碼算法所用的加密密鑰和解密密鑰通常是相同的,即使不同也可以很容易地由其中的任意一個(gè)推導(dǎo)出另一個(gè)。在此算法中,加、解密雙方所用的密鑰都要保守秘密。由于計(jì)算機(jī)速度而廣泛應(yīng)用于大量數(shù)據(jù)如文件的加密過程中,如RD4和DES,用IDEA作數(shù)字簽名是不提倡的。使用分組密碼算法數(shù)字簽名通用的加密標(biāo)準(zhǔn)有:DES,Tripl-DES,RC2,RC4,CAST等。采用對(duì)稱密鑰進(jìn)行簽名過程中,除了文件簽字者和文件接受者雙方,還需要第三方認(rèn)證。
2. 3盲簽名
盲簽名(blind signature)是一種允許一個(gè)人讓另一個(gè)人簽署文檔,而第一個(gè)人不向簽名者泄露任何關(guān)于文檔內(nèi)容的技術(shù)。而且簽名被接收方泄漏后,簽名者無法追綜簽名。盲簽名多應(yīng)用于電子貨幣和電子選舉。
盲簽名的過程:
(1)發(fā)送方將文件M乘一個(gè)隨機(jī)數(shù)得M,這個(gè)隨機(jī)數(shù)通常稱為盲因子,然后將將盲消息M送給接收方;
(2)接收方在M上簽名后,將其簽名Sig(M)送回發(fā)送方;
(3)發(fā)送方通過除去盲因子,可從接收方關(guān)于M的簽名Sig(M)中得到接收方關(guān)于原始文件M的簽名Sig(M)。
2. 4多重簽名
多重?cái)?shù)字簽名的目的是將多個(gè)人的數(shù)字簽名匯總成一個(gè)簽名數(shù)據(jù)進(jìn)行傳送,簽名收方只需驗(yàn)證一個(gè)簽名便可確認(rèn)多個(gè)人的簽名。
多重?cái)?shù)字簽名的目的是指多個(gè)用戶對(duì)同一個(gè)文件進(jìn)行聯(lián)合簽名.然后將多個(gè)人的數(shù)字簽名匯總成一個(gè)簽名數(shù)據(jù)進(jìn)行傳送,簽名收方只需驗(yàn)證一個(gè)簽名便可確認(rèn)多個(gè)人的簽名。
2. 5代理簽名
代理簽名的目的是當(dāng)某簽名人因公務(wù)或身體健康等原因不能行使簽名權(quán)力時(shí),將簽名權(quán)委派給其他人替自己行使簽名權(quán)。
假設(shè)A委托B進(jìn)行代理簽名,則簽名必須滿足三個(gè)最基本的條件:
(1)簽名接收方能夠像驗(yàn)證A的簽名那樣驗(yàn)證B的簽名;
(2)A的簽名和B的簽名應(yīng)當(dāng)完全不同,并且容易區(qū)分;
(3)A和B對(duì)簽名事實(shí)不可否認(rèn)。
3、安全數(shù)字簽名的實(shí)現(xiàn)
(1) 將用戶提交的數(shù)據(jù),打成數(shù)據(jù)包M。
(2) 用MD5 算法計(jì)算數(shù)據(jù)包的報(bào)文摘要的值C。
(3) 用RSA 算法將報(bào)文摘要的值用用戶的SK加密,得到C1 。
(4) 形成傳送的信息,即構(gòu)成用戶名+ C1 +M。
(5) 用發(fā)送方的私鑰來反向加密此信息包(用戶名+C1+M)形成一密文。
(6) 然后再用接收方的公開密鑰來再一次加密上一個(gè)階段產(chǎn)生的密文.
把上一階段形成的信息包(用戶名+C1+M)看作加密數(shù)據(jù),應(yīng)用接收方的公開密鑰進(jìn)行再一次加密,形成嵌套加密。最后再把嵌套加密的最終數(shù)據(jù)發(fā)給接收方。
(7)最后再把形成的雙重密文發(fā)送給接收方
當(dāng)接收方收到此密文后,先用唯一的接收方私有密鑰去解密,得到一密文,接著再用發(fā)送方的公開密鑰來解密,得到用戶名+C1+M,
(8) 根據(jù)雙方規(guī)定的協(xié)議分離出用戶名,密文C1 和數(shù)據(jù)包M;
(9) 由RSA 算法用用戶的公鑰對(duì)C1 解密,得到數(shù)字簽名C
(10) 用MDS 算法對(duì)提取出的明文數(shù)據(jù)包M 進(jìn)行計(jì)算得到C′;
(11)將C 和C′進(jìn)行比較,若相同,則簽名有效,不同則簽名無效。
接收方處理數(shù)據(jù)包時(shí),對(duì)數(shù)據(jù)進(jìn)行了兩次解密:
安全性的數(shù)字簽名比原始的簽名方案的優(yōu)點(diǎn)在于保密性方面,嵌套加密決定了,只有成功進(jìn)行第一次的解密,才能繼續(xù)進(jìn)行第二次解密。而能成功進(jìn)行第一次解密必須具備有接收方的私鑰,接收方的私只有接收方自已知道,所以只有正確的接收方才能解開第一次加密,這就保證了保密性,在第二次的解密中與傳統(tǒng)的數(shù)字簽名類似保證了數(shù)據(jù)是否是由正確的發(fā)送方傳過來,同時(shí)也能防止發(fā)送方事后否認(rèn)現(xiàn)象發(fā)生。