我想在LDAP中存儲密碼重置問題的答案。我知道答案應該用鹽來散列。我想深入瞭解以下內容:在LDAP中存儲密碼重置問題
- 我們應該使用哪個attributeClass?
- 是否有可能讓LDAP服務器執行散列操作?
- 如果容器沒有公開哈希如何執行,有沒有辦法使用LDAP比較操作?
- 答案根據您使用的目錄服務供應商的不同而不同?
- 是否可以爲此目的擴展密碼attributeClass?
我想在LDAP中存儲密碼重置問題的答案。我知道答案應該用鹽來散列。我想深入瞭解以下內容:在LDAP中存儲密碼重置問題
只是一個可能完全關閉的想法,爲什麼不重複每個用戶的帳戶密碼是祕密問題的答案?
通過這種方式,您不必考慮哈希/ salt /加密,並驗證您將調用登錄用戶API的答案。
那些重複的用戶當然會屬於一個非常有限的安全組。
我在Sun Directory Server中查找了這樣的功能,但無法找到它。我最終在我的客戶端代碼中實現了它(如果我沒有記錯的話,使用java.security.MessageDigest)。這並沒有太多的工作,但我希望它能夠被服務器處理。
UPDATE
Oracle互聯網目錄11g支持散列屬性: http://download.oracle.com/docs/cd/E17904_01/oid.1111/e10029/data_privacy.htm#BABFFHIH
可能可以定義使用屬性的語法,是受散列安全問題/答案的屬性/加密如userPassword。這取決於您正在使用的目錄服務器產品。
如果要將散列/加密值存儲爲可讀字符串(如Base64編碼),則可以使用任何目錄字符串屬性類型(http://tools.ietf.org/html/rfc4517#page-8)。您也可以將其存儲爲任何字節字符串屬性類型(http://tools.ietf.org/html/rfc4517#page-19)。
如果需要恢復安全問題的答案或在驗證期間需要某些寬鬆(例如,混合/低/大寫無差異),則加密可能是更好的選擇。最好讓中間件也這樣做。就像Terry Gardner所說的那樣,它取決於你使用的目錄服務器軟件。例如,可以將IBM Tivoli Directory Server配置爲加密屬性的值。使用在安裝軟件期間指定的安全元素完成加密。應用程序不必做任何特殊的事情。 Novell,Red Hat和Oracle/Sun Directory Server軟件也支持加密屬性。我不是AD專家,但我認爲它不支持加密屬性。我認爲OpenLDAP也是一樣。