티스토리 뷰

어제랑 오늘 검찰청에 메일을 보내야 해서 파일을 첨부하여 메일을 전송하였다.


검찰측에서 파일이 열리지 않는다고 하여 다시 전송하였으나, 역시 파일이 열리지 않는다고 하여 문제 확인을 하였다.


문제 확인에 사용된 이메일은 아래와 같다.


 * iCloud

 * Gmail

 * 네이버 메일

 * 학교 메일


검찰측에 메일을 보낼 때, iCloud를 이용하여 보냈으니, iCloud에서 나머지 계정으로 메일을 발송하는 형태로 확인한다.


* iCloud    ┌ Gmail

├ 네이버

└ 학교


Gmail과 네이버는 정상적으로 파일이 도착함을 확인했다.


Gmail에서 받은 메일을 확인하였다.


네이버 메일도 위와 같은 형식으로 받음을 확인하였다.


하지만, 학교메일은 tmp_part.dat 파일로 받았다.


학교 메일에서 받은 모습이다. 첨부 파일이 tmp_part.tmp 임을 확인하였다.


보낸 파일과 받은 tmp_part.dat 파일의 용량은 일치하였다.


같은 파일인지 확인하기 위해, sha1 해쉬를 이용하여 비교하였다.


원래 파일: d447ec9e9534eb1bf1a708ea69f8aafc71f46b814c12ce062eee519829eafddc

받은 파일: d447ec9e9534eb1bf1a708ea69f8aafc71f46b814c12ce062eee519829eafddc


원본 한글 파일의 해쉬 값


학교 메일에 첨부된 파일을 다운로드 받아 해쉬 값을 보았다.


파일 용량도 같고 해쉬도 일치한다.


보낸 파일이 .hwp 한글 파일이였으므로, 받은 .dat 파일의 확장자를 .hwp 로 변경하여 한글 프로그램을 통해 열었을 때, 같은 내용임을 확인할 수 있다.



메일 헤더를 확인한 결과, Gmail과 네이버 메일에는 아래와 같은 헤더가 있음을 확인하였다.


Content-type: application/haansofthwp;


Content-type에 한소프트웨어의 한글 파일이라고 표시되어 있다.


그리고, 이 헤더 아래로 BASE64로 인코딩 된 내용의 파일 내용으로 보이는 문자열을 볼 수 있다.


Content-type 헤더 아래에 있는 첨부파일로 보이는 내용 중 일부이다.


하지만, 학교 메일의 헤더를 확인해보니 아래와 같은 헤더만 있었으며, 헤더 아래로 내용은 없다.


Content-type: multipart/alternative;


학교 메일에서 확인한 헤더이다.


tmp_part.dat 파일이 생성되는 원인은 해당 메일 서버에서 어떠한 이유로 메일을 정상적으로 받지 못하였거나 헤더 부분을 필터링하여 문제가 생긴 경우라 볼 수 있다.


이 파일을 사전 정보 없이 확인하는 방법은 파일의 시그니처를 확인하여 확장자를 임의로 변경한 뒤 파일을 열어보는 방법이 있다.


Hex 에디터를 이용하여 시그니처를 분석하였다.


왼쪽이 tmp_part.dat 파일이고 오른쪽이 원본 한글 파일이다. D0 CF 11 E0 A1 B1 1A E1 00 은 한글 파일의 시그니처이다. 이 파일은 한글 2010 SE+ Home edition 에서 한글 2007 호환으로 저장하였다.


두 파일의 시그니처 값이 동일하다.


즉, tmp_part.dat 파일로 받더라도 시그니처를 구글링하여 어떤 파일의 확장자인지만 알 수 있으면 정상적으로 파일을 확인할 수 있게 된다.



* MIME에 대한 지식이 별로 없어 추측하여 쓴 글이므로 실제와 다를 수 있습니다.

댓글