이미지 및 사진 · 이미지 메타데이터 개인정보 보호 도구
EXIF, TIFF 및 IFD: 모든 사진 속에 여전히 남아 있는 1990년대 구조
· 배경
엑시프 파일 형식 이미지 개인정보 보호
EXIF는 1995에 게시되었으며 TIFF에서 데이터 모델을 차용했습니다. 따라서 JPEG 내부의 메타데이터 블록은 실제로 디렉터리, 태그 및 오프셋이 포함된 작은 TIFF 파일입니다. 구조를 알면 스트리퍼가 깨끗하게 제거할 수 있는 것과 그 이유를 알 수 있습니다.
JPEG 안에 숨어 있는 TIFF 파일 — EXIF가 나머지 JPEG 형식과 전혀 다르게 보이는 이유에 대한 퍼즐
JPEG는 TIFF 이미지가 아닌 TIFF 모양의 데이터 구조를 포함할 수 있습니다. APP1 Exif 페이로드는 식별자로 시작한 다음 오프셋과 디렉토리가 카메라, 시간 및 GPS 값을 구성하는 TIFF 헤더로 시작됩니다. 또한 공유 파서는 PNG eXIf 및 WebP EXIF 청크에 있는 TIFF 블록을 사용하므로 하나의 리더가 3개의 컨테이너를 제공합니다.
저장소가 EXIF의 원본 날짜를 설정하지 않습니다.
통합 문서는 원본 스토리와 연도를 제공했지만 여기에 사용된 저장소 소스는 표준 내역, 조직 또는 발행 날짜를 설정하지 않습니다. 인용되지 않은 연대순을 반복하는 대신 이 섹션에서는 유용한 사실을 코드에 고정시킵니다. EXIF 페이로드는 TIFF 바이트 순서, 브라우저 파서가 사진 데이터를 디코딩하지 않고도 검사할 수 있는 매직 및 디렉토리 메커니즘을 사용합니다.
TIFF의 디렉토리 모델 — 헤더, 바이트 순서 표시자, IFD0 및 태그, 유형, 개수 및 값 또는 오프셋이 포함된 12바이트 항목
TIFF 헤더는 멀티바이트 값이 리틀 엔디안인지 빅 엔디안인지를 알려주고 마법의 값을 전달하며 IFD0을 가리킵니다. 각 디렉토리는 개수로 시작하며 태그, 유형, 값 개수 및 인라인 데이터나 오프셋을 포함하는 고정 크기 항목을 저장합니다. 이러한 배열을 통해 작은 값은 항목에 배치되고 긴 문자열과 유리수는 블록의 다른 곳에 위치할 수 있습니다.
이 파서가 실제로 따르는 디렉토리
이 구현은 IFD0 다음에 Exif 및 GPS 포인터를 따릅니다. 사용자 지향 값으로 상호 운용성 포인터를 의도적으로 건너뛰고 IFD1 썸네일을 반복적으로 추적하지 않습니다. 완전한 EXIF 디렉토리 모델을 호출하는 것은 거짓입니다. 이는 제품의 읽을 수 있는 위치, ID, 타임스탬프, 소프트웨어 및 기술 분야에 필요한 제한된 하위 집합입니다.
태그 번호 지정 및 데이터 유형 — Make가 0x010F인 이유, 유리수가 정수 쌍인 이유, 문자열이 널 바이트로 끝나는 이유
태그는 해당 디렉터리의 컨텍스트에서 해석되는 숫자 식별자이며, 필드 유형은 바이트 너비와 디코딩을 결정합니다. ASCII, 정수 및 유리수 값은 서로 다르게 처리됩니다. 알 수 없는 태그는 추측된 것이 아닌 16진수로 레이블이 지정되며, GPS 디렉토리 내의 알 수 없는 태그는 해당 디렉토리가 해당 컨텍스트를 제공하므로 위치로 분류된 상태로 유지됩니다.
오늘날 중요한 구현 경계
여기서는 버전 타임라인보다 운영 경계가 더 중요합니다. 디렉터리는 512 항목으로 제한되고, 64 요소의 값과 범위를 벗어난 오프셋은 건너뜁니다. MakerNote 내부 및 IFD1은 디코딩되지 않습니다. 이러한 제한은 기형이거나 악의적인 블록이 메타데이터 뷰어를 무제한 파서로 전환하는 것을 방지하는 동시에 전체 컨테이너 블록이 제거되도록 허용합니다.
여기서 다루지 않는 내용 — JPEG 압축 자체와 MakerNote의 비공개 형식
JPEG 리더는 XMP 또는 IPTC 콘텐츠가 아닌 표시용으로 APP1 Exif만 구문 분석하며, 관련 구조 공유에도 불구하고 지원되지 않는 TIFF, DNG 및 RAW 이미지는 거부됩니다. 청소 중에 색상 프로필이 의도적으로 유지됩니다. 따라서 이 도구는 일반 TIFF 또는 법의학 메타데이터 엔진이라고 주장하지 않고 포함된 TIFF 디렉터리 사용을 보여줍니다.
요점: EXIF는 자체적으로 설계되었습니다. 이미지 메타데이터 개인 정보 보호 도구를 사용하면 이미지를 건드리지 않고도 디렉토리를 표시하고 전체 블록을 제거할 수 있습니다.
EXIF는 전체 블록 검사 및 제거에 충분히 자체 포함되어 있습니다. 컨테이너 블록을 찾고, 지원하는 제한된 디렉터리를 구문 분석하거나 모든 전용 바이트를 구문 분석하지 않고 블록을 삭제합니다. 사진을 열고 테이블의 IFD0, Exif 및 GPS 필드를 비교하고 작업 흐름 전반에 걸쳐 판독 가능한 범위와 제거 범위 간의 구분을 유지합니다.