Utah SB 73:为年龄验证核实位置以满足合规要求
犹他州的年龄验证法要求采取相称的技术措施,并留存已执行该措施的证明。以下介绍如何在年龄验证环节检测 VPN 和代理伪装,并保留可作为依据的记录。
犹他州的年龄验证规定(SB 73)要求运营方对放行不符合条件的用户通过年龄验证负责。大多数团队忽略的一点是:单纯的位置检测算不上站得住脚的措施,因为最容易读取的信号,往往也是最容易伪造的信号。
法律实际要求的是什么
抛开细节,剩下的其实是两项义务。第一,在授予访问权限之前,采取相称的技术手段核实用户身份。第二,要能够证明自己确实这样做了。一个只显示"已放行"、背后却没有任何依据的标记,无法通过第二项检验。
正是第二点让很多人栽跟头。即便你搭建了完美的验证环节,如果记录可以事后修改,或者根本不存在,审计时依然会不合格。
为什么单纯的地理位置检测过不了第一关
IP 地理位置检测 在国家层级上相当可靠,直到有人接入 VPN 为止。此时读取到的位置属于 VPN 服务器,而不是用户本人。改变表面上的 IP 位置正是 VPN 的核心用途,因此在不检测伪装行为的前提下信任地理位置检测,等于信任了最容易被伪造的信号。
检测某个连接是否在伪装其来源
真正站得住脚的措施
- 读取来源,然后使用 VPN 检测 和代理检测判断是否存在伪装。VPN、住宅代理、 数据中心 IP 段或 Tor 出口节点,都意味着这个位置不可信。
- 将判定结果映射为具体动作。 在像犹他州这样严格的监管体系下,年龄验证环节中检测到的伪装来源应当被拦截, 或升级为更强的验证手段,而不是直接放行。
- 封存结果。 将每次检测写入不可篡改的记录,以便日后证明你确实执行过检测,以及检测结果是什么。
为什么记录必须是防篡改的
一份可以被悄悄修改的审计日志,什么也证明不了。解决办法是哈希链:每条记录都保存上一条记录的哈希值,再加上本次 检测的数据。只要修改历史记录中的任意一行,之后的每个环节都会断裂,验证过程会立刻发现这一点。这正是"我们有 日志"和"我们能证明这份日志没有被动过"之间的区别。
这正是 Provenance 在一次服务端调用中完成的工作:它运行着与我们的 VPN 和代理检测相同的引擎, 按司法辖区应用相应策略,并将每个判定结果封存进一条哈希链式审计日志,可导出为已签名的证据。
一个实际可用的验证方案
| 来源 | 在犹他州政策下 | 记录 |
|---|---|---|
| 干净的住宅网络 | 放行 | 记录判定结果 |
| VPN / 代理 / Tor | 拦截或升级验证 | 记录原因 |
| 存疑 | 升级验证 | 记录以供复核 |
结论
Utah SB 73 并不能靠一次基于 IP 的国家猜测来满足。检测来源是否被伪装,依据判定结果采取行动,并保留一份任何 人都无法改写的记录。将这项技术控制与你的年龄验证服务商及法律顾问的建议结合起来,并随时准备好导出证据,以 应对日后有人询问你是如何进行检测的。