Gpg

如何從郵件消息中學習加密類型?

  • December 12, 2014

我使用 Thunderbid、Enigmail、GnuPG 和 pinentry。

當我收到加密消息時,如何確定使用哪種算法:

  • 用於加密
  • 校驗和(SHA1 與否)
  • 用於壓縮

我不知道 Thunderbird 中的方法*,*但是將消息儲存為文件並放入 shell 會顯示您正在尋找的資訊。

變得冗長

gpg -vv將在輸入中輸出非常詳細的資訊,包括您要查找的資訊。

一個例子

可以通過使用您自己的密鑰對消息進行加密和簽名來生成輸出範例:

echo 'foo' | gpg --recipient a4ff2279 --encrypt --sign | gpg -vv

略微剝離的輸出(刪除與問題無關的大塊部分)如下所示:

:pubkey enc packet: version 3, algo 1, keyid CC73B287A4388025
   data: [4095 bits]

[snip, gpg asking for passphrase]

gpg: public key encrypted data: good DEK
:encrypted data packet:
   length: unknown
   mdc_method: 2
gpg: encrypted with 4096-bit RSA key, ID A4388025, created 2014-03-26
     "Jens Erat (born 1988-01-19 in Stuttgart, Germany)"
gpg: AES256 encrypted data
:compressed packet: algo=2
:onepass_sig packet: keyid 8E78E44DFB1B55E9
   version 3, sigclass 0x00, digest 8, pubkey 1, last=1
:literal data packet:
   mode b (62), created 1418376556, name="",
   raw data: 4 bytes
gpg: original file name=''
foo
:signature packet: algo 1, keyid 8E78E44DFB1B55E9
   version 4, created 1418376556, md5len 0, sigclass 0x00
   digest algo 8, begin of digest 81 67
   hashed subpkt 2 len 4 (sig created 2014-12-12)
   subpkt 16 len 8 (issuer key ID 8E78E44DFB1B55E9)
   data: [4095 bits]
gpg: Signature made Fri Dec 12 10:29:16 2014 CET using RSA key ID FB1B55E9
gpg: using subkey FB1B55E9 instead of primary key A4FF2279
[snip, trust validation]
gpg: binary signature, digest algorithm SHA256
gpg: decryption okay

解釋輸出

如果 GnuPG 只列印算法 ID(如壓縮),這些可以在RFC 4880, Section “Constants”中查找。特別是對於這個例子,我們會發現使用以下算法:

  • AES256 用於對稱加密
  • MDC 2 表示修改檢測碼的 SHA1,這是目前唯一定義的
  • 壓縮算法2,解析為ZLIB
  • SHA256 用於簽名

引用自:https://unix.stackexchange.com/questions/173894