对gpg密码短语使用trezor
trezor-gpg的Python项目详细描述
#trezor作为gpg密码短语
安装方式: ` pip install trezor-gpg `
使用此功能,当gpg需要解锁一把钥匙时,trezor_gpg将弹出一个键盘来输入您的trezor密码。
您可以使用屏幕上的按钮或键盘网格输入您的PIN
` w e r u i o 7 8 9 s d f j k l 4 5 6 x c v m , . 1 2 3 `
按回车提交PIN,按转义取消,或按退格清除PIN。
#优点和缺点
- 这样可以防止密码短语键盘记录
- 默认情况下,它使用一个困难的密码短语
- 它减少了你需要记住的东西的数量(假设你已经记住了你的trezor pin)
如果将此用于常规加密:
- 它不会像直接使用trezor的解密/加密功能那样保护gpg机密免受内存窃听
如果您将此用于密码管理器,如pass或gopass:
- 如果有人在没有gpg的情况下实现直接trezor密码管理器,解密密钥将永远不会在您的计算机内存中,因此未使用的密码将更安全。
另外,请参阅下面讨论的当前限制
#安装
gpg2必须安装在您的路径上本指南假设您使用的是默认的GPG2代理,而不是Seahorse。
- 运行pip install trezor_gpg
- 通过运行哪个trezor\u gpg 查找它的安装位置
- 将此行添加到~/.gnupg/gpg agent.conf
- 运行echo RELOADAGENT | gpg connect agent或重新启动计算机
设置Trezor密码
- 运行trezor-gpg-a键
如果你的密钥有一个现有的非Trezor passphrase,你需要先用默认的PunEnter程序删除密码(在执行上面的步骤3之前)。
注意:响应旧密码短语提示需要trezor_gpg来标识某些提示消息-如果您有非英语语言的消息,则这可能不起作用。添加密码短语可能会要求您在Trezor上最多按4次确认
###删除Trezor密码短语
- 运行trezor-gpg-r键
注意:响应新的密码短语提示需要trezor_gpg来标识某些提示消息-如果您有非英语语言的消息,则这可能不起作用。
###禁用冗余GPG密码缓存 您可能还想禁用gpg密码缓存,因为trezor有自己的缓存周期。将此项添加到gpg agent.conf中,或者修改已经存在的值: ` max-cache-ttl 0 ` 然后通过上面的步骤4重新启动代理。
###配置
例如,通过重写/usr/lib/systemd/user/gpg agent.service在gpg代理程序守护程序上设置这些环境变量。
- pinentry_trezor_debug=1。将日志写入~/.cache/trezor gpg/log/debug.log
- PINENTRY_TREZOR_DONT_FLASH=1使用键盘时不显示按了哪个键盘按钮。
- pinentry_trezor_keyset=123456789。使用此字母网格输入键盘。
#当前限制
- 这不使用锁定内存,这意味着如果内存被调出,解密的密码短语可能会写入磁盘!
- 不支持tty条目,因为pythongetpass被硬编码为特定的tty
- 不支持混合密码短语-所有密码短语密钥必须具有Trezor密码短语或无
- 密码短语基于密钥指纹,因此不能更改
#工作原理
tRZORYGPGP作为一个注销程序——当GPG需要解锁现有的密钥或锁定一个新的密钥时,它运行