C6.29.4No cloud IME on password fields设计研究

密码输入不应使用第三方输入法的云端候选服务,以免明文外泄

别名: 密码禁用云输入法 · 口令上传 · 第三方 IME

概念解释

第三方输入法为了排序和纠错,常把按键序列送到云端。密码框若仍走这套服务,口令或 PIN 会以明文或可还原的击键流离开设备。系统可以在安全文本字段强制切到本地、无学习的键盘;应用若放任用户当前的云输入法,等于把口令交给输入法厂商。这条管的是数据出不出设备,不是屏幕上画不画候选条——候选关掉了,击键仍可能在上传。

机制

输入法进程能看到字段里的按键,早于应用把字符画成圆点。云端 API 把上下文和当前串发出去换候选。安全字段的系统策略是:忽略用户选定的第三方 IME,或把该 IME 置于沙箱并禁止网络。Web 上 type=password 在移动浏览器里通常会触发这一策略;自绘 Web 组件若不是 password,策略不生效。企业键盘、家长控制键盘同样可能有网络通道。上传日志一旦被入侵或被用于训练,口令就进入了训练语料。

怎么研究

在安全字段与普通字段上分别安装带网络日志的输入法,看密码框聚焦时是否还有到输入法服务器的请求、请求体是否含击键。比较系统强制本地键盘与应用未声明安全语义。证书钉扎或代理可以抓明文。不要在真实口令上做,用一次性假口令。法律与商店政策禁止的输入法行为,仍应在测试设备上验证实际是否遵守。

边界

完全离线的第三方输入法没有云通道,风险退化为设备本地日志。系统自带输入法也可能有云开关,用户关掉云后与第三方离线等价。密码管理器填充不经过 IME 击键流,走的是另一条注入,仍需源隔离。语音输入密码会把声波送去识别,是另一条云通道,同样应禁止或改为本地识别。

怎么落地

  • 密码、PIN、解锁字段使用平台安全文本类型,迫使系统替换掉云 IME。
  • 自绘输入不要用普通文本 + 圆点,那会留下当前输入法。
  • 应用内若必须用 WebView,确保 password input 未被改写成 text。
  • 验证:在测试机安装会打日志的输入法,聚焦密码框时网络日志应为空(或只有与输入法无关的请求);普通聊天框则应能看到对比流量。

延伸

  • 同组C6.29.1 部分系统在密码框弹出随机排布数字键盘,防止基于按键位置窥屏 · C6.29.2 密码专用键盘通常关闭自动纠错与候选提示,避免泄露输入内容 · C6.29.3 随机排布键盘牺牲了盲打速度,是安全与效率的权衡
  • 相邻C6.25 输入法状态与切换 · C6.12 输入法候选
  • 站内检索cloud IME · password field · keystroke upload

同组卡片

快捷操作

分享

分享当前页面

ios_share

https://hci.top/zh/handbook/C6.29.4