徐令予博客

考槃在澗,碩人之寬。獨寐寤言,永矢弗諼。考槃在阿,碩人之薖。獨寐寤歌,永矢弗過。考槃在陸,碩人之軸。獨寐寤宿,永矢弗告。
個人資料
正文

企業專用網環境中密鑰的分發和管理

(2021-01-25 19:10:07) 下一個

企業專用網環境中密鑰的分發和管理

作者:徐令予

中國銀行業通信安全管理的規範稱為PBOC,這其實是沿襲美國的銀行標準製定出來的,全世界其它地區也基本遵照這個標準。如果物理學家在策劃量子通信工程之前,認真坐下來消化一下這幾十頁的行業標準,他們就不會再有“彼可取而代之也”的衝動了。因為銀行這套密碼係統完全不像他們想象中的那樣,需要不斷分發對稱密鑰,並用RSA這類公鑰密碼進行加密。其實銀行間的密鑰更新根本不分發密鑰的,分發的隻是完全不需要保密的隨機數而已。這些隨機數任何人拿去都無所謂,因為它根本不帶有密鑰的信息,對稱密鑰的分發就是這麽神奇。

對稱密鑰的分發和管理采用分級的形式,從總行到各大區的支行,大概不超過3級,每級的密鑰分發管理中心稱為KDC,每個用作層級管理的對稱密鑰就叫該級別主密鑰,比如第三級就叫3級主密鑰。總行的KDC用來生成頂級密鑰,這個頂級密鑰一般有多組,每次拿出一組頂級密鑰使用,其它組密鑰處於備份狀態。主密鑰可不是用來分發的,而是用來生成分發密鑰。生成分發密鑰首先需要係統產生一隨機數,並用主密鑰對其進行加密操作,生成的密文就作為分發密鑰,用於分發到下一級KDC。下一級接收到上一級的分發密鑰,將其作為這一級KDC的主密鑰,然後使用該主密鑰給下一級生成分發密鑰。

假如一個KDC要將一個新的對稱密鑰傳送給下級KDC,我們把這個新的對稱密鑰記作K。

1)上級KDC從已有的一組對稱密鑰中選擇一個出來,不妨稱作密鑰A,並記下這個對稱密鑰在已知密鑰小組中的序號。

2)然後在係統中生成一個隨機數,接著用密鑰A對其進行加密,生成一個密文,這個密文作為過程密鑰,不妨稱作P。

3)再用P對要傳送的新的對稱密鑰K進行加密生成密文。

4)最後將上一步產生的密文、生成過程密鑰的隨機數和對稱密鑰的序列號一起發送給下一級KDC。

請注意,這個時候,在公網上發送的K是使用P經過對稱加密的密文,這個是絕對安全的,而且P並沒有發布到公網上,發布出去的隻有隨機數和加密密鑰序列號,這些信息是不能利用來還原P的,因而也毫無辦法對密文進行破解的。

5)接收端的KDC有了加密密鑰小組序列號,就能夠從自己的主密鑰庫中提取出來對應的密鑰,並將收到的隨機數進行加密,這樣就能還原過程秘鑰P,然後就可以直接用P將收到的K的密文解碼成明文K,下級KDC就得到了新的對稱密鑰,從而完成主密鑰的更新。

上麵介紹的是企業網專用環境中對稱密鑰的分發和更新的真實過程,從中我們可以得到以下五點結論:

第一點, 在銀行係統這類專用環境中,對稱密鑰都是事先配置好的,絕不會依賴公鑰密碼。密鑰分發除了初始化的第一次以外,之後采用的都是對稱密碼加密,而且對分發密鑰加密用的是不斷變化的過程密鑰,所以密鑰分發過程是非常安全可靠的。即使是初始化過程,其實也不需要用公鑰密碼係統,任何能夠安全地將初始化密鑰設置到KDC的手段都可以采用,畢竟隻需要做一次的事情,再高的代價也能接受。在金融、軍隊等專用環境中,公鑰密碼從來隻起輔助作用,主要是為了方便和降低成本,不用公鑰密碼一點問題也沒有,認為沒有公鑰密碼就會淪落到用人工傳遞密鑰是量子通信布道者無知的表現。

第二點, 對稱密鑰在經過所有的線路、路由器和中繼站時都是由對稱密碼加密後產生的密文形式出現,所以根本不可能在網絡任何環節泄密。這一點比量子通信的可信任中繼站方案不知要安全多少倍!認為傳統密碼通信錢路上需要點點設防是量子通信布道者的慌言。

第三點, 在PBOC係統中對稱密鑰可以隨時更新和分發,密鑰分發的成碼率高、不受網絡結構和傳輸距離的限製,相比量子密鑰分發技術(QKD)更安全、更方便、而且成本要低得多。

第四點, 更新的密鑰在KDC進行還原,隻有在這個環節會產生泄密的危險,因此保護KDC的安全才是整個環節中的關鍵。KDC的功能除了負責對稱密鑰的更新分發以外,還承擔了密鑰的分級管理、存貯備份、應急處理、逐級監督、用戶身份認證等等重要功能,在安全級別要求極高的係統中,類似KDC這樣的職能部門是不可或缺的。如果密鑰沒有分級管理,難道允許下級用戶之間自己協商出密鑰作通信,把上級也封殺掉?在一個係統中,特別是軍隊和金融機構,密鑰必須實行分級分發和管理。量子通信不僅無法取消KDC,還要增加很多的漏洞百出的可信任中繼站,這將使得整個係統的安全隱患變得更難控製。這也是為什麽至今沒有一個銀行係統把QKD作為他們密碼係統的核心技術的,因為既沒有這個必要,也根本不可行。

第五點, 請注意,本文一直使用密鑰“分發”兩字,而QKD實質上隻能作密鑰協商,知道這兩字的嚴重區別嗎?“分發”的密鑰是在過程開始前已被確定,而“協商”的密鑰是在過程完成後才被確定。正是這個區別使得量子通信根本無法在這種有上下結構的係統中提供密鑰分發管理的主要功能。對此我也不想再多講了,讓量子通信的布道者去玩孩子般的遊戲吧。密碼學工程的本質就是高度的猜忌、懷疑和不信任任何人,由自我感覺特別良好的物理學教授主持密碼學工程,這本身就是天大的笑話。

上麵介紹了在企業網專用環境中KDC之間對稱密鑰分發更新的細節。下麵將介紹在專用網環境中兩個終端用戶通信開始時如何取得一致的對稱密鑰(又稱作通信密鑰)[1]。請注意,在這個過程中也根本沒有公鑰密碼的什麽事,更無需量子通信添亂。

基本原理:密鑰分發中心KDC和終端用戶A和B都共享一組主密鑰。終端用戶之間每次通信,都要向KDC申請全新的通信密鑰,通信密鑰是通過用戶與KDC共享的主密鑰加密來完成傳遞。具體過程如下(參見圖1)

1)A用自己的主密鑰Ka加密向KDC發送通信密鑰請求包,其中包括通話雙方A、B的身份以及該次傳輸的唯一標識N1,稱為臨時交互號(nonce)。臨時交互號可以選擇時間戳、隨機數或者計數器等。KDC可根據臨時交互號設計防重放機製。

2)KDC返回的信息包括兩部分。

第一部分是A想獲取的信息,用A的主密鑰Ka加密,被加密的內容包括通話密鑰Ks和KDC收到的請求包內容(用以驗證消息到達KDC前是否被修改或者重放過)。

第二部分是B想獲取的信息,用B的主密鑰Kb加密,被加密的內容包括通話密鑰Ks和A的身份。

3)A收到後將第二部分信息後按原樣轉發給B。

4)為保證A發給B的通信密鑰信息未被重放攻擊,A、B使用通信密鑰進行最後的驗證。B使用新的通信密鑰Ks加密臨時交互號N2並發給A。

5)A對N2進行一個函數變換後,用通信密鑰發給B驗證。

從這裏我們進一步可看到,在專用環境中兩個終端用戶之間通信前為取得對稱密鑰,他們並非按某些人想像的那樣是使用公鑰密碼分發對稱密鑰的,更不是靠人來傳遞的。事實上,兩個終端用戶是在KDC的支持和監督下使用對稱密碼取得共享的對稱密鑰,這個過程是安全可靠的,同時也把身份認證也一併解決了。

本文講述了在企業專用網環境中,各級密鑰分發中心KDC之間是如何使用對稱密碼更新和分發主密鑰,終端客戶又是如何在KDC的支持和監督下使用對稱密碼獲得共享的通信密鑰。在企業專用網環境中公鑰密碼不是非缺不可的,在某些場合中使用公鑰密碼隻是為了方便和降低成本。所謂的公鑰密碼危機也是危言聳聽、虛張聲勢的宣傳。退一萬步,即使公鑰密碼明天早晨崩潰,那麽不用公鑰密碼就是了,企業專用網的通信運行“我自巋然不動”,不會有任何問題的。明白了這些最基本樸素的道理,誰還會認為量子通信工程可以在專用企業網環境中發揮什麽作用就不僅僅是無知了。

量子通信在企業專用網環境的密鑰分發過程中根本沒有切入口,完全是畫蛇添足、多此一舉。那麽量子通信在互聯網環境中能否找回一點顏麵呢?請聽下文分解。

[1] engineering.purdue.edu/

感謝:本文在寫作過程中得到信安專家李紅雨好友的許多幫助和指教。

[ 打印 ]
閱讀 ()評論 (0)
評論
目前還沒有任何評論
登錄後才可評論.