Не вдається розшифрувати зашифроване повідомлення S / MIME


1

Після того як я надіслав страхову компанію з підписаним електронною поштою S / MIME, їх обмінний сервер забрав мій сертифікат S / MIME, і їх відповідь була зашифрована S / MIME. Раніше вони використовували мій відкритий ключ PGP для шифрування надісланих мені повідомлень, які я зміг розшифрувати. Вони ніколи не підписували власних повідомлень.

Незважаючи на те, що сертифікат і приватний ключ S / MIME встановлені в Thunderbird та Apple Mail, жоден з них не в змозі розшифрувати повідомлення. ( Thunderbird не може розшифрувати повідомлення. Відправник використав один із ваших сертифікатів для шифрування цього повідомлення. Незважаючи на це, Thunderbird не зміг знайти сертифікат і відповідний приватний ключ. )

Повідомлення, які я отримую від інших організацій, які використовують мій сертифікат S / MIME для шифрування, можуть бути розшифровані Thunderbird та Apple Mail, включаючи самовідправлені тестові повідомлення та повідомлення з swiftmail / PHP.

Приватний ключ не на смарт-картці, але зберігається в модулі захисту програмного забезпечення Thunderbird та брелоку Apple.

Ось деякі заголовки пошти незашифрованої електронної пошти, яку я отримав від страхової компанії:

Content-Transfer-Encoding: BASE64
Content-Disposition: attachment; filename=smime.p7m
Content-Type: application/pkcs7-mime; name=smime.p7m; 
 smime-type="enveloped-data"
...
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
...
MIME-Version: 1.0

Розшифрування вручну, як пропонується в розділі Як розшифрувати зламане повідомлення S / MIME, надіслане Outlook? також не вдається:

$ openssl smime -decrypt -in msg.eml  -inkey privatekey.pem  -out decrypted.txt
Error decrypting PKCS#7 structure
140735747326920:error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt:/BuildRoot/Library/Caches/com.apple.xbs/Sources/libressl/libressl-22.50.2/libressl/crypto/evp/evp_enc.c:529:

Як знайти те, що не так, на чиєму кінці?

Редагувати:

$ openssl smime -pk7out -in msg.eml | openssl asn1parse
    0:d=0  hl=4 l=27205 cons: SEQUENCE          
    4:d=1  hl=2 l=   9 prim: OBJECT            :pkcs7-envelopedData
   15:d=1  hl=4 l=27190 cons: cont [ 0 ]        
   19:d=2  hl=4 l=27186 cons: SEQUENCE          
   23:d=3  hl=2 l=   1 prim: INTEGER           :00
   26:d=3  hl=4 l= 457 cons: SET               
   30:d=4  hl=4 l= 453 cons: SEQUENCE          
   34:d=5  hl=2 l=   1 prim: INTEGER           :00
   37:d=5  hl=3 l= 172 cons: SEQUENCE          
   40:d=6  hl=3 l= 151 cons: SEQUENCE          
   43:d=7  hl=2 l=  11 cons: SET               
   45:d=8  hl=2 l=   9 cons: SEQUENCE          
   47:d=9  hl=2 l=   3 prim: OBJECT            :countryName
   52:d=9  hl=2 l=   2 prim: PRINTABLESTRING   :GB
   56:d=7  hl=2 l=  27 cons: SET               
   58:d=8  hl=2 l=  25 cons: SEQUENCE          
   60:d=9  hl=2 l=   3 prim: OBJECT            :stateOrProvinceName
   65:d=9  hl=2 l=  18 prim: PRINTABLESTRING   :Greater Manchester
   85:d=7  hl=2 l=  16 cons: SET               
   87:d=8  hl=2 l=  14 cons: SEQUENCE          
   89:d=9  hl=2 l=   3 prim: OBJECT            :localityName
   94:d=9  hl=2 l=   7 prim: PRINTABLESTRING   :Salford
  103:d=7  hl=2 l=  26 cons: SET               
  105:d=8  hl=2 l=  24 cons: SEQUENCE          
  107:d=9  hl=2 l=   3 prim: OBJECT            :organizationName
  112:d=9  hl=2 l=  17 prim: PRINTABLESTRING   :COMODO CA Limited
  131:d=7  hl=2 l=  61 cons: SET               
  133:d=8  hl=2 l=  59 cons: SEQUENCE          
  135:d=9  hl=2 l=   3 prim: OBJECT            :commonName
  140:d=9  hl=2 l=  52 prim: PRINTABLESTRING   :COMODO RSA Client Authentication and Secure Email CA
  194:d=6  hl=2 l=  16 prim: INTEGER           :7F9285XXXX...
  212:d=5  hl=2 l=  13 cons: SEQUENCE          
  214:d=6  hl=2 l=   9 prim: OBJECT            :rsaesOaep
  225:d=6  hl=2 l=   0 cons: SEQUENCE          
  227:d=5  hl=4 l= 256 prim: OCTET STRING      [HEX DUMP]:0068E5XXXX...
  487:d=3  hl=4 l=26718 cons: SEQUENCE          
  491:d=4  hl=2 l=   9 prim: OBJECT            :pkcs7-data
  502:d=4  hl=2 l=  29 cons: SEQUENCE          
  504:d=5  hl=2 l=   9 prim: OBJECT            :aes-256-cbc
  515:d=5  hl=2 l=  16 prim: OCTET STRING      [HEX DUMP]:CF1A61XXXX...
  533:d=4  hl=4 l=26672 prim: cont [ 0 ]        

2
Можливо, це питання та його відповіді можуть бути корисними. Один коментар пропонує вказати алгоритм. Відправник може використовувати застарілий алгоритм. Спробуйте openssl smime -pk7out -in msg.eml | openssl asn1parseв електронній пошті проаналізувати його та відобразити використаний алгоритм, не намагаючись розшифрувати його.
not2savvy

До речі, я використовую дещо іншу команду для розшифровки електронних листів:, openssl smime -decrypt -in msg.eml -recip recipient.pemале я не маю уявлення, чи може це змінити ваш випадок.
not2savvy

Мій openssl ( LibreSSL 2.2.7) говорить мені -recip file recipient certificate file for decryption. Як я розумію, вам завжди потрібен приватний ключ для розшифровки, який не є частиною сертифіката (тому що сертифікат може бути загальнодоступним). Що саме знаходиться всередині вашого recipient.pem?
Райнер Рілке

@ not2savvy дякую за команди asn parse. Коли я аналізую повідомлення, надіслане моїми клієнтами до себе, я бачу des-EDE3-CBC, що використовується і є 2 записи в SET, починаючи з зміщення 26, обидва використовують те саме commonName. Не впевнений, але як використовувати openssl aes-128-cbc/ як вказати algo дайджесту повідомлень. Використання -mdз openssl smimeнічого не змінило.
Райнер Рілке

1
Звичайно, recipient.pemобов'язково повинен містити приватний ключ для розшифрування електронного листа.
not2savvy
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.