第四章 安全性分析
第一節 安全性定義與證明模式
在這一節中,我們介紹在PAK 中所提出的證明模式,也就是 IdealWorld 以及RealWorld 兩個系統,並且證明在 RealWorld 中,攻擊者所能進行的 攻擊,在IdealWorld 都可以藉由模擬器模擬出不可分辨的概觀,第三節會 針對我們的協定定義證明需求。
第一項 理想領域的介紹
在理想領域中客戶及服務者的通行碼驗證與數位簽章都是透過可信任 的第三者TTP(Trust Third Party)來完成,也就是說若客戶將通行碼π與
秘密資訊α透過絕對安全的通道傳送給TTP,而服務者則是也將秘密資訊 β透過絕對安全的通道傳送給TTP,TTP 將這些秘密資訊與通行碼π和公 開金鑰 z 做比較,確認無誤後,則產生一個數位簽章( )給客 戶,因此在理想領域下的通行碼驗證數位簽章協定是安全的。
3 2
1, ,
,
w w w c
我們假設在理想領域中有一個使用者的集合(包括了客戶與服務者),
我們用 user i 來編號,i=1,2,3,…,因為每個客戶都只會有一個請求連線
(Instance),所以 i 也代表了請求連線,因此我們將(i)稱之為使用者請 求連線(user instance),一個使用者請求連線隱含了使用者在利用通行碼 驗證的數位簽章協定中所扮演的角色(role),不是客戶,就是服務者。
接下來我們介紹攻擊者在理想領域所能做的幾種運作,這些運作都由 TTP來處理產生一定的隨機值(Random value)給攻擊者,並確保這些隨 機值的一致性,以避免被攻擊者識破,並假設TTP可以存取一個隨機二元 字串(Random bit string)上面的值,此隨機二元字串稱為R,而成功的客 戶要求連線所產生的數位簽章( ),TTP也都會將它記錄起來。
另外攻擊者某些運作的結果都將收集起來,稱為謄本記錄(Transcript),
而對於一個理想領域的攻擊者A
3 2
1, ,
,
w w w c
*,IdealWorld(A*)是一個隨機變數(Random Variable),代表所有的謄本紀錄。
一、 啟用使用者請求連線(Initialize user instance)-謄本記錄:(“啟 用使用者請求連線”,i,role(i)):
攻擊者指定一個使用者請求連線(i),並且指定其角色為 role(i)
={客戶或服務者},例如:攻擊者可以啟用客戶Alice(假設 Alice 的使用者編號是2)的使用者要求連線(2),且指定(2)的角色是 客戶。
二、 終止使用者請求連線(Terminate user instance)-謄本記錄:(“終
28
-止使用者 請求連線”,i):
攻擊者要求終止之前的一個使用者請求連線。
三、 猜測請求連線的通行碼(Test instance password):
攻擊者猜測一個使用者請求連線(i)的通行碼為π,如果猜對則 回傳“正確"給攻擊者,猜測錯誤則回傳“不正確",這個運作 對於一個使用者請求連線只能執行一次,而且當下面的「啟動會 議」執行之後也不能執行,主要是為了要模擬攻擊者用即時字典 攻擊法來猜測通行碼。
四、 啟用會議(Start session)-謄本記錄:(“啟用會議",i):
所謂的會議是指 TTP 去幫使用者之間的通行碼驗證與產生數位簽 章的過程,當攻擊者對一個使用者請求連線(i)做這個運作時,
攻 擊 者 會 先 猜 測 該 會 議 的 “ 連 線 指 定 值 ( connection assignment)",連線指定值有以下兩種可能
1. 接受客戶的請求連線:這需要(i)這個使用者請求連線已經被 啟用,之後TTP 會產生一個數位簽章(
c
,w
1,w
2,w
3)給客戶。2. 要求服務者給予連線:這需要(i)這個使用者請求連線已經被 啟用,和接受客戶請求連線相同,TTP 會產生一個數位簽章
(
c
,w
1,w
2,w
3)給客戶。五、 履行(Implementation)-謄本記錄:(“履行",註釋):
攻擊者可以在謄本記錄中放一些“註釋",這是為了證明的需要 而且不會影響到理想領域中的運作。
第二項 真實領域的介紹
在真實領域中 TTP 不協助通行碼驗證與簽章的進行,所以要進行通行
29
-碼驗證與簽章時,都要靠客戶與服務者之間傳遞訊息來完成,與理想領域 不同的是,每一個”使用者請求連線”都是一個狀態機(State machine),可以 接收一個訊息的輸入,並根據輸入的訊息來改變其狀態,狀態有下列三種
‧ 繼續:「使用者請求連線」(i)準備接收下一個訊息。
‧ 接受:「使用者請求連線」(i)結束身份認證過程,並且產生一組 數位簽章(
c
,w
1,w
2,w
3)。‧ 拒絕:「使用者請求連線」(i)結束身份認證的過程,但是沒有產 生數位簽章。
接下來我們介紹在真實領域中攻擊者的運作,對於一個真實領域的攻擊 者A,RealWorld(A)也是一個隨機變數,代表所有的謄本紀錄。
一、 啟用使用者請求連線-謄本記錄:(“啟用使用者請求連線”,i,role
(i)):
攻擊者指定一個使用者請求連線(i),並且指定其角色為 role(i)
={客戶或服務者}。
二、 傳送訊息-謄本記錄(“履行",“傳送訊息",i,輸入訊息,
回傳訊息,狀態):
攻擊者傳送一個“輸入訊息給"「使用者請求連線」,使用者請求 連線根據這個訊息改變自己的狀態,並輸出“回傳訊息"和目前的
“狀態"給攻擊者。另外根據“狀態"來增加謄本記錄,如果狀態 為「接受」,則紀錄(“啟用會議",i),代表已經完成通行碼驗 證與產生數位簽章的動作,如果狀態為「拒絕」,則記錄(“終止 使用者請求連線",i),代表認證失敗而且沒有產生數位簽章。
三、 隨機聖賢(Random Oracle)-謄本記錄(“履行",“隨機聖賢",
x,Hi(x)):
攻擊者可以詢問隨機聖賢x經過雜湊函數Hi的雜湊值Hi(x),
30
31
-i∈{1,2}。值得我們注意的是,隨機聖賢模式是假設隨機聖賢所輸 出的查詢值是隨機的,另外隨機聖賢會記錄下查詢過的輸入數值組 與相對輸出值。
第三項 安全性定義
對於一個數位簽章系統而言,我們知道必須要滿足下面的三個特性:
一、 正確性:只要擁有正確秘密資訊的客戶使用正確的通行碼便可以 與正確的服務者產生合法的數位簽章。
二、 私密性:對於攻擊者而言,在協定交換訊息的過程中,觀察公開 資訊是無法得到秘密資訊及通行碼的資訊。
三、 不可偽造性:攻擊者在不知道秘密資訊的情況下,無法偽造出一 個合法的數位簽章。
關於私密性的部分,根據前面第一項的理想領域與第二項的真實領域 的定義,一個安全的通行碼身份認證協定在身份認證的部分必須要滿足下 面兩個條件:
1. 正確性:對於任意真實世界的使用者,只要正確的執行協定,則一 定能完整並成功的認證。
2. 可擬性:對於任意的“以通行碼為基礎的身份認證的數位簽章協定”
在真實世界中的攻擊者A,都存在著一個有效率的理想領域攻擊者 A*,使得RealWorld(A)與IdealWorld(A*)這兩個隨機變數是計算上的 不可分辨(Computationally indistinguishable)。
於是我們利用一個模擬器(Simulator)使得真實領域的狀態會等價於 理想領域的狀態,我們在理想領域中造出這個模擬器,用來增加謄本記 錄,只要在真實領域中存在的謄本記錄,我們都利用這個模擬器來產生相
同 的 謄 本 記 錄 , 使 得 真 實 領 域 和 理 想 領 域 的 概 觀 是 等 價 的 , 也 就 是 RealWorld(A) IdealWorld(A=c *)。
另外只要我們所產生的數位簽章是零知識非互動式證明系統,那麼表 示我們產生的簽章不會洩漏任何有關秘密資訊或是通行碼的資訊,如此一 來,代表我們的協定在溝通的過程中留下的訊息,以及溝通完後產生的數 位簽章,都能達到私密性的要求,而不可偽造性也可以利用零知識非互動 式證明系統來達成。