헤더 (2자)
포맷 코드 “M” + 구간 수(1-4). 다구간 항공권, 예를 들어 SFO → JFK → LHR는 구간 수가 2이며 두 개의 구간 레코드를 연달아 담습니다.
표준 · IATA 바코드 탑승권
항공사가 당신의 여정에 대해 아는 거의 모든 것입니다. 탑승권에 있는 2D 바코드(QR, Aztec, 또는 PDF417)는 당신의 전체 이름, 6~7자리 예약 참조 번호, 항공사와 편명, 노선, 출발 날짜, 좌석, 객실 등급, 체크인 순서, 그리고 등록된 상용 고객 번호를 담고 있습니다. 당신의 이름과 그 예약 번호만 있으면 항공사 웹사이트에 로그인해 예약에 접근할 수 있으며, 그래서 탑승권 사진을 공개적으로 올리는 것은 실질적인 보안 위험입니다.
The standard is IATA Resolution 792, maintained by the International Air Transport Association as part of the Passenger Services Conference Recommended Practices. It defines a fixed-width text encoding that fits inside a 2-D barcode and contains everything the gate agent's scanner needs to confirm your booking.
컨테이너(심볼로지)는 유연합니다. 오늘날 대부분의 항공사는 QR 코드를 사용하고, 유럽 고속철도와 SBB는 Aztec을 사용하며, 일부 구형 항공사는 여전히 PDF417을 사용합니다. 인코딩된 텍스트는 세 가지 모두에서 동일하며, 시각적 인코딩만 다릅니다. 우리 스캐너는 세 심볼로지를 모두 읽고, 그 결과 텍스트에 동일한 디코더를 적용합니다.
모든 탑승권의 필수 부분은 정확히 60자입니다: 2자 헤더(포맷 코드 “M” + 구간 수) 다음에 20자의 승객 이름, 1자의 전자 항공권 표시, 그리고 37자의 구간 데이터가 옵니다. 다구간 연결편은 구간당 37자를 추가합니다. 조건부 영역(필수 60자 이후)에는 보통 상용 고객 번호, 운임 기준, 체크인 출처(웹 / 키오스크 / 직원), 그리고 항공사가 덧붙인 보안 데이터가 담깁니다.
포맷 코드 “M” + 구간 수(1-4). 다구간 항공권, 예를 들어 SFO → JFK → LHR는 구간 수가 2이며 두 개의 구간 레코드를 연달아 담습니다.
“LASTNAME/FIRSTNAME” 형식으로 왼쪽 정렬되고 공백으로 채워집니다. 긴 이름은 잘립니다. 탑승권에 인쇄된 화면상의 이름이 항상 정보의 기준입니다.
전자 항공권은 “E”(모든 최신 탑승권), 종이 항공권은 “ ”(사실상 볼 일 없음)입니다.
각 구간 뒤에 항공사별 추가 정보를 담은 선택적 영역이 옵니다: 상용 고객 번호, 운임 기준 코드, 수하물 허용량, 항공사별 보안 데이터, 그리고 그 외 흔치 않은 몇몇 필드입니다. 여기서 가장 개인정보에 민감한 항목은 상용 고객 번호로, 당신이 탔던 모든 항공편을 하나의 계정에 연결하는 오래 유지되는 식별자입니다.
일부 항공사는 탑승구에서 오프라인으로 탑승권을 검증할 수 있도록 서명을 덧붙입니다. 이를 강제하는 곳은 거의 없습니다. 서명의 유무는 본문에 담긴 내용을 바꾸지 않습니다.
승객 이름 + PNR(7자 예약 참조 번호)의 조합은 대부분의 항공사에서 사실상 비밀번호 역할을 합니다. “내 예약 관리” 조회는 이 두 필드를 신원 증명으로 받아들입니다. 이를 손에 넣으면 공격자는 다음을 할 수 있습니다:
여러 항공사는 과거 사건에 대응해 내 예약 관리 흐름에 다중 요소 신원 증명을 추가했습니다. 그렇지 않은 곳도 많습니다.
마일리지 빼돌리기 공격은 여러 차례 기록되었습니다. 탑승권 사진을 트위터나 인스타그램에 올린 승객들은 업그레이드를 잃거나, 예약이 변경되거나, 몇 시간 안에 일정에 맞춘 피싱의 표적이 되었습니다.
승객 이름(이름 성), 항공사 + 편명(0 제거, 예: “AA123”), 노선(SFO → JFK), ISO 형식 날짜(율리우스 통산일을 스마트 연도 롤포워드로 확장), 좌석(0 제거, 예: “12A”), 객실 등급, 일련번호, 상태(사람이 읽을 수 있는 라벨 포함, “탑승 완료”, “라운지 이용” 등). 다구간 탑승권은 구간별 행 라벨이 표시됩니다.
PNR은 우리가 비밀번호와 2FA 비밀에 사용하는 것과 동일한 탭하여 보기 컴포넌트 뒤에 가려집니다. 보기 버튼을 누르지 않은 채 결과 화면을 캡처해도 예약 참조 번호는 노출되지 않습니다. 조건부 영역에 있는 상용 고객 번호는 서버 분석기에서 아예 추출하지 않습니다. 이는 여러 여행을 하나로 묶는 안정적인 신원 정보이며, 결과 페이지에 표시하면 개인정보 보호 태도를 무너뜨리기 때문입니다.
사람들이 자기 탑승권을 스캔하는 정당한 세 가지 이유:
스캐너는 당신의 브라우저에서 실행됩니다. 디코딩된 텍스트만 우리 서버에 전달되며(이미지는 아님), 결과는 기본적으로 PNR을 가립니다. 기록용으로 결과를 캡처하더라도, 캡처 전에 명시적으로 드러내지 않는 한 PNR은 가려진 채로 유지됩니다.
바코드를 촬영하거나(또는 스캐너 페이지의 카메라를 사용해) 끌어다 놓으세요. 결과에는 PNR이 가려진 채로 여정의 모든 구간이 표시됩니다.