如果密码存储在LDAP而不是数据库或加密文件中,您的密码是否更安全?
密码在LDAP目录中存储为散列字符串.例如,OpenLDAP支持盐化SHA1 {SSHA}
,crypt {CRYPT}
(OS依赖),MD5 {MD5}
,盐渍MD5 {SMD5}
和SHA1的方案{SHA}
.我认为Active Directory服务器存储某种LM哈希和/或NT哈希.
鉴于这一事实,将密码存储在LDAP目录中并不比在文件或SQL数据库中存储散列密码(假设相同的散列)更安全或更不安全.直接访问底层数据结构的每个人都至少可以读取散列密码值(如果数据不是基于文件系统文件系统进行额外加密).
是否使用LDAP或其他类型的帐户存储机制的决定肯定不会基于密码存储的安全性这一事实.决定将取决于身份验证的完成方式以及您必须满足的其他要求.当您必须将不同的客户端连接到中央身份验证系统(例如专有软件,电子邮件服务器)或者必须将其集成到某些KERBEROS或SASL身份验证方案中时,LDAP就派上用场了.
密码与用户和密码存储位置之间最薄弱的链接一样安全.基本上,这意味着它不仅需要保护密码的存储方式,还需要保护用户和存储之间的连接线.当服务器和通信是安全的时,最薄弱的环节通常证明是用户.(因为用户有时会拥有宠物摇滚的记忆容量.)
我的一位同事曾经丢失了他的笔记本电脑,他非常担心小偷会访问他系统中的所有秘密内容.事实证明,他在笔记本电脑上贴了一个小纸条,上面写着密码.不幸的是,他并不是这个世界上唯一一个只在他们的计算机旁边的笔记上写密码的人.