这是 2016 年的年末。尽管国家标准技术协会已经在 Publication draft 800-63B 中将基于 POTS/SMS 的认证方式认为是不安全的,依然有人认为使用手机号作为登录验证的方式是个很好的决策。
不,手机号登录既不能提供额外的安全性——相反,他极大的 compromised 由强密码带来的额外安全度,而且手机号登录又不能作为一次性密码 (OTP) 使用。
SS7 Attack
SS7 (七号信令) 是美国国内运营商传输控制平面 (control plane) 的协议。在网络内,非语音 (data plane) 的控制讯号使用 SS7 进行传输。运营商的网络系统并非完美的 —— 恰恰相反, 此处就有演示使用 SS7 进行攻击的案例 。
这带来的威胁包括运营商网络外未授权访问并注入 SS7 控制信号带来的风险 —— 此类风险将允许入侵者重定向 data plane 之讯息至被入侵者控制的目标机器上,并读取其中所负载得之信息 —— 以及运营商中的内部攻击 (insider attack) 带来的风险 —— 此类风险为内部人员进行未授权访问带来的 —— 以及使用 CALEA (又称之为 lawful intercept 合法监听) 的有关机构 (例如 FBI) 进行侦听带来的风险,甚至包括 NSA/GCHQ 等机构进行 wiretap / snoop 时的风险。
作为概括, SS7 攻击会带来由于中间链路不受控而导致的信息泄露风险,从而增加了攻击面。此类攻击仅需获知直知乎用户的手机号码。
端点安全
简单的说,手机并非一个可以保证安全的端点 (endpoint)。尽管端点安全对于知乎并无法控制,但以提供手机短消息登录的可能性,知乎将端点被 compromise 而带来的风险扩大了。
在端点已被 compromise 的前提下,targeted threat 的威胁程度是不同的。
在仅提供密码认证的情况下,端点被 compromise 时,若设备上并无登录凭据/衍生的认证 ticket (例如 cookies) 时,攻击者只能通过其他办法获取账户的控制权 —— 例如使用 Email reset 密码,若设备上已有 Email 相关的凭据或访问权。
在仅提供密码认证以及 OTP 校验的情况下 (在这个特定的环境中,知乎不提供 OTP 的能力),攻击者在无法获取 OTP 的情况下,若设备上并无登录凭据/衍生的认证 ticket (例如 cookies) 时,攻击者甚至无法通过 Email reset password 的方式获取账户的访问权。
但是,在提供 SMS 登录的能力时,攻击者可简单的通过发送短消息的方式,在终端中截获登录凭据,并得到账户的控制权。在中国的特定国情下,此类威胁实际上是持久性的攻击 —— 例如中国厂商 Adups 在为客户制作的固件中植入了可读取短消息等敏感信息的后门。
端到端加密
短消息作为明文传输的协议,其本身不提供端到端 (end to end) 的加密能力。作为敏感信息,从知乎的服务器发出凭据后,到到达用户端点时,有诸多的可被窃听点。除了上述的 SS7 attack 外,若知乎到短消息服务提供商的链路、短消息服务商到运营商的链路并未进行加密且对目标进行校验,则可以发生的是进行 wiretap 或进行 MITM attack.
评论
验证用户的身份永远是困难的事情。但知乎是一个带有 PII/SPII (个人标示信息/敏感个人标示信息) 信息的信息系统。作为此类系统,其登录认证系统进行主动降低安全性的行为,是令人难以理解的。
这可能意味着知乎的产品设计中,并未进行相应的安全复查 (security review) 便推入了生产环境。这也意味着,有很大的可能知乎团队中并没有真正的理解安全的人员。有理由推断,知乎也没有实现一些基本的安全保护措施,例如 encryption at rest, 数据存取控制及审计等。
作为一家中国的新型创业公司,知乎本应选择与无视安全的中国互联网公司不同,在产品设计以及实现中,将安全作为检查单中的第一条。但事实上,知乎的做法与其他的中国公司并不不同 —— 其对安全的态度为漠不关心。
Comments