摘要

  • 2026 年 10 月 2 日发布的 draft-skyfire-oauth-amr-values-02 提议用 sqa 表示安全问题答案,却在同一段定义中提醒:按照现行 NIST 指南,安全问题不是可接受的数字认证秘密。
  • 这不是需要掩盖的自相矛盾,而是一条重要边界:注册表负责命名现实中存在的方法,依赖方才负责决定它能否使用、在什么场景使用以及能否贡献认证保证等级。

基础设施最容易犯的一类错误,是把“系统能识别”读成“制度已认可”。这份草案恰好把两者摆在一起。sqa 让发行方可以准确报告一次认证中使用过安全问题答案;紧跟其后的警告则说明,准确报告一个弱方法,并不会把弱方法变强。

第 02 版还提议登记应用确认、行为信号、电子邮件、一次性代码、URL 交互、推送确认、面部活体检测和 passkey 等标识。它把此前容易被误解为预共享密钥的 psk 改成 passkey,删除拟新增的 call,转而修订现有 tel 的说明。这些动作是在维护词汇的清晰度,不是在给每种方法颁发安全证书。

现有架构本来就要求分层。OpenID Connect 用 amr 记录实际采用的方法,用 acr 表示认证上下文类别。RFC 8176 的示例甚至同时出现 pwd 和 kba,IANA 当前 AMR 注册表也仍保留 kba。这些记录证明方法可以被互操作地表达,却不能证明知识型认证适合今天的高风险操作。

NIST 的现行模型给出了更明确的政策判断:知识型认证问题不构成其指南下可接受的数字认证秘密;在创建密码时,也不得要求订户使用此类问题。于是,历史注册项与当前安全政策并不冲突——前者保留可识别的名称,后者决定组织是否可以信赖它。

草案中的 bg 也需要同样谨慎。它可涵盖静默网络号码认证、设备识别、地理位置等背景信号。NIST 认为地理位置之类的欺诈指标可用于风险判断,但不能改变认证保证等级,也不能代替认证因素。“观察到背景信号”不能被自动翻译成“完成了强认证”。

签名令牌也不会消除这个差距。JWT 的正确校验可以确认发行方、受众、完整性和时间条件;RFC 8725 仍要求接收方明确算法、发行方和受众政策。密码学能保护“发行方报告了某方法”这句话,却不能让被报告的方法自动变得可接受。

IANA 的职责更窄:通过专家评审分配稳定、无冲突的名称。截取资料时,第 02 版拟新增值尚未进入活动注册表,Datatracker 条目仍是没有 stream 和标准等级的个人草案。即使日后完成登记,登记解决的仍是名称和引用,不是部署许可。

运营者因此需要保留两份记录。第一份是互操作事实:哪个发行方、在哪个令牌和词汇版本下声明了哪个 AMR。第二份是本地决策收据:在该账户、动作、司法辖区和风险等级下,该方法是允许、限制、必须组合使用还是禁止;由哪个政策版本作出判断;是否存在例外和补救要求。

Lu Heng 的“最小初始规范”主张只标准化必要的公共符号,把未来决定留给本地。Running-Code Primacy 追问实际执行了什么,而不是界面出现了什么标签。Reality Layers 则防止注册项、发行方声明、保证类别、风险信号和授权结果被压成一个绿色状态。

sqa 的价值不是替安全问题翻案,而是让系统可以准确发现、限制、迁移和最终淘汰它。注册表应当有能力如实描述存在的东西;安全领导者仍必须决定什么东西可以算数。

来源