gpg를 사용하여 이메일에 포함된 첨부 파일을 해독하는 방법은 무엇입니까?

gpg를 사용하여 이메일에 포함된 첨부 파일을 해독하는 방법은 무엇입니까?

Gmail에서 받은 이메일을 해독하면 해독된 이메일 본문에 Base64로 인코딩된 문자열로 첨부 파일이 수신됩니다.

그런 다음 실제로 첨부 파일을 얻으려면 base64 문자열을 수동으로 추출하고 base64 -d 또는 유사한 방법을 사용하여 디코딩해야 합니다.

발견된 첨부 파일을 별도의 파일로 해독하고 Base64로 디코딩하기 위한 gpg 매개변수를 찾을 수 없다는 사실에 놀랐습니다. 이를 수행하는 편리한 방법이 있습니까?

답변1

내 경우에도 Protonmail은 첨부 파일을 다음과 같이 암호화했습니다.

-----BEGIN PGP MESSAGE-----
Content-Type: text/html
Version: ProtonMail

wcBMA9huJ3ednol8AQf9GkIDfBmoLhXbkfQ/xiH/IA6c5FSXS5t0ybrKL/c0
... base 64 ...
PO/ZPcImGYDYUgd1VkItf9xdnFo02c9OF+8=
=r9ZO
-----END PGP MESSAGE-----

--b1_UtzHbBo7cr7IHemm3M2xGQe8Ak73bka7W7I3ZHMX6c
Content-Type: application/octet-stream; name="=?utf-8?Q?name.jpg.pgp?="
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="=?utf-8?Q?name.jpg.pgp?="

wcBMA9huJ3ednol8AQf+OX4BrthHHn10wHpniO8+qt4pDFpOZiqNOawF1sDeWeu5mmimF8hsma5V
... long base64 ...
bm//YnWeec1rBfdTbu2eCf4Z7snf2Q==

첫 번째 Base64로 인코딩된 메시지는 이메일 콘텐츠이고 두 번째 메시지는 제가 찾고 있는 첨부 파일입니다. 이를 해독하기 위해 첨부 파일 base64를 다음 -----BEGIN PGP MESSAGE-----과 같이 채웠습니다 -----END PGP MESSAGE-----.

-----BEGIN PGP MESSAGE-----
wcBMA9huJ3ednol8AQf+OX4BrthHHn10wHpniO8+qt4pDFpOZiqNOawF1sDeWeu5mmimF8hsma5V
... long base64 ...
bm//YnWeec1rBfdTbu2eCf4Z7snf2Q==
-----END PGP MESSAGE-----

그런 다음 새 파일에 저장하고 decrypt 를 사용하십시오 gpg -o name.jpg -d encrypted_attachment.txt.

이는 불편하지만 스크립트를 사용하여 프로세스를 자동화할 수 있습니다(예: 파일에서 모든 첨부 파일을 찾아 PGP MESSAGE 청크로 채운 다음 별도의 파일에 쓴 다음 암호를 해독합니다).

답변2

GPG로 직접 이 작업을 수행할 수 있는 편리한 방법은 없지만 해독한 HTML 메시지를 Thunderbird로 가져올 수 있습니다. 그러면 Base64로 인코딩된 첨부 파일을 올바르게 구문 분석하여 정상적으로 처리할 수 있습니다.

수동 지침을 찾는 사람들은 아래를 참조하세요.

MIME으로 인코딩된 이메일에는 이메일 파일에 첨부 파일이 포함되어 있습니다. 이러한 MIME 인코딩 첨부 파일은 base64로 인코딩됩니다. 예는 다음과 같습니다.

-----------------------280fe25f5480076f6dcc4a82dc971dc5
Content-Type: application/pgp-keys; filename="textfile.txt - [email protected] - textfile.txt"; name="textfile - [email protected] - textfile.txt"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="textfile - [email protected] - textfile.txt"; name="textfile - [email protected] - textfile.txt"
    
dGhpcyBpcyB0aGUgYmFzZTY0IGVuY29kZWQgdGV4dAo=
-----------------------280fe25f5480076f6dcc4a82dc971dc5--

이는 첨부 세부사항의 시작을 표시합니다.

-----------------------280fe25f5480076f6dcc4a82dc971dc5

이것이 끝을 나타냅니다. ( --끝 부분에 두 개의 추가 항목을 참고하세요):

-----------------------280fe25f5480076f6dcc4a82dc971dc5--

처음 몇 줄은 메타데이터입니다. 유용한 부분은 다음과 같습니다.

dGhpcyBpcyB0aGUgYmFzZTY0IGVuY29kZWQgdGV4dAo=

이 콘텐츠를 복사하고 저장한 후 textfile.txt다음 명령을 실행하여 실제 콘텐츠를 볼 수 있습니다.

base64 -d textfile.txt

이미지나 이와 유사한 바이너리 파일인 경우 출력을 최종 파일 이름으로 리디렉션합니다.

base64 -d tempfilename.base64 > picture.jpg

관련 정보