當前位置:
首頁 > 最新 > PKI:揭穿假面,網路空間中「驗明正身」很重要

PKI:揭穿假面,網路空間中「驗明正身」很重要

這是德嘉說第017期文章

編者按 :Public Key Infrastructure ( PKI ),中文叫做公開密鑰基礎設施,也就是利用公開密鑰機制建立起來的基礎設施。但是如果這麼解釋起來,到底是個什麼東西,大家想必是沒辦法理解的。現在大家的很多重要活動都是通過網路進行的,那麼與之俱來的安全問題就顯得非常重要。同時很多安全保障機制都是基於PKI的,其主要目的是用來發行「身份證明書」,網路上因為大家不能見面,所以偽造身份是非常容易的事情。因為要在網路上驗明正身,所以這個網路身份證明書就變得很重要了。本文節選了汪德嘉博士《身份危機》一書中的PKI體系介紹章節。告訴大家什麼是PKI? PKI的數字簽名身份認證系統原理又是什麼?

PKI體系介紹

PKI是一種遵循標準的利用公鑰加密技術為電子商務的開展提供一套安全基礎平台的技術和規範。用戶可利用PKI平台提供的服務進行安全通信。PKI的理論基礎是基於密碼學,它所使用的基礎技術包括加密(非對稱和對稱)、數字簽名、數據完整性機制、數字信封、雙重數字簽名等。

PKI技術主要是基於非對稱密鑰密碼技術,即公開密鑰密碼技術,同時也交叉使用對稱密鑰密碼技術,兩者取長補短,相輔相成,使PKI能夠成為方便、靈活的安全服務的安全基礎設施。使用基於公鑰技術系統的用戶建立安全通信信任機制的基礎是:網上進行的任何需要安全服務的通信都是建立在公鑰的基礎之上的,而與公鑰成對的私鑰只掌握在他們與之通信的另一方。這個信任的基礎是通過公鑰證書的使用來實現的。公鑰證書就是一個用戶的身份與他所持有的公鑰的結合,然後由其對該用戶身份及對應公鑰相結合的證書進行數字簽名,以證明其證書的有效性。

數字簽名介紹

隨著計算機網路的發展和電子商務、電子政務的興起,越來越多的電子合同、電子文檔等在網路傳輸,而這些資料需要當事者的簽名確認才能生效。由於這些合同、文檔是以電子化形式存在於電腦、網路中,手寫簽名行不通,因此數字簽名技術應運而生。

數字簽名最早是由Dime.HellmaIl提出的,數字簽名是手寫簽名的電子對應物,它是以密碼學的方法對數據文件產生的一組代表簽名者身份和數據完整性的數據信息。數字簽名用來保證信息傳輸過程中信息的完整和提供信息發送者的身份認證和不可抵賴性,以解決偽造、抵賴、冒充等問題。

數字簽名技術逐步替代了傳統的手寫簽名,開始應用於電子銀行、電子政務等領域。手寫簽名與數字簽名的主要區別在於:(1)體現形式不一樣。手寫簽名印在文件的物理部分,手寫簽名反映某個人的個性特徵,同一個人對不同文檔的手寫簽名體現的個性特徵相同;數字簽名則以簽名演算法的輸出內容體現在所簽的文件中。數字簽名是數字串,它隨被簽名對象的不同而變化,對不同文檔的數字簽名是不同的。(2)驗證方式不同。一個手寫簽名是通過和一個真實的手寫簽名相比較來驗證;而數字簽名能通過一個公開的驗證演算法來驗證。任何其他人都可以驗證一個數字簽名。數字簽名主要用於對數字信息進行簽名,以防止對信息的偽造或篡改,同時數字簽名也可用於對通信雙方的身份鑒別。

數字簽名特性

(1)簽名是可信的:任何人都可以驗證簽名的有效性;(2)簽名是不可偽造的:除了合法的簽名者之外,任何其他人偽造其簽名是困難的;(3)簽名是不可複製的:對一個消息的簽名不能通過複製變為另一個消息的簽名。如果對一個消息的簽名是從別處複製得到的,則任何人都可以發現消息與簽名之間的不一致性,從而可以拒絕簽名的消息;(4)簽名的消息是不可改變的:經簽名的消息不能被篡改。一旦簽名的消息被篡改,則任何人都可以發現消息與簽名之間的不一致性。(5)簽名是不可抵賴的:簽名者事後不能否認自己的簽名。使用公開密鑰演算法是實現數字簽名的主要技術。由於採用公開密鑰演算法對長文件簽名效率太低,在實際應用中為了節約時間,數字簽名通常與單向函數一起使用。在實際的簽名中,通常不對整個文件簽名,而只對文件的散列值簽名。《電子簽名法》中第四、五、六、八、九、十三條款正是根據這些特性制定的。

利用公鑰實現數字簽名原理

在公開密鑰加密體制下,公有密鑰是公開的,加密和解密的演算法也是公開的,保密性完全取決於私有密鑰的保密。只知道公有密鑰不可能計算出私有密鑰,只有知道私有密鑰的合法解密者才能正確解密,將密文還原成明文。從另一個角度講,保密的私有密鑰代表解密者的身份特徵,可以作為身份識別參數。因此,可以使用私有密鑰進行數字簽名。

數字簽名中用的是散列(Hash)函數,其輸入為一可變長輸入,返回一固定長度串,該串被稱為輸入的散列值(消息摘要),在數學上保證:只要改動報文的任何一位,重新計算出的報文摘要就會與原先值不符,這樣就保證了報文的不可更改。把該報文的摘要值用發送者的私人密鑰加密,然後將該密文與原報文一起發送給接收者。把Hash函數和公鑰演算法結合起來,可以在提供數據完整性的同時,也可以保證數據的真實性。完整性保證傳輸的數據沒有被修改,而真實性則保證是由確定的合法者產生的Hash,而不是由其他人假冒。接收方接收到數字簽名後,用同樣的Hash演算法對報文計算摘要值,然後與用發送者的公開密鑰進行解密解開的報文摘要值相比較,如果相等,則說明報文確實來自發送者,因為只有用發送者的簽名私鑰加密的信息才能用發送者的公鑰解開,從而保證了數據的真實性。

日常生活中,通常通過對某一文檔進行簽名來保證文檔的真實有效性,可以對簽字方進行約束,防止其抵賴行為,並把文檔與簽名同時發送以作為日後查證的依據。在網路環境中,可以用電子數字簽名作為模擬,從而為電子商務提供不可否認服務。由此可見,數字簽名不同於一般的手寫簽名:數字簽名隨文本的變化而變化,與文本信息是不可分割的。因此,入侵者不可能將用戶的數字簽名從一個文本上截取,附在另外一個文本後面,從而保證了簽名的可信性。

數字簽名機制提供了一種鑒別方法,普遍用於銀行、電子貿易等領域,以解決如下問題:(1)偽造:接收者偽造一文件,聲稱是對方發送的。(2)抵賴:發送者或者接收者事後不承認自己發送或接收過文件。(3)冒充:網上的某個用戶冒充另一個用戶發送或接收文件。(4)竄改:接收者對接收到的文件進行局部的竄改。基於以上數字簽名的特點,完全可以將其用於身份識別。

PKI的數字簽名身份認證原理

因為文檔的數字簽名不容易偽造,而且由權威機構發放的私鑰證書保證了私鑰持有者的合法身份,且私鑰不容易被盜和偽造,所以它為我們提供了一種驗證用戶身份的手段,看是不是他簽署的給定的數據。一般的利用公私鑰進行身份認證是通過加密的方式。伺服器使用用戶的公鑰對一隨機數進行加密,如果用戶能解密,就允許其進入。然而,這並不是解決這個問題的有效方法。例如用戶可能無法進行加密,或者有些系統存放用戶的私鑰的目的只是進行數字簽名。因此,我們用數字簽名的辦法來取代加密進行身份認證。

在這裡,我們仍用電子採購中的申請標書下載密碼為例來實現這種身份認證系統。為方便起見,我們採用C/S(Client/Server)模式來實現。在電子採購系統中,商戶必須成為會員後才可對採購網站上發布的信息進行訪問,會員客戶註冊交納一定的費用並經過採購方的審核後,就有資格對伺服器的資源進行訪問。但對於不同的標書,不同的客戶有不同的下載許可權,不是所有的會員都可以無限止地下載標書。當會員需要下載標書時,需向採購方申請一個唯一的下載密碼,此密碼與某一個標書相對應,只能使用一次。一般的方式是採購方生成一個密碼,並用電子郵件或電話方式通知會員下載標書。這很明顯存在一個安全缺陷,雙方之間的身份認證沒有安全保障且相當於採用手工方式作業。

因此我們用一種新的方式以實現身份認證,建立比用戶名和口令更安全的、能提供密碼學保護的方式來阻止非授權用戶的登錄。(1)伺服器產生一個時間戳和一個大的隨機數,並將它們傳送給客戶機。(2)客戶機用自己的私鑰對接收到的時間戳和隨機數進行簽名,將簽名結果傳回伺服器。(3)伺服器接收到簽名後進行驗證。因為只有客戶自己的私鑰能進行簽名,因此伺服器知道與它通信的客戶是否是合法的。

常用的加密演算法

PKI體系認證安全機制的核心是加密演算法。這些演算法包括國密演算法(SM2、SM3、SM4等)、AES、RSA、3DES、DSS、Diffie-Hellman、ElliPticCurve、lDEA、SHA-1、MD5和ECC橢圓曲線演算法等。

由國家密碼管理局於2010年12月17日發布,全稱為橢圓曲線演算法。橢圓曲線並不是橢圓,之所以稱為橢圓曲線是因為它們是用三次方程來表示的,並且該方程與計算橢圓周長的方程相似。

我國國家密碼管理局在ECC演算法的基礎上提出了SM2演算法。相比於一般的ECC演算法,SM2演算法對加密運算過程進行了修改,提升了複雜度,進一步加強了安全性。而且SM2演算法中的加密運算使用國產的加密設備實現,擁有完全的自主權,保證了國家信息體系的安全性。

摘要函數在密碼學中具有重要的地位,被廣泛應用在數字簽名、消息認證、數據完整性檢測等領域。摘要函數通常被認為需要滿足三個基本特性:碰撞穩固性、原根穩固性和第二原根穩固性。2005年,Wang等人給出了MD5演算法和SHA-1演算法的碰撞攻擊方法,現今被廣泛應用的MD5演算法和SHA-1演算法不再是安全的演算法。

SM3密碼摘要演算法是中國國家密碼管理局2010年公布的中國商用密碼雜湊演算法標準。SM3演算法適用於商用密碼應用中的數字簽名和驗證,是在SHA-256基礎上改進實現的一種演算法。SM3演算法採用Merkle-Damgard結構,消息分組長度為512位,摘要值長度為256位。SM3演算法的壓縮函數與SHA-256的壓縮函數具有相似的結構,但是SM3演算法的設計更加複雜,比如壓縮函數的每一輪都使用2個消息字。現今為止,SM3演算法的安全性相對較高。

是用於無線區域網和可信計算系統的專用分組密碼演算法,該演算法的分組長度為128比特,密鑰長度為128比特。SM4演算法是我國制定WAPI標準的組成部分,同時也可以用於其它環境下的數據加密保護。

RSA公鑰加密演算法是1977年由羅納德·李維斯特(RonRivest)、阿迪·薩莫爾(AdiShamir)和倫納德·阿德曼(LeonardAdleman)一起提出的。1987年7月首次在美國公布,當時他們三人都在麻省理工學院工作實習。RSA就是他們三人姓氏開頭字母拼在一起組成的。RSA是目前最有影響力和最常用的公鑰加密演算法,它能夠抵抗到目前為止已知的絕大多數密碼攻擊,已被ISO推薦為公鑰數據加密標準。RSA公開密鑰密碼體制。所謂的公開密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種「由已知加密密鑰推導出解密密鑰在計算上是不可行的」密碼體制。

在公開密鑰密碼體制中,加密密鑰(即公開密鑰)PK是公開信息,而解密密鑰(即秘密密鑰)SK是需要保密的。加密演算法E和解密演算法D也都是公開的。雖然解密密鑰SK是由公開密鑰PK決定的,但卻不能根據PK計算出SK。正是基於這種理論,1978年出現了著名的RSA演算法,它通常是先生成一對RSA密鑰,其中之一是保密密鑰,由用戶保存;另一個為公開密鑰,可對外公開,甚至可在網路伺服器中註冊。為提高保密強度,RSA密鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送信息時,常採用傳統加密方法與公開密鑰加密方法相結合的方式,即信息採用改進的DES或IDEA對話密鑰加密,然後使用RSA密鑰加密對話密鑰和信息摘要。對方收到信息後,用不同的密鑰解密並可核對信息摘要。

SET(SecureElectronicTransaction)協議中要求CA採用2048bits長的密鑰,其他實體使用1024比特的密鑰。RSA密鑰長度隨著保密級別提高,增加很快。今天只有短的RSA鑰匙才可能被強力方式解破。到2008年為止,世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。但在分散式計算和量子計算機理論日趨成熟的今天,RSA加密安全性受到了挑戰和質疑。

RSA演算法基於一個十分簡單的數論事實:將兩個大質數相乘十分容易,但是想要對其乘積進行因式分解卻極其困難,因此可以將乘積公開作為加密密鑰。

先進加密標準(advancedencryptionstandard,AES)是一個單鑰加密系統。本系統採用該演算法實現對明文的加密,以提高加密速度。AES是分組密鑰,演算法輸入128位數據,密鑰長度128位。用Nr表示對一個數據分組加密的輪數。每一輪都需要一個與輸入分組具有相同長度的擴展密鑰Expandedkey(i)的參與。由於外部輸入的加密密鑰K長度有限,在演算法中要用一個密鑰擴展程序(Keyexpansion)將外部密鑰K擴展成更長的字元串,以生成各輪的加密和解密密鑰。總之,AES密碼是一個非對稱密碼體制,它的解密要比加密複雜和費時。

3DES又稱TripleDES,是DES加密演算法的一種模式,它使用3條56位的密鑰對。

數據進行三次加密。數據加密標準(DES)是美國的一種由來已久的加密標準,它使用對稱密鑰加密法,並於1981年被ANSI組織規範為ANSIX.3.92。DES使用56位密鑰和密碼塊的方法,而在密碼塊的方法中,文本被分成64位大小的文本塊然後再進行加密。比起最初的DES,3DES更為安全。

3DES(即TripleDES)是DES向AES過渡的加密演算法(1999年,NIST將3-DES指定為過渡的加密標準),加密演算法,其具體實現如下:設Ek()和Dk()代表DES演算法的加密和解密過程,K代表DES演算法使用的密鑰,M代表明文,C代表密文,這樣:

3DES加密過程為:C=Ek3(Dk2(Ek1(M)))

3DES解密過程為:M=Dk1(EK2(Dk3(C)))

結束:PKI作為一種重要的網路安全基礎設施,已經深入到電子商務、電子政務、網上銀行等領域。作為網路環境中的一個重要主體,網路信息安全對於企業的正常運營起著保駕護航的作用。PKI的核心是要解決信息網路空間中的信任問題,確定信息網路空間中身份的唯一性、真實性和合法性,保護信息網路空間中各種主體的安全利益,是目前公認的保障網路社會安全的最佳體系。

數字證書就是互聯網通訊中標誌通訊各方身份信息的一串數字,提供了一種在Internet上驗證通信實體身份的方式,數字證書不是數字身份證,而是身份認證機構蓋在數字身份證上的一個章或印(或者說加在數字身份證上的一個簽名)。它是由權威機構—CA機構,又稱為證書授權(CertificateAuthority)中心發行的,人們可以在網上用它來識別對方的身份。在下篇文章中將帶大家了解基於PKI的數字證書(CA)工作原理是什麼?CA的作用及應用場景又是什麼?敬請期待!

the end


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 德嘉說 的精彩文章:

賬密設置需謹慎!弱口令揭示人們在賬號密碼方面的使用困境

TAG:德嘉說 |