Toqen.app Mobile 现已开源

发布: (2026年4月22日 GMT+8 11:29)
5 分钟阅读
原文: Dev.to

Source: Dev.to

什么是 Toqen

Toqen 是一种以访问为先的认证基础设施,旨在实现安全、实时的授权。每一次访问请求都:

  • 实时创建
  • 由用户明确批准
  • 由设备进行加密签名
  • 由后端进行验证

移动应用充当这些决策的安全执行层。

开源移动应用实际做了什么

移动客户端的职责非常狭窄且明确:

  1. 扫描或接收访问请求
  2. 从后端获取请求上下文
  3. 向用户展示请求内容
  4. 收集明确的批准或拒绝
  5. 使用设备密钥对短期挑战进行签名
  6. 将签名结果发送回后端进行验证

该应用自行授予访问权限;所有最终决策均由服务器验证。

应用收集了哪些数据

这是关键点——你可以直接在代码中验证。移动应用仅存储执行加密授权所必需的数据:

  • device_private_key(在设备上生成,永不离开设备)
  • device_id
  • app_instance_id

这就是全部敏感数据的存储项。会存储以下内容:

  • 密码
  • 会话令牌
  • 刷新令牌
  • 可重复使用的凭证
  • 后端密钥

敏感数据使用操作系统级别的安全存储(Keychain / Keystore)进行保存。

系统中不包含的内容

Toqen 以严格的数据最小化为核心:

  • QR 码不包含密钥
  • 授权请求是短期且一次性使用的
  • 流程中不存在可重复使用的令牌

即使 QR 码被拦截,也无法用于获取访问权限。授权始终需要:

  • 用户确认
  • 设备签名
  • 后端验证

授权实际是如何工作的

所有流程遵循相同的模式:

request → context → user decision → signature → verification → result

这确保了:

  • 没有静默批准
  • 没有隐式信任
  • 没有后台授权

每一次访问都是有意且可验证的。

安全模型(简要版)

系统假设处于敌对环境:

  • 网络不可信
  • QR 码可能被拦截
  • 请求可能被重放

安全性通过以下方式实现:

  • 与设备绑定的加密密钥
  • 挑战‑响应授权
  • 短期请求
  • 服务器端验证

私钥永不离开设备,后端也永远无法获取私钥。

为什么仅开源移动应用

移动客户端是从信任角度最关键的部分。通过开源它,我可以:

  • 进行独立的安全审查
  • 验证数据处理方式
  • 检查加密流程
  • 确认收集了哪些数据、未收集哪些数据

后端保持闭源,但其行为通过以下方式完全定义:

  • API 合约
  • 文档化的流程
  • 安全模型
  • 威胁模型

这样既保证系统可验证,又不暴露运营基础设施。

构建透明度

构建和发布过程也有文档记录。每次构建都会包含:

  • 版本号
  • 提交哈希
  • 标签
  • CI 引用

这使任何人都能追踪分发的应用是如何生成的。

这意味着什么

你不再只能依赖声明。你可以:

  • 检查代码
  • 验证存储行为
  • 审阅加密操作
  • 确认数据处理方式

移动应用本身就是设计为完全透明的。

仓库

https://github.com/toqenapp/mobile-react-native

0 浏览
Back to Blog

相关文章

阅读更多 »

mdka v2 发布

发布 我们已经发布了 mdka 的 v2 版本(https://github.com/nabbisen/mdka-rs),这是一款基于 Rust 的 HTML 转 Markdown 转换器。最初它是作为 o… 的核心组件开发的。