祁 明 王育民
網絡安全已成為網絡使用者面臨的嚴重問題。隨著網絡應用水平的提高和電子商務的大力開展,計算機系統的安全隱患日漸突出,諸如高科技犯罪、機密泄露、黑客入侵、病毒侵擾等,其危害之嚴重、手段之高超,令人驚異。
為了對付日益猖獗的計算機犯罪,密碼技術受到了各國政府、學術界和產業界的高度重視,它與網絡協議等安全技術相結合,成為解決認證、數據加密、訪問控制、電子簽名、防火墻和電子貨幣等的關鍵技術。
1 安全技術的趨勢
從表1不難看出,密碼是安全技術的核心,密碼不僅支持通信和保密性,而且方便驗證他方身份(實體認證),保證通信信息安全(報文認證),允許在網絡上實現電子認可(電子鑒定)等等,以取代常規的書面文件密封和簽名。
2 密碼技術的發展
密碼是早已使用的防止信息泄漏或篡改的一項重要技術。最初,密碼主要是軍用和外交用。隨著信息化社會的發展,密碼應用迅速擴展到商業領域,包括用密碼作為信息和通信業務的安全措施。
2.1 密碼技術的分類
密碼體制分為兩大類:秘密密鑰密碼體制和公開密鑰密碼(簡稱公鑰密碼)體制。
秘密密鑰密碼體制使用相同的密鑰加密和解密,傳統密碼技術就屬于這一類。該體制以很高的速度實現加密算法,所以常常用來加密數據含量大的通信消息和文件。其典型實例包括美國開發的DES(數據加密標準)、瑞士開發的IDEA(國際數據加密算法)以及最近頒布的AES(高級加密標準)等。秘密密鑰密碼體制的關鍵問題是必須保證與之通信各方的獨立密鑰的秘密性,以及如何在發收方之間安全傳遞密鑰。
公鑰密碼體制是美國Diffie和Hellman于1976年提出的概念,具有劃時代意義。該體制的加密和解密采用不同密鑰。發方利用收方自己的公開密鑰加密密文,收方使用與公開密鑰對應的秘密密鑰解密密文。公鑰密碼體制只需保密解密密文所需的密鑰,所以密鑰管理比采用秘密密鑰密碼體制容易得多,但最大缺陷是加密速度慢,最典型的是美國開發的RSA。
在實際密碼通信中常采用混合的方式,即數據含量大的通信用高速的秘密密鑰密碼體制加密,而秘密密鑰密碼體制的密鑰,由于其數據含量少,則用公鑰密碼體制加密傳遞給收方。
密碼體制的安全保密在于秘密密鑰的保護,加密算法可以公諸于世,但秘密密鑰決不能泄露。DES、IDEA、AES等加密算法都是公開的。加密算法公諸于世有利于讓密碼專家評估算法的安全性,利于推動加密技術的廣泛應用。
2.2 網絡通信中的加密方式
(1)鏈路—鏈路加密
面向鏈路的加密方法將網絡看作鏈路連接的節點集合,每一條鏈路被獨立加密。鏈路—鏈路加密方式為兩個節點之間通信鏈路中的信息提供安全性,它與這個信息的起始或終結無關,如圖1所示。每一個這樣的鏈接相當于OSI參考模型建立在物理層之上的鏈路層。
這種類型的加密最容易實現,因為所有的報文都被加密,黑客攻擊者無法獲得任何關于報文結構的信息,也無法知道通信者、通信內容、通信時間等信息,還可以稱之為信號流安全。這種加密方式中,密鑰管理相對來說是簡單的,只在鏈路的兩站節點需要一個共用密鑰。加密是在每條通信鏈路上獨立進行的,每條鏈路上使用不同的加密密鑰。因此,一條鏈路上的錯誤不會波及其他鏈路,影響其他鏈路上的信息安全。
鏈路—鏈路信息加密僅限于節點內部,所以要求節點本身必須安全。另一個較大的問題是維護節點安全性的代價。其優缺點如下:
加密對用戶是透明的,通過鏈路發送的任何信息在發送前都先被加密; 每條鏈路只需要一對密鑰;提供了信號流安全機制。
缺點是數據在中間節點以明文形式出現,維護節點安全性的代價較高。
在鏈路—鏈路加密方式中,加密對用戶是看不見的、透明的,所有的用戶擁有一個設備,加密可以用硬件完成。
(2)節點加密
節點加密指每對節點共用一個密鑰,對相鄰兩節點間(包括節點本身)傳送的數據進行加密保護。盡管節點加密能給網絡數據提供較高的安全性,但它在操作方式上與鏈路加密是類似的:兩者均在通信鏈路上為消息提供安全性;都在中間節點先對消息進行解密,然后進行加密。因為要對所有傳輸的數據進行加密,這一過程在節點的安全模塊中進行。在節點加密方式中,為了將報文傳送到指定的目的地,鏈路上的每個節點必須檢查路由選擇信息,因此只能對報文的正文進行加密而不能對報頭加密,報頭和路由信息以明文形式傳輸,以便中間節點能得到如何處理該報文的信息,但是這種方法不利于防止攻擊者分析通信業務。
(3)端—端加密
端—端加密方法建立在OSI參考模型的網絡層和傳輸層。這種方法要求傳送的數據從源端到目的端一直保持密文狀態,任何通信鏈路的錯誤不會影響整體數據的安全性,如圖2所示。對于這種方法,密鑰管理比較困難。如果加密在應用層或表示層進行,那么加密可以不依賴于所用通信網的類型。
在端—端加密方式中,只加密數據本身信息,不加密路徑控制信息。信息在發送主機內和中間節點也是加密的。用戶必須找到加密算法,用戶可以選擇加密,也可以決定施加某種加密手段。
端—端加密方法將網絡看作是一種介質,數據能安全地從源端到達目的端。這種加密在OSI模型的高3層進行,在源端進行數據加密,在目的端進行解密,而在中間節點及其鏈路上將一直以密文形式出現。其缺點是允許進行通信量分析,而且密鑰管理機制較復雜。
(4)加密方式的選擇
保密是一個相對概念,加密技術在攻守較量中不斷發展和完善。采用什么加密方式,是安全策略研究的重要內容。一個信息系統要有明晰的安全策略,制定保密策略,選擇合理、合適的加密方式。
前面介紹的幾種加密方式都有其優缺點。目前網絡加密主要采用鏈路加密和端到端加密方式。
通過對加密方式的分析,可得出如下結論:
在需要保護的鏈路數不多,要求實時通信,不支持端到端加密遠程調用通信等場合宜采用鏈路加密方式,這樣僅需少量的加密設備,可保證不降低太多的系統效能,不需要太高的加密成本;
在需要保護的鏈路數較多的場合以及在文件保護、郵件保護、支持端到端加密的遠程調用、實時性要求不高的通信等場合,宜采用端到端加密方式,這樣可以使網絡具有更高的保密性、靈活性,加密成本也較低;
在多個網絡互聯的環境下,宜采用端到端加密方式;
對于需要防止流量分析的場合,可考慮采用鏈路加密和端到端加密相結合的加密方式。
3 常用加密算法
(1)DES
美國國家標準局為了在政府部門進行信息處理時保證數據的安全,自1971年開始研究數據密碼的標準化。美國國家標準局于1977年1月5日正式確定DES為美國的數據加密標準。近20多年來,DES算法得到了廣泛的應用。
DES加密算法的保密性到底如何?自1975年以來,美國的許多機構、公司和學者,包括國家保密局(NSA)、NBS、IBM公司、BELL實驗室和一大批著名的密碼學專家都對DES進行了大量的研究,但未找到破譯DES捷徑。這證明DES具有良好的抗分析破譯性能。但隨著計算機和VLSI技術的發展和DES密鑰選擇過短,實時破譯DES已經實現。當前采用的DES算法是它的一些強化組合模式,如3-DES和EDE-DES。
原來估計DES可以安全使用15年,所以早在1984年美國國家安全局決定研制新的數據加密標準,并于90年代初公布了EES(密鑰托管密碼體制)。但它不具有技術上的開放性和使用上的靈活性,因此受到金融界的強烈反對而無法推廣使用。美國政府不得不于90年代中開始著手制定新的數據標準算法,即AES。
(2) IDEA
1990年由瑞士聯邦技術學院來學嘉(Lai XJ)和Massey提出的建議標準算法,稱作PES(Proposed Encryption Standard),后改稱為IDEA。1992年進行了改進,IDEA算法強化了抗差值分析的能力。這是近年來提出的各種分組密碼中一個很成功的方案,已在PGP中采用。IDEA算法已在不少文章和書中介紹。
(3) SAFER K-64
SAFER K-64(Secure and Fast Encrytion Routine)是Massey為Cylink公司設計的非專用分線密碼算法,已用于他們的密碼產品中。新加坡政府擬采用128bit密鑰的這一算法。SAFER K-64無專利和產權等限制。
(4)AES——Rijndael算法
1996年美國NIST開始著手開發替代DES的新標準——高級加密標準(AES),于1997年1月2日啟動開發計劃, 9月12日正式公布了征集計劃。 NIST希望替代算法的安全強度高于或等于3-DES,且有明顯更高的效率。其分組長度至少為128bit,密鑰長度可為128、192、256bit,約有3.4×1038 、6.2×1057、1.1×1077個可能的密鑰。假如有一臺每秒可試驗255個密鑰(可恢復56bit DES的一個密鑰)的破譯機,破譯128bit 的Rijndael需要1.49×106億年,而宇宙的年齡不過200億年。估計Rijndael至少可以使用20年。
2000年10月2日美國宣布比利時人提出的Rijndael(發音為榮代爾)算法獲勝。一旦Rijndael加密算法最終作為標準,美國就有了支持電子商務發展的關鍵性安全工具,其電子商務與政務將更加安全保密。
Rijndael集安全、性能、效率、成本、通用性、可實現性和靈活性于一身。它可以在大型計算機、臺式機甚至智能卡上安全可靠地運行。無論在反饋模式還是在非反饋模式中使用Rijndael,其軟件和硬件對計算環境的適應性強、性能穩定、密鑰建立時間優良、密鑰靈活性強、存儲需求量低,即使在空間有限的環境使用也具備良好的性能。同時,Rijndael在抗能量攻擊(Power attacks)和定時攻擊(Timing attack)中易于運行,能實現為一個流密碼、雜湊算法,并能提供輔助密碼服務,此外又不會明顯改變Rijndael的性能。在分組長度和密鑰長度方面,Rijndael也具有一定的靈活性。該算法允許改變圈數。
(5)RSA公鑰體制
RSA算法是公開密鑰密碼體制中一種比較成熟的算法。公開密碼體制是1976年由Diffie和Hellman等人在斯坦福大學,Merkle 在加利福尼亞大學提出來的。RSA算法是由Rivest、Shamir和 Adleman于1978年在麻省理工學院研制出來的。RSA算法是建立在“大數分解和素數檢測”的理論基礎上的。
(6)ECC
1985年,Neal Koblitz和Victor Miller相互獨立地提出了ECC算法,即橢圓曲線密碼體制(Elliptic Curve Cryptography)。ECC涉及深奧的數論理論,一般僅用160~200位的密鑰便足以對付各種高保密需要。ECC作為公開密鑰密碼體制中的一種,在堅實的理論基礎上實現高度安全性,具有存儲效率、節約通信帶寬以及計算效率等多方面的優越性,運算速度比RSA高10倍,是一種非常有前途的密碼體制。德國、日本、法國、美國、加拿大等國的很多密碼學研究小組及一些公司已實現了橢圓曲線密碼體制,中國也有一些密碼學者做了這方面的工作。
4 數字簽名
數字簽名是電子商務安全中的一項非常重要的技術,它在大型網絡安全通信中的密鑰分配、安全認證、公文的安全傳輸以及電子商務系統中的防否認等方面都具有重要作用。
類似于手書簽名,數字簽名應滿足以下要求:收方能夠確認或證實發方的簽名,但不能偽造;發方發出簽名的消息送收方后,就不能再否認他所簽發的消息;收方對已收到的簽名消息不能否認,即有收報認證;第3者可以確認收發雙方之間的消息傳送,但不能偽造這一過程。
數字簽名有兩種:一種是對整個消息的簽名,一種是對壓縮消息的簽名,它們都是附加在被簽名消息之后或某一特定位置上的一段簽名圖樣。若按明、密文的對應關系劃分,每一種又可分為兩個子類:一類是確定性數字簽名,其明文與密文一一對應,它對一特定消息的簽名不變化(使用簽名者的密鑰簽名),如RSA、ElGamal等簽名;另一類是隨機化的或概率式數字簽名,它對同一消息的簽名是隨機變化的,取決于簽名算法中的隨機參數和取值。
一個簽名體制一般含兩個組成部分,即簽名算法和驗證算法。對M的簽名可簡記為Sig(M)=s(有時為了說明密鑰k在簽名中的作用,也可以將簽名寫成Sigk(M)或Sig(M,k)),而對s 的證實簡記為Ver(s)={真,偽}={0,1}。簽名算法或簽名密鑰是秘密的,只有簽名人掌握。證實算法應當公開,以便于他人進行驗證。
常用數字簽名有:
(1)RSA簽名
安全參數
令n=pq, p和 q是大素數,選 e并計算出d,使ed=1 mod (p-1)(q-1),公開n和e,將p,q和d保密。則所有的RSA參數為K=(n ,p,q,e,d)。
數字簽名
對消息M∈Zn,定義:
S=Sig(M)= M d mod n為對M的簽名。
簽名驗證
對給定的M,S可按下式驗證:設 M‘=Se mod n。如果M=M‘(則簽名為真,否則,就不接受簽名。
(2)ElGamal簽名
該體制由T.ElGamal在1985年給出,其修正形式已被美國NIST作為數字簽名標準DSS,是Rabin體制的一種變型。
簽名過程
給定消息M,發端用戶選擇秘密隨機數k∈Zp*;計算壓縮值H(M),并計算:r=g k mod p ,s=(H(M)-xr)k-1 mod(p-1) 最后將Sig(M,k)=(M,r,s)作為簽名,將(M,r,s)送給對方。
驗證過程
收信人收到(M,r,s),先計算H(M),并按下式驗證簽名:y rr s=g H(M )mod p。這是因為y rr s=g rxg sk=g (rx+sk)mod p,由上式有(rx+sk)=H(H) mod(p-1) ,故有y rr s=g h(m) modp。在此方案中,對于同一消息M,由于隨機數k不同而有著不同的簽名值( M,r,s)。
除了上述幾種常見的簽名體制外,還有盲簽名、定向簽名、群簽名、代理簽名等。目前已有多個國家和地區對數字簽名立法。5 密鑰管理與數字證書
使用秘密密鑰密碼體制時,發方和收方使用相同的密鑰,所以必須設計出一種共享秘密密鑰的辦法。密碼領域正積極進行開發密鑰共享方法的研究工作,大體可分為使用密鑰中心的方法、基于私鑰體制的密鑰管理、基于公鑰體制的密鑰管理和密鑰第3方托管等方法。
選擇合適的密鑰共享方法取決于諸多因素,主要如系統的規模、提供的業務類型以及在系統中的使用模式等。
(1)密鑰托管問題
由于密鑰托管系統負有法律執行部門及政府智能部門的特殊任務,和非密鑰托管系統相比,它的施行勢必降低加密系統的安全性,增加系統的復雜性以及建立、維護、運行系統的費用。密鑰托管作為一個信息安全基礎設施,在推廣使用時必須考慮以下幾點:
1應該保證數據的保密性、完整性。
2世界范圍內的可用性,要與國內外不同的密碼政策相適應。
3具有足夠的強度,能抗擊實際使用中各種威脅及運行風險。
4實施方法的細節應該是公開的,比如Skipjack算法及LEAF產生方法。
5必須能為法律執行部門提供方便。
6濫用應該是困難的和容易發現的。
7形成一個合法的組織體系。
8必須考慮憲法賦予公民的合法權利。
9選擇可信任的托管機構KEA(Key Escrow Agency)時應有很大的靈活性。
10有足夠的權利使用新開發的算法和標準。
11對任何人都是容易得到的而且費用不能太高。
12為用戶提供可選的安會防范,以減小諸如密鑰丟失或毀壞所造成的損失。
而密鑰托管目前至少在2、3、4、6、8、11與期望的相距甚遠。
(2)數字證書
數字證書或公鑰證書是由被稱作證書機構的人或實體簽署的。其中含有掌握相應密鑰的持證者的確切身份或其它屬性。顧客向CA(認證機構)申請證書時,可提交自己的執照、身份證或護照,經驗證后,頒發證書,證書包含了顧客的名字和他的公鑰,以此作為網上證明自己身份的依據。在SET中,最主要的證書是持卡人證書和商家證書,證書結構參見圖3。
持卡人證書
持卡人證書并不包括賬號和終止日期信息,取而代之的是用單向Hash算法根據賬號、截止日期生成的一個碼。
商家證書
商家證書是由金融機構簽發的,不能被第3方改變。在SET環境中,一個商家至少應有一個證書。與銀行打交道時,一個商家也可以有多個證書,這就表示它與多個銀行有合作關系,可以接受多種付款方法。
認證機構是提供身份驗證的第3方機構,由一個或多個用戶信任的組織實體組成,參見圖4。例如,持卡人要與商家通信,持卡人從公共媒體上獲得了商家的公開密鑰,但持卡人無法確定商家不是冒充的(有信譽), 于是持卡人請求CA對商家認證。CA對商家進行調查、驗證和認證后,將包含商家公鑰的證書傳給持卡人。
6 標準化
不管是民間的、國家的還是國際的標準化組織,都積極地使某些應用的安全技術標準化。安全技術標準會方便用戶,有利競爭,最終會使產品價格下降,使許多應當受到保護的應用得到合理的保護。
(1)標準化活動
國際標準化組織(ISO)SC21和SC27正分別間斷進行有關共用安全框架的單個安全技術的標準化活動。最近,ISO SC27最引人注目的舉動是從事一項新工程,即研究密碼通信和密鑰管理方法、日益增長的可信任第3方(TTP)作用及其運行準則。
同時,ISO正在系統地制訂估價和批準產品安全性的安全評價標準。有人指出,安全性評價標準可能成為官方的信息產品采購準則,這個傾向值得關注。
(2)加密算法
登記加密算法的制度始于1991年(ISO/IEC9979),迄今已登記的兩個日本算法是NTT公司的FEAL和日立公司的MULT12,早已登記過的其它重要算法包括美國IBM公司開發的美國標準DES,美國提出的Cipher芯片的Skipjack加密算法,瑞士開發的IDEA加密算法,英國電信公司的B-CRYPT加密算法。
(3)Internet安全標準化
Internet工程任務組(IETF)是討論Internet工程問題的機構,下設大約90個工作小組,涉及各種活動。IETF每年召開3次全會,準備Internet草案建議和發出征求意見書(RFC)。IETF有若干個工作小組涉及到安全問題,其活動之一是強化保密郵件(PEM),意在使電子郵件安全保密。目前正對PEM進行評價,并以此作為標準化的第一步。
為了使讀者了解安全保密技術的發展與應用,這里羅列了一些與信息安全相關的一些站點(參見表2),這些站點可以向大家提供非常豐富的安全保密信息。□
參考文獻
1王育民,劉建偉.通信網的安全——理論與技術.西安:西安電子科技大學出版社,1999
2楊千里,王育民等.電子商務技術與應用.北京:電子工業出版社,1999
3 祁明,晏維龍等.電子商務實用教程.北京:高等教育出版社,2000
4祁明,張凌等.電子商務安全與保密.北京:高等教育出版社,2001
(收稿日期:2001-08-06)
作者簡介
祁明,華南理工大學電子商務學院常務副院長,華南理工大學計算機工程與科學系副主任,全國高校電子商務協作組秘書長, 廣東省公安廳計算機安全協會副會長, 廣東省保密局安全技術專家組副組長。1996年在西安電子科技大學信息安全研究所獲博士學位,1998年在華南理工大學信息網絡工程研究中心完成博士后研究。研究方向為電子商務關鍵技術及應用研究,承擔和參加過多項科研項目。主編專著有《電子商務實用教程》、《電子商務安全與保密》,在國際會議、國內會議和期刊雜志發表的學術論文有70余篇。
王育民,西安電子科技大學教授,博士生導師,中國電子學會和中國通信學會會士、中國密碼學會理事、IEEE高級會員、中國自然科學基金研究會會員。長期從事信息論、信道編碼、密碼學以及通信網的安全等方面的教學和科研工作。合著書有《偽隨機序列及其應用》、《信息與編碼理論》、《保密學 — 基礎與應用》、《通信網的安全 — 理論與技術》、《電子商務技術與應用》、《電子商務核心技術—安全電子交易協議的理論與設計》、《電子商務技術實務》等。在國內外學術刊物和會議上發表論文200余篇。