14-2 Needham-Schroeder 認證協定
14-2-1 N-S 協定簡介 Needham 與 Schroeder 於 1978 年提出一種『多重盤問與回應』的認證協定 [110],它不但可以避免重播攻擊,也可以解決相互認證的問題。此認證協定大多承襲圖 14-1 (b) 的運作方式,但它利用隨機產生的亂數(Nonce,64 bits)標示每一個通訊連線,並作為測試對方所持有的會議鑰匙(盤問與回應)使用。圖 14-2 為 Needham-Schroeder 認證協定的運作程序,其執行步驟如下:(以訊號發送次序說明)
圖 14-2 Needham-Schroeder 認證協定
由以上的敘述可以發現,訊號 (1) 與 (2) 是 KDC 分配鑰匙的運作程序;然而,訊號 (3) 到 (5) 是執行相互認證的程序。此協定最大的特點是,每一個訊號都在執行『盤問與回應』的機制,因此,又稱為『多重盤問與回應』協定。 Needham-Schroeder 認證協定的弱點,還是在發起者傳送門票給回應者的時候(訊號 (3))。假設攻擊者攔截到門票(訊號 (3)),它可以重複傳送此訊號給回應者(重播攻擊法);縱使該門票內含舊的鑰匙,回應者並無法分辨到底哪一把才是新的鑰匙,如此一來,攻擊者就可以阻斷回應者與發起者之間的通訊。
圖 14-3-0 三向式詢問法 14-2-2 N-S協定- 加入時間戳記 Needham-Schroeder 認證協定的問題是出現在遭受重播攻擊時,回應者無法分辨出所收到的門票是否過期,也就是無法辨別新舊鑰匙。有一個簡單的構想,是在門票上加入時間戳記 [49],當回應者收到門票時,便可利用時間戳記來判斷該門票是否過期,甚至由時間戳記可以看出所傳送的鑰匙是新的或舊的。加入時間戳記的 Needham-Schroeder 協定之運作程序如圖 14-3 所示,門票為: Ticket = EKb [IDA || KS || T] 其中 T 是時間戳記。
圖 14-3 加入時間戳記的Needham-Schroeder 認證協定 雖然加入時間戳記可以解決一部份的問題,但亦衍生新的問題產生。為使時間戳記保持有效,通常參與通訊的設備之間的時序必須保持同步。如圖 14-3 中,發起者、KDC 中心與回應者之間的時序必須保持同步,縱然無法達到完全同步,最起碼保持在可容許範圍內。就封閉型的分散式系統而言,尚可達成,至於開放式的分散式系統,可就困難重重。 14-2-3 擴展型 N-S 協定 我們回到原來 Needham-Schroeder 協定的問題,關鍵在於回應者遭受重播攻擊時,無法辨別新舊門票。究其原因是回應者並不知道有人欲與他進行通訊,所以一旦回應者收到門票時,便立即與對方通訊。如果發起者能事先通知他,讓他有點準備,或許就能辨別新舊鑰匙。擴展型 Needham-Schroeder 認證協定,就是利用這種觀念發展出來的 [110],其運作程序如圖 14-4 所示。 我們可以比較圖 14-4 與圖 14-2 兩者之間的差異,圖 14-4 中訊號 (1) 與 (2) 是 Alice 事先通知 Bob,並由 Bob 得到一個亂數 NB(由 Bob 的主密鑰加密),而且KDC 也將該亂數植入門票內(訊號 (4)),如下: Ticket = EKb [IDA || KS || NB] 當 Alice 利用此門票向 Bob 要求通訊時(訊號 (5)),Bob 便能由亂數 NB中知曉到底是哪一張門票。假設,攻擊者攔截到門票(訊號 (5)),並重複發送給 Bob,Bob 由門票內的 NB便可以分辨出新舊會議鑰匙。
圖 14-4 擴展型 Needham-Schroeder 認證協定 |
翻轉工作室:粘添壽
資訊與網路安全技術
翻轉電子書系列:
|