엡스타인 이메일 속 =의 비밀, RFC 2045와 Windows의 유산
정부 공개 엡스타인 이메일에서 다량의 이퀄 사인(=)이 발견되었고, 그 원인에 대한 궁금증을 제기함.
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)을 사용하여 이퀄 사인을 그대로 유지한다. 발표자는 이러한 폴백이 오래된 시스템과의 호환성을 위한 것이라고 설명한다.