
基於智能卡的認證方法所要驗證的是用戶擁有什麼。別的,還需用戶给予個人身份識別碼。普通每個卡的持有者都要擁有一個PIN,本質上,PIN便是持卡人的口令,PIN不可以寫到卡上,持卡人必須牢記,並保密。
智能卡具有硬件加密功能,且存儲用戶的機密信息,同時在驗證服務器中也寄存該機密信息。進行認證時,用戶輸入PIN,智能卡認證PIN,後,即可讀出智能卡中的機密信息,進而使用該機密信息與主機之間進行認證。
系統顺利获得驗證持卡人是否知道該卡的準確的PIN來到達認證持卡人身份,因而,這種基於智能卡的認證方法是一種雙認證方法,即便PⅠN或智能卡被盜取,用戶仍不會被假冒。智能卡给予硬件保護方法和加密算法,能夠利用這些功用增強安全功能。
不過,靜態驗證的方法存在安全隱患。由於每次從IC卡中讀取的數據是靜態的,顺利获得內存掃描或網絡監聽等很容易能截取到用戶的身份驗證信息。
IC卡有以下三種工作方式:
(1)內部認證。使用終端閱讀卡中的數據,然後導算出認證密鑰。終端生成隨機數並送給IC卡,同時指定下一步使用的密鑰。卡用指定密鑰對該隨機數進行加密,然後將加密的隨機數送回終端;終端對隨機數進行解密,比較能否一致,若一致則內部認證成功。
(2)外部認證。終端設備從ICC中讀取數據並導算出認證密鑰。由於ICC本身不可以發送此數據,這一認證辦法由終端設備控制。終端設備從ICC中讀取一個隨機數,用認證密鑰對它進行加密並將它發送到ICC。
(3)互相認證。終端設備從ICC中讀取數據並導出認證密鑰。
終端設備從ICC中讀取一個隨機數並生成它本人的隨機數。這兩個隨機數和卡數據由認證密鑰進行加密。終端設備將此加密值傳送給ICC,ICC用終端設備指定的認證密鑰對此加密值進行解密並比較。比較之後,ICC用認證密鑰加密終端設備的隨機數和它本人的隨機數,並將此加密值發送回終端設備。
