前言
全部课程
疫情前,有一次,我请了年假,和家人一同出游。我和爱人在房间里,忙着收拾行李,儿子则在一旁抱着行李箱,鼓捣密码锁玩儿。当我们将想要带的东西,整理完毕,准备装箱时,确发现行李箱的密码,被儿子改掉了....当然,这并不是他调皮捣蛋,有意而为之,只是无意乱动,修改了密码。
距离下午高铁发车,已经不足4个小时,路上打车加上进站安检,大概需要2个半小时,也就是说,我只剩下1个多小时,来破解这把密码锁。我算了一下,这个3位数字的密码锁,全部的密码组合一共就10*10*10=1000种,

也就是说,最笨的办法,只要我尝遍1000种数字组合,总能打开这个箱子。当然我并没有那么笨,因为密码锁是机械锁芯装置,当齿轮滑过某一临界位置时(也就是正确的开锁位置),齿轮的声音和触感会有明显的变化,通过这个小窍门,我很快就解锁了密码。
线上产品的密码设定
为某个东西上一把锁,一般都是出于安全性的考量。在使用网络产品时,我们也会为自己的个人账号上一把“锁”,因为账号下,存放着我们的个人隐私信息。网络产品中的“锁”,肯定不是实物态的。通常是用户设定的一组字符。通过输入这些字符,用户可以自由的进入到自己的个人账号。
就像有时我们会遗失家门钥匙一样,网络产品的密码也会有泄露的风险。很多网络黑客,会通过黑客程序盗取我们的账号,所以很多产品的设计者,会强制要求用户,将密码组合设置的更加复杂一些。
在一些产品的注册环节,会强制要求用户,设置强密码。例如,必须同时使用大写字母,小写字母,特殊字符,数字,并且必须保证密码长度要多于若干位。做这些限制的主要目的,就是增加密码破译的难度。

早期软件产品中,密码设置的交互方案,很不走心。一般上来就和用户约法三章,把密码设置的所有条件都列在注册页下,让用户对照执行,这些要求条件,往往不会支持即时交互。很多用户可能在设定密码时,忘记了某条约束。于是密码提交时,总是无法顺利通过。而诸如“至少包含一个大写字母”这类红色反馈提示,很像是在指责用户的“过失”。
现在,很多产品的注册方案,要比早期的方案友好的多。有的产品不会强制用户,设置强密码,但是会通过,不同安全等级的颜色反馈,向用户示意,当前密码设定的质量。红色代表非常不安全,黄色代表一般安全,而绿色则代表非常安全。这些明确颜色的反馈,可以帮助用户,提升密码设置的安全意识。

当然,有的产品还会强制用户设定强密码,但是并不会在用户设置密码前,把相关要求全部罗列出来,这有利于减轻用户的填写压力。比如,这款名为Chipotle的iOS应用,当用户设置密码时,会通过气泡浮层,给到用户填写要求。当用户输入的字符,符合某一条设置要求时,这个要求项就会被点亮,这种明确的反馈形式,非常有助于引导用户执行任务。当所有的要求项被“点亮”后,密码设置任务,也就顺利完成了。

早期的产品,在用户完成密码设定后,一般会要求用户,再输一遍密码,以验证之前的输入,和本次输入是否一致。如今,很多产品都取消了密码验证环节。尤其在移动产品设计上,即便是用户在初始密码设定阶段,发生了填写错误,重新设置密码,也并不困难。我们只需要往注册手机上,发送一条短信验证码,重新设置和提交后,即可完成密码的重置。
苹果产品的密码策略
苹果系统对设备安全性要求很高,他们会为用户提供了双重验证的安全机制,如果你的设备账号,正在被他人登录,苹果会给你另外一台设备,推送第二重验证请求,只有两种验证全部通过,才可以成功登录你的账号。

苹果系统还会为用户,提供了强密码组合功能,当用户在苹果系统下,注册一些产品账号时,只要涉及到使用Apple登录的密码设定,苹果就会把一段新生成的强密码串,提供给用户,这能在某种程度上,能减轻用户的填写压力。

这个贴心的设计,粗看起来对用户很友好,但是这仅限于,在当下设备场景下。如果我们在win系统环境下,或是其他类型手机系统下,登录这些产品时,就必须的打开苹果系统的密匙,对应的,将这些无规律的字符,一个一个的敲进密码框内。
银行的安全防护
密码输入过程中,同样存在泄露的风险,所以很多产品,会在用户输入密码时,依次隐藏输入的字符。这些字符,从文字态变更为隐藏态,有一定的时间延迟,这种设定,可以帮助输入者,核实每一次的末端输入是否准确。

在线下实体产品上,执行密码输入时,同样也会存在泄露的风险。比如我们在银行,使用银行取款机取钱时,密码输入键盘上方,会有一个遮蔽面板。这类面板有时也会遮蔽取款者的视线,所以,我们经常会遇到,一些取款者采用半蹲的姿势,进行密码输入。

说到银行取款环节,可能会有很多读者对银行的密码位数以及全阿拉伯数字,感到困惑。因为在互联网产品,一般都会要求用户设置强密码。是的,这种纯阿拉伯数字的密码设置,如果放到互联网上使用,肯定会存在巨大的安全隐含,但是在线下场景中,6位数字密码,安全性已经很高了。
在线下取款环节,如果在取款机上取款。除非我们是卡主人,已经知道这张银行卡的密码,否则,多次密码输入错误后,取款机会直接吞掉卡片。在营业厅办理取款业务,如果卡片不属于我们本人,那么需要我们需要提供本人身份证,和卡主人身份证,如果是捡到的卡,或是偷拿别人的卡,那么前往营业厅办理取款业务,将无法进行。所以线下实际的业务层面,已经将可能出现的“取款漏洞”一一补全了。
如今各家银行,都开发了自己的手机银行APP。但是如果你细心观察就会发现,这些APP的登录密码,可不是使用的银行卡密码,这些登录密码是我们使用手机银行时,重新设定的密码,并且登录和大额支付时,都需要用到短信或者人脸验证。
有些银行,出于输入安全性的考虑,还独自开发了输入键盘。比如,工商银行的手机APP,会在用户每次吊起键盘后,动态调整按键的位置。这种调整,可以有效的保证手机支付,在安全的输入环境下进行。
