【问题标题】:I have a PGP message ("-----BEGIN PGP MESSAGE----- ...") How do I get the session key?我有一条 PGP 消息 ("-----BEGIN PGP MESSAGE----- ...") 如何获取会话密钥?
【发布时间】:2020-12-27 21:26:43
【问题描述】:

当您收到使用您的密钥加密的 PGP 消息时,您的 PGP 软件可以对其进行解密,因为消息本身是使用一次性随机密钥加密的,而该随机密钥是使用您自己的密钥加密的。因此,如果您能获得随机密钥(“会话密钥”或“秘密密钥”),那么您可以共享它(以及原始消息)以向其他人证明原始消息所说的内容。这是我需要做的。我一直找不到可以在 Windows 或 Linux 中使用的命令来恢复这个随机密钥。有谁知道如何从 PGP 消息中获取它?

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

【问题讨论】:

    标签: public-key-encryption pgp secret-key openpgp


    【解决方案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 帮助我解决这个问题。

    【讨论】:

      猜你喜欢
      • 2020-12-13
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 2019-07-14
      • 2021-09-04
      • 2012-05-06
      • 1970-01-01
      相关资源
      最近更新 更多