终极安全守护:cotp 双因素认证神器

文摘   2024-07-28 11:51   美国  

前言:

在这个数字安全日益严峻的时代,保护账户安全已成为每个人的必修课。今天,我们带来了一款革命性的安全工具——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 可以生成符合 rfc6238rfc4226 规范的 TOTPHOTP 代码。此外,还可以自定义设置,如 HMAC 算法数字,以提供与其他双因素认证系统的兼容性。

最新版本还包括对 SteamYandexMOTP 代码的支持。

加密

该程序仅依赖于一个加密的数据库文件,使用 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-gnux86_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-walPhoneFactor-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,让安全不再是负担,而是你数字生活的坚实后盾。

参考资料
[1]

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


编程悟道
自制软件研发、软件商店,全栈,ARTS 、架构,模型,原生系统,后端(Node、React)以及跨平台技术(Flutter、RN).vue.js react.js next.js express koa hapi uniapp Astro
 最新文章