[OSPP 2025 - 8月月报] 跨平台 WebAuthn 密钥管理器

31 views
Skip to first unread message

inu Ebisu

unread,
Sep 1, 2025, 8:38:55 AMSep 1
to tuna-g...@googlegroups.com
大家好,在下犬戎。以下是我在 WebAuthn 项目中的8月工作月报。
项目基本信息
  • 项目名称:跨平台 WebAuthn 密钥管理器
  • 项目导师:党凡 i...@dang.fan
  • 项目要求:基于 nfcim/fido2 仓库,补充注册和验证流程的完整功能,并使用 Flutter 框架开发一个跨平台 WebAuthn 密钥管理器。
项目完成情况
以下是本月主要的成果。
fido2 Dart 库方面:
  • WebAuthn 服务端实现:
    • 从零构建了无状态的 Fido2Server 类,实现完整的注册和断言流程
    • 支持选项生成、clientData/authenticatorData 解析、rpIdHash/flags/signCount 检查和签名验证
    • 实现结构化的验证结果返回,提供清晰的错误信息和状态反馈
    • 编写了全面的测试用例,包括合成测试数据和 webauthn.io 实际样本
  • COSE 密码学扩展:
    • 新增 OKP/EC2 常量定义和 toCborMap 方法支持;
    • 实现 EdDSA (Ed25519) 和 ES256 签名验证器,包含严格的 DER 解析和 low-S 规范化;
    • 更新 asn1lib、crypto、pointycastle 等相关依赖包。
  • API 架构重构与代码质量提升:
    • 拆分公共 API:fido2_client.dart(CTAP 客户端)和 fido2_server.dart(服务端);
    • 迁移到了基于 json_serializable 的 toJson 和 mixin toString 实现;
    • 配置 GitHub workflow CI 进行 dart run build_runner build 检查。
跨平台 WebAuthn 密钥管理器方面:
  • 核心功能实现:
    • 实现了完整的 Credential Manager 页面,支持凭证的读取和管理
    • 添加了凭证删除功能,提升用户体验
    • 抽象了 AppLogger 日志系统,便于调试和问题排查
  • 架构设计改进:
    • 重构了 ClientPin 和 CredentialManagement 的关系结构
    • 优化了代码架构,将 main 拆分为 viewmodel、widget、page 等模块
后续计划
接下来最后一个月的主要任务:
  • fido2 库方面:完善错误处理机制,优化 API 文档,考虑向 cryptography 上游贡献代码;
  • 密钥管理器方面:完善用户界面设计,添加更多设备管理功能,进行全面的跨平台测试;
  • 项目收尾:编写完整的使用文档,准备项目演示和成果汇报。

犬戎
2025年9月1日

Reply all
Reply to author
Forward
0 new messages