확장자는 파일 이름의 일부일 뿐입니다
`photo.jpg`라는 이름은 사용자가 파일명을 그렇게 정했다는 뜻이지 내부 데이터가 반드시 JPEG라는 보장은 아닙니다. 확장자를 `.png`로 바꾸는 것만으로 실제 이미지 형식이 변환되지 않는 이유도 같습니다.
프로그램은 확장자를 보고 열기 방식을 추측하기도 하지만, 일부는 파일 앞부분의 고유한 바이트 패턴을 함께 확인합니다.
파일 시그니처는 형식별로 반복되는 바이트 패턴입니다
PDF는 보통 `%PDF-`로 시작하고, PNG는 정해진 8바이트 서명을 사용하며, ZIP 기반 형식은 `PK` 바이트로 시작하는 경우가 많습니다. 이런 패턴을 매직 바이트 또는 파일 시그니처라고 부릅니다.
다만 시그니처만으로 파일 전체가 정상인지 완전히 검증할 수 있는 것은 아닙니다. 앞부분이 맞아도 파일이 중간에 손상됐을 수 있습니다.
다운로드 파일이 열리지 않을 때 먼저 확인할 수 있습니다
웹에서 받은 파일이 `.pdf`인데 PDF 뷰어가 열지 못한다면 실제로 HTML 오류 페이지를 PDF 이름으로 저장한 경우도 있습니다. 이때 시그니처를 보면 문제 방향을 빠르게 좁힐 수 있습니다.
변환 도구의 결과가 올바른 형식인지 확인할 때도 확장자보다 내부 시그니처를 보는 편이 더 신뢰할 수 있습니다.
시그니처 확인은 보안 검사 전체를 대신하지 않습니다
형식이 맞다는 것과 파일이 안전하다는 것은 다른 문제입니다. 정상 PDF나 문서 형식 안에도 악성 콘텐츠나 위험한 링크가 포함될 수 있습니다.
출처를 모르는 파일이라면 시그니처 확인만으로 안심하지 말고 운영체제와 보안 소프트웨어를 최신 상태로 유지하고 신뢰할 수 없는 실행 파일은 열지 않는 것이 중요합니다.
- 확장자 변경 ≠ 형식 변환
- 시그니처 일치 ≠ 파일 전체 정상
- 형식 확인 ≠ 악성 여부 검사
직접 처리하기
파일명을 바꾸지 않고 브라우저에서 앞부분의 시그니처를 확인해 실제 형식과 확장자가 일치하는지 점검할 수 있습니다.
파일 시그니처 확인기 열기이 가이드의 기준
이 글은 실제 파일 구조와 omtools 도구의 동작 방식을 기준으로 작성했습니다. 중요한 원본은 별도로 보관하고, 변환이나 정리 후에는 결과를 다시 열어 구조와 값이 유지됐는지 확인하는 것을 권장합니다.