别人能多快猜出你的 VPN 密码?
一次往返测量的是连通性,而不是密码能被测试得多快。要问清楚:是哪一方在验证猜测,它周围又有哪些管控。
延迟回答了一个没人提出的问题。三个条件决定了一次猜测估算的实际含义:猜测是由在线服务校验,还是对照截获的材料校验;是哪一种认证方式产生了那份材料;以及服务强制实施哪些管控。一次 ping 只测量一条路径上的一个往返,对上述问题一个也答不上来。用一秒除以这个数值,得到的数字精确、毫不相干,还常被当成安全属性反复引用。
延迟属于连通性工作。认证强度是验证方与协议的属性。
一次往返不是速率限制
往返时间描述的是某条路径上一次请求及其响应要花多久。即便是在线尝试,吞吐量也取决于客户端同时挂起多少请求、服务器每次尝试花多久,以及强制执行了哪些速率限制。这些都与 ping 无关。以太网链路并不会规定每个往返只能存在一次尝试,快速 ping 也证明不了验证方会以那种速率接受猜测。
如果服务在五次失败后锁定账户,那么无论网络如何,实际速率都是每个锁定窗口五次尝试。那才是一项管控,也才是值得引用的数字。
猜测实际上在哪里被校验
在线时,声称方把每个候选提交给真实服务,服务可以观察、延迟、锁定并告警。离线时,持有合适验证材料的攻击者在本地校验候选,完全不涉及服务。这一区别决定了算术中的几乎一切。NIST 的密码指南把这些威胁分开处理,要求对失败的在线尝试限制速率,并要求通过加盐哈希与成本因子来抵御离线攻击的存储方式。两者都是验证方与存储层的属性,与用户链路响应多快毫无关系。
数据包捕获能否产生有用的材料,取决于协议与认证方式。拥有一份捕获、一张证书或一条加密隧道本身什么也回答不了,客户端构建的新旧同样回答不了。
为什么破解时间算术会误导人
可能字符串的数量,只取决于其假设有多可靠。人选的密码并不均匀分布在公式所描述的空间上,而被重复使用的凭据可能早已在某个列表里。校验成本同样重要:带强制管控的在线服务,与在本地测试的被窃验证方完全不同。一个在这些情形之间悄悄挪动的计算,支撑不了“多少年才能破解”的说法。
也请把协议缺陷放在它们自己的那一列。更长的密码并不能修复薄弱的认证构造,一种过时的方法也证明不了所有基于密码的设计都共有它的弱点。那些是各自独立的发现,各有各的修法。
要验证方的证据,不要延迟
评估网关时,要确认认证方式、谁持有验证方、存在哪些尝试管控,以及第二因素是否真正独立。有两个密码框的对话框并不等于两个因素。对于已存储的凭据,要确认存在什么材料、谁能读取它,以及实现实际施加了什么保护。假设的哈希速率对身份不明的存储系统来说并不是证据。
也要考虑猜测之外的暴露面。被盗的配置文件、被入侵的端点或一条钓鱼流程所呈现的问题,与逐个枚举密码的攻击者不同;而密码长度对已经授予活动会话的权限毫无作用。
记录下方式、管控与存储保护。这三者才回答了 ping 从未测量过的那个问题。