帷幄 2001-7-25
目前有許多種技術保證信息的安全不受侵犯,例如加密技術、訪問控制技術、認證技術以及安全審計技術等,但這些技術大多數是用來預防用的,信息壹旦被攻破,我們不能保證信息的完整性。為此,壹種新興的用來保證信息完整性的安全技術——數字簽名技術成為人們非常關心的話題。那麽,什麽是數字簽名技術?它有什麽特殊功能呢?
概念
在數字簽名技術出現之前,曾經出現過壹種“數字化簽名”技術,簡單地說就是在手寫板上簽名,然後將圖像傳輸到電子文檔中,這種“數字化簽名”可以被剪切,然後粘貼到任意文檔上,這樣非法復制變得非常容易,所以這種簽名的方式是不安全的。數字簽名技術與數字化簽名技術是兩種截然不同的安全技術,數字簽名與用戶的姓名和手寫簽名形式毫無關系,它實際使用了信息發送者的私有密鑰變換所需傳輸的信息。對於不同的文檔信息,發送者的數字簽名並不相同。沒有私有密鑰,任何人都無法完成非法復制。從這個意義上來說,“數字簽名”是通過壹個單向函數對要傳送的報文進行處理得到的,用以認證報文來源並核實報文是否發生變化的壹個字母數字串。
原理
該技術在具體工作時,首先發送方對信息施以數學變換,所得的信息與原信息惟壹對應;在接收方進行逆變換,得到原始信息。只要數學變換方法優良,變換後的信息在傳輸中就具有很強的安全性,很難被破譯、篡改。這壹個過程稱為加密,對應的反變換過程稱為解密。
現在有兩類不同的加密技術,壹類是對稱加密,雙方具有***享的密鑰,只有在雙方都知道密鑰的情況下才能使用,通常應用於孤立的環境之中,比如在使用自動取款機(ATM)時,用戶需要輸入用戶識別號碼(PIN),銀行確認這個號碼後,雙方在獲得密碼的基礎上進行交易,如果用戶數目過多,超過了可以管理的範圍時,這種機制並不可靠。
另壹類是非對稱加密,也稱為公開密鑰加密,密鑰是由公開密鑰和私有密鑰組成的密鑰對,用私有密鑰進行加密,利用公開密鑰可以進行解密,但是由於公開密鑰無法推算出私有密鑰,所以公開的密鑰並不會損害私有密鑰的安全,公開密鑰無須保密,可以公開傳播,而私有密鑰必須保密,丟失時需要報告鑒定中心及數據庫。
算法
數字簽名的算法很多, 應用最為廣泛的三種是: Hash簽名、DSS簽名和RSA簽名。
1. Hash簽名
Hash簽名不屬於強計算密集型算法,應用較廣泛。它可以降低服務器資源的消耗,減輕中央服務器的負荷。Hash的主要局限是接收方必須持有用戶密鑰的副本以檢驗簽名, 因為雙方都知道生成簽名的密鑰,較容易攻破,存在偽造簽名的可能。
2. DSS和RSA簽名
DSS 和RSA采用了公鑰算法,不存在Hash的局限性。RSA是最流行的壹種加密標準,許多產品的內核中都有RSA的軟件和類庫。早在Web飛速發展之前, RSA數據安全公司就負責數字簽名軟件與Macintosh操作系統的集成,在Apple的協作軟件PowerTalk上還增加了簽名拖放功能,用戶只要把需要加密的數據拖到相應的圖標上,就完成了電子形式的數字簽名。與DSS不同,RSA既可以用來加密數據,也可以用於身份認證。和Hash簽名相比,在公鑰系統中,由於生成簽名的密鑰只存儲於用戶的計算機中,安全系數大壹些。
功能
數字簽名可以解決否認、偽造、篡改及冒充等問題。具體要求:發送者事後不能否認發送的報文簽名、接收者能夠核實發送者發送的報文簽名、接收者不能偽造發送者的報文簽名、接收者不能對發送者的報文進行部分篡改、網絡中的某壹用戶不能冒充另壹用戶作為發送者或接收者。數字簽名的應用範圍十分廣泛,在保障電子數據交換(EDI)的安全性上是壹個突破性的進展,凡是需要對用戶的身份進行判斷的情況都可以使用數字簽名,比如加密信件、商務信函、定貨購買系統、遠程金融交易、自動模式處理等等。
缺憾
數字簽名的引入過程中不可避免地會帶來壹些新問題,需要進壹步加以解決,數字簽名需要相關法律條文的支持。
1. 需要立法機構對數字簽名技術有足夠的重視,並且在立法上加快腳步,迅速制定有關法律,以充分實現數字簽名具有的特殊鑒別作用,有力地推動電子商務以及其他網上事務的發展。
2. 如果發送方的信息已經進行了數字簽名,那麽接收方就壹定要有數字簽名軟件,這就要求軟件具有很高的普及性。
3. 假設某人發送信息後脫離了某個組織,被取消了原有數字簽名的權限,以往發送的數字簽名在鑒定時只能在取消確認列表中找到原有確認信息,這樣就需要鑒定中心結合時間信息進行鑒定。
4. 基礎設施(鑒定中心、在線存取數據庫等)的費用,是采用公***資金還是在使用期內向用戶收費?如果在使用期內收費,會不會影響到這項技術的全面推廣?
實施
實現數字簽名有很多方法,目前采用較多的是非對稱加密技術和對稱加密技術。雖然這兩種技術實施步驟不盡相同,但大體的工作程序是壹樣的。用戶首先可以下載或者購買數字簽名軟件,然後安裝在個人電腦上。在產生密鑰對後,軟件自動向外界傳送公開密鑰。由於公***密鑰的存儲需要,所以需要建立壹個鑒定中心(CA)完成個人信息及其密鑰的確定工作。鑒定中心是壹個政府參與管理的第三方成員,以便保證信息的安全和集中管理。用戶在獲取公開密鑰時,首先向鑒定中心請求數字確認,鑒定中心確認用戶身份後,發出數字確認,同時鑒定中心向數據庫發送確認信息。然後用戶使用私有密鑰對所傳信息簽名,保證信息的完整性、真實性,也使發送方無法否認信息的發送,之後發向接收方;接收方接收到信息後,使用公開密鑰確認數字簽名,進入數據庫檢查用戶確認信息的狀況和可信度;最後數據庫向接收方返回用戶確認狀態信息。不過,在使用這種技術時,簽名者必須註意保護好私有密鑰,因為它是公開密鑰體系安全的重要基礎。如果密鑰丟失,應該立即報告鑒定中心取消認證,將其列入確認取消列表之中。其次,鑒定中心必須能夠迅速確認用戶的身份及其密鑰的關系。壹旦接收到用戶請求,鑒定中心要立即認證信息的安全性並返回信息。
什麽是數字簽名:
壹.數字簽名的含義
數字簽名是在公鑰加密系統的基礎上建立起來的,數字簽名的產生涉及的運算方式是為人們所知的散列函數功能,也稱"哈希函數功能"(Hash Function).哈希函數功能其實是壹種數學計算過程.這壹計算過程建立在壹種以"哈希函數值"或"哈希函數結果"形式創建信息的數字表達式或壓縮形式(通常被稱作"信息摘要"或"信息標識")的計算方法之上.在安全的哈希函數功能(有時被稱作單向哈希函數功能)情形下,要想從已知的哈希函數結果中推導出原信息來,實際上是不可能的.因而,哈希函數功能可以使軟件在更少且可預見的數據量上運作生成數字簽名,卻保持與原信息內容之間的高度相關,且有效保證信息在經數字簽署後並未做任何修改.
所謂數字簽名,就是只有信息的發送者才能產生的,別人無法偽造的壹段數字串,它同時也是對發送者發送的信息的真實性的壹個證明.簽署壹個文件或其他任何信息時,簽名者首先須準確界定要簽署內容的範圍.然後,簽名者軟件中的哈希函數功能將計算出被簽署信息惟壹的哈希函數結果值(為實用目的).最後使用簽名者的私人密碼將哈希函數結果值轉化為數字簽名.得到的數字簽名對於被簽署的信息和用以創建數字簽名的私人密碼而言都是獨壹無二的.
壹個數字簽名(對壹個信息的哈希函數結果的數字簽署)被附在信息之後,並隨同信息壹起被儲存和傳送.然而,只要能夠保持與相應信息之間的可靠聯系,它也可以作為單獨的數據單位被存儲和傳送.因為數字簽名對它所簽署的信息而言是獨壹無二的,因此,假如它與信息永久地失去聯系則變得毫無意義.
在書面文件上簽名是確認文件的壹種手段,數字簽名同傳統的手寫簽名相比有許多特點.
首先,數字簽名中的簽名同信息是分開的,需要壹種方法將簽名與信息聯系在壹起,而在傳統的手寫簽名中,簽名與所簽署之信息是壹個整體;
其次,在簽名驗證的方法上,數字簽名利用壹種公開的方法對簽名進行驗證,任何人都可以對之進行檢驗.而傳統的手寫簽名的驗證,是由經驗豐富的接收者,通過同預留的簽名樣本相比較而作出判斷的;
最後,在數字簽名中,有效簽名的復制同樣是有效的簽名,而在傳統的手寫簽名中,簽名的復制是無效的.
數字簽名可以同時具有兩個作用:確認數據的來源,以及保證數據在發送的過程中未作任何修改或變動.因此,在某些方面而言,數據簽名的功能,更有些近似於整體性檢測值的功能.但是,二者的壹個主要區別在於,數字簽名必須能夠保證以下特點,即發送者事後不能抵賴對報文的簽名.這壹點相當重要.由此,信息的接收者可以通過數字簽名,使第三方確信簽名人的身份及發出信息的事實.當雙方就信息發出與否及其內容出現爭論時,數字簽名就可成為壹個有力的證據.壹般來說因信息篡改而受影響較大的是接收方.因此,接收方最好使用與信息發送方不同的數字簽名,以示區別.這是整體性檢測值所不具有的功能.在這種意義上說來,確認壹個數字簽名,有些類似於通過辯認手寫簽名來確認某壹書面文件的來源壹樣的意義.
采用數字簽名和加密技術相結合的方法,可以很好地解決信息傳輸過程中的完整性,身份認證以及防抵賴性等問題.
(1)完整性.因為它提供了壹項用以確認電子文件完整性的技術和方法,可認定文件為未經更改的原件.
(2)可驗證性.可以確認電子文件之來源.由於發件人以私鑰產生的電子簽章惟有與發件人的私鑰對應的公鑰方能解密,故可確認文件之來源.
(3)不可否認性.由於只有發文者擁有私鑰,所以其無法否認該電子文件非由其所發送.
數字簽名
所謂"數字簽名"就是通過某種密碼運算生成壹系列符號及代碼組成電子密碼進行簽名,來代替書寫簽名或印章,對於這種電子式的簽名還可進行技術驗證,其驗證的準確度是壹般手工簽名和圖章的驗證而無法比擬的。"數字簽名"是目前電子商務、電子政務中應用最普遍、技術最成熟的、可操作性最強的壹種電子簽名方法。它采用了規範化的程序和科學化的方法,用於鑒定簽名人的身份以及對壹項電子數據內容的認可。它還能驗證出文件的原文在傳輸過程中有無變動,確保傳輸電子文件的完整性、真實性和不可抵賴性。
數字簽名在ISO7498-2標準中定義為:"附加在數據單元上的壹些數據,或是對數據單元所作的密碼變換,這種數據和變換允許數據單元的接收者用以確認數據單元來源和數據單元的完整性,並保護數據,防止被人(例如接收者)進行偽造"。美國電子簽名標準(DSS,FIPS186-2)對數字簽名作了如下解釋:"利用壹套規則和壹個參數對數據計算所得的結果,用此結果能夠確認簽名者的身份和數據的完整性"。按上述定義PKI(Public Key Infrastructino 公鑰基礎設施)提供可以提供數據單元的密碼變換,並能使接收者判斷數據來源及對數據進行驗證。
PKI的核心執行機構是電子認證服務提供者,即通稱為認證機構CA(Certificate Authority),PKI簽名的核心元素是由CA簽發的數字證書。它所提供的PKI服務就是認證、數據完整性、數據保密性和不可否認性。它的作法就是利用證書公鑰和與之對應的私鑰進行加/解密,並產生對數字電文的簽名及驗證簽名。數字簽名是利用公鑰密碼技術和其他密碼算法生成壹系列符號及代碼組成電子密碼進行簽名,來代替書寫簽名和印章;這種電子式的簽名還可進行技術驗證,其驗證的準確度是在物理世界中對手工簽名和圖章的驗證是無法比擬的。這種簽名方法可在很大的可信PKI域人群中進行認證,或在多個可信的PKI域中進行交叉認證,它特別適用於互聯網和廣域網上的安全認證和傳輸。
簡單地說,所謂數字簽名就是附加在數據單元上的壹些數據,或是對數據單元所作的密碼變換。這種數據或變換允許數據單元的接收者用以確認數據單元的來源和數據單元的完整性並保護數據,防止被人(例如接收者)進行偽造。它是對電子形式的消息進行簽名的壹種方法,壹個簽名消息能在壹個通信網絡中傳輸。基於公鑰密碼體制和私鑰密碼體制都可以獲得數字簽名,目前主要是基於公鑰密碼體制的數字簽名。包括普通數字簽名和特殊數字簽名。普通數字簽名算法有RSA、ElGamal、Fiat-Shamir、Guillou- Quisquarter、Schnorr、Ong-Schnorr-Shamir數字簽名算法、Des/DSA,橢圓曲線數字簽名算法和有限自動機數字簽名算法等。特殊數字簽名有盲簽名、代理簽名、群簽名、不可否認簽名、公平盲簽名、門限簽名、具有消息恢復功能的簽名等,它與具體應用環境密切相關。顯然,數字簽名的應用涉及到法律問題,美國聯邦政府基於有限域上的離散對數問題制定了自己的數字簽名標準(DSS)。
數字簽名(Digital Signature)技術是不對稱加密算法的典型應用。數字簽名的應用過程是,數據源發送方使用自己的私鑰對數據校驗和或其他與數據內容有關的變量進行加密處理,完成對數據的合法“簽名”,數據接收方則利用對方的公鑰來解讀收到的“數字簽名”,並將解讀結果用於對數據完整性的檢驗,以確認簽名的合法性。數字簽名技術是在網絡系統虛擬環境中確認身份的重要技術,完全可以代替現實過程中的“親筆簽字”,在技術和法律上有保證。在公鑰與私鑰管理方面,數字簽名應用與加密郵件PGP技術正好相反。在數字簽名應用中,發送者的公鑰可以很方便地得到,但他的私鑰則需要嚴格保密。
數字簽名主要的功能是:保證信息傳輸的完整性、發送者的身份認證、防止交易中的抵賴發生。
數字簽名技術是將摘要信息用發送者的私鑰加密,與原文壹起傳送給接收者。接收者只有用發送的公鑰才能解密被加密的摘要信息,然後用HASH函數對收到的原文產生壹個摘要信息,與解密的摘要信息對比。如果相同,則說明收到的信息是完整的,在傳輸過程中沒有被修改,否則說明信息被修改過,因此數字簽名能夠驗證信息的完整性。
數字簽名是個加密的過程,數字簽名驗證是個解密的過程。
具有數字簽名功能的個人安全郵件證書是用戶證書的壹種,是指單位用戶收發電子郵件時采用證書機制保證安全所必須具備的證書。個人安全電子郵件證書是符合x.509標準的數字安全證書,結合數字證書和S/MIME技術對普通電子郵件做加密和數字簽名處理,確保電子郵件內容的安全性、機密性、發件人身份確認性和不可抵賴性。 具有數字簽名功能的 個人安全郵件證書中包含證書持有人的電子郵件地址、證書持有人的公鑰、頒發者(河南CA)以及頒發者對該證書的簽名。個人安全郵件證書功能的實現決定於用戶使用的郵件系統是否支持相應功能。目前, MS Outlook 、Outlook Express、Foxmail及河南CA安全電子郵件系統均支持相應功能。使用個人安全郵件證書可以收發加密和數字簽名郵件,保證電子郵件傳輸中的機密性、完整性和不可否認性,確保電子郵件通信各方身份的真實性