
在基於公鑰加密的認證協議中,第一时间認證雙方在同一個CA信任域下,並且互相取得了對方的公鑰證書。然後驗證方用被認證方的公鑰加密一個隨機數發起一個認證詢問,被認證方用自己私鑰解密後得到隨機數,然後將該隨機數發送給驗證方作為詢問的應答。由於只有擁有私鑰的人才能夠解密並獲取正確的應答,從而實現了身份認證。一個基於公鑰加密的原型單向認證協議,運行步驟如下。
(1)A生成一個隨機數Ks,並用B的公鑰加密這個隨機數以及自己的身份A作為認證詢問
(2)B接收到詢問後,用自己的私鑰解密取得該隨機數。同時B用A的公鑰加密該隨機數以及自己的身份B作為詢問應答。
(3)A接收到詢問應答後,用自己的私鑰解密並對比該隨機數與自己方存儲的隨機數是否一致。若一致,則認證顺利获得;否則,認證失敗。
該協議只是一個原型協議,並不是一個安全的協議。由於Ks都是加密發送的,因此可作為會話密鑰使用。在實際系統中,認證與密鑰協商經常是相伴出現的。認證與密鑰協商後,用協商好的密鑰來為數據给予機密性保護和完整性保護,這是一個安全的基本框架。在該協議中,如果不進行密鑰協商,實際上第二條消息不用加密發送也可。
