WPA Personal凭证:口令、原始PSK与关联前校验

校验的是凭证表示,不是泛称的密码

WPA Personal配网界面必须知道目标认证方式,以及底层接口要求的凭证表示,否则一个看似长度正确的字符串可能被解释成另一种含义。本文聚焦WPA-PSK口令与原始预共享密钥,以AOSP android16-release的supplicant配置解析规则为参考,不把相同限制套用于所有WPA3-SAE密码、企业账号或证书。TI配网说明把个人网络配网描述为收集网络名和凭证;这里进一步解决凭证类型如何从界面一直保留到关联配置的问题。

带明确类型的WPA Personal凭证适配
先确定认证方式,再跨接口保留凭证含义

将口令与原始密钥定义为不同类型

已核实的AOSP配置文档接受两种WPA-PSK表示:64个十六进制数字代表32字节密钥,或8至63个ASCII字符构成的口令。后者需结合SSID派生实际密钥。原始PSK已经是密钥材料,不能再当作更长口令进行一次派生。配网消息和内部结构应使用不同的类型标签。普通消费者界面可以只提供口令入口,把原始密钥留给明确的高级操作;这比等字符串经过多个接口转换后,再凭外观猜测用户意图更可靠。

先选择认证方式,再运行相应校验

应根据可信扫描记录或用户明确的手动网络选择,确定认证方式,然后选择该类型的校验器。同一份AOSP参考另有sae_password字段,并指出SAE本身不继承psk字段的8至63字符限制。本文不规定通用SAE字符策略,实际范围需核对SDK与AP配置。企业认证也必须另有输入契约。混合模式产品要明确保存允许的认证路径与字段含义,不应笼统提示“所有Wi-Fi密码至少八位”。错误信息应指出当前输入类型,使用户能修正格式,而不是不断更改适用于另一模式的有效凭证。

对歧义明确拒绝,不要悄悄改写秘密

凭证不能自动去空格、改大小写、替换标点或进行Unicode规范化。若已声明WPA-PSK只接受ASCII,应对不支持字符明确报错,而不是音译或替换。原始PSK入口要求恰好64个十六进制字符,并按两字符一组解码为32字节;除非专门设计了无歧义显示格式,否则不要接受分隔符。含一个非十六进制符号的64字符值不符合该原始密钥契约。用户选择口令类型时,63个全十六进制字符仍可能是口令。提交前确认类型即可,不要把值回显到日志、分析事件或工单。

为每种真实接口编写类型适配层

每个后端应有小型适配器,测试解析后的类型和值,而不只检查生成文本。参考supplicant配置中,带引号文本与不带引号的十六进制值含义不同;其他SDK可能采用字节缓冲、枚举、长度字段或有文档说明的自动识别。必须在固定SDK版本上核实,不能把supplicant引号规则移植进无关接口。生成配置文本时应使用目标解析器的转义规则,而不是JSON或Shell规则。避免通过命令行参数传递真实凭证,也不要在派生密钥旁留下带明文的注释。调试与单元测试只用专门构造的凭证。

派生与持久化必须绑定准确网络

从口令派生WPA-PSK时,SSID和口令共同影响结果。若缓存仅按显示名称索引,网络字节身份变化后就可能复用错误结果。应同时保存凭证类型与准确SSID关联,并在任一输入变化时使派生缓存失效。新候选达到产品成功状态之前,保留上一份可用配置。保存中途断电不能让原始密钥被标成口令,也不能让新类型标签对应旧字节。这是应用持久化要求,不代表认证已经成功;格式正确的凭证仍可能因内容错误、AP拒绝认证模式或其他关联条件而失败。

边界验证不需要真实用户秘密

在口令模式分别构造7、8、63、64个ASCII字符;在原始密钥模式分别构造63、64、65个十六进制字符。再加入一个非法字符、首尾空格、引号、反斜杠及非ASCII符号。断言每种情况是否在网络活动前被接受或拒绝,并检查接受后的准确类型和字节。覆盖保存重载及中断更新,再在获授权实验AP上用合成凭证验证实际关联。解析通过与认证成功必须分开记录,本文没有声称已执行设备实测,也不把公开样本秘密推荐为真实部署密码。

让错误提示对应真正的修复动作

验收应区分不支持认证方式、表示类型错误、长度或字符错误、解析失败和认证被拒。格式问题返回对应输入项,不能破坏最后可用配置。网络失败时保留非秘密上下文,例如安全模式、凭证类别、隐私策略允许的长度、固件版本和失败阶段。不要记录凭证哈希,低熵口令仍可被猜测。最终门槛是界面、传输、存储和后端对类型达成一致,边界错误可在本地发现,日志没有秘密。本指南交付的是可审查的契约和验证方案,不是对未指定无线SDK的互通承诺。

类似文章