如何讓一次性密碼適應多因素認證模式
多因素身份驗證是一個術語,用來描述采用了兩種或者兩種以上不同形式的認證模式來提高利用規避、破壞或者以其它方式繞過正常身份認證體系難度的安全機制。對于多因素身份驗證來說,關鍵是每個“因素”利用的是一種不同類別的認證機制,而不是第二種認證采用的是同一機制的不同實例。
用于認證的驗證因素往往屬于下列三個類別之一:
◆使用者本質屬性:對于這一類別來說,生物特征識別技術是最常見的例子。
◆使用者擁有屬性:智能卡、手機、筆記本計算機之類的特定物品都可以作為這種類型的認證因素。
◆使用者需知屬性:對于這種類型的認證因素來說,最常見的例子就是一個密碼。
通常情況下,一次性密碼系統屬于使用者需知屬性類別的認證因素。但是,對于惡意安全黑客來說,不同尋常的骨頭才難啃(這里有雙關語意)。對于典型的密碼認證系統來說,會顯示出一個輸入提示框,使用者將記得的密碼輸入進去,就可以進入到使用環境中。而對于一次性密碼系統來說,在每次對身份進行認證的時間,使用的都是不同密碼。每個密碼只能使用一次;這就是“一次性”這一定語的來源。
對于一次性密碼系統的登錄來說,每次都要使用不同的一次性密碼。優秀的系統往往會采用兩種不同的方式建立受到限制的產生時間以生成一種可預見的運算密碼體系:在某些一次性密碼系統中,采用的是令牌或軟件,并以實現在對應系統中的密碼輸入。為了防止其它人對密碼生成方式進行預測,系統會對隨機選擇的起始點進行加密,這種措施被密碼學家稱之為“鹽效應”,可以用來對密碼的輸出過程進行一些秘密調整。這樣的話,可預見系統就能單向確認,無法逆轉,從而實現給定的一次性密碼只能單次使用,重復使用將被系統拒絕的效果。
取決于對認證因素分離的定義有多嚴格,以及對應一次性密碼系統的具體工作原理,將一次性密碼引入認證體系中確實可以實現多因素身份驗證模式提供的安全性。一種涉及到USB設備或智能手機之類單獨硬件令牌使用的實現模式,可以在需要的時間生成下一個密碼,應該屬于“使用者擁有屬性”類別。實際上,相對而言,采用從輸入框的模式更傳統一些,利用可重復使用的密碼輸入模式作為第二種認證因素也存在不足,有些類型的攻擊可以同時破壞可重復使用的密碼和一次性密碼,但對于身份驗證模式來說,兩種密碼認證模式還是至少有可能實現安全性的一定提高。
不管一次性密碼系統是否符合多因素身份驗證模式的嚴格定義,但它確實可以提高一定的安全性,并讓未經授權的部分獲得認證的難度上升。DebianGNU/Linux和FreeBSD之類操作系統都提供了易于安裝和配置的一次性密碼系統,安致市場中也提供了類似的一次性密碼應用,可以將智能手機轉換為獨立的硬件令牌,以支持一次性密碼系統。
對于用戶來說,一次性密碼系統帶來的最大好處,就是可以避免網絡流量被鍵盤記錄器之類可以記錄所有信息的工具所截獲帶來的某些風險。當然,如果系統中確實存在鍵盤記錄器的話,應該做的事情不止這一點;只是,在確實存在的鍵盤記錄器沒有被發現之前,一次性密碼可以讓惡意安全黑客無法獲得登錄系統的密碼。