Как узнать тип шифрования из почтового сообщения?

Я использую Thunderbid, Enigmail, GnuPG и pinentry.

Когда я получаю зашифрованное сообщение, как я могу определить, какой алгоритм используется:

  • для шифрования
  • для контрольной суммы (SHA1 или нет)
  • для сжатия

Я не знаю метода внутри thunderbird, но сохранение сообщения в виде файла и отбрасывание в оболочку откроет информацию, которую вы ищете.

Получение подробных

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 печатает только идентификаторы алгоритмов (например, для сжатия), их можно найти в RFC 4880, раздел «Константы» . В частности, для этого примера мы найдем использование следующих алгоритмов:

  • AES256 для симметричного шифрования
  • MDC 2 означает SHA1 для кода обнаружения модификации, который является единственным в настоящее время
  • Алгоритм сжатия 2, разрешение на ZLIB
  • SHA256 для подписи