摘要:Intranet環境中的信息安全問題非常突出,而數字簽名技術在保證數據的完整性、私有性和不可抵賴性方面起著極為重要的作用。文章詳細分析了帶加密的數字簽名及多人數字簽名的工作流程并給出了具體實現步驟,為數字簽名技術在Intranet中應用提供理論依據。
關鍵詞:數字簽名;Hash簽名;DSS;RSA;DSA
中圖分類號:TP393文獻標識碼:A文章編號:1009-3044(2009)25-7096-02
Implement of Intranet Information Security with Digital Signature Technology
HUANG Wei
(Hunan Radio and Television University, Changsha 410004, China)
Abstract: The problem of the Intranet information security is quite prominent, and the digital signature technology plays a important role to ensure the integrity of data,private and non-repudiation.This paper analyzes work process of digital signature in detail and presents the basic step of its implement.The analysis provides the theoretic base for Intranet information security.
Key words: digital signature; hash signature; DSS; RSA; DSA
在網絡環境下使用計算機,信息安全是一個非常突出的問題。數據加密是保護數據的最基本的方法。單純數據加密技術只能防止非法用戶獲得真實數據,但不能解決否認或抵賴、偽造、篡改和冒充等安全問題。為了解決這類問題,產生了數字簽名技術。數字簽名包括加密、隨機功能(指印或信息摘要)、數字化簽字、經權威機構認可的證書(CA)。
1 數字簽名技術常見算法
數字簽名的算法很多,應用最為廣泛的三種是:Hash簽名、DSS簽名、RSA簽名。
1.1 Hash簽名
Hash簽名不屬于強計算密集型算法,應用較廣泛。Hash簽名使用密碼安全函數MD5或SHA,并從文件中產生一個Hash值。Hash值作為簽名與文件一起傳送。接收方用密鑰的副本對簽名進行檢驗。由于使用較快的算法,可以降低服務器資源的消耗,減輕中央服務器的負荷。Hash的主要局限是接收方必須持有用戶密鑰的副本以檢驗簽名,因為雙方都知道生成簽名的密鑰,較容易攻破,存在偽造簽名的可能。如果中央或用戶計算機中有一個被攻破,那么其安全性就受到了威脅。
1.2 RSA簽名
RSA密碼系統為每個用戶分配兩對密鑰(公鑰和私鑰),RSA是最流行的一種加密標準,許多產品的內核中都有RSA的軟件和類庫。RSA與Microsoft、IBM、Sun和Digital都簽訂了許可協議,使在其生產線上加入了類似的簽名特性。RSA既可以用來加密數據,也可以用于身份認證。和Hash簽名相比,公鑰系統中,由于生成簽名的密鑰只存儲于用戶的計算機中,安全系數大一些。
1.3DSS簽名
DSS和RSA采用了公鑰算法,不存在Hash的局限性。DSS數字簽名是由美國國家標準化研究院和國家安全局共同開發的。由于它是由美國政府頒布實施的主要用于與美國政府做生意的公司,其他公司則較少使用。安全Hash標準(SHS)作為數字簽名標準(DSS)的標準加密報文算法。SHS密文采用160位,比采用128位密文的MD5更安全。
2 數字簽名的工作流程
數字簽名是建立在公開密鑰加密體制的基礎上的,根據數字簽名標準DSS,可分為以下幾個步驟:
1)發送方選擇合適的單向散列函數,產生報文的單向散列值。
單向散列函數是一種根據數據報文計算出固定長度比特序列的方法。單向散列函數建立在壓縮函數的想法上,它的安全性是它的單向性,常用的單向散列函數有MD5和SHA算法。MD5以512位分組處理輸入文件,產生一個128位散列值。SHS規定了一種保證數字簽名算法(DSA)安全所必須的安全散列算法(SHA)。當輸入是長度小于264位的消息時,SHA產生160位的消息摘要,然后將該摘要輸入到用于計算該消息簽名的DSA中。由于是對散列而不是對文件進行簽名,可大大改善處理效率。
2) 發送方用自己的私人密鑰對散列加密,即利用DSA算法進行計算,產生數字簽名。
3) 將散列簽名和報文一起發送給接收方。
接收方用同樣的單向散列函數(預先協商好的算法)產生報文的散列,然后用數字簽名算法對散列進行運算,產生數字簽名1,同時用公開密鑰對簽名的散列解密,產生數字簽名2。若數字簽名1=數字簽名2,則簽名得到驗證。
3 數字簽名技術與加密技術的結合
在實際應用中,如果信息是公開的,必須保證信息不被偽造(如:網頁信息),則可利用數字簽名技術來保證信息的完整性及不可偽造性。把公開密碼學和數字簽名結合起來,能夠產生一個協議,這樣可把簽名的真實性和加密的安全性結合起來,先簽名后加密,遠比先加密后簽名的安全性要高。
令發送方為Amy,接收方為Bob。PKA和SKA為Amy的公共密鑰和私有密鑰,PKB和SKB為Bob的公共密鑰和私有密鑰。簽名過程如下:
1) Amy用DSA算法和自己的私鑰SKA對消息M計算,產生數字簽名S;
2) Amy用Bob的公共密鑰PKB對簽名的消息(M+S)加密,然后發送給Bob:EPKB(M+S);
3) Bob用他的私鑰SKB才能解密,產生DSKB(EPKB(M+S))=M+S;
4) Bob用DSA算法和Amy的公鑰PKA對消息M進行計算,產生一個數字簽名X',若X=X',則簽名有效。
4 文件的多重簽名
隨著網絡技術的發展,數字簽名技術也在不斷發展,在一對一安全通信的基礎上,可實現在OA系統中對文件的多重簽名。令發送方(按簽名順序)為A1、A2、A3……An,接收方為B,PKAi和SKAi分別為Ai的公鑰和私鑰,PKB和SKB分別為B的公鑰和私鑰,發送的消息為M。
多人簽名步驟如下:
1) A1用DSA算法和A1的私鑰SKA1對M進行計算,產生簽名X1,并用下一位簽名人A2的公鑰PKA2對(M+X1)進行加密,產生EPKA2(M+X1),并發送給A2;
2) A2收到后,用他的私鑰SKA2對消息摘要解密,產生DSKA2(EPKA2(M+X1))=M+X1,并用DSA算法和前一位簽名人A1的公鑰PKA1對前一簽名人的X1進行驗證,若不能驗證,則簽名終止,并進行下一步;
3) A2把(M+X1)當作新的消息M2,用DSA算法和自己的私鑰SKA2產生新的簽名X2,并用后一位簽名人A3的公鑰PKA3加密,產生EPKA3(M2+X2),并發送給后一位簽名人A3;
4) A3按照步驟(2)~(3)處理,每個簽名人依次處理,直到最后的簽名人An簽名完成,產生最終簽名Xn以及最終的消息Mn.;
5) 最后An用接收者B的公鑰對(Mn+Xn)加密,產生EPKB(Mn+Xn),并發送給B。
多人簽名驗證步驟如下:
1) B收到后,用他的私鑰SKB對消息解密,產生DSKB(EPKB(Mn+Xn)=Mn+Xn;
2) B用DSA算法和An的公鑰PKA n對Mn進行計算,得到一個數字簽名Xn′;
3) 如果Xn≠Xn′,驗證失敗,驗證過程終止;
4) 按步驟(1)~(3)進行驗證,直至M和X1通過驗證,則整個簽名算法成功。
5 Internet上建立信息安全機制
SSL通過使用公開密鑰和對稱密鑰技術的有效結合達到信息的保密性,SSL客戶機和服務器之間的信息處理業務都采用在SSL握手過程中建立的密鑰和算法進行加密,既有認證機構的保證,又實現了一次一密的隨機加密,大大提高了加密強度,可有效地防止網絡竊聽。所采用的算法有DES、TripleDES、IDEA、RC2、RC4等。
1) SSL支持認證機制,通信者的身份認證采用公開密鑰系統,采用的算法有:RSA,DSS。
2) SSL通信采用機密共享和Hash函數組提供信息完整性服務,確保SSL業務全部達到目的。SSL通信還傳送保證數據完整性的數據識別碼(MAC Code),數據識別碼采用MD5、SHA算法。
利用SSL技術對應用服務器和客戶進行身份認證,用加密技術對Web服務器與用戶之間的傳輸數據加密。它包括用DES、RC4、IDEA或專用密碼算法進行傳輸加密,數據完整性校驗和身份驗證,安全的審計和記錄等等,是整個安全管理和控制的前臺。
客戶端為IE瀏覽器,使用SSL安全代理在瀏覽器和服務器端各設一個轉接站,傳輸的數據先經過安全代理加解密后再進行傳輸。
6 結束語
數字簽名只是一種身份確認的方式,傳統簽名用手寫識別,數字簽名用密碼確認,兩者在交互中的作用并無區別。數字簽名技術是信息安全領域的一項重要技術,是實現信息安全傳輸的重要手段之一,其應用領域日益廣泛。在某種意義上,數字簽字系統比手簽字或印章更為有效。一份多頁的手簽文件很難保證每頁的內容均不會被改動或替換,但數字簽字卻能保證文件的每一字符都未經過任何改動。由于許多領域對數字簽名技術提出了新的應用需求,在未來的信息領域中這一技術仍有著廣闊的發展前景。
參考文獻:
[1] 劉啟源,劉怡.數據庫與信息系統的安全[M].北京:科學出版社,2000.
[2] 余少云.數字簽名在網絡信息安全中的應用[J].商場現代化,2006(20).
[3] 張文麗.數字簽名技術在信息安全中的應用[J].電腦學習,2008(5).