这个已失效的页面上有一些信息。显然,“动态画面”是为了分散肩部冲浪者的注意力的想法很普遍,而且是错误的。这不是这张照片的工作原理。它的所作所为实际上更糟,尽管它是出于好意。
当您键入密码字母时,Lotus 采用“相当复杂”但具有确定性的算法将输入的密码映射到图片;这基本上是一个输出大小非常小的散列函数(输出是可能图片集中的一个“值”)。所述哈希函数可能包含一些特定于服务器的秘密,但这并不重要。真正的一点是,正如您所观察到的,当您输入密码时,您总是会得到与给定密码相同的图片。良好的意图是实现以下两个属性:
第二个原因纯属胡扯,仔细想想:“复杂的算法”不能保密(特别是如果假弹出窗口实际上是中间人攻击,而真正的弹出窗口在幕后得到实际图片),制作在屏幕上移动的图片真的很容易:这就是 99.9% 的 Web 的意义所在。
然而,第一个原因包括破坏的种子:这会泄露密码信息。图片在屏幕上,非常明显;相当突出,甚至。“肩膀冲浪者”可以从远处看到它们。他可以使用它们来删除潜在的密码。事实上,如果有四张可能的图片,那么每个字符会泄漏 2 位:对于一个 8 字符的密码,实际上它应该有大约 30 位的熵,然后将其减少到微不足道的 14 位。
事实上,这个功能类似于一个系统,它会在屏幕上用大写字母和每个密码字符写:“这个字符是一个数字”/“这个字符是一个介于 A 和 M 之间的大写字母”/ ...
因此,这种“图片”系统是彻头彻尾的危险,应该被取缔。
至于密码长度,攻击者很容易获得字符数,因为每次击键都听得见。肩冲浪者只需在受害者的听筒范围内,可以轻松地用智能手机记录序列以便稍后收听,适当放慢速度,从而获得密码长度。在这种情况下,对用户自己隐藏长度是没有意义的。