Gpg
如何從郵件消息中學習加密類型?
我使用 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 用於簽名