AuthenticatorPro项目备份文件格式详解与技术解析

AuthenticatorPro项目备份文件格式详解与技术解析

AuthenticatorPro 📱 Two-Factor Authentication (2FA) client for Android + Wear OS AuthenticatorPro 项目地址: https://gitcode.com/gh_mirrors/au/AuthenticatorPro

一、备份文件概述

AuthenticatorPro是一款专业的双因素认证(2FA)管理工具,它采用标准化的备份文件格式来确保用户信息的完整性和可移植性。备份文件采用JSON结构设计,既便于人类阅读,也方便程序解析处理。

二、JSON备份文件结构解析

备份文件主要包含四个核心部分:

1. 认证器(Authenticators)部分

这是备份文件的核心内容,存储所有双因素认证账号信息。每个认证器对象包含以下关键字段:

{
    "Type": 2,
    "Icon": "google",
    "Issuer": "Google",
    "Username": "google@gmail.com",
    "Secret": "SECRETKEY123ABCD",
    "Pin": null,
    "Algorithm": 0,
    "Digits": 6,
    "Period": 30,
    "Counter": 0,
    "Ranking": 0,
    "CopyCount": 10
}

关键参数说明:

  • Type:认证器类型编码

    • 1 = HOTP (基于计数器的OTP)
    • 2 = TOTP (基于时间的OTP,最常见)
    • 3 = Mobile-OTP
    • 4 = Steam专用
    • 5 = Yandex专用
  • Algorithm:哈希算法类型

    • 0 = SHA-1 (最常用)
    • 1 = SHA-256
    • 2 = SHA-512
  • Secret:必须为大写的Base32字符串,可包含'='填充字符,不能有空格

注意事项:

  • 对于Mobile-OTP和Yandex认证器,必须设置Pin字段
  • 发行商(Issuer)不能为空,而用户名(Username)可以为空
  • 位数(Digits)限制:HOTP为6-8位,TOTP为6-10位
  • 时间周期(Period)必须大于0

2. 分类(Categories)部分

用于组织管理认证器,采用以下结构:

{
    "Id": "a8323a2a",
    "Name": "Web",
    "Ranking": 0
}

技术细节:

  • ID是通过对分类名称进行SHA-1哈希运算后取前8个字符生成的
  • 分类名称必须唯一
  • Ranking字段决定分类的显示顺序

3. 认证器分类关系(AuthenticatorCategories)部分

建立认证器与分类之间的关联关系:

{
    "CategoryId": "a8323a2a",
    "AuthenticatorSecret": "SECRETKEY123ABCD",
    "Ranking": 0
}

4. 自定义图标(CustomIcons)部分

支持用户自定义图标:

{
    "Id": ".....",
    "Data": "....."
}

实现原理:

  • 当认证器的Icon字段以'@'开头时,表示使用自定义图标
  • 图标数据采用Base64编码的位图格式
  • 图标ID同样采用SHA-1哈希前8个字符的方式生成

三、加密备份技术解析

AuthenticatorPro提供两种加密备份方案,确保用户信息安全。

1. 强加密方案(推荐)

加密技术栈:

  • 加密算法:AES_GCM (无填充)
  • 密钥派生:Argon2id算法

Argon2id参数配置: | 参数 | 值 | |------------|---------| | 并行度 | 4 | | 内存大小 | 64 MiB | | 迭代次数 | 3 |

文件结构: | 部分 | 大小 | 说明 | |----------|-------|-------------------| | Header | 16 | 固定标识"AUTHENTICATORPRO" | | Salt | 16 | 随机盐值 | | IV | 12 | 初始化向量 | | Payload | 可变 | 加密后的实际数据 | | Tag | 16 | GCM认证标签 |

2. 传统加密方案

加密技术栈:

  • 加密算法:AES_CBC_PKCS7
  • 密钥派生:PBKDF2-SHA1 (64000次迭代)

文件结构: | 部分 | 大小 | 说明 | |----------|-------|-------------------| | Header | 16 | 固定标识"AuthenticatorPro" | | Salt | 20 | 随机盐值 | | IV | 16 | 初始化向量 | | Payload | 可变 | 加密后的实际数据 |

四、备份文件使用建议

  1. 定期备份:建议每月至少备份一次,特别是在添加重要账号后
  2. 安全存储:加密备份应存储在安全位置,建议使用密码管理器保管密码
  3. 格式验证:手动创建备份文件时,建议使用JSON验证工具检查格式
  4. 兼容性:不同版本间的备份文件可能存在差异,建议使用最新版本

五、技术实现要点

  1. Base32编码:认证器密钥采用RFC4648标准的Base32编码,确保兼容性
  2. 哈希算法选择:SHA-1虽然安全性有所降低,但仍然是大多数2FA服务的标准
  3. 密钥派生:Argon2id算法能有效增强安全防护
  4. 加密模式:GCM模式同时提供机密性和完整性保护

通过这种精心设计的备份格式,AuthenticatorPro既保证了用户信息的完整性,又提供了良好的可移植性和兼容性,是管理双因素认证令牌的理想选择。

AuthenticatorPro 📱 Two-Factor Authentication (2FA) client for Android + Wear OS AuthenticatorPro 项目地址: https://gitcode.com/gh_mirrors/au/AuthenticatorPro

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

成婕秀Timothy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值