加密可以保證數(shù)據(jù)的保密性,也可用于驗證用戶,它是在實現(xiàn)網(wǎng)絡安全的重要手段之一。
加密提供以下四種服務:
數(shù)據(jù)保密性:這是使用加密的通常的原因。通過小心使用數(shù)學方程式,你可以保證只有你打算接收的人才可以查看它。
數(shù)據(jù)完整性:對需要更安全來說數(shù)據(jù)保密是不夠的。數(shù)據(jù)仍能夠被非法破解并修改。一種叫HASH的運算方法能確定數(shù)據(jù)是否被改過。
認證:數(shù)字簽名提供認證服務。
不可否定性:數(shù)字簽名允許用戶證明一條信息交換確實發(fā)生過。金融組織尤其依賴于這種方式的加密,用于電子貨幣交易。
加密強度 加密文件一個常被討論但又經(jīng)常被誤解的方面是加密強度。
加密強度取決于三個主要因素:
首先是算法的強度,包括幾個因素,例如,除了嘗試所有可能的密鑰組合之外的任何方法都不能數(shù)學的使信息被解密。我們應該使用工業(yè)標準的算法,它們已經(jīng)被加密學專家測試過無數(shù)次,任何一個新的或個體的配方將不被信任直到它被商業(yè)的認證。
第二個因素是密鑰的保密性,一個合乎邏輯但有時被忽略了的方面,沒有算法能夠發(fā)揮作用如果密鑰受到損害,因此,數(shù)據(jù)的保密程度直接與密鑰的保密程度相關,注意區(qū)分密鑰和算法,算法不需要保密,被加密的數(shù)據(jù)是先與密鑰共同使用,然后再通過加密算法。
第三個因素是密鑰程度,這是最為人所知的一個方面,根據(jù)加密和解密的應用程序,密鑰的長度是由”位”為單位,在密鑰的長度上加上一位則相當于把可能的密鑰的總數(shù)乘以二倍,簡單的說構(gòu)成一個任意給定長度的密鑰的位的可能組合的個數(shù)可以被表示為2的n次方,這兒的n是一個密鑰長度,因此,一個40位密鑰長度的配方將是2的40次方或1099511627776種可能的不同的鑰。
盡管可能加密的密鑰的總數(shù)是非常大的,專門的計算機現(xiàn)在可以在不到一天時間內(nèi)試驗許多種密鑰的組合。其實任何密碼都能破解而無論它的長度,想像一下這樣的密鑰利用現(xiàn)代的機器去破解是多么的快速。簡單的說,一個人或組織在密鑰破解的裝備上花的錢越多,則密鑰就會被越快的破解。
建立信任關系
應用加密指的是在主機之間建立一個信任關系。在最基本的級別上,一個信任關系包括一方加密的信息,并只有另一方的合作伙伴可以解密這個信息。這種任務是利用公鑰加密來完成的。這種類型的加密要求你建立一個私鑰和一個公鑰。一旦你已經(jīng)產(chǎn)生了一對密鑰,你可以把公鑰發(fā)布給任何人。
你可以通過以下兩種方法來發(fā)布你的公鑰:
手動:你首先必須和接收方交換公鑰,然后用接收方的公鑰來加密信息。PGP和S/MIME需要使用這種方法。
自動:SSL和IPSec通過一系列的握手可以安全地交換信息。
下面是在加密中一些術語的簡單介紹:
對稱加密
在對稱加密(或叫單密鑰加密)中,只有一個密鑰用來加密和解密信息。盡管單密鑰加密是一個簡單的過程,但是雙方都必須完全的相信對方,并都持有這個密鑰的備份。但要達到這種信任的級別并不是想像中的那么簡單。當雙方試圖建立信任關系時可能一個安全破壞已經(jīng)發(fā)生了。首先密鑰的傳輸就是一個重要問題,如果它被截取,那么這個密鑰以及相關的重要信息就沒有什么安全可言了。
但是,如果用戶要在公共介質(zhì) (如互聯(lián)網(wǎng)) 上傳遞信息,他需要一種方法來傳遞密鑰,當然物理的發(fā)送和接收密鑰是最安全的,但有時這是不可能的。一種解決方法就是通過電子郵件來發(fā)送,但這樣的信息很容易的被截取到,從而擊破了加密的目的。用戶不能加密包含密鑰的郵件,因為他們必須共享另一個用來加密含有密鑰郵件的密鑰。這種困境就產(chǎn)生了問題:如果對稱密鑰用它們自己來加密,那為什么不直接用相同的方法在第一步就使用?一個解決方案就是用非對稱加密,我們將在本課的后面提到。
所有類型加密的一個主題就是破解。一種減少使用對稱加密所造成的威脅的反措施就是改變密鑰的規(guī)律性。然而,定期改變密鑰經(jīng)常是困難的,尤其是你的公司里有很多用戶。另外,黑客可以使用字典程序,password sniffing來危及對稱密鑰的安全,或者通過搜翻辦公桌,錢包以及公文包。對稱加密也很容易被暴力攻擊的手段擊敗。
非對稱加密
非對稱加密在加密的過程中使用一對密鑰,而不像對稱加密只使用一個單獨的密鑰。一對密鑰中一個用于加密,另一個用來解密。如用A加密,則用B解密;如果用B加密,則要用A解密。
重要的概念是在這對密鑰中一個密鑰用來公用,另一個作為私有的密鑰;用來向外公布的叫做公鑰,另一半需要安全保護的是私鑰。非對稱加密的一個缺點就是加密的速度非常慢,因為需要強烈的數(shù)學運算程序。如果一個用戶需要使用非對稱加密,那么即使比較少量的信息可以也要花上幾個小時的時間。
非對稱加密的另一個名稱叫公鑰加密。盡管私鑰和公鑰都有與數(shù)學相關的,但從公鑰中確定私鑰的值是非常困難的并且也是非常耗時的。在互聯(lián)網(wǎng)上通信,非對稱加密的密鑰管理是容易的因為公鑰可以任易的傳播,私鑰必須在用戶手中小心保護。
HASH加密把一些不同長度的信息轉(zhuǎn)化成雜亂的128位的編碼里,叫做HASH值。HASH加密用于不想對信息解密或讀取。使用這種方法解密在理論上是不可能的,是通過比較兩上實體的值是否一樣而不用告之其它信息。HASH加密別一種用途是簽名文件。它還可用于當你想讓別人檢查但不能復制信息的時候。
簽名
信息鑒別的方法可以使信息接收者確定:信息發(fā)送者的身份以及信息在傳送過程中是否被改動過。如果信息的收發(fā)雙方對該信息的內(nèi)容及發(fā)送端沒有爭執(zhí)的話,那么只采用鑒別技術也就足夠了。鑒別技術可以保證在信息傳送過程中對信息內(nèi)容的任何改動都可以被檢測出來,并且能夠正確的鑒別出信息發(fā)送方的身份。但是,當信息的收發(fā)方對信息的內(nèi)容及發(fā)送端產(chǎn)生爭執(zhí)時,只用鑒別技術就不夠了。
收方可以偽造一份信息,從中獲得非法利益,并且自稱該信息是由發(fā)送方發(fā)過來的。例如,銀行通過通信網(wǎng)絡傳送一張支票,收方就可以對支票數(shù)額進行改動,并且聲稱他已收到了這張支票。利用前面的鑒別技術絲毫也解決不了這個問題,因為鑒別使用了一個收/發(fā)雙方共享的秘密密鑰,這樣才能是發(fā)放產(chǎn)生一個鑒別碼而接收方又能對該鑒別碼進行校驗。但是收方也能對他偽造的信息產(chǎn)生一個合法的鑒別碼,這給整個系統(tǒng)帶來嚴重的安全問題。
在許多情況下,特別是商業(yè)系統(tǒng)中,通常都利用書面文件來規(guī)定契約性的責任,雖然鑒別技術可以完全有效的防止第三者的介入,但是卻絲毫不能防止接收者的偽造。問題的另一方面是發(fā)送方可能是不誠實的,由于他發(fā)送的信息變得對他很不利,而要逃避責任,那么發(fā)送方就可能謊稱他從未發(fā)過這個信息。在整個爭執(zhí)過程中,第三方也無法分辨那種情況是真實的。
為了解決上述問題,就必須利用另外一種安全技術----數(shù)字簽名。簽名必須達到如下效果:在信息通信的過程中,接收方能夠?qū)牡谌剑ǹ梢允请p方事前統(tǒng)一委托其解決某一問題或某一爭執(zhí)的仲裁者)證明其收到的報文內(nèi)容是真實的,而且確實是由那個發(fā)送方發(fā)過來的,同時簽名還必須保證發(fā)送方發(fā)送后不能根據(jù)自己的利益否認他所發(fā)送過的報文,而收方也不能根據(jù)自己的利益來偽造報文或簽名。
對于數(shù)字簽名的產(chǎn)生過程來說,必須有足夠的信息才能對報文和簽名進行驗證,沒有足夠的信息就會給偽造或否認報文提供可乘之機。但是收發(fā)雙方用來產(chǎn)生與校驗的簽名的信息不能完全相同,因為一旦接收方能夠用發(fā)送方用來產(chǎn)生簽名的相同信息(算法和參數(shù))來證實報文和簽名,那么收方同樣也能夠用它來偽造報文和簽名。所以簽名產(chǎn)生者與簽名證實者之間的相同信息絕對不能太多。如果發(fā)送方事后擔心接收方否認接收到了他所發(fā)送的報文,那么發(fā)送方應能夠請求獲得報文證明,也就是說由接收方對發(fā)送方提供收到報文的證據(jù)。例如,如果甲方把報文發(fā)送給乙方,那么乙方就要向甲方發(fā)送一份簽了名的報文證明收到了,由于這份報文有乙方的簽名,所以乙方是不能抵賴他所收到的報文的。
隨著信息經(jīng)濟和知識經(jīng)濟的迅猛發(fā)展,無紙辦公徹底改變了過去手工操作的各種不便,顯得更安全、更有效、更迅速、更簡潔、更方便。數(shù)字簽名以其獨特的優(yōu)勢適應了這種發(fā)展,在無紙辦公中占有十分重要的地位。例如,對公司內(nèi)部有下級呈給上級請求批閱的公文 在以往只需領導大筆一揮簽名蓋章,以個人的筆跡來證明其真實性。但手寫的文件簽名非常容易偽造。除此之外,簽名者還可以否認簽名,宣稱它是偽造的。但在無紙辦公年代,計算機網(wǎng)絡中傳送的電子公文又如何蓋章呢?又如何來證明簽名的真實性呢?這就是——數(shù)字簽名。