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


7

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

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

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

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

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

답변:


15

문제

이것은 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-* 이 위치에서 해독 된 메시지의 헤더. 자세한 내용은이 자습서의 범위를 벗어났습니다. 합리적인 도움을 제공하기에는 너무 많은 인코딩이 있습니다.


1
디코딩을 시도하기 전에 전자 메일에서 전자 메일 헤더를 제거해야합니까? 그렇지 않다면 왜 안됩니까? ( openssl .eml 형식을 지원합니까?) 오, Debian 배포판은 "Debian GNU / Linux"또는 더 짧은 "Debian"이지만, 결코 "Debian Linux"가 아닙니다.
wizzwizz4

그만큼 openssl cms 명령은 MIME 메시지를 처리합니다. 에서 man cms: "cms 명령은 S / MIME v3.1 메일을 처리하며 S / MIME 메시지를 암호화, 해독, 서명 및 확인, 압축 및 압축 해제 할 수 있습니다." 데비안 전체의 내용은 어쨌든 관련성이 없어졌습니다. munpack 모든 배포판에 패키지되지 않는 것 같습니다.
Jens Erat
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.