前言:
在这个数字安全日益严峻的时代,保护账户安全已成为每个人的必修课。今天,我们带来了一款革命性的安全工具——cotp。这不仅是一个简单的双因素认证器,更是一个全面保护你数字生活的盾牌。从极简的界面到强大的功能,cotp 以其无与伦比的安全性和易用性,成为你不可或缺的安全伙伴。
我相信安全至关重要,尤其是在这个数字世界中。我创建了 cotp,因为我需要一个极简主义的、安全的、桌面可访问的软件来管理我的双因素认证代码。
概览
界面
输入 i
获取一些指令。否则只需输入 cotp --help
。
首次运行时,系统会提示您输入密码以初始化数据库。
快速入门
# 显示交互式仪表板中的所有 OTP 代码
cotp # 使用箭头键选择任何代码,按回车键将其复制到剪贴板,即使在 SSH 远程 shell 中也是如此
# 从 BASE32 密钥添加新的 TOTP 代码
cotp add --label myaccount@gmail.com --issuer Google
# 添加一个具有自定义算法、数字和计数器的新的 HOTP 代码
cotp add --label example --type hotp --algorithm SHA256 --digits 8 --counter 10
# 编辑第四个 OTP 代码的数字
cotp edit --index 4 --digits 8
# 通过标准输入传递密码,以 JSON 格式列出所有代码
echo "mysecretpassword" | cotp --password-stdin list --json
# 提取第一个匹配的 "google" 发行者的 OTP 代码并将其复制到剪贴板
echo "mysecretpassword" | cotp extract --issuer google --copy-clipboard
# 导入加密的 Aegis 数据库备份
cotp import --path my_db.json --aegis-encrypted
# 导出 cotp 数据库
cotp export
兼容性
cotp 可以生成符合 rfc6238 和 rfc4226 规范的 TOTP 和 HOTP 代码。此外,还可以自定义设置,如 HMAC 算法 和 数字,以提供与其他双因素认证系统的兼容性。
最新版本还包括对 Steam、Yandex、MOTP 代码的支持。
加密
该程序仅依赖于一个加密的数据库文件,使用 XChaCha20Poly1305[1] 进行认证加密和 Argon2id[2] 进行密钥派生。
它还使用 AES-GCM[3] 从加密的 Aegis 备份中导入。
跨平台
cotp 应该可以轻松地在大多数使用的平台上编译,但它主要在 Linux 和 Windows 上进行了测试。
安装
Arch Linux 和基于 Arch 的发行版
Arch Linux 在 [extra] 仓库中有 官方包[4]:
pacman -S cotp
此外,如果您希望编译并运行 Git HEAD 版本而不是当前稳定版本,
可以使用 常用的说明[5]或您喜欢的 AUR 助手如 paru[6] (paru -S cotp-git
) 安装 AUR 包 cotp-git[7]。
NixOS
查看 官方包[8]。
其他 Linux 发行版和 *nix
在开始之前,请检查您是否具有使用 rust 编译器所需的构建依赖。
您需要安装 libxcb-devel 依赖项,这是 X11 中剪贴板复制所需的:
Debian 基础: sudo apt install libxcb1-dev libx11-dev libxcb-shape0-dev libxcb-xfixes0-dev libxkbcommon-dev
Fedora / RHEL 基础: sudo dnf install libX11-devel
Void Linux sudo xbps-install -S libxcb-devel
macOS
brew install cotp
Windows
支持使用 x86_64-pc-windows-gnu
和 x86_64-pc-windows-msvc
工具链进行构建。
如果您想使用 x86_64-pc-windows-msvc
,则需要安装Visual C++ 2019 Build Tools[9]
一旦您安装了 rust 工具链,只需运行 cargo install cotp
。
使用 crates.io 仓库
只需输入 cargo install cotp
并等待安装完成。
克隆 GitHub 仓库并手动安装
您可以使用以下命令构建 cotp:
git clone https://github.com/replydev/cotp.git
cargo install --path cotp/
从其他应用迁移
cotp 支持从各种应用迁移 TOTP 代码。 有些需要使用可以在下面的表中找到的简单 python 脚本进行转换。
应用 | 如何获取备份 | 是否需要转换 | cotp 参数 |
---|---|---|---|
andOTP[10] | 使用应用本身进行备份。 | 否 | --andotp |
Aegis[11] | 使用应用本身进行备份。 | 否 | --aegis |
Aegis[12] (加密) | 使用应用本身进行加密备份。 | 否 | --aegis-encrypted |
Authy[13] | 从手机中获取 /data/data/com.authy.authy/shared_prefs/com.authy.storage.tokens.authenticator.xml 。 | 是[14] | --authy |
Authy[15] (第二种方法) | 按照此指南操作:https://gist.github.com/gboudreau/94bb0c11a6209c82418d01a59d958c93。 | 否 | --authy-exported |
cotp[16] | 使用 cotp export 导出您的数据库。 | 否 | --cotp |
FreeOTP[17] | 从手机中获取 /data/data/org.fedorahosted.freeotp/shared_prefs/tokens.xml 。 | 是[18] | --freeotp |
FreeOTP+[19] | 使用应用本身进行备份。 | 否 | --freeotp-plus |
Google Authenticator[20] | 从手机中获取 /data/data/com.google.android.apps.authenticator2/databases/databases 。 | 是[21] | --google-authenticator |
Microsoft Authenticator[22] | 从手机中获取 /data/data/com.azure.authenticator/databases/PhoneFactor 。如果同一文件夹中存在 PhoneFactor-wal 、PhoneFactor-shm ,也请一并获取。 | 是[23] | --microsoft-authenticator |
OTP URI 列表[24] | 创建一个包含 items 属性的 JSON 文件。它将包含一个字符串数组,其中每个元素都是一个 OTP URI。 | 否 | --otp-uri |
如何转换
一旦你获得了正确的文件,运行位于源代码中 converters/ 文件夹的正确 python 脚本。
示例:python authy.py path/to/database.xml converted.json
它将转换数据库为 cotp 可读的 json 格式。
要终止导入:cotp import --authy --path path/to/converted_database.json
配置
默认情况下,数据库位于 $HOME/.cotp/db.cotp
。如果您想使用不同的路径,可以使用 COTP_DB_PATH
环境变量。
以下是如何在 bash 中执行此操作的示例
:
$ COTP_DB_PATH=/home/user/.local/custom-folder/db.cotp /usr/bin/cotp
结语:
随着网络安全威胁的不断升级,cotp 以其先进的技术和用户友好的设计,成为保护你数字资产的不二选择。无论是个人用户还是企业,cotp 都能提供最可靠的安全保障。立即体验 cotp,让安全不再是负担,而是你数字生活的坚实后盾。
XChaCha20Poly1305: https://docs.rs/chacha20poly1305/latest/chacha20poly1305/
[2]Argon2id: https://en.wikipedia.org/wiki/Argon2
[3]AES-GCM: https://docs.rs/aes-gcm/latest/aes_gcm/
[4]extra] 仓库中有 [官方包: https://archlinux.org/packages/extra/x86_64/cotp
[5]常用的说明: https://wiki.archlinux.org/title/Arch_User_Repository#Installing_and_upgrading_packages
[6]paru: https://github.com/morganamilo/paru
[7]cotp-git: https://aur.archlinux.org/packages/cotp-git
[8]官方包: https://search.nixos.org/packages?channel=23.11&from=0&size=50&sort=relevance&type=packages&query=cotp
[9]Visual C++ 2019 Build Tools: https://visualstudio.microsoft.com/it/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16
[10]andOTP: https://github.com/andOTP/andOTP
[11]Aegis: https://github.com/beemdevelopment/Aegis
[12]Aegis: https://github.com/beemdevelopment/Aegis
[13]Authy: https://authy.com/
[14]是: https://github.com/replydev/cotp/blob/master/converters/authy.py
[15]Authy: https://authy.com/
[16]cotp: https://github.com/replydev/cotp
[17]FreeOTP: https://freeotp.github.io/
[18]是: https://github.com/replydev/cotp/blob/master/converters/freeotp.py
[19]FreeOTP+: https://github.com/helloworld1/FreeOTPPlus
[20]Google Authenticator: https://play.google.com/store/apps/details?id=com.google.android.apps.authenticator2
[21]是: https://github.com/replydev/cotp/blob/master/converters/gauth.py
[22]Microsoft Authenticator: https://play.google.com/store/apps/details?id=com.azure.authenticator
[23]是: https://github.com/replydev/cotp/blob/master/converters/mauth.py
[24]OTP URI 列表: https://docs.yubico.com/yesdk/users-manual/application-oath/uri-string-format.html