- 計算機網絡安全與應用技術(第2版)
- 張兆信
- 1583字
- 2020-05-29 12:08:52
3.4 公鑰基礎設施
公鑰基礎設施(Public Key Infrastructure,PKI)是經過多年研究形成的一套完整的Internet安全解決方案。它是用公鑰技術和規范提供用于安全服務的具有普遍適用性的基礎設施。用戶可利用PKI平臺提供的服務進行安全通信。公鑰基礎設施(PKI)提供公鑰加密和數字簽名服務的系統或平臺,目的是通過自動管理密鑰和證書,為用戶建立一個安全的網絡運行環境。或者說PKI是指由數字證書、證書頒發機構(Certificate Authority,CA)以及對電子交易所涉及的各方的合法性進行檢查和驗證的注冊機構組成的一套系統。從廣義上講,所有提供公鑰加密和數字簽名服務的系統,都可叫作PKI系統。
PKI系統由5個部分組成:證書頒發機構、注冊機構(RA)、證書庫(CR)、證書申請者、證書信任方。前三部分是PKI的核心,證書申請者和證書信任方則是利用PKI進行網上交易的參與者。
PKI體系結構采用證書管理公鑰,通過第三方的可信機構CA,把用戶的公鑰和用戶的其他標識信息(如名稱、E-mail等)捆綁在一起,在Internet上驗證用戶的身份,實現密鑰的自動管理,保證網上數據的機密性、完整性。
PKI的主要功能:證書產生與發放;證書撤銷;密鑰備份及恢復;證書密鑰對的自動更新;密鑰歷史檔案;支持不可否認;時間戳;交叉認證;用戶管理(如登錄、增刪等)。客戶端服務:理解安全策略,恢復密鑰,檢驗證書,請求時間戳等。PKI還支持LDAP,支持用于認證的智能卡。此外,PKI的特性融入各種應用(防火墻、瀏覽器、電子郵件、網絡OS)也正在成為趨勢。
3.4.1 數字簽名
傳統的簽名方式有手簽、指印、印章等,它可以對當事人進行認證、核準,然后與文件內容聯系起來達到生效的作用。隨著網絡和電子商務的發展,數字簽名成為網絡中證明當事人的身份和數據真實性的重要方式。數字簽名是郵件、文件或其他數字編碼信息的發件人將他們的身份與信息綁定在一起(即為信息提供簽名)的方法。它能夠解決信息傳輸的保密性、完整性、不可否認性、交易者身份的確定性問題。數字證書和PKI結合解決電子商務中的安全問題。它通過一個單向函數對要傳送的報文進行處理,得到一個用于認證報文來源并核實報文是否發生變化的一個字母數字串,用這個字母數字串來代替簽名或印章,起到與書寫簽名或印章同樣的法律效用。
數字簽名可以用對稱算法實現,也可以用公鑰算法實現。但前者除了文件簽名和文件接收者外,還需要第三方認證。而通過公鑰加密算法實現,由于用秘密密鑰加密文件卻靠公開密鑰來解密,因此這可以作為數字簽名,簽名者用秘密密鑰加密一個簽名,接收者可以用公開的密鑰來解密,如果成功就能確保信息來自該公開密鑰的所有者。正是由于公開密鑰體制實現數字簽名簡單,因此目前數字簽名采用較多的是公鑰加密技術。數字簽名的算法很多,目前廣泛應用的有Hash、RSA、DSA等。
Hash簽名是最主要的數字簽名方法,也稱為數字指紋法,它與RSA數字簽名不同,這種方法把數字簽名同要發送的信息緊密聯系在一起,從而更適合于電子商務。單向函數是公開密鑰的核心,單向函數是指已知x,很容易求得f(x),但已知f(x),卻很難計算x,就如同把一個盤子打成許多碎片很容易,但要拼起來卻非常困難。單向Hash函數長期以來一直在計算機科學中使用,Hash函數就是把可變長度輸入串轉換成固定長度輸出串(叫作Hash值)的一種函數。因為Hash函數是典型的多對一的函數,所以已知Hash函數的輸出,要求它的輸入是很困難的。
Hash簽名使用密碼安全函數,如MD-5,并從文件中產生一個Hash值。這個過程把用戶的密鑰(從第三方得到)與文件聯系在一起,再把這個文件和密鑰的排列打亂,通過Hash函數產生一個Hash值,Hash值作為簽名與文件一起傳送,只留下密鑰,接收方有密鑰副本,并用它對簽名進行檢驗。
Hash簽名的主要局限是接收方必須持有用戶密鑰副本,還有就是也存在偽造簽名的可能,另外管理這些密鑰也比較麻煩。
前面已經講過,RSA既可以用來加密數據,也可以用來身份認證,和Hash簽名相比,在公鑰體系中,由于生成簽名的密鑰只存儲于用戶計算機中,因而安全系數大些。用RSA或其他公鑰算法進行數字簽名的最大方便就是沒有密鑰分配問題,這個優點會隨著網絡越復雜、網絡用戶越多而越明顯。
3.4.2 認證及身份驗證
盡管公鑰加密方法比較方便,但由于它的公鑰是公開的,使它有一個很大的弱點——人們都可以假造這種公開的聲明。比如,某個用戶偽裝成用戶A,向其他參與者發出公鑰,而在真正的A如果不知情,沒有向其他參與者給出警告的情況下,其他參與者就會把這個人當作真正的A,而把要發送給A的信息發送給這個偽裝者,這個偽裝者就可以解讀所有本應屬于A的信息。這樣,隨著企業、商家在電子商務中越來越多地使用加密技術,人們都希望有一個可信的第三方,以便對有關數據進行數字認證,也即由第三方頒發公鑰證書。
證書頒發機構又稱為證書授證中心,是為了解決電子商務活動中交易參與的各方身份、資信的認定,維護交易活動中的安全,從根本上保障電子商務交易活動順利進行而設立的,是受一個或多個用戶信任,提供用戶身份驗證的第三方機構,承擔公鑰體系中公鑰的合法性檢驗的責任。它在網絡通信認證技術中具有特殊的地位,CA這個提供身份驗證的第三方機構,通常由一個或多個用戶信任的組織實體組成,比如政府部門或金融機構。在實際運作中,CA也可由大家都信任的一方擔當,比如,對于商家發的購物卡,商家可自己擔當CA角色。
在SET交易中,CA不僅對持卡人、商戶發放證書,還要對收款的銀行、網關發放證書。它負責產生、分配并管理所有參與網上交易的個體所需的數字證書,因此是安全電子交易的核心環節。CA受理證書申請,根據該CA的策略驗證申請人的信息,然后使用它的私鑰把其數字簽名應用于證書。然后,CA將該證書頒發給其主體,作為PKI內部的安全憑據。CA的功能主要有接受注冊申請,處理、批準、拒絕請求,頒發證書。
RA(Registration Authority),數字證書注冊審批機構。RA系統是CA的證書發放、管理的延伸。它負責證書申請者的信息輸入、審核及證書發放等工作;同時,對發放的證書完成相應的管理功能。發放的數字證書可以存放于IC卡、硬盤或軟盤等介質中。RA系統是整個CA得以正常運營不可缺少的一部分。
CA為了實現其功能,主要由以下3部分組成。
1)注冊服務器:通過WebServer建立的站點,可為客戶提供每日24小時的服務。因此客戶可在自己方便的時候在網上提出證書申請和填寫相應的證書申請表,免去了排隊等候等煩惱。
2)證書申請受理和審核機構:負責證書的申請和審核。它的主要功能是接受客戶證書申請并進行審核。
3)認證中心服務器:是數字證書生成、發放的運行實體,同時提供發放證書的管理、證書廢止列表(CRL)的生成和處理等服務。其實,證書包括一個公鑰加上密鑰所有者的用戶身份標識ID,以及由被信任的第三方簽署的整個塊。用戶以安全的方式向公鑰證書權威機構出具他的公鑰并得到證書,然后用戶就可以公開這個證書。任何需要用戶公鑰的人都可以得到此證書,并通過相關的信任簽名來驗證公鑰的有效性。
公鑰證書,簡稱證書,可在網絡上進行身份驗證并確保數據交換的安全。身份驗證的含義一方面是識別——對系統所有合法用戶具有識別功能,任何兩個不同的用戶不能有相同的標識;另一方面是鑒別——系統對訪問者進行鑒別以防止非法訪問者假冒。身份驗證的目的就在于對信息收發方真實身份的認定和鑒別。
在PKI體系中可以采取下述某種或某幾種的方式獲得證書。
1)發送者發送簽名信息時附加發送自己的證書;
2)單獨發送證書信息的通道;
3)從訪問發布證書的目錄服務器獲得;
4)從證書的相關實體(如RA)處獲得;
使用良好的身份驗證非常必要,如果一名客戶通過不安全的網絡連接與服務器進行通信,并且已通過了身份驗證,獲得了訪問權,此時若有攻擊者想劫持這個會話,他首先會設法使客戶一方不再能繼續通信,然后攻擊者以該客戶的身份與服務器通信,而服務器還以為他是最初建立連接的客戶。這種會話劫持會給原客戶或服務器方造成意想不到的損失。還有,在通信會話之間階段和過程中對源系統進行身份驗證更是十分必要的,Windows95以后的系統使用了更強的默認身份驗證,最后使用的是Kerberos協議,使客戶和服務器都能彼此進行身份驗證。