标签: openpgp

为什么 gpg --list-keys 有时打印子键,有时不打印?

这个问题出现在“如何以不那么黑客的方式显示我的加密密钥的使用标志? ”的评论中,似乎值得以问答形式回答,因为答案实际上并不明显。

要查看 Torvald 的 OpenPGP 密钥 449FA3AB,我使用gpg2 --list-keys 449FA3AB,它输出

$ gpg2 --list-keys 449FA3AB
pub   1024D/449FA3AB 1999-10-05 [expired: 2001-10-04]
uid       [ expired] Linus Torvalds <torvalds@transmeta.com>
Run Code Online (Sandbox Code Playgroud)

通常,此命令还会列出子键,但不会为 Torvald 的键打印子键。然而,当请求批量输出时,包含一个。

$ gpg2 --with-colons --list-keys 449FA3AB
tru::1:1414619239:1414879758:3:1:5
pub:e:1024:17:956EB7BF449FA3AB:939086351:1002158351::-:::sca:
uid:e::::939086351::81A3799583B9B1B391E4C428112F302FF2ADF462::Linus Torvalds <torvalds@transmeta.com>:
sub:e:2048:16:71CE8207BFF491C5:939086545:1002158545:::::e:
Run Code Online (Sandbox Code Playgroud)

似乎这个 Torvalds-key 有一些隐藏子键的特殊功能。这里发生了什么?

gnupg openpgp

18
推荐指数
1
解决办法
1万
查看次数

gpg2 在导入密钥时要求输入密码

我正在尝试使用

gpg2 --import ~/.gnupg/secring.gpg
Run Code Online (Sandbox Code Playgroud)

gpg2 要求提供密钥环中所有密钥的密码。

为什么在这个阶段需要密码(我应该只在使用密钥时提供它们)以及如何防止这种情况,即在不提供密码的情况下导入密钥环?

系统为 Arch Linux,内核 4.7.6。谢谢。

linux import pgp gnupg openpgp

16
推荐指数
1
解决办法
7744
查看次数

如何在脚本中使用 gpg --gen-key?

GnuPG 是这些令人讨厌的工具之一,它具有不可编写脚本的命令行。

我想gpg --gen-key在脚本中运行,其余的过程是简单的命令。有没有人有这方面的运气?似乎支持输入密码,但不支持它询问的其他问题,密钥类型、密钥大小、到期时间、名称。

如果您使用该--yes选项,它仍会显示确认对话框。

有什么办法openssl可以使用一些更友好的工具来生成密钥吗?

linux script pgp gnupg openpgp

15
推荐指数
1
解决办法
9199
查看次数

破解 1024 位 OpenPGP 加密电子邮件需要多长时间?

对于 WPA,有计算器可以确定破解密码所需的时间,但我没有发现 OpenPGP 的任何内容。

破解 1024 位 OpenPGP 加密电子邮件需要多长时间(取决于 CPU 能力)?

我也对 2048 和 4096 等其他键大小感兴趣。

security pgp gnupg openpgp

9
推荐指数
2
解决办法
2万
查看次数

如何在 GnuPG 中列出 OpenPGP 公钥的信任级别?

虽然我可以使用该--edit-key命令确定我对单个 OpenPGP 公钥设置的信任级别,但是否有一种简单的方法可以从命令行列出所有公钥及其信任级别?

trust public-key gnupg openpgp

9
推荐指数
1
解决办法
5644
查看次数

如何使用 GnuPG 获得尽可能小的输出(对称加密)?

我正在尝试生成可以嵌入二维码的非常小的 OpenPGP 加密文件。

然而,与例如 OpenSSL 相比,GnuPG 似乎为简单的 'a' 输入产生了非常大的结果:

$ echo -n a|openssl enc -aes-256-ctr|wc -c 
17
$ echo -n a|gpg --symmetric -o-|wc -c
71
Run Code Online (Sandbox Code Playgroud)

通过阅读手册,其中一个区别是 OpenSSL 默认只包含一个 8 字节的标头和一个 8 字节的盐,而 GnuPG 还包含一个盐、校验和和压缩。关闭这些后,文件大小变小但仍然很高:

$ echo -n a|gpg --symmetric --compress-algo none --disable-mdc --s2k-mode 0 -o-|wc -c
35
Run Code Online (Sandbox Code Playgroud)

有什么方法可以进一步优化 OpenPGP 加密的消息(同时保持 AES 启用)?

encryption pgp gnupg openpgp

7
推荐指数
1
解决办法
1322
查看次数

Mac 上的 gpg2:如何在终端上输入密码而不是获得 GUI 提示?

我正在使用 Mountain Lion,当我使用 gpg 加密文件时,一个烦人的 GUI 提示我输入密码。我想在终端中提示输入密码,而不是在外部 GUI 中。例如,我可能正在远程执行此操作。

有没有办法让 gpg for mac 在终端中询问密码而在 GUI 提示中没有?


更新:这对于 gpg2 来说似乎很难,所以我已经降级为 gpg1。用 gpg2 (MacGPG2) 尝试了一切,但没有任何效果。糟透了!使用 gpg1 工作正常!

mac security gnupg osx-mountain-lion openpgp

6
推荐指数
1
解决办法
5724
查看次数

GPG 如何在给定公钥的情况下生成 MD5 指纹?

我将以下 GPG 公钥存储在名为publickey.pubASCII Armor (Radix-64) 并以 ASCII Armor (Radix-64) 编码的文件中:

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: 2.6.3ia

mQCNAzNko/QAAAEEANZ2kpN/oMkz4tqzxvKPZws/XwsD0Y+E5/y7P2DIw4uHS/4N
syQbgkdrZhPBlXDv68DQioHXWsb904qyr7iZB1LC5ItK9MgqlK+Z2mvPqsGbHM8J
+oYib8kf2zJ6HvrYrP7NYB0tN9YYum2ICtx+hIi6aKGXdB1ATA5erwYmu0N9AAUR
tClSYWxmIFMuIEVuZ2Vsc2NoYWxsIDxyc2VAZW5nZWxzY2hhbGwuY29tPokAlQMF
EDNko/QOXq8GJrtDfQEBKVoD/2K/+4pcwhxok+FkuLwC5Pnuh/1oeOYHiKYwx0Z3
p09RLvDtNldr6VD+aL9JltxdPTARzZ8M50UqoF9jMr25GifheFYhilww41OVZA3e
cLXlLgda1+t0vWs3Eg/i2b0arQQDaIq7PeRdjdEDgwnG4xBaqaAqfgxwOXJ+LPWF
hiXZ
=K7lL
-----END PGP PUBLIC KEY BLOCK-----
Run Code Online (Sandbox Code Playgroud)

如果我输入:

$ gpg --with-fingerprint publickey.pub
Run Code Online (Sandbox Code Playgroud)

我得到了钥匙的指纹:

密钥指纹 = 00 C9 21 8E D1 AB 70 37 DD 67 A2 3A 0A 6F 8D A5

那么,GPG 是如何做到的呢?我的意思是,是否有一个命令我可以在不使用的情况下运行gpg并且仍然获得相同的指纹?例如,使用 SSH,给定公钥,我可以执行以下操作:

$ cat ~/.ssh/id_rsa.pub | awk '{print $2}' | base64 -D | md5
Run Code Online (Sandbox Code Playgroud)

这将返回与以下内容相同的哈希值:

$ ssh-keygen -l -f ~/.ssh/id_rsa.pub …
Run Code Online (Sandbox Code Playgroud)

public-key gnupg openpgp

6
推荐指数
1
解决办法
4755
查看次数

OpenPGP 密钥与其子密钥之间的关系是什么?

我来自使用带有 OpenSSL 的普通旧 RSA 来满足我所有的非对称加密需求,我学到了相当多的知识,但是我很难围绕 OpenPGP 协议进行思考。因此,这将是几个问题。

在我的 Debian 盒子中,使用 GnuPG,在当前钥匙串中创建主密钥时,我注意到子密钥的默认创建。在阅读了一些之后,我了解到 GnuPG 以这种方式自动管理密钥;严格用于签名的主密钥和严格用于加密的子密钥。这让我相信他们只是为私钥和公钥使用了不同的名称:主密钥(如私钥)用于签署只有子密钥(公钥)可以解密的数据,但子密钥(公钥)只能加密数据,然后只能通过主密钥(私钥)解密。我在这个假设中是否正确,还是它们完全是 2 个单独的密钥对?

如果它们是两个单独的密钥对,那么什么在数学上将子密钥绑定到主密钥?

是否只是 GnuPG 使用这种方法,其中会自动创建子密钥以进行加密,还是 OpenPGP 协议强制要求这样做?

当我将密钥上传到密钥服务器时,上传的是哪个密钥,我的主密钥还是子密钥?或两者?

当我使用该--export功能时,当我指定我的 UID 时会导出哪个 OpenPGP 密钥?

pgp rsa gnupg openpgp

6
推荐指数
1
解决办法
2503
查看次数

是否可以使用 macOS“钥匙串”+“TouchID”来执行 pinentry 程序?

是否有某种配置方法pinentry-mac,我目前使用它来输入 OpenPGP 卡(Yubikey)的密码,或者使用其他程序将密码存储在 macOS“钥匙串”中,以便我只需使用“TouchID” '而不是输入它?

pgp gnupg openpgp macos yubikey

6
推荐指数
1
解决办法
2125
查看次数

标签 统计

gnupg ×10

openpgp ×10

pgp ×6

linux ×2

public-key ×2

security ×2

encryption ×1

import ×1

mac ×1

macos ×1

osx-mountain-lion ×1

rsa ×1

script ×1

trust ×1

yubikey ×1