
身份認證技術採用口令和物理形式的身份認證進行標記,但這種技術不太安全。基於密碼學原理的密碼身份認證協議更安全,並能给予更多的安全服務。密碼學中的算法如私鑰算法、公鑰算法和散列算法都可以構成身份認證協議。身份認證協議一般有兩個通信方,可能還會有一個雙方都信任的第三方參與進行。其中一個通信方按照協議的規定向另一方或者第三方發出認證請求,對方按照協議規定做出響應或者其他規定的動作,當協議順利執行完畢時雙方應該確定對方的身份。身份認證技術分為會話密鑰、共享密鑰認證、公鑰認證等方法。
1.會話密鑰
會話密鑰是指在一次會話過程中使用的密鑰,一般都是由機器隨機生成。會話密鑰在實際使用時,往往是在一定時間內有效。會話密鑰主要用於通信加密。
2.共享密鑰認證
共享密鑰認證是顺利获得口令認證用戶开展起來的,但這種口令容易在傳遞過程中被竊聽而泄露。必須採用既能夠驗證對方擁有共同的秘密而又不會在通信過程中泄露該秘密的方法(零知識認證)才能解決這個問題,挑戰/應答協議是一個較好的選擇。挑戰/應答協議是在每次認證時,認證服務器端都給客戶端發送一個不同的“挑戰”字串,客戶端程序收到這個“挑戰”字串後,做出相應的“應答”,表明客戶端知道這個秘密,從而表明客戶端合法的身份。在網絡系統中,一台計算機可能需要與眾多計算機都建立共享密鑰,這樣既不經濟也不安全,因此出現了密鑰分發中心( Key Distribution Center,KDC)。
KDC在網絡環境中被大家所信任,並且與每個網絡通信方都有一個共享密鑰。KDC負責給通信方創建並分發共享密鑰,通信雙方取得共享密鑰後再利用挑戰應答協議建立信任關係。
3.公鑰認證
公鑰認證一般採用私鑰對明文信息進行變換,變換後的信息為簽名信息。利用公鑰對明文信息進行的變換稱為封裝或者加密。使用公鑰認證需要事先知道對方的公鑰,這就需要一個可信第三方參與分發公鑰。在實際網絡環境中,採用證書的方式分發和驗證公鑰。
