3.1 密碼學概況
- 密碼技術是保障網絡與資訊安全的核心技術和基礎支撐。
3.1.1 密碼學發展簡況
- 密碼學是一門研究資訊安全保護的科學,以實作資訊的保密性,完整性,可用性及抗抵賴性。密碼學主要由密碼編碼和密碼分析兩個部分組成。其中密碼編碼學研究資訊的交換處理以實作資訊的安全保護,而密碼分析學則研究通過密文擷取對應的明文資訊。
3.1.2 密碼學基本概念
- 密碼學的主要目的是保持明文的秘密以防止攻擊者獲知,而密碼分析學則是在不知道密鑰的情況下,識别出明文的科學。所謂明文是指需要采用密碼技術進行保護的消息。而密文則是指用密碼技術處理過明文的結果,通常稱為加密消息。将明文變換成密文的過程稱作加密,其逆過程,即由密文恢複出原明文的過程稱作解密。加密過程所使用的一組操作運算規則稱作加密算法,而解密過程所使用的一組操作運算規則稱作解密算法。加密和解密算法的操作通常都是在密鑰控制下進行的,分别稱為加密密鑰和解密密鑰。
3.1.3 密碼安全性分析
- (1)唯密文攻擊(ciphertext-only attack)密碼分析者隻擁有一個或多個用同一個密鑰加密的密文,沒有其他可利用的資訊。(就是隻有密文資訊,沒有其他資訊,讓你破解)。
- (2)已知明文攻擊(known-plaintext attack)密碼分析者僅知道目前密鑰下的一些明文及所對應的密文。(隻知道部分密文對應的明文資訊,讓你基于這些資訊破解)。
- (3)選擇明文攻擊(chosen-plaintext attack)密碼分析者能夠得到目前密鑰下自己標明的明文所對應的密文。
- (4)密文驗證攻擊(ciphertext verification attack)密碼分析者對于任何標明的密文,能夠得到該密文“是否合法”的判斷。
- (5)選擇密文攻擊(chosen-ciphertext attack)除了挑戰密文外,密碼分析者能夠得到任何標明的密文所對應的明文。
3.2 密碼體制分類
- 根據密鑰的特點,密碼體制分為私鑰和公鑰密碼體制兩種,而介入私鑰和公鑰之間的密碼體制稱為混合密碼體制。
3.2.1 私鑰密碼體制
- 私鑰密碼體制又稱為對稱密碼體制,指廣泛應用的普通密碼體制,該體制的特點是加密和解密使用相同的密鑰。
- 私鑰密碼體制的缺陷可歸結為三點:
- 密鑰配置設定問題。
- 密鑰管理問題。
- 無從認證源問題。
- 私鑰密碼體制的優點:
- 私鑰密碼算法處理速度快,常将其用作資料加密處理。
- 現在常被使用的是AES。
3.2.2 公鑰密碼體制
- W.Diffie 和 M.E.Hellman發表了《密碼學的新方向》一文中提出了公鑰密碼體制的思想。公鑰密碼體制又稱為非對稱密碼體制,其基本原理是在加密和解密的過程中使用不同的密鑰處理方式,其中加密密鑰是可以公開,隻需要把解密密鑰安全存放即可。
- 公鑰密碼體制優點:
- 密鑰分發友善,能以公開方式配置設定加密密鑰。
- 密鑰保管量少。
- 支援數字簽名。
- 目前由三種公鑰密碼體制類型被證明是安全和有效的,即RSA體制,ELGamal體制及橢圓曲線密碼體制。
3.2.3 混合密碼體制
- 混合密碼體制利用公鑰密碼體制配置設定私鑰密碼體制的密鑰,消息的收發雙方共用這個密鑰,然後按照私鑰密碼體制的方式,進行加密和解密運算。
- 混合密碼體制的工作原理
- 第一步,消息發送者Alice用對稱密鑰把需要發送的消息加密。
- 第二步,Alice用Bob的公開密鑰将對稱密鑰加密,形成數字信封。然後一起把加密消息和數字信封傳送給Bob。
- 第三步,Bob收到Alice的加密消息和數字信封後,用自己私鑰将數字信封解密,擷取Alice加密消息時的對稱密鑰。
- 第四步,Bob使用Alice加密的對稱密鑰把收到的加密消息解開。
3.3 常見密碼算法
- 主要介紹國際常見的密碼算法以及國産密碼算法。
3.3.1 DES
- DES(Data Encryption Standard)是資料加密标準的簡稱,由IBM公司研制,DES是也給分組加密算法,能夠支援64比特的明文塊加密,其密鑰長度為56比特,DES是世界上應用最廣泛的密碼算法。
3.3.2 IDEA
- IDEA(International Data Encryption Algorithm)是國際資料加密算法的簡記,是一個分組加密處理算法,其明文和密文分組都是64比特,密鑰長度為128比特。該算法是由來學嘉(X.J.Lai)和Massey提出的建議标準算法,已在PGP中得到應用。IDEA算法能夠接受64比特分組加密處理,同一算法既可用于加密又可用于解密,該算法的設計思想是“混合使用來自不同代數群中的運算”。
3.3.3 AES
- 1997年美國國家标準技術研究所(NIST)發起征集AES(Advanced Encryption Standard)算法的活動,并專門成立了AES工作組,其目的是 确定一個非保密的,公開的,全球免費使用的分組密碼算法,NIST規定候選算法必須滿足下面要求:
- 密碼必須是沒有密級的,絕不能像商業秘密那樣來保護它。
- 算法的全部描述必須公開披露。
- 密碼必須可以在世界範圍内免費使用。
- 密碼系統支援至少128比特長的分組。
- 密碼支援的密鑰長度至少為128,192和256比特。
- 參與AES的候選算法中,Rijndael提供了安全性,軟體和硬體性能,低記憶體需求以及靈活性的最好的組合,是以NIST确定選擇Rijndael作為AES。
3.3.4 RSA
- RSA算法是非對稱算法,由Ronald Rivest, Adi Shamir, Leonard Adleman三人共同在1977年公開發表。在RSA加密算法中,公鑰和私鑰都可以用于加密消息,用于加密消息的密鑰與用于解密消息的密鑰相反。RSA算法提供了一種保護網絡通信和資料存儲的機密性,完整性,真實性和不可否認性的方法。目前SSH,OpenPGP,S/MIME和SSL/TLS都依賴于RSA進行加密和數字簽名功能。RSA算法在浏覽器中使用,能夠在不可信任的網際網路中建立安全連接配接。
3.3.5 國産密碼算法
- 國産密碼算法是指國家密碼研究相關機構自主研發,具有相關知識産權的商用密碼算法。
- 目前,已經公布的國産密碼算法主要如下:
- SM1分組密碼算法。(對稱加密算法)
- SM2橢圓曲線公鑰密碼算法。(非對稱加密)
- SM3密碼雜湊算法。(HASH,哈希)
- SM4分組算法。(對稱加密)
- SM9辨別密碼算法。
3.4 Hash函數與數字簽名
3.4.1 Hash函數
- 雜湊函數簡稱Hash函數,它能夠将任意長度的資訊轉換成固定長度的哈希值(又稱為數字摘要或消息摘要),并且任意不同消息或檔案所生成的哈希值是不一樣的。
3.4.2 Hash算法
- 是指有關産生哈希值或雜湊值的計算方法。Hash算法又稱為雜湊算法,雜湊演算法,雜湊演算法或資料摘要算法,其能夠将一個任意長的比特串映射到一個固定長的比特串,常見的Hash算法有MD5,SHA和SM3。
- MD5算法
- MD5(Message Digest Algorithm-5)算法是由Rivest設計的,1992年公開,RFC1321對其進行了詳細的描述。
- SHA算法
- SHA(Secure Hash Algorithm)算法由NIST開發,于1993年作為聯邦資訊處理·标準公布,SHA-1與MD5的設計原理類似,同樣也以512位資料塊為機關處理輸入,産生160位的哈希值,具有比MD5更強的安全性。SHA算法的安全性不斷改進,已釋出的版本有SHA-2,SHA-3。SHA算法産生的哈希值長度有SHA-224,SHA-256,SHA384,SHA-512等。
- SM3國産算法
- SM3是國家密碼管理局于2010年公布的商用密碼雜湊算法标準。該算法消息分組長度為215比特,輸出雜湊值長度為256比特,采用Merkle-Damgard結構。
3.4.3 數字簽名
- 數字簽名(Digital Signature)是指簽名者使用私鑰對待簽名資料的雜湊值做密碼運算得到的結果。該結果隻能用簽名者的公鑰進行驗證,用于确認待簽名資料的完整性,簽名者身份的真實性和簽名行為的抗抵賴性。
- 數字簽名的目的是通過網絡資訊安全技術手段實作傳統的紙面簽字或者蓋章的功能,以确認交易當事人的真實身份,保障交易的安全性,真實性和不可抵賴性。
- 數字簽名具有與手寫簽名一樣的特點,是可信的,不可僞造的,不可重用的,不可抵賴的,以及不可修改的。
- 數字簽名至少要滿足以下三個條件:
- 非否認性,簽名者事後不能否認自己的簽名。
- 真實性,接收者能驗證簽名,而任何其他人都不能僞造簽名。
- 可鑒别性,當雙方關于簽名的真僞發生争執時,第三方能解決雙方之間發送的争執。
- 一個數字簽名方案一般由簽名算法和驗證算法組成,簽名算法密鑰是秘密的,隻有簽名的人掌握,而驗證算法則是公開的,以便他人驗證。
- 典型的數字簽名方案由RSA簽名體制,Rabin簽名體制,EIGamal簽名體制和DSS(Data Signature Standard)标準。
- 簽名與加密很相似,一般是簽名者利用秘密密鑰(私鑰)對需簽名的資料進行加密,驗證方利用簽名者的公開密鑰(公鑰)對簽名資料做解密運算。
- 簽名與加密的不同之處在于,加密的目的是保護資訊不被非授權使用者通路,而簽名是使消息接收者确信資訊的發送者是誰,資訊是否被他人篡改。
- 數字簽名工作的基本流程,假設Alice需要簽名發送一份電子合同檔案給Bob,具體步驟如下:
- 第一步,Alice使用Hash函數将電子合同檔案生成一個消息摘要;
- 第二步,Alice使用自己的私鑰,把消息摘要加密處理,形成一個數字簽名;
- 第三步,Alice把電子合同檔案和數字簽名一同發送給Bob。
- Bob收到Alice發送的電子合同檔案及數字簽名後,為确信電子合同檔案是Alice所認可的,具體步驟如下:
- 第一步,Bob使用與Alice相同的Hash算法,計算所收到的電子合同檔案的消息摘要;
- 第二步,Bob使用Alice的公鑰,解密來自Alice的加密消息摘要,恢複Alice原來的消息摘要。
- 第三步,Bob比較自己産生的消息摘要和恢複出來的消息摘要之間的異同,若兩個消息摘要相同,則表明電子合同檔案來自Alice。如果兩個消息摘要的比較結果不一緻,則表明電子合同檔案已被篡改。
3.5 密碼管理與數字證書
3.5.1 密碼管理
- 密碼系統的安全性依賴于密碼管理。密碼管理主要可以分成三個方面的内容,即密鑰管理,密碼管理政策,密碼測評。
- 1.密鑰管理
- 密鑰管理主要圍繞密鑰的生命周期進行,包括密鑰生成,密鑰存儲,密鑰分發,密鑰使用,密鑰更新,密鑰撤銷,密鑰備份,密鑰恢複,密鑰銷毀,密鑰審計。
- (1)密鑰生成
- 密鑰應由密碼相關産品或工具按照一定标準産生,通常包括密碼算法選擇,密鑰長度等。密鑰生成時要同步記錄密鑰的關聯資訊,如擁有者,密鑰使用起始時間,密鑰使用終止時間等。
- (2)密鑰存儲
- 一般來說密鑰不應以明文方式存儲保管,應采取嚴格的安全防護措施,防止密鑰被非授權的通路或篡改。
- (3)密鑰分發
- 密鑰分發工作是指通過安全通道,把密鑰安全地傳遞給相關接收者,防止密鑰遭受截取,篡改,假冒等攻擊,保證密鑰機密性,完整性以及分發者,接收者身份的真實性。目前,密鑰分發的方式主要有人工,自動化和半自動化。其中自動化主要通過密鑰交換協定進行。
- (4)密鑰使用
- 密鑰使用要根據不同的用途而選擇正确的使用方式。密鑰使用和密碼産品保持一緻性,密碼算法,密鑰長度,密碼産品都要符合相關管理政策,即安全合規。使用密鑰前,要驗證密鑰的有效性,如公鑰證書是否有效。密鑰使用過程中要防止密鑰的洩露和替換,按照密鑰安全政策及時更換密鑰。建立密鑰應急響應處理機制,以應對突發事件,如密鑰丢失事件,密鑰洩密事件,密鑰算法缺陷公布等情況。
- (5)密鑰更新
- 當密鑰超過使用期限,密鑰資訊洩露,密碼算法存在安全缺陷等情況發生時,相關密鑰應根據相應的安全政策進行更新操作,以保障密碼系統的有效性。
- (6)密鑰撤銷
- 當密鑰到期,密鑰長度增強或密碼安全應急事件出現的時候,需要進行撤銷密鑰,更換密碼系統參數。撤銷後的密鑰一般不重複使用,以免密碼系統的安全性收到損害。
- (7)密鑰備份
- 密鑰備份應按照密鑰安全政策,采用安全可靠的密鑰備份機制對密鑰進行備份。備份的密鑰與密鑰存儲要求一緻,其安全措施要求保障備份的密鑰的機密性,完整性,可用性。
- (8)密鑰恢複
- 密鑰恢複是在密鑰丢失或損毀的情形下,通過密鑰備份機制,能夠恢複密碼系統的正常運作。
- (9)密鑰銷毀
- 根據密鑰管理政策,可以對密鑰進行銷毀。一般來說銷毀過程應不可逆,無法從銷毀結果中恢複原密鑰。特殊情況下,密鑰管理支援使用者密鑰恢複和司法密鑰恢複。
- (10)密鑰審計
- 密鑰審計是對密鑰生命周期的相關活動進行記錄,以確定密鑰安全合規,違規情況可查可追溯。
- 2.密碼管理政策
- 密碼管理政策是指國家對密碼進行管理的有關法律政策檔案,标準規範,安全品質測評等。目前,國家已頒布了《商用密碼管理條例》,内容主要有商用密碼的科研生成管理,銷售管理,使用管理,安全保密管理。《中華人民共和國密碼法》也已頒布實施,相關工作正在推進。《中華人民共和國密碼法》明确規定,密碼分為核心密碼,普通密碼和商用密碼,實行分類管理。核心密碼,普通密碼用于保護國家秘密資訊,屬于國家秘密,由密碼管理部門依法實行嚴格統一管理。商用密碼用于保護不屬于國家秘密的資訊,公民,法人和其他組織均可依法使用商用密碼保護網絡與資訊安全。
- 3.密碼測評
- 密碼測評是指對相關密碼産品及系統進行安全性,合規性評估,以確定相關對象的密碼安全有效,保障密碼系統的安全運作。目前國家設立了商用密碼檢測中心,其主要職責包括:商用密碼産品密碼檢測,資訊安全産品認證密碼檢測,含有密碼技術的産品密碼檢測,資訊安全等級保護商用密碼測評,商用密碼行政執法密碼鑒定,國家電子認證根CA建設和運作維護,密碼技術服務,商用密碼檢測标準規範制定等。
3.5.2 數字證書
- 數字證書(Digital Certificate)也稱公鑰證書,是由證書認證機構(CA)簽名的包含公開密鑰擁有者資訊,公開密鑰,簽發者資訊,有效期以及擴充資訊的一種資料結構。
- 為了規範數字證書的格式,國家制定了《資訊安全技術 公鑰基礎設施 數字證書格式》,其中數字證書的基本資訊域格式如下:
序号 | 項名稱 | 描述 |
1 | version | 版本号 |
2 | serialNumber | 序列号 |
3 | signature | 簽名算法 |
4 | issuer | 頒發者 |
5 | validity | 有效日期 |
6 | subject | 主體 |
7 | subjectPublicKeyInfo | 主體公鑰資訊 |
8 | issuerUniqueID | 頒發者唯一辨別符 |
9 | subjectUniqueID | 主體唯一辨別符 |
10 | extensions | 擴充項 |
- 使用者證書的結構執行個體
版本号(version) | |
證書序列号(serialNumber) | |
簽名算法辨別符(signature) | |
頒發者名稱(issuer) | |
有效期(validity) | 起始有效期 |
有效期(validity) | 終止有效期 |
主體名稱(subject) | countryName(國家) |
主體名稱(subject) | stateOrProvinceName(省份) |
主體名稱(subject) | localityName(地市) |
主體名稱(subject) | organizationName(組織名稱) |
主體名稱(subject) | organizationalUnitName(機構名稱) |
主體名稱(subject) | CommanName(使用者名稱) |
主體公鑰資訊(subjectPublicKeyInfo) | |
頒發機構的密鑰辨別符(authorityKeyIdentifier) | |
主體密鑰辨別符(subjectKeyIdentifier) | |
CRL分發點CRLDistributionPoints |
- 數字證書按類别可分為個人證書,機構證書和裝置證書,按用途可分為簽名證書和加密證書。其中,簽名證書是用于證明簽名公鑰的數字證書。加密證書是用于證明加密公鑰的數字證書。
- 為了更好地管理數字證書,一般是基于PKI技術建立數字證書認證系統(簡稱為CA)。CA提供數字證書的申請,稽核,簽發,查詢,釋出以及證書吊銷等生命周期的管理服務。數字證書認證系統的構成及部署,主要有目錄伺服器,OCSP伺服器,注冊伺服器,簽發伺服器等。
3.6 安全協定
3.6.1 Diffie-Hellman 密鑰交換協定
- W.Diffie和M.E.Hellman于1976年首次提出一種共享秘密的方案,簡稱Diffie-Hellman密鑰交換協定。
3.6.2 SSH
- SSH是Secure Shell的縮寫,即“安全外殼“,她是基于公鑰的安全應用協定,由SSH傳輸層協定,SSH使用者認證協定和SSH連接配接協定三個子協定組成,各協定分工合作,實作加密,認證,完整性檢查等多種安全服務。
3.7 密碼學網絡安全應用
3.7.1 密碼技術常見應用場景類型
- 1.網絡使用者安全
- 2.實體和環境安全
- 3.網絡和通信安全
- 4.裝置和計算安全
- 5.應用和資料安全
- 6.業務應用創新
3.7.2 路由器安全應用參考
- 1.路由器密碼管理
- 2.遠端安全通路路由器
- 3.路由資訊交換認證
3.7.3 Web網站安全應用參考
3.7.4 電子郵件安全應用參考
- 利用PGP(Pretty Good Privacy)來保護電子郵件的安全。PGP是一種加密軟體,目前最廣泛地用于電子郵件安全。能夠防止非授權者閱讀郵件,并能對使用者的郵件加上數字簽名,使得收信人可以确信發信人的身份。PGP應用了多種密碼技術,其中密鑰管理算法選用RSA,資料加密算法IDEA,完整性檢測和數字簽名算法,采用了MD5和RSA以及随機數生成器,PGP将這些密碼技術有機內建在一起,利用對稱和非對稱加密算法的各自優點,實作了一個比較完善的密碼系統。