7.2 鑒別交換
這個單向的鑒別機制涉及到聲稱者A和驗證者B之間的下列信息交換,它使得B能夠核查A的身份。
圖3說明了這個鑒別機制。圖中帶括弧的數字對應于符合下面詳細描述的交換步驟。
由驗證者發送給聲稱者的權標(TokenBA)的格式為:
TokenBA=d
這里d為詢問。由聲稱者發送給驗證者的權標(TokenAB)的格式為:
TokenAB=D
其中D為響應。
(1) 實體B選擇一個隨機數r,這個數由B秘密保存。B接下來計算h(r)。這個隨機數r的選擇應該使得r|| h(r)位于A的公開加密變換PA的定義域之內。B然后按照下面的公式計算詢問d
(2) B將TokenBA=d發送給A。
(3) 收到TokenBA之后,A執行下列計算步驟:
(a) A通過計算r|| h(r)=SA(d)恢復r值。這里SA為A的私有解密變換。
(b)A利用恢復的值r重新計算h(r),如果這個值不等于從TokenBA得來的值,那么A終止這個機制。如果計算出的h(r)值與從TokenBA恢復出的值相同,那么A置D=r。
(4) A發送TokenAB =D給B。
(5) 接收到TokenAB之后,B比較D和r。如果r≠D那么機制失敗并且A被拒絕。如果r=D那么B接受A。
注1– 其他的信息可以隨同這個機制的交換一起發送。
注2– B選擇隨機數r的過程要保證:在A的非對稱密鑰對的生命周期之內同一個數值選取兩次的概率趨近于零,這一點很重要。如果,同一個數r使用兩次,那么在它第一次發送的時候,截獲到該響應D的第三方,在B第二次發送數值r后,通過重放D作為對B的響應就能夠假扮A來欺騙B。不過,重新使用以前有效的r值只會使這個機制應用的一個特殊回合失效。
注3– 建議在這個機制中使用的密鑰對僅僅用于鑒別的目的,而不要用于任何其他的應用中(例如消息加密)。如果沒有遵循這個建議,那么應該特別注意以防止驗證者利用聲稱者作為“解密諭示”;例如,這可以要求散列值h(r)具有特殊的格式而達到目的。
推薦文章: