我有一条 PGP 消息(“-----BEGIN PGP MESSAGE----- ...”)我如何获取会话密钥?

问题描述 投票:0回答:2
当您收到使用您的密钥加密的 PGP 消息时,您的 PGP 软件可以解密它,因为该消息本身是使用一次性随机密钥加密的,并且该随机密钥是使用您自己的密钥加密的。 因此,如果您可以获得随机密钥(“会话密钥”或“秘密密钥”),那么您可以共享它(以及原始消息)以向其他人证明原始消息所说的内容。 这就是我需要做的。 我一直无法找到可在 Windows 或 Linux 中使用的命令来恢复此随机密钥。 有谁知道如何从PGP消息中获取它吗?

我还想学习如何改进我的搜索策略,因为我相信答案已经在互联网上,只是我没有搜索正确的关键字来找到它。

public-key-encryption pgp secret-key openpgp
2个回答
1
投票

echo '-----BEGIN PGP MESSAGE [...]' | gpg --show-session-key


如果您的 PGP 消息跨越多行也没关系。 您可以将其粘贴进去,并且第一个单引号的存在会导致 CLI 在换行符处继续您的输入。

在 Linux 的 Windows 子系统(又名 WSL)中,您可以使用 gpg 来执行此操作。 gpg 的一个常见问题是它假设它有一个终端连接(这可能是正确的),并且 GPG_TTY 是一个指向该连接的环境变量(这可能是错误的)。 在这种情况下尝试某些操作的结果将产生

Inappropriate ioctl for device

,您可以使用以下命令修复该问题:
export GPG_TTY=$(tty)

您必须确保用于解密消息的密钥位于您正在使用的系统的密钥环中。 我一直在 Windows 中使用 Kleopatra,但忘记了它使用的密钥环未与 WSL 共享,因此我必须

gpg --import [filename of my key]

 并输入我的密码。

一旦一切正常,您将获得包含以下内容的输出:

gpg: session key: '3:541FE563...

您可以按照
https://security.stackexchange.com/questions/115231/how-to-decrypt-a-message-using-only-session-key中的描述使用它来共享加密消息的内容而不泄露你自己的私钥。 感谢 Localmonero.com(又名 Agoradesk.com)的 Alex 帮助我解决了这个问题。


0
投票
-----开始 PGP 消息----- eyJ1c2VybmFtZSI6Ikxvb2tpbmdmb3JLECIsImxpc3RpbmduYW1lIjoiNmM4ZDc2ZDgxNzBmM2ZmNTBjYWNmZDdiOTVkZjg0NDgiLCJpdGVtbmFtZSI6IkZyZXNoIFBheVBhbCBBY2NvdW 50cyB3aXRoIENDIEF0dGFjaGVkIC0gQlVMSyBESVNDT1VOVCISInF1YW50aXR5IjoiMSIsImFkZHJlc3MiOiIiLCJjb21tZW50IjpudWxsLCJpdGVtchJpY2UiOjUsInVzZCI6NSwiYnRjIjoiMC4wMDAw NzQ5NiIsInZlbmRvciI6ImZvY3VzIiwid2FsbGV0IjoiQkFMQU5DRSIsImJhbGFuY2UiOiJ0cnVlIn0= -----PGP 消息结束-----

© www.soinside.com 2019 - 2024. All rights reserved.