엡스타인 이메일 속 =의 비밀, RFC 2045와 Windows의 유산

by DD
4개월 전
조회수 22

정부 공개 엡스타인 이메일에서 다량의 이퀄 사인(=)이 발견되었고, 그 원인에 대한 궁금증을 제기함.

RFC 2045의 Quoted-Printable 인코딩 방식은 76자 이상 라인을 80자 터미널에 맞추기 위해 이퀄 사인, \r, \n을 사용함.

Windows의 SetMode 함수와 텍스트/바이너리 모드 파일 I/O의 상호 작용으로 인해 이퀄 사인과 \n이 결합되어 발생함.

오래된 하드웨어와 소프트웨어 환경에서 이메일 호환성을 위해 이퀄 사인 인코딩이 사용되었음을 설명함.

RFC 2045: 이메일 인코딩의 기본

영상에서는 엡스타인 이메일에서 발견된 이퀄 사인의 원인을 설명하기 위해 RFC 2045, 즉 MIME(Multipurpose Internet Mail Extensions)의 Quoted-Printable 인코딩 방식을 소개한다. 이 방식은 80자 터미널 환경에서 76자 이상의 긴 라인을 처리하기 위해 사용되었으며, 이퀄 사인(=)과 \r\n(CRLF, Carriage Return Line Feed)을 사용하여 라인을 분할한다. 발표자는 이 방식이 오래된 하드웨어 환경에서 이메일 호환성을 위해 필수적이었다고 강조한다.

Windows의 SetMode 함수와 이퀄 사인 문제

발표자는 Windows의 SetMode 함수와 텍스트/바이너리 모드 파일 I/O의 상호 작용이 이퀄 사인 문제의 핵심이라고 설명한다. 텍스트 모드에서 파일 I/O를 수행할 때, SetMode 함수는 CRLF(Carriage Return Line Feed)를 하나의 라인 피드 문자로 변환한다. 이 과정에서 Quoted-Printable 인코딩의 이퀄 사인과 \n이 결합되어 예상치 못한 결과가 발생하며, 이는 오래된 Windows 시스템의 유산이라고 강조한다.

이퀄 사인의 잔존: 2-Pass 처리와 폴백 메커니즘

영상에서는 이퀄 사인이 여전히 남아있는 이유를 설명하기 위해 이메일 디코딩 과정의 2-Pass 처리를 언급한다. 첫 번째 패스에서는 Registered Nurses(CRLF)를 제거하고, 두 번째 패스에서는 이퀄 사인과 16진수 코드를 찾는다. 그러나 \n이 발견되면, 디코더는 폴백 메커니즘(Fallback Mechanism)을 사용하여 이퀄 사인을 그대로 유지한다. 발표자는 이러한 폴백이 오래된 시스템과의 호환성을 위한 것이라고 설명한다.

Why Epstein emails have so many ='s