計算機網路 7 5 金鑰分配

2022-10-08 23:51:21 字數 3157 閱讀 6036

由於密碼演算法是公開的,網路的安全性就完全基於金鑰的安全保護上。因此在密碼學**現了乙個重要的分支金鑰管理。金鑰管理包括:金鑰的產生、分配、注入、驗證和使用。本節只討論金鑰的分配。

金鑰分配(或金鑰分發)是金鑰管理中最大的問題。金鑰必須通過最安全的通路進行分配。例如,可以派非常可靠的信使攜帶金鑰分配給互相通訊的各使用者。這種方法稱為網外分配方式。但隨著使用者的增多和網路流量的增大,金鑰更換頻繁(金鑰必須定期更換才能做到可靠),派信使的辦法已不再適用,而應採用網內分配方式,即對金鑰自動分配。

對稱金鑰存分配存在以下兩個問題:

如果n個人中的每乙個需要和其他n-1個人通訊,就需要 n(n-1)個金鑰。但每兩人共享乙個金鑰,因此金鑰數是n(n - 1)/2。這常稱為\(n^2\)問題。如果n是個很大的數,所需要的金鑰數量就非常大。

通訊的雙方怎麼才能安全的共享到金鑰呢?正是因為網路的不安全,所以才需要使用加密技術。但金鑰又需要怎樣傳輸呢?

目前常用的是金鑰分配方式是設立金鑰分配中心kdc(key distribution center)。kdc是大家都信任的機構,其任務就是給需要進行秘密通訊的使用者臨時分配乙個會話金鑰(僅使用一次)。在圖7-10中假定使用者a和使用者b都是kdc的登記使用者。a和b在kdc登記時就已經在kdc伺服器上安裝了各自和kdc進行通訊的主金鑰(master key)\(k_a\)和\(k_b\)。為了簡單起見,下面在敘述時把主金鑰簡稱為金鑰。金鑰分配為3個步驟(如圖7-11):

使用者a向金鑰分配中心kdc傳送時用明文,說明想和使用者b通訊。在明文中給出a和b在kdc登記的身份。

kdc用隨機數產生「一次一密」的會話金鑰\(k_\)供a和b的這次會話使用,然後向a傳送回答報文。這個回答報文用a的金鑰\(k_a\)加密。這個報文中包含這次會話使用的金鑰\(k_\)和請a轉給b的乙個票據(ticket)《該票據包括a和b在kdc登記的身份,以及這次會話將要使用的金鑰\(k_\)。票據用b的金鑰\(k_b\)加密,a無法知道此票據的內容,因為a沒有b的金鑰\(k_b\),當然a也不需要知道此票據的內容。

當b收到a轉來的票據並使用自己的金鑰\(k_b\)解密後,就知道a要和他通訊,同時也知道kdc為這次和a通訊所分配的會話金鑰\(k_\)。

此後,a和b就可以使用會話金鑰\(k_\)進行這次通訊了。

請注意,在網路上傳送金鑰時,都是經過加密的。解密用的金鑰都不在網路上傳送。

kdc還可在報文中加入時間戳,以防止報文的擷取者利用以前已記錄下的報文進行重放攻擊。會話金鑰\(k_\)是一次性的,因此保密性較高。而kdc分配給使用者的金鑰\(k_a\)和\(k_b\),都應定期更換,以減少攻擊者破譯金鑰的機會。

目前最出名的金鑰分配協議是kerberos v5° [rfc 4120,4121,目前是建議標準],是美國麻省理工學院(mit)開發的。kerberos既是鑑別協議,同時也是kdc,它已經變得很普及,現在是網際網路建議標準。kerberos 使用比 des 更加安全的高階加密標準 aes 進行加密。下面用圖 7-12 介紹 kerberos v4 的大致工作過程(其原理和v5大體一樣,但稍簡單些)。

a用明文(包括登記的身份)向鑑別伺服器as表明自己的身份。as就是kdc,它掌握各實體登記的身份和相應的口令。as對a的身份進行驗證。只有驗證結果正確,才允許a和票據授予伺服器tgs進行聯絡。

鑑別伺服器as向a傳送用a的對稱金鑰\(k_a\)加密的報文,這個報文包含a和tgs通訊的會話金鑰\(k_s\)以及as要傳送給tgs的票據(這個票據是用tgs的對稱金鑰\(k_\)加密的)。a並不儲存金鑰\(k_a\),但當這個報文到達a時,a就鍵入其口令。若口令正確,則該口令和適當的演算法一起就能生成金鑰\(k_a\)。這個口令隨即被銷毀。金鑰\(k_a\)用來對as傳送過來的報文進行解密。這樣就提取出會話金鑰\(k_s\)(這是a和tgs通訊要使用的)以及要**給tgs的票據(這是用金鑰\(k_\)加密的)。

a向tgs傳送三項內容:

**鑑別伺服器as發來的票據。

伺服器b的名字,這表明a請求b的服務,請注意,現在a向tgs證明自己的身份並非通過鍵入口令(因為入侵者很容易的從網路上截獲明文口令),而是通過**as發出的票據(只有a才能提取出)。票據是加密的,入侵者偽造不了。

用\(k_s\)加密的時間戳t。它用來防止入侵者的重放攻擊。

tgs傳送兩個票據,每乙個都包含a和b通訊的會話金鑰\(k_\)。給a的票據用\(k_s\)加密;給b的票據用b的金鑰\(k_b\)加密。請注意,現在入侵者不能提取 \(k_\),因為不知道\(k_s\)和\(k_b\)。入侵者也不能重放步驟3,因為入侵者不能把時間戳更換為乙個新的(因為不知道\(k_s\))。如果入侵者在時間戳到期之前,非常迅速地傳送步驟3的報文,那麼對 gs傳送過來的兩個票據仍然不能解密。

a向b**tgs發來的票據,同時傳送用\(k_\)加密的時間戳t。

b把時間戳+1來證實tgs給出的會話金鑰\(k_\)進行通訊。

順便指出,kerberos 要求所有使用 kerberos 的主機必須在時鐘上進行「鬆散的」同步。所謂「鬆散的」同步是要求所有主機的時鐘誤差不能太大,例如,不能超過5分鐘的數量級。這個要求是為了防止重放攻擊。tgs 發出的票據都設定較短的有效期。超過有效期的票據就作廢了。因此入侵者即使截獲了某個票據,也不能長期保留用來進行以後的重放攻擊。

在公鑰密碼體制中,如果每個使用者都具有其他使用者的公鑰,就可實現安全通訊。看起來好像可以隨意公布使用者的公鑰,其實不然。設想使用者a要欺騙使用者b,a可以向b傳送乙份偽造是c傳送的報文,a用自己的私鑰進行數字簽名,並附上a自己的公鑰,謊稱這公鑰是c 的。b如何知道這個公鑰不是c的呢?顯然,這需要有乙個值得信賴的機構來將公鑰與其對應的實體(人或機器)進行繫結(binding)。這樣的機構就叫做認證中心 ca(certification authority),它一般由**出資建立。每個實體都有 ca 發來的證書

(certificate),裡面有公鑰及其擁有者的標識資訊(人名或ip位址)。此證書被ca進行了數字簽名。任何使用者都可以從可信的地方獲得認證中心ca的公鑰,此公鑰用來驗證某個公鑰是否為某個實體所擁有(通過向ca進行查詢)。

計算機網路9 計算機網路效能

1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位時間 ...

計算機網路 計算機網路的效能

目錄 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...

計算機網路學習 計算機網路效能

出自 1.網路效能的衡量指標 2.速率 3.頻寬 4.延遲 5.丟包率 6.時延頻寬積 7.吞吐率 網路效能的好壞可以由網路的速率 頻寬 延遲 丟包率 網路頻寬積 吞吐率等方面來判斷,下面讓我們一一詳細介紹。速率 資料率 data rate 也稱 資料傳輸速率或位元率 bit rate 指的是 單位...