活动目录; 用户以前的密码列表?

我知道其他一些公司能够在loginnetworking时拦截他们的用户密码。 我也知道,这些公司创build了一个巨大的密码数据库,不能再使用; 他们如何做到这一点?

这是Active Directory的本地特性,不需要以某种方式“捕获”密码。 系统pipe理员通过系统范围的安全策略设置“记住”的密码数量。

通常这种function是以这样一种方式实现的,即只存储密码的所谓“ 哈希 ”。 当您以用户的身份select新密码时,系统会确保新密码的散列不会出现在与过去的密码相对应的记忆散列集合中。 这样可以消除重复使用相同的密码。

请注意,散列实际上是一个非常大的数字,使用密码函数(本质上是一个复杂的math公式)从input数据(即从您的密码)计算出来。 关于哈希值的一个重要的事情是没有合理简单快速的方法来逆转这个过程,也就是只知道实际的密码就知道它的哈希值。 因此,系统可以非常安全,防止泄漏过去的密码。

这是域pipe理员可以configuration的名为“强制密码历史logging”的域级帐户策略。 微软在这里的设置文件。

另外,要清楚的是,它们存储明文密码。 他们正在存储密码的散列。 以明文存储密码是一个严重的安全问题。

活动目录提供应用程序拦截密码更改呼叫的接口。 为此,驱动程序必须在域控制器(DC)上进行密码更改(通常是所有这些更改)。 一旦密码被encryption并存储在AD中,颠倒散列是不切实际的(散列是在DC之间存储和复制的)。

Novell Identity Manager(IDM)就是一个例子。 为了使密码与Active Directory同步,您必须在域中的所有DC上安装名为“密码同步”的应用程序,该应用程序执行上述操作。 然后,IDM会在设置密码时拦截密码,并且可以对密码进行任何操作 – 将其转储到文本文件,将其存储在SQL数据库中或与其他目录eDirectory同步。

其他系统(如Microsoft Forefront IM)具有类似的function,编写将密码转储到数据库的简单应用程序可能并不困难(但只能在更改密码时才能执行此操作)。

根据所使用的安全types和login或服务器系统,这个答案会有很大的不同。

正如其他人所指出的那样,如果您使用Active Directory系统进行域login,并且已经设置了不允许先前密码的选项,那么密码的哈希值将被存储为一组密码更改和任何匹配的新密码哈希值意味着密码本身匹配)被拒绝。 这使得系统可以跟踪旧密码,而系统并不真正“知道”密码本身。

如果您正在处理网站login,密码存储的正确方法是使用散列,就像Windows和Active Directory(以及其他任何安全和正确configuration的安全系统,它不仅仅是Windows的东西)。

但是,正确的方法并不总是被使用。 在黑市上黑客入侵的网站和用户密码的例子通常是以“纯文本”的forms存储密码的网站或系统的例子。 这意味着系统中的某个地方基本上有一个您可以读取的密码列表,而不会混淆必须进行比较的散列值。

除了简单接受用户密码的input并将其与所存储的内容进行比较之外,密码pipe理系统中没有“捕获”。 安全和非安全系统都这样做。

一个比较哈希的系统(一个安全的系统)和一个比较明文(不安全的系统)密码的系统之间的区别在于,一个安全的系统添加了创build哈希的步骤, 。