2012-07-31 295 views
5

對於我而言,我似乎無法在任何地方找到它,如果任何人都可以給我一個鏈接,我會非常感激。你如何在openLDAP中啓用密碼哈希(SSHA)

我們正試圖在openLDAP中啓用SSHA散列。默認情況下,它以明文存儲密碼,我認爲這是犯罪行爲,但嘿,我是一個AD人,所以我知道什麼。但是你會認爲如果你願意,他們可以很容易地找到打開哈希所需的信息。你不會選擇嗎?

+1

在OpenLADP中啓用哈希密碼在這裏值得注意的是:在你的驗證數據庫(LDAP,AD或其他)中存儲哈希密碼並不完全是它似乎是安全的萬能藥。 SASL通過網絡顯着提高了線路安全性,但要求鏈路兩端都可以使用原始密碼。所以權衡是數據存儲(散列)中更好的安全性,以防止更好的線路安全性(SASL)。 – 2013-07-14 09:06:46

+0

從'man slapo-ppolicy':指定添加和修改請求中存在的明文密碼在存儲到數據庫中之前應該進行散列處理。這違反了X.500/LDAP信息模型,但可能需要補償未使用「密碼修改」擴展操作來管理密碼的LDAP客戶端。 – 2017-04-17 16:05:17

回答

7

您可以使用'password-hash'來更改哈希算法,默認的哈希算法是SSHA(不是明文)。

請注意,只有當客戶端發送的密碼爲純文本時,如果您的客戶端發送散列密碼,slapd纔會使用上述密碼,它將以原樣存儲。

的如:與pam_ldap的,使用pam_password exop(或清除)

如何密碼強度測試在服務器上運行,如果密碼被散列快到了,我知道這是一個功能OpenLDAP的吹捧?

如果您發送散列密碼,slapd將斜面進行強度測試,所以客戶端必須以明文形式發送密碼(ppolicy有選擇接受/拒絕哈希密碼)。

注:

  1. 確保您的客戶端使用SSL/TLS(所以passwds以不以明文形式發送)
  2. userpassword屬性中包含特殊字符({}),所以你必須做一個base64 -d來標識使用的散列算法。

如:正常的屬性在下面的格式返回(::表明結果是base64編碼)

userPassword:: e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ= 
= 

$ echo e1NTSEF9QjU0VXNmQWhJN1dQZ3FvbDVSQ1l5RHUzTlVqa1luVVhYV2ljbmc9PQ==|openssl base64 -d 
{SSHA}B54UsfAhI7WPgqol5RCYyDu3NUjkYnUXXWicng== 
+2

謝謝Naj。您的建議成爲我們解決方案的一部分我關於測試強度的評論實際上是質疑其他誰建議散列發生在發送到LDAP進行認證之前。上面的陳述是我想到的,這讓我懷疑這個評論。再次感謝...贏得你我的朋友。 – 2012-08-01 05:39:35

1

OpenLDAP支持多種存儲方案供管理員選擇。您用於創建帳戶的工具必須配置爲執行散列。服務器將按照客戶端請求的格式存儲密碼。如果散列處理得當,ldapsearch的將顯示散列密碼是這樣的:

userPassword: {SSHA}d0Q0626PSH9VUld7yWpR0k6BlpQmtczb 

詳見http://www.openldap.org/doc/admin24/security.html

當涉及到管理工具,我個人建議http://phpldapadmin.sourceforge.net

+0

真的嗎?所以你說的唯一方法就是讓客戶端或換句話說外部源進行密碼散列。這似乎不是最佳的,有點危險。在AD世界裏,它是集中完成並集中管理的。這很難讓我相信。 – 2012-07-31 01:18:12

+0

等待,如果密碼進入散列狀態,密碼強度測試如何在服務器上運行,我知道這是一個功能openLDAP touts? – 2012-07-31 01:21:02

+0

LDAP只是一個目錄。執行密碼策略取決於身份驗證層而不是存儲層。真的這就是UNIX世界的工作原理,有一種工具只能做一件事,而且做得很好。要執行密碼策略,您需要配置用戶將用來更改密碼的工具,無論是Web界面還是命令行實用程序。我明白,這可能很難相信沒有任何事情能做到「中心」,但這就是模塊化的思想。 – anttix 2012-07-31 19:57:14

2

的LDAP規範要求的互操作性明文密碼。上面給出的關於安全性的鏈接將給你選擇服務器可以執行的默認散列類型,但是要考慮其含義。

+0

您對發送純文本的要求是正確的。我想這就是爲什麼openLDAP需要啓動SL之前,可以配置它啓動哈希密碼。我的問題是,爲什麼它允許發送純哈希關閉密碼的純文本密碼。安全性方面,從開始開始哈希開啓並要求用戶關閉哈希不是​​更好。對BSD模型進行排序,默認情況下一切都會關閉,要求學會將危險的東西開啓。 – 2012-08-01 05:47:21

1

當你試圖存儲userPassword屬性在添加/修改LDAP操作, userPassword值以純文本形式存儲。但是您可以在OpenLDAP中的ppolicy覆蓋模塊中使用ppolicy_hash_cleartext選項覆蓋此行爲。一旦啓用它,當客戶端發送純文本密碼時,默認情況下其存儲爲SSHA。你可以從here