密碼技術

要理解SSL就必須理解密碼系統、消息摘要函數(單向或散列函數)和數字簽名,這些技術是許多文獻所討論的主題(比如[AC96),提供了保密性、完整性和認證的基礎。

密碼系統

假設Alice想給她的銀行發一個消息以劃轉資金,並希望這個消息是保密的,因爲其中含有她的帳號和劃轉金額等信息。一種方案是使用密碼系統,將要傳輸的信息轉變爲加密形式,從而只能爲希望他讀懂的人讀懂。一旦加密爲這種形式,這條消息也許只能用一個密鑰來破譯,如果沒有,那麼這條信息毫無用處,因爲好的密碼系統可以使破譯難度高到入侵者認爲原文不值得他們花費那麼大的努力。

常規密碼:又稱爲對稱密碼,需要發送者和接收者共同持有一個密鑰:一小段用來加密和解密的祕密信息。如果這個密鑰是保密的,那麼這條消息除了發送者和接受者以外可能沒有人可以閱讀。如果Alice和銀行共同持有一個密鑰,則可以互相發送保密信息。但是,私有通訊密鑰的選擇行爲本身,卻可能不是無懈可擊的。

公共密鑰密碼:又稱爲不對稱密碼,定義了一種使用兩個密鑰的算法以解決密鑰交換問題,一個密鑰用於加密,另一個用於解密,從而使簡單公佈一個密鑰(公共的密鑰,簡稱:公鑰)而保留其他的(私有的密鑰,簡稱:私鑰)以接收保密消息成爲可能。

任何人都可以用公鑰加密一條消息,而僅允許私鑰的持有者閱讀。如此,Alice就可能使用公鑰加密其保密消息,發送給私鑰的持有者(銀行),只有銀行能夠對它解密。

消息摘要

雖然Alice可能加密其消息使它稱爲私有的,但仍應注意到某些人可能會篡改或替換其原始消息,以劃轉資金到他們自己的帳戶。一種保證Alice消息完整性的方法是同時發一個其消息的簡單摘要給銀行,供銀行與消息本身比對,如果相符則消息正確。

這樣的方法被稱爲消息摘要、單向函數散列函數。消息摘要用於對較大而且變長的消息建立較短而且等長的一種表述,其設計使將摘要還原成消息極其困難,而且對兩個不同的消息幾乎不可能生成相同的摘要,從而排除了替換一個消息爲另一個而維持相同摘要的可能性。

Alice面臨的另一個挑戰是要保證摘要發送到銀行的安全,如此,才能確保消息的完整性。

一種解決方法是在摘要中包含數字簽名。

數字簽名

當Alice發送消息到銀行,銀行需要確認此消息的確是她發送的,而不是入侵者盜用其帳號。爲此,可以在消息中包含一個由Alice建立的數字簽名

數字簽名是以加密的消息摘要和其他信息(比如一個流水號)以及發送者的私有密鑰建立的。雖然任何人都可能用公共密鑰解密簽名,但是隻有簽發者知道其私有密鑰,也就是,只有密鑰的持有者才能簽發。包含在簽名中的摘要只對該消息有效,以確保沒有人可以改變摘要而保持簽名不變。

爲了避免簽名日後被入侵者破譯和再利用,簽名包含有一個流水號。如此,萬一(只是假設)Alice並沒有發送此消息,雖然她可能真的簽發過,銀行可以免遭其欺詐性指控。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章