Skip to content

Biometric gate(Touch ID)保护 Token 明文显示与高危操作 #19

@yangflow

Description

@yangflow

问题

一旦用户 Mac 被他人短暂接触(咖啡厅离座 / 家人误操作),当前可直接在 GUI 里查看所有 Keychain 中存的 provider Token 明文,或删除仓库镜像。这是凭据外泄与数据破坏的双重风险。

建议改动

  • 高危操作("显示 Token 明文"、"删除仓库含本地 bare clone"、"修改 target URL 为不同 host")触发前,用 LocalAuthentication 框架要求 Touch ID / Apple Watch 解锁 / 密码
  • 设置项:requireBiometricForSensitive: Bool(默认 ON,可关闭)
  • 失败或用户取消 → 操作中止,不降级

备选方案

  • 锁屏全局 app:打断日常使用,过度
  • 依赖 macOS 登录密码:系统锁屏时已有,但 app 内显示 token 时无二次门

作用域检查

  • 与 GitRelay 的单向镜像模型兼容
  • 不需要在 Keychain 以外存储凭证
  • 不引入新运行时依赖(LocalAuthentication 是系统框架)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions