MRZ 설명: 기계 판독 영역 기술 가이드 (KO)
기계 판독 영역(MRZ)에 대한 기술 가이드: ICAO 9303 TD1, TD2, TD3 레이아웃, 체크 디지트, 파싱 시 발생할 수 있는 문제점 및 NFC 칩과의 관계에 대해 알아봅니다.

MRZ는 기계 판독 영역(Machine Readable Zone)을 의미합니다. 여권, 신분증 및 기타 기계 판독 가능 여행 문서에 인쇄된 고정 너비 문자의 표준화된 블록입니다.
이는 광학 문자 인식을 위해 선택된 신원 및 문서 필드를 인코딩합니다. 체크 디지트는 판독 또는 전사 오류를 감지하는 데 도움이 됩니다. 이들은 문서가 위조되지 않았다는 것, 신뢰할 수 있는 기관이 데이터를 발행했다는 것, 또는 제시자가 정당한 소지자라는 것을 증명하지는 않습니다.
핵심 요약
- MRZ는 하나의 보편적인 문자열이 아니라 레이아웃 유형입니다. TD1은 30자 3줄, TD2는 36자 2줄, TD3는 44자 2줄을 사용합니다.
- 위치는 의미를 가집니다. 파서는 줄 경계, 필드 너비, 채움 문자 및 해당 문서에 대해 선택된 스키마를 보존해야 합니다.
- 체크 디지트는 오류를 감지하며, 서명이 아닙니다. ICAO의 모듈러스-10 계산은 문자 값과 7, 3, 1의 반복 가중치를 사용합니다.
- 이름과 날짜는 추측이 아닌 정책이 필요합니다. 음역, 잘림, 채움 문자 및 두 자리 연도는 구문적으로 유효한 파싱을 의미론적으로 불확실하게 만들 수 있습니다.
- MRZ와 NFC는 다른 신뢰 기능을 제공합니다. MRZ는 광학적으로 판독 가능한 데이터입니다. 인증된 전자여권 칩은 디지털 서명된 데이터와 선택적인 위조 방지 증거를 제공할 수 있습니다.
MRZ란 무엇인가요?
기계 판독 영역은 ICAO 규격의 기계 판독 가능 여행 문서에 필수적인 기계 판독 가능 영역입니다. 사람이 라벨, 전체 날짜, 사진 및 기타 문서 세부 정보를 보는 육안 검사 영역(VIZ)과 별도로 표시됩니다.
ICAO Doc 9303은 여러 부분에 걸쳐 여행 문서 시스템을 정의합니다. 파트 3은 기계 판독 가능 여행 문서에 공통적인 사양을 포함합니다. 파트 4, 5, 6은 각각 TD3, TD1, TD2 레이아웃을 정의합니다. 이 레이아웃은 OCR-B 문자와 의도적으로 제한된 레퍼토리를 사용합니다.
- 대문자
A부터Z까지; - 숫자
0부터9까지; - 채움 문자
<.
채움 문자는 장식이 아닙니다. 사용되지 않는 고정 너비 필드를 채우고, 지정된 경우 공백이나 지원되지 않는 문장 부호를 대체하며, 이름 구성 요소를 구분합니다. 파싱 전에 모든 <를 제거하면 필드 경계 및 이름에 대한 정보가 손실됩니다.
MRZ는 선택된 문서 데이터를 반복합니다. 이는 모든 시각적 필드나 국가별 스크립트 이름을 보존하는 것이 아니라 상호 운용 가능한 캡처에 최적화되어 있습니다.
TD1, TD2, TD3 형식 비교
첫 번째 파싱 결정은 문서 레이아웃입니다. 줄 수와 정확한 너비는 가장 강력한 초기 식별자입니다.
| 형식 | 일반적인 형태 | MRZ 형태 | 총 문자 수 | 이름 위치 |
|---|---|---|---|---|
| TD1 | 신용카드 크기의 공식 여행 문서 또는 신분증 | 3 × 30 | 90 | 3번째 줄 |
| TD2 | 큰 카드 또는 책자 데이터 페이지 | 2 × 36 | 72 | 1번째 줄 |
| TD3 | 기계 판독 가능 여권 및 기타 TD3 문서 | 2 × 44 | 88 | 1번째 줄 |
P 또는 I와 같은 문서 코드만으로 형식을 추론하지 마십시오. 캡처 시 줄이 생략되거나, 두 줄이 합쳐지거나, 공백이 삽입되거나, 잘못된 영역에서 잘린 이미지가 반환될 수 있습니다. 필드 위치를 할당하기 전에 기하학적 형태와 허용되는 문자를 모두 검증하십시오.
TD1: 30자 3줄
Doc 9303 파트 5는 TD1 크기의 기계 판독 가능 공식 여행 문서를 정의합니다. 카드가 작기 때문에 MRZ는 세 줄에 걸쳐 있습니다.
TD1 1번째 줄: 문서 및 선택적 데이터
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–2 | 2 | 문서 코드 |
| 3–5 | 3 | 발행 국가 또는 기관 |
| 6–14 | 9 | 문서 번호 |
| 15 | 1 | 문서 번호 체크 디지트 |
| 16–30 | 15 | 선택적 데이터 |
문서 코드의 첫 번째 문자는 파트 5 레이아웃에서 A, C 또는 I입니다. 사용되지 않는 선택적 위치는 <로 채워집니다.
문서 번호가 9자보다 긴 경우, 상단 줄 위치 15는 <입니다. 연속 문자는 위치 16부터 최대 28까지 사용하며, 숫자 체크 디지트는 위치 17-29에 바로 뒤따르고, 그 뒤에 채움 문자가 옵니다. 위치 16-30을 선택적 데이터로 처리하기 전에 이 예외를 파싱하십시오.
TD1 2번째 줄: 소지자 속성 및 복합 체크
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–6 | 6 | YYMMDD 형식의 생년월일 |
| 7 | 1 | 생년월일 체크 디지트 |
| 8 | 1 | 성별: F, M 또는 < |
| 9–14 | 6 | YYMMDD 형식의 만료일 |
| 15 | 1 | 만료일 체크 디지트 |
| 16–18 | 3 | 국적 |
| 19–29 | 11 | 선택적 데이터 |
| 30 | 1 | 복합 체크 디지트 |
복합 디지트는 상단 줄 위치 6-30, 중간 줄 위치 1-7, 9-15, 19-29를 포함합니다. 3번째 줄의 소지자 이름은 제외됩니다. 이러한 정확한 범위를 순서대로 연결하십시오.
TD1 3번째 줄: 이름
30개 위치 모두 이름을 포함합니다. 두 개의 채움 문자 <<는 주 식별자(일반적으로 성)와 보조 식별자를 구분합니다. 단일 <는 각 그룹 내의 구성 요소를 구분합니다.
예시:
ERIKSSON<<ANNA<MARIA<<<<<<<<<<
이는 주 식별자 ERIKSSON과 보조 식별자 ANNA MARIA를 나타내며, 그 뒤에 패딩이 옵니다. 모든 문화권이 성 다음에 이름이 오는 구조를 사용하는 것으로 가정하지 말고 발행 기관의 식별자 그룹을 사용하십시오.
TD2: 36자 2줄
Doc 9303 파트 6은 TD2 레이아웃을 정의합니다.
TD2 1번째 줄
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–2 | 2 | 문서 코드 |
| 3–5 | 3 | 발행 국가 또는 기관 |
| 6–36 | 31 | 이름 |
TD1과 마찬가지로 문서 코드의 첫 번째 문자는 A, C 또는 I입니다. 이름은 동일한 주 식별자, <<, 보조 식별자 구조를 따르지만, 사용 가능한 길이가 다릅니다.
TD2 2번째 줄
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–9 | 9 | 문서 번호 |
| 10 | 1 | 문서 번호 체크 디지트 |
| 11–13 | 3 | 국적 |
| 14–19 | 6 | 생년월일 |
| 20 | 1 | 생년월일 체크 디지트 |
| 21 | 1 | 성별 |
| 22–27 | 6 | 만료일 |
| 28 | 1 | 만료일 체크 디지트 |
| 29–35 | 7 | 선택적 데이터 |
| 36 | 1 | 복합 체크 디지트 |
복합 디지트는 위치 1-10, 14-20, 22-35를 포함합니다. 국적 위치 11-13과 성별 위치 21은 제외됩니다. 이러한 제외는 "거의 정확한" 구현의 일반적인 원인입니다.
문서 번호가 9자보다 긴 경우, 위치 1-9는 주요 9개 문자를 포함하고, 위치 10은 <이며, 나머지 문자는 위치 29-35에서 시작됩니다. 문서 번호 체크 디지트는 최종 연속 문자 뒤에 오고, 그 뒤에 채움 문자가 옵니다. 위치 29-35를 선택적 데이터로만 해석하기 전에 이 예외를 적용하십시오.
TD3: 44자 2줄
Doc 9303 파트 4는 기계 판독 가능 여권 및 기타 TD3 크기 문서를 정의합니다.
TD3 1번째 줄
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–2 | 2 | 문서 코드 |
| 3–5 | 3 | 발행 국가 또는 기관 |
| 6–44 | 39 | 이름 |
기계 판독 가능 여권의 경우, 문서 코드의 첫 번째 문자는 P입니다. 두 번째 문자는 해당 파트 4 규칙에 따른 여권 유형을 식별합니다. 이름 구성 요소는 TD1 및 TD2와 동일한 채움 문자 기반 구조를 사용합니다.
TD3 2번째 줄
| 위치 | 길이 | 필드 |
|---|---|---|
| 1–9 | 9 | 여권 번호 |
| 10 | 1 | 여권 번호 체크 디지트 |
| 11–13 | 3 | 국적 |
| 14–19 | 6 | 생년월일 |
| 20 | 1 | 생년월일 체크 디지트 |
| 21 | 1 | 성별 |
| 22–27 | 6 | 만료일 |
| 28 | 1 | 만료일 체크 디지트 |
| 29–42 | 14 | 개인 번호 또는 선택적 데이터 |
| 43 | 1 | 선택 필드 체크 디지트 |
| 44 | 1 | 복합 체크 디지트 |
선택적 개인 번호 필드가 사용되지 않고 <로 채워진 경우, 파트 4는 발행 기관의 선택에 따라 해당 체크 위치가 0 또는 <가 될 수 있도록 허용합니다. 유효성 검사자는 채워진 필드에 대한 검사를 약화시키지 않고 허용된 변형을 수용해야 합니다.
최종 복합 디지트는 위치 1-10, 14-20, 22-43을 포함합니다. 따라서 해당 범위의 개별 체크 디지트를 포함하지만 국적 및 성별은 제외합니다.
MRZ 체크 디지트 작동 방식
ICAO 체크 디지트는 결정론적 모듈러스-10 계산을 사용합니다.
1. 각 문자를 값으로 변환
| 문자 | 값 |
|---|---|
0–9 | 0–9 |
A–Z | 10–35 |
< | 0 |
2. 반복 가중치 적용
보호된 필드의 첫 번째 문자부터 시작하여 값을 다음으로 곱합니다.
7, 3, 1, 7, 3, 1, ...
3. 합산 후 나머지 계산
곱한 값들을 더하고 합계의 모듈러스 10을 계산합니다. 0부터 9까지의 나머지가 체크 디지트입니다.
예시 여권 번호 L898902C3의 경우:
문자: L 8 9 8 9 0 2 C 3
값: 21 8 9 8 9 0 2 12 3
가중치: 7 3 1 7 3 1 7 3 1
곱: 147 24 9 56 27 0 14 36 3
합계: 316
316 mod 10 = 6
예상 체크 디지트는 6입니다.
개별 디지트와 복합 디지트를 모두 검증하십시오. 개별 실패는 필드 수준 문제를 나타내며, 복합 디지트만의 실패는 선택적 데이터, 범위 구성 또는 기타 포함된 문자에서 오류가 있음을 나타낼 수 있습니다.
체크 디지트는 많은 대체 및 전치 오류를 잡아내지만, 공격자는 이를 재계산할 수 있습니다. 이들은 위조에 대한 진정성이 아니라 오류 감지를 제공합니다.
생산 시스템을 망가뜨리는 파싱 문제점
고정 너비 구조 손실
형식 감지 전에 각 줄을 자르거나, <를 축소하거나, 줄 바꿈을 삭제하면 필드가 이동합니다. MRZ를 분리한 후에만 외부 공백을 정규화하고, 각 줄에 정확히 30, 36 또는 44자가 필요하도록 요구하십시오.
OCR 출력을 진실로 간주
OCR은 일반적으로 O와 0, I와 1, B와 8을 혼동합니다. 전역 교체를 적용하지 마십시오. 문자는 문서 번호에 유효하며, 숫자는 날짜에 유효합니다. 필드의 허용된 문자 집합, 체크 디지트, VIZ 및 다른 캡처를 사용하여 복구를 유도하십시오. 원시 OCR 결과와 모든 수정을 모두 기록하십시오.
채움 문자를 너무 일찍 제거
<는 패딩, 구분 기호, 지정되지 않은 값 또는 스키마에 필요한 대체를 의미할 수 있습니다. 먼저 위치를 파싱하십시오. 선택된 필드 내에서만 채움 문자를 해석하십시오.
MRZ가 인쇄된 이름을 보존한다고 가정
MRZ는 구두점을 생략하고, 국가별 문자를 음역하며, 이름이 맞도록 잘라낼 수 있습니다. <<는 식별자 그룹을 구분하고, 그룹 내의 <는 구성 요소를 구분합니다. 원시 MRZ 이름과 문서의 시각적 또는 권위 있는 이름을 서로 덮어쓰지 않고 별도로 저장하십시오.
사용 가능한 이름의 마지막 위치에 있는 알파벳 문자는 잘림 가능성을 나타냅니다. 이름이 필드를 정확히 채울 수 있으며 동일한 신호를 유발할 수 있으므로 이를 불확실성으로 처리하십시오.
잘못된 세기 추론
MRZ 생년월일 및 만료일은 두 자리 연도를 사용합니다. 체크 디지트는 인쇄된 여섯 자리 숫자를 검증하지만 세기를 선택하지는 않습니다. 문서 유형, 만료 규칙, 캡처 날짜, 소지자 컨텍스트 및 명시적 정책을 사용하여 전체 날짜를 해결하십시오. 나중에 규칙이 변경되어도 감사할 수 있도록 원시 YYMMDD 값을 유지하십시오.
세 글자 코드를 일반적인 국가 라이브러리 조회로 처리
발행 기관 및 국적은 ICAO Doc 9303에 지정된 코드 집합을 사용하며, 여기에는 국가뿐만 아니라 기관 및 특수 값도 포함됩니다. 엄격한 ISO 전용 매핑은 유효한 문서를 거부하거나 발행 기관을 잘못 분류할 수 있습니다. 파서에서 사용되는 ICAO 코드 테이블을 버전 관리하고 테스트하십시오.
발행 기관 옵션 및 긴 문서 번호 무시
선택적 데이터는 발행 기관이 정의하며, 긴 문서 번호 규칙은 연속 문자 및 체크 디지트의 위치를 변경할 수 있습니다. 모든 선택적 필드에 보편적인 의미를 할당하거나 형식별 증거 없이 문서 번호로 연결하지 마십시오.
실패한 체크 디지트를 자동으로 "수정"
실패한 디지트는 눈부심, 잘림, 손상된 줄, 지원되지 않는 발행 기관 규칙 또는 조작으로 인해 발생할 수 있습니다. 원시 캡처를 보존하고, 실패한 필드를 식별하며, 제어된 재캡처 또는 검토를 요청하십시오. 자동 수정은 실패를 이해하는 데 필요한 증거를 지웁니다.
MRZ 대 NFC 칩 데이터
MRZ와 NFC는 서로 보완적이며, 동일한 검사의 경쟁 버전이 아닙니다.
| 속성 | 인쇄된 MRZ | 비접촉식 전자여권 또는 전자 신분증 칩 |
|---|---|---|
| 캡처 | 카메라, 스캐너 또는 수동 전사 | NFC 지원 리더기 |
| 데이터 | 선택된 고정 너비 신원 및 문서 필드 | 구조화된 데이터 그룹, 잠재적으로 고품질 사진 포함 |
| 오류 제어 | 모듈러스-10 체크 디지트 | 데이터 그룹 해시 및 인증 시 디지털 서명 |
| 진정성 | MRZ만으로는 확립되지 않음 | 수동 인증은 발행 기관 서명 및 데이터 무결성을 확립할 수 있음 |
| 복제 방지 | 없음 | 지원되는 경우 능동 인증 또는 칩 인증이 증거를 제공할 수 있음 |
| 가용성 | 기계 판독 가능 여행 문서 전반에 걸쳐 광범위함 | 지원되는 비접촉식 칩 및 판독 가능한 장치 경로가 있는 문서만 해당 |
MRZ는 칩 액세스에도 참여할 수 있습니다. ICAO의 전자여권 접근 제어 지침은 기본 접근 제어가 여권 데이터 페이지(일반적으로 MRZ를 통해)에서 읽은 데이터로부터 접근 키를 파생한다고 설명합니다. PACE는 최신 문서에서 발견되는 더 강력한 접근 제어 프로토콜입니다. 접근 제어는 칩 통신을 보호하며, 발행 기관의 서명을 인증하는 것과는 다릅니다.
접근 후, 수동 인증은 디지털 서명을 확인하여 검사 시스템이 칩 데이터가 발행 기관에 의해 저장되었고 나중에 변경되었는지 여부를 판단할 수 있도록 합니다. 선택적인 능동 또는 칩 인증 메커니즘은 복제 방지 증거를 추가할 수 있습니다.
따라서 강력한 문서 흐름은 다음을 수행할 수 있습니다.
- MRZ를 캡처하고 구조 및 체크 디지트를 검증합니다.
- 필요한 접근 데이터를 사용하여 보호된 NFC 세션을 설정합니다.
- 칩 데이터 그룹을 읽습니다.
- 신뢰할 수 있는 발행 기관 인증서에 대해 수동 인증을 수행합니다.
- 문서가 지원하는 경우 복제 방지 메커니즘을 수행합니다.
- 칩, MRZ 및 보이는 문서 데이터를 비교합니다.
- 신청자가 문서와 연결되어 있는지 별도로 확인합니다.
서명을 검증하지 않고 칩을 읽는 것은 이를 인증하는 것과 동일하지 않습니다. 마찬가지로 유효한 칩만으로는 현재 신청자가 정당한 소지자임을 증명하지 못합니다.
구현 및 보안 체크리스트
MRZ 파서를 출시하기 전에:
- 필드를 자르기 전에 정확한 줄 기하학적 형태로부터 TD1, TD2 또는 TD3를 감지합니다.
- 원시 이미지, 원시 OCR 줄, 정규화된 줄 및 파서 버전을 보존합니다.
- 제어된 정규화 후 허용된 MRZ 문자 레퍼토리만 수용합니다.
- 프로그래밍 언어의 인덱싱으로 신중하게 변환된 1-기반 ICAO 위치로 파싱합니다.
- 적용 가능한 모든 필드 디지트와 형식별 복합 디지트를 검증합니다.
- 발행 기관이 허용하는 빈 필드 및 긴 문서 번호 사례를 지원합니다.
- 원시 및 해석된 날짜, 코드, 이름 및 선택적 데이터를 별도로 보존합니다.
- 잘림 및 세기 추론을 명시적 불확실성으로 표면화합니다.
- MRZ 결과를 VIZ 또는 칩 데이터와 비교하되, 불일치를 자동으로 덮어쓰지 않습니다.
- MRZ 문자열을 분석, URL, 충돌 보고서 또는 일상적인 로그에 배치하지 않습니다.
- 민감한 보존 데이터를 암호화하고 접근, 보존 및 삭제 정책을 적용합니다.
- 발행 기관, 형식, 긴 이름, 손상된 캡처 및 OCR 혼동에 걸쳐 실제 샘플을 테스트합니다.
- 줄 길이, 채움 문자, 잘못된 문자 및 체크 디지트 실패를 퍼즈 테스트합니다.
- 문서 수락 정책을 파싱 성공과 분리합니다.
파서는 "어떤 문자가 인코딩되었으며, 체크 디지트가 일관성이 있는가?"라는 질문에 답합니다. 문서 인증 및 소지자 확인에는 추가 증거가 필요합니다.
Didit의 역할
Didit은 신분증 확인 및 NFC 판독을 별도의 문서 및 신원 모듈로 제공합니다. 공개된 가격은 각각 $0.15입니다. 워크플로우 오케스트레이터는 무료로 제공됩니다.
이러한 제품 링크는 이 가이드의 신뢰 구분을 변경하지 않습니다. MRZ 파싱, 칩 인증, 문서 정책 및 소지자 연결은 별개의 결론으로 유지됩니다. 현재 모듈 요금은 가격 페이지에서 확인할 수 있습니다.
자주 묻는 질문
MRZ는 무엇의 약자인가요?
MRZ는 기계 판독 영역(Machine Readable Zone)의 약자로, 기계 판독 가능 여행 문서에 인쇄된 표준화된 고정 너비 문자 영역입니다.
여권의 MRZ는 어디에 있나요?
TD3 여권 데이터 페이지에서는 일반적으로 데이터 페이지 하단에 줄당 44자로 구성된 두 줄 블록입니다.
TD1, TD2, TD3의 차이점은 무엇인가요?
이들은 ICAO 문서 크기 및 MRZ 레이아웃입니다. TD1은 30자 3줄, TD2는 36자 2줄, TD3는 44자 2줄을 사용합니다.
MRZ 체크 디지트로 여권이 위조되지 않았음을 증명할 수 있나요?
아니요. 많은 우발적인 판독 오류를 감지합니다. 이는 디지털 서명이 아니며, 데이터가 변경된 후에는 재계산될 수 있습니다.
MRZ는 왜 < 문자를 사용하나요?
사용되지 않는 위치를 채우고, 필요한 경우 공백이나 지원되지 않는 문장 부호를 대체하며, 이름 구성 요소를 구분하고, 정의된 컨텍스트에서 지정되지 않은 필드를 나타낼 수 있습니다.
MRZ와 NFC 칩은 동일한 데이터인가요?
아니요. 일부 신원 필드는 겹치지만, 칩은 구조화된 데이터 그룹과 암호화 보안 개체를 저장할 수 있습니다. 적절한 칩 인증은 서명된 데이터가 발행 기관에서 왔으며 변경되지 않았다는 증거를 제공할 수 있습니다.
애플리케이션은 OCR로 수정된 MRZ 데이터를 신뢰해야 하나요?
명시적인 증거가 있는 경우에만 가능합니다. 수정은 필드 인식이 가능해야 하고, 체크 디지트 또는 다른 소스에 의해 지원되어야 하며, 원시 OCR 결과와 함께 보존되어야 합니다. 해결되지 않은 불일치는 재캡처 또는 검토를 유발해야 합니다.
주요 참고 자료
- ICAO Doc 9303 시리즈: 기계 판독 가능 여행 문서
- ICAO Doc 9303 파트 3: 모든 MRTD에 공통적인 사양
- ICAO Doc 9303 파트 4: 기계 판독 가능 여권 및 기타 TD3 크기 MRTD
- ICAO Doc 9303 파트 5: TD1 크기 기계 판독 가능 공식 여행 문서
- ICAO Doc 9303 파트 6: TD2 크기 기계 판독 가능 공식 여행 문서
- ICAO 전자여권 검증 로드맵: 전자여권 칩 접근
- ICAO 전자여권 검증 로드맵: 검사 시스템 요구 사항
결론
MRZ는 고정된 줄 길이, 고정된 위치, 제한된 문자 집합 및 예측 가능한 체크 디지트 덕분에 성공적입니다. 이러한 제약 조건은 규율 있는 파싱을 요구합니다. 원시 구조를 그대로 유지하고, 올바른 TD 레이아웃을 선택하고, 정확한 보호 범위를 계산하며, 이름, 날짜 및 발행 기관별 옵션에 대한 불확실성을 보존하십시오.
그리고 증거가 증명하는 한계에서 멈추십시오. 유효한 MRZ는 유용한 상호 운용 가능한 데이터입니다. 인증된 NFC 칩 데이터는 암호화된 문서 증거를 추가할 수 있습니다. 소지자 확인 및 최종 비즈니스 결정은 별개의 단계로 남아 있습니다.