Outlook에서 보낸 깨진 S / MIME 메시지의 암호를 해독하는 방법

최근에 해독 할 수없는 Outlook에서 보낸 암호화 된 메시지가 수신되었습니다. 대신 Thunderbird가 다음과 같은 오류 메시지를 인쇄합니다.

Thunderbird가이 메시지의 암호를 해독 할 수 없습니다.

발신자가이 메시지를 귀하의 디지털
  인증서, 그러나 썬더 버드는 이것을 발견하지 못했습니다.
  인증서 및 해당 개인 키. 가능한 해결책:

  • 스마트 카드가있는 경우 지금 삽입하십시오.
  • 새 컴퓨터를 사용하거나 새 Thunderbird 프로필을 사용하는 경우 인증서를 복원해야합니다.
      백업의 개인 키. 인증서 백업은 일반적으로 “.p12″로 끝납니다.

또한 다른 메일 클라이언트 (최신 버전의 Outlook 포함)가 메시지 암호를 해독하지 못했습니다. 메일이 매우 중요하며 발신자에게 메일을 다시 보내달라고하지 않으려는 경우 어떻게해야합니까?



답변

문제

이것은 Microsoft Outlook 2010의 알려진 문제점 그러나 수정 사항이 제공되므로 보낸 사람에게 적용해야한다고 알릴 수 있습니다.

X.509 인증서에는 몇 가지 특성이 첨부되어 있으며 그 중 일부는 인증서를 식별하는 데 사용할 수 있습니다. 그러한 방법 중 하나는 인증서 발급자와 함께 일련 번호를 함께 사용하는 것입니다 (함께 고유 한 식별자를 만들어야 함). S / MIME 암호화 된 메시지의 경우이 메시지는 issuerAndSerialNumber. 대안은 표준화 된 것입니다. subjectKeyIdentifier이것은 “어떤 형태로 공개 키에서 파생되어야하지만”특별히 정의되지는 않았습니다.

Outlook 2010 (SP1 이전)에서는 subjectKeyIdentifier 그런 식별자가 제공되지 않으면 하나를 만듭니다 (위에서 링크 된 지식 기반 기사에서 강조 표시가 추가되었습니다).

암호화 메시지 구문 (CMS)은 RFC 5652에 문서화되어 있습니다.이 사양은 subjectKeyIdentifier 또는 issuerAndSerialNumber를 SignerIdentifier로 사용할 수 있습니다. Outlook 2010의 릴리스 (RTM) 버전은 SubjectKeyIdentifier를 SignerIdentifier로 사용합니다. 이전 버전에서는 issuerAndSerialNumber를 사용했습니다. subjectKeyIdentifier 확장이 인증서에 정의되어 있지 않으면 Outlook 2010 RTM에서 인증서를 생성합니다. 일부 이메일 클라이언트 또는 타사 운영 체제는 Outlook에서 생성 한 subjectKeyIdentifier를 사용할 수 없습니다. 따라서받는 사람이 메시지를 해독하고 읽을 수 없습니다.

다른 말로하면 Microsoft Outlook 2010 이전 SP1은 인증서 식별자를 사용합니다. 가능성이 매우 높다 다른 메일 응용 프로그램에서는 이해할 수 없습니다. 나는 실제로 그러한 메시지를 해독하기 위해 최근 버전의 Outlook을 사용하지 못했습니다!

메시지를 해독하는 방법

이것은 쉽지 않을 것이고, 명령 행으로 떨어지는 것을 포함한다. 이것은 거의 모든 운영 체제 (Linux, Windows, macOS, BSD)에서 작동해야하며 OpenSSL을 설치해야합니다. OpenSSL을 사용하면 특정 키를 사용하여 해독을 강제 할 수 있습니다. subjectKeyIdentifier.

  1. 메시지를 어떤 폴더에 저장하십시오 (Thunderbird는 .eml 파일). 나는 그것의 이름을 지었다. mail.eml 모든 추가 단계에서
  2. 개인 키를 내 보냅니다 ( 환경 설정 , 많은 , 인증서 , 인증서보기 , 적절한 인증서를 선택하고, 지원 , 메시지에 사용 된 것과 동일한 폴더를 선택하십시오. Thunderbird는 암호 구문을 쿼리합니다. 지금 다른 파일이 있어야합니다. .p12 신장. 나는 그것의 이름을 지었다. certificate.p12.
  3. 터미널을 엽니 다. 모든 추가 단계는 명령 행에서 완료됩니다.
  4. 다음을 사용하여 폴더로 이동합니다. cd 명령.
  5. 메시지 암호를 해독하려면 PEM 형식의 개인 키가 필요합니다. 키를 변환하려면 다음을 실행하십시오. openssl pkcs12 -in certificate.p12 – 아웃 privatekey.pem – 노드`. Thunderbird에 입력 한 암호를 물어볼 것입니다.
  6. 이제 내 보낸 키를 사용하여 실제로 메시지의 암호를 해독합니다.

    openssl cms -decrypt -in mail.eml -inkey privatekey.pem -out decrypted.txt
    

    암호 해독 된 메시지는 decrypted.txt 파일.

메시지는 다음과 같이 인코딩 될 수 있습니다. quoted-printable. 이상한 문자 시퀀스를 만나면 Gr=FC=DFe 헤더가있다. Content-Transfer-Encoding: quoted-printable 포함 된 메시지를 일반 텍스트로 변환하십시오 (Perl이 필요하며 아마 버전 5로 제한되어 있습니다. MIME::QuotedPrint 기준 치수):

perl -MMIME::QuotedPrint -pe '$_=MIME::QuotedPrint::decode($_);' <decrypted.txt >decoded.txt

그만큼 decoded.txt 파일에는 마지막으로 해독 된 메시지가 포함됩니다. 특수 문자의 인코딩이 여전히 잘못된 것처럼 보일 경우에는 원하는 변환 도구를 사용하거나 Firefox 또는 다른 브라우저에서 파일을 열어보십시오. 일반적으로 엉망인 인코딩을 수정하는 데 큰 도움이됩니다.

새로운, 암호화되지 않은 .eml 메시지에는 모두 스트립이 필요합니다. Content-* 머리글 및 임의의 이동 Content-* 이 위치에서 해독 된 메시지의 헤더. 자세한 내용은이 자습서의 범위를 벗어났습니다. 합리적인 도움을 제공하기에는 너무 많은 인코딩이 있습니다.


답변