天天看點

J0ker的CISSP之路:複習Access Control(6)

     在《J0ker的CISSP之路》系列的上一篇文章裡,J0ker給大家介紹了使用者驗證時所依賴的三種驗證要素、密碼和密碼短語及其安全使用原則。作為技術實施難度和成本最低的使用者驗證方案,基于密碼的使用者驗證方案廣泛應用于我們的日常生活和工作中。但由于密碼本身的脆弱性,很容易被攻擊者所破解或竊取,是以,在高安全級别的系統中,往往會在使用密碼驗證的基礎上,再增加其他的驗證手段,以增強系統的安全性——這便是本文要介紹的使用者所有的憑證(Something you have)和下一篇文章要介紹的使用者生物特征(Something you are)這兩種使用者驗證手段。

    使用者所有的憑證,和傳統的密碼方式最大的不同在于,使用者所有的憑證,對使用者來說是他所有的一個物品,使用者不需要了解它們具體是怎麼運作的,隻需要在系統要求使用者進行身份驗證時提供它們即可。大家可能會覺得J0ker這樣說有點抽象,舉個簡單的例子,使用者要進入一個有警衛看守的房間,如果隻需要對上暗号而不需要警衛驗證使用者的其他屬性就能進入,就是傳統的密碼方式。如果使用者對上暗号之後,警衛還需要使用者提供自己的工作證或者鑰匙才能進入,這就是使用使用者所有的憑證的驗證方式,更進一步的,按照規定使用者還必須是警衛認識的人,使用者才能進入,這就是使用者生物特征的身份驗證方式。是以,使用者所有的憑證,也就相當于使用者進入系統的鑰匙。

    使用者所有的憑證按照存在的形式還可以分成邏輯存在和實體存在: 邏輯存在的使用者所有憑證通常是儲存在使用者的系統中,在使用時自動或由使用者手動送出給驗證系統,這種存在形式的使用者所有憑證常見的有各種數字證書、某個包含有特殊字元或内容的檔案,或者軟體實作的Token一類的産品等。而實體存在的使用者所有憑證則包括一次性密碼(OTP)、存儲卡和智能卡等,因為邏輯存在的使用者所有憑證有被攻擊者複制利用的風險,是以,實體存在的使用者所有憑證在安全上要比邏輯存在的更勝一籌。

    下面J0ker将給大家介紹目前使用最為廣泛的兩種使用者所有憑證方案,一次性密碼(OTP)和智能卡:

     一次性密碼(One Time Password,OTP)和傳統的可多次使用密碼不一樣,一次性密碼隻能使用一次,使用之後便告失效。這樣,即使使用者的一次性密碼被攻擊者所擷取,攻擊者也不能使用一次性密碼再去登入使用者的系統,因為這個一次性密碼已經失效。

和大家認為的不一樣,一次性密碼使用的曆史相當長,一次性密碼的使用甚至還早于計算機出現——近代軍事和間諜領域常用的密碼本,便可以認為是一次性密碼的前身。直到現在,将許多個一次性密碼清單列印在紙上,并交給使用者使用,仍然是最為廉價但安全性相當高的一種一次性密碼方案,國内有的銀行在加強網上銀行安全性的時候便選擇了這樣的一次性密碼實作方式,大家可以在使用相關銀行的網上銀行時留意一下。當然,這種一次性密碼實作的安全取決于使用者是否能妥善保管列印有一次性密碼的密碼本。

     更多的一次性密碼方案采用電子和計算機技術來實作,這類一次性密碼方案的使用者端通常是一個類似于小的電腦或鑰匙吊墜般外形的裝置,上面有個數不等的按鈕,行業裡也将這個裝置稱為令牌裝置(Token Device)。使用者按照一定的規則向令牌裝置輸入資料,令牌裝置計算後傳回一個結果給使用者,這個結果就是使用者登入系統的一次性密碼。令牌裝置可以根據實作方式分成同步式令牌裝置和異步式令牌裝置:

     同步式令牌裝置(Synchronous Token):令牌裝置内儲存有和驗證伺服器相同的一個基準值,如精确到微秒的時間,或用管理者設定的一個可變數值。基于時間同步的令牌裝置稱為Clock-based Token,而基于可變數值計算的則稱為Counter-based Token。它們生成一次性密碼的方式大緻相同,都是使用者輸入密碼後,由令牌裝置利用與伺服器同步的變量作為一個參數,重新生成一個用于登入系統的一次性密碼。而驗證伺服器端則會使用相同的變量及算法處理儲存在資料庫中的使用者密碼,如果使用者提供的一次性密碼和驗證伺服器計算的相同,就可以證明該使用者是系統的合法使用者。

<a href="http://netsecurity.51cto.com/files/uploadimg/20080307/1503400.gif" target="_blank"></a>

   圖1,基于時間同步的令牌裝置(Clock-based Token)的工作流程

<a href="http://netsecurity.51cto.com/files/uploadimg/20080307/1503401.gif" target="_blank"></a>

  圖2,基于變量同步的令牌裝置(Counter-based Token)的工作流程

     異步式令牌裝置(Asynchronous Token):由于同步式令牌裝置需要和驗證伺服器相一緻的時間或數值變量,是以同步式令牌裝置的部署和維護并不輕松。異步式令牌裝置則沒有這個缺點,它不需要驗證伺服器維護和令牌裝置之間的時間或變量同步。異步式令牌裝置采取挑戰-回答(Challenge-Response)的一次性密碼生成方式,在使用者提出登入請求後,驗證伺服器将根據使用者輸入的密碼傳回一個數字,使用者再将這個數字輸入到令牌裝置中進行計算後,把計算結果傳回給驗證伺服器,驗證伺服器也會進行相同的計算步驟并将結果和使用者的輸入進行比較,如兩個值相同,則驗證通過,使用者可以登入系統。

     近幾年市面上還出現了使用安裝在使用者系統内的令牌程式代替實體令牌裝置的一次性密碼方案,這種方案進一步降低了使用者部署和維護的成本,也更加适用于追求安全性,又對驗證方案的成本敏感的企業使用。

     智能卡(Smart Card):智能卡是一張類似信用卡大小的塑膠卡片,在它裡面有一塊微型的晶片,這款晶片可以存儲一些與使用者驗證相關的資訊。有的進階智能卡還包括專用的計算晶片,能夠提供一定的加解密或其他運算功能。智能卡的使用要比一次性密碼更為廣泛,經常被企業用于提供實體安全的通路控制方案中。

下篇預告:《Access Control(7)》,J0ker将給大家介紹三類驗證手段的最後一類——生物特征驗證,敬請期待!

本文轉自J0ker51CTO部落格,原文連結:http://blog.51cto.com/J0ker/64625,如需轉載請自行聯系原作者

繼續閱讀