Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
AAMVA-PDF417-Vulnerability-Research — AAMVA 준수 ID 시스템에서의 체계적인 PDF417 검증 취약점에 대한 연구 (CVE-2025-31336, CVE-2025-31337, scr1841160) | Kitploit
도구/GitHubGitHub/coleleavitt/aamva-pdf417-vulnerability-research
Vulnerability AnalysisExploitationCryptographyPenetration TestingPapers & ResearchLearning & EducationArchived
GitHubcoleleavitt/aamva-pdf417-vulnerability-research

AAMVA-PDF417-Vulnerability-Research

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

AAMVA 준수 ID 시스템에서의 체계적인 PDF417 검증 취약점에 대한 연구 (CVE-2025-31336, CVE-2025-31337, scr1841160)

저장소 보기
11년 전아직 검토되지 않음

PDF417 ID 검증 취약점 연구

개요

이 저장소는 정부 신분증, 기업 솔루션 및 소비자 애플리케이션에 영향을 미치는 AAMVA 표준 PDF417 바코드 검증 시스템의 심각한 취약점을 문서화한 포괄적인 보안 연구를 포함합니다. 이 연구는 ID 검증 시스템이 운전면허증 바코드를 처리하는 방식의 체계적인 결함을 입증하는 완전한 기능의 개념 증명(PoC)을 포함합니다.

중요: 이 코드는 보안 연구 목적으로만 제공됩니다. 허용된 사용법은 LICENSE.md 파일을 참조하세요.

연구 윤리 진술

이 연구는 다음 원칙을 준수하여 수행되었습니다:

  • 조정된 취약점 공개 원칙
  • 120일 이상의 공급업체 통지 기간 (표준 90일 초과)
  • 합성 데이터만 사용 (실제 개인 정보 없음)
  • 교육/방어적 보안 목적
  • ISO/IEC 29147 취약점 공개 표준
  • MITRE CVE 프로그램 및 CISA VDP를 통한 책임 있는 공개

관련 CVE

이 연구는 다음에 할당된 취약점을 입증합니다:

  • CVE-2025-31337 - IDScan.net 검증 결함
  • CVE-2025-31336 - TokenWorks 검증 취약점

공개 상태

  • 공개일: 2025년 7월 1일
  • CVE 상태: 게시됨 (CISA 사건 종결에도 불구하고)
  • VINCE 사례: VU#396042 (CISA에 의해 "취약점 아님"으로 종결됨)
  • 공개 기간: 120일 이상 완료
  • MITRE CVE 목록:
    • CVE-2025-31337
    • CVE-2025-31336

CVSS v3.1 위험 평가

기본 점수: 10.0 (심각)
벡터: AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:N

세부 분석:

  • 공격 벡터: 디지털 API를 통한 네트워크 이용 가능
  • 공격 복잡도: 낮음 (최소한의 노력 필요)
  • 필요 권한: 없음 (인증 불필요)
  • 사용자 상호작용: 필요 없음
  • 범위: 변경됨 (종속된 ID 검증 시스템에 영향)
  • 기밀성 영향: 높음 (무단 데이터 액세스 가능)
  • 무결성 영향: 높음 (완전한 검증 우회)
  • 가용성 영향: 없음 (직접적인 가용성 영향 없음)

악용 예시:```rust // Temporal validation bypass demonstration let license = CaliforniaLicense::builder() .birth_date("06201500") // Year 1500 - Medieval era .validate(); // Returns OK in affected systems

root@kitploit:~
## 조정 내역 및 공급업체 응답 요약

### 공개 타임라인
- **2025년 3월 22일**: MITRE에 최초 CVE 요청 제출
- **2025년 3월 25일**: IDScan.net 개념 증명 제출 및 확인
- **2025년 3월 28일**: TokenWorks 취약점 확인 수신
- **2025년 4월 3일**: CISA VINCE 사건 VU#396042 공식 개시
- **2025년 4월 9~16일**: 영향받은 공급업체와의 광범위한 기술 논의
- **2025년 6월 18일**: CISA 사건 종결 결정 ("이해된 위험"으로 dismiss)
- **2025년 7월 1일**: 연장된 조정 기간 후 공개 공개

### 공급업체 응답 및 기술적 이견

#### IDScan.net (Joshua Sheetz, CISO/VP Engineering)
**초기 응답**: *"조사 결과, 단지 바코드 데이터를 스푸핑한 것으로 보입니다. 이는 일반적인 표준입니다."*

**기술적 입장**:
- 파서가 "단지 데이터를 읽을 뿐"이며 검증 책임이 없다고 주장
- 불가능한 값(524세 개인)이 "파서"에서 허용 가능하다고 주장
- 구현별 취약점을 AAMVA 표준 한계로 dismiss
- "수백 가지 알고리즘 보안 검사"에 대한 자체 마케팅 주장과 모순

**마케팅 vs. 현실 격차**:
- VeriScan 웹사이트는 "가짜 ID 탐지 / ID 인증"을 약속
- "가짜 ID를 잡아내고" "보안 검사"를 수행한다고 주장
- 기술 분석 결과, 형식 준수 외에는 최소한의 검증만 있는 것으로 드러남

#### TokenWorks 응답
- 문제를 "DMV 구현 문제"로 인정
- 공급업체의 암호화 검증 책임을 축소
- 수정 일정 제공되지 않음

#### CISA 결정 (2025년 6월 18일)
**최종 결정**: *"CISA는 이것이 AAMVA DL 표준에서 이해된 위험이므로 취약점이 아니라고 결정했습니다."*

**CISA 입장의 기술적 분석**:
이 결정은 표준 한계와 구현별 취약점을 혼동한 것으로 보입니다. 연구는 별개의 기술적 문제를 문서화했습니다:

1. **다중 계층 취약점 분류**:
    - **1계층**: AAMVA 표준 암호화 결함 (인정됨)
    - **2계층**: 구현별 검증 실패 (CISA에 의해 dismiss됨)
    - **3계층**: 마케팅 주장 대 실제 보안 기능 (다루지 않음)

2. **문서화된 구현별 문제**:
    - **CWE-20 (Improper Input Validation)**: 생리학적으로 불가능한 값 수용
    - **CWE-345 (Insufficient Verification of Data Authenticity)**: 암호화 검증 없음
    - **CWE-770 (Allocation of Resources Without Limits)**: 속도 제한 없음
    - **CWE-841 (Improper Enforcement of Behavioral Workflow)**: 패턴 탐지 없음

## 개념 증명 검증 증거

### 미주리주 ShowMeID 정부 애플리케이션 우회
![ShowMeID Validation Bypass](https://assets.kitploit.com/production/public/readmes/23984/099f240df9f0f1d9343e14ec21b05866dc6c69658b84d15d99def82b996ddeeb.png) 미주리주 ShowMeID 우회 증거```shell
gpg --verify signatures/show_me_id/img.png.asc scan_proof/show_me_id/img.png

영향: 미주리 주 공식 신분증 확인 애플리케이션의 완전한 우회로, 주 차원의 신원 확인 시스템의 시스템적 취약점을 입증합니다.

VeriScan Enterprise 검증 우회

캘리포니아 면허증 검증 실패

캘리포니아 조 바이든 우회```shell gpg --verify signatures/veriscan/california/andrew_before.png.asc scan_proof/veriscan/california/andrew_before.png gpg --verify signatures/veriscan/california/andrew_after.png.asc scan_proof/veriscan/california/andrew_after.png

root@kitploit:~
#### 애리조나 라이선스 검증 우회
![애리조나 콜](https://assets.kitploit.com/production/public/readmes/23984/7e8f9a29f041679502b2f819dbbde3f2d2ab975146f1e8f6d67251e79f7e4b9a.png)
![애리조나 콜 우회](https://assets.kitploit.com/production/public/readmes/23984/59da26c90029d839f7a86474479cbb885c5b741ef97433afed022fa92094f22a.png)
![애리조나 만장일치](https://assets.kitploit.com/production/public/readmes/23984/038205c2bf9bdff107263a7ea60258fb28a1da6eefce45e3822435159675e840.png)
![애리조나 만장일치 우회](https://assets.kitploit.com/production/public/readmes/23984/afd56310fbeca17a0c79884bb857468a6fc7126b3dd5d8dcd1ae1e02d68c5c80.png)```shell
gpg --verify signatures/veriscan/arizona/unanimous.png.asc scan_proof/veriscan/arizona/unanimous.png
gpg --verify signatures/veriscan/arizona/unanimous_1.png.asc scan_proof/veriscan/arizona/unanimous_1.png

플로리다 라이선스 유효성 검사 실패

Flordia 실제 Florida Wendy 합성```shell gpg --verify signatures/veriscan/florida/wendy_synthesized.png.asc scan_proof/veriscan/florida/wendy_synthesized.png

root@kitploit:~
#### 조지아 라이선스 검증 우회
![조지아 실제](https://assets.kitploit.com/production/public/readmes/23984/dd80e2e66632a4e816e8d3cc4d7d30f8c008357cf0e8fc0caa3ef99f04f5c1a6.png)
![조지아 고용 우회](https://assets.kitploit.com/production/public/readmes/23984/bfe63066cf544c85fe871a4d9dbfd824094c65e56d191655bf6b424a3a2d04a5.png)```bash
# Verify Georgia bypass evidence
gpg --verify signatures/veriscan/georgia/hire_me_2.png.asc scan_proof/veriscan/georgia/hire_me_2.png

뉴저지 면허증 검증 실패

뉴저지 Ana 실제 뉴저지 Wendy 합성```shell gpg --verify signatures/veriscan/new_jersey/wendy_synthesized.png.asc scan_proof/veriscan/new_jersey/wendy_synthesized.png

root@kitploit:~
#### 사우스캐롤라이나 라이선스 검증 우회
![사우스캐롤라이나 실제](https://assets.kitploit.com/production/public/readmes/23984/6d9f52c3e11d0e34ea345594684296837b36f19a9fb5d0d07f6453f0d43d4bd7.png)
![사우스캐롤라이나 비방 우회](https://assets.kitploit.com/production/public/readmes/23984/7a326716f3bb582882fcb5026f46b7710c72838814c2628e66f3d05f5f733f85.png)```shell
gpg --verify signatures/veriscan/south_carolina/slander.png.asc scan_proof/veriscan/south_carolina/slander.png

텍사스 라이선스 검증 실패

텍사스 비방 우회 텍사스 우회 증거 - 일관된 취약점 패턴을 주 구현 전반에 걸쳐 보여줌```shell gpg --verify signatures/veriscan/texas/slander.png.asc scan_proof/veriscan/texas/slander.png

root@kitploit:~
## 기술적 증거 및 공급업체 반박

### 문서화된 취약점

#### 1. 시간 유효성 검증 우회
**발견 사항**: VeriScan이 중세 시대(예: 1500년)의 생년월일을 수락함
**공급업체 응답**: *"특히 파서에서 경계선을 어디에 그을 것인가"*
**기술적 반박**: 인간 생리학적 한계는 명확한 유효성 검증 경계(최대 약 122년)를 제공함

#### 2. 패턴 탐지 실패
**발견 사항**: 동일한 면허 번호가 다른 이름으로 반복적으로 수락됨
**공급업체 응답**: *"첫 번째 스캔이 실제인지 두 번째 스캔이 실제인지 알 수 없습니다"*
**기술적 반박**: 패턴 탐지는 진위 여부와 관계없이 의심스러운 행동을 플래그 지정함

#### 3. 마케팅 주장 불일치
**발견 사항**: 제품이 "보안 검사" 및 "가짜 신분증 탐지"를 제공한다고 마케팅됨
**공급업체 응답**: *"파싱 도구만 사용하는 경우... 보유한 기능 세트에 제한됩니다"*
**기술적 반박**: 마케팅 자료는 명시적으로 검증 기능을 주장함

#### 4. 상업용 면허 영향
**발견 사항**: CDL(상업용 운전면허) 우회는 공공 안전 위험을 초래함
**공급업체 응답**: 구체적으로 다루지 않음
**기술적 영향**: 위험물/운송 자격 증명 위조 가능성

## CVE-2025-31337: IDScan.net 검증 결함

### 영향을 받는 제품
- **VeriScan** 기업 검증 플랫폼
- **VSCloud Enterprise** 클라우드 기반 검증
- **IDScan API를 사용하는 모바일 검증 애플리케이션**

### 취약점 세부 사항

**핵심 기술적 문제**:
1. **시간 유효성 검증 실패**:  
   - 생리학적으로 불가능한 생년월일(예: 1500년)을 수락함
   - 연령 계산에 대한 상한 검증 없음
   - 미래 날짜의 발급/만료일이 검증 통과

2. **헤더 전용 검증**:  
   - 콘텐츠 진위보다 AAMVA 형식 준수 검증
   - 암호화 서명 검증 누락
   - 논리적 일관성 확인 없는 정적 필드 검증

3. **정적 IIN 수락**:  
   - 실시간 발급자 데이터베이스 교차 확인 없음
   - 유효한 주 IIN(예: 636014=CA)을 합성 데이터와 함께 수락
   - 권위 있는 DMV 기록에 대한 검증 누락

## CVE-2025-31336: TokenWorks ID 검증 취약점

### 영향을 받는 제품
- **IDentiFake Plus** 검증 단말기
- **AgeVisor 시리즈** 연령 확인 장치  
- **IDVisor Sentry** 보안 스캐닝 시스템
- **제품 라인 전반의 모든 현재 버전**

### 취약점 세부 사항

**근본 원인**:  
PDF417 바코드 시간 데이터 필드 및 하위 파일 마커의 부적절한 검증으로 인해 TokenWorks 검증 시스템을 우회하는 완전한 합성 ID 생성이 가능해짐.

**기술적 악용 벡터**:
1. **생년월일 필드 조작**:
   - 시스템은 검증 없이 1400-2025년의 날짜를 수락함
   - 생리학적 경계 확인 미구현
   - 중세 날짜(예: 1400년대)가 합법적인 것으로 통과됨

2. **하위 파일 오프셋 위조**:
   - 위조된 ZC/ZF/ZG 주별 마커가 수락됨
   - 계산된 오프셋이 형식 검증을 우회함
   - 알려진 패턴에 대한 교차 참조 검증 누락

## AAMVA ID 표준의 시스템적 취약점

### 근본 원인 분석
취약점은 **AAMVA DL/ID-2020 표준**의 근본적인 결함에서 비롯됩니다:

**중요한 표준 결함**:
- **암호화 검증 요구 사항 없음**: 디지털 서명 사양 누락
- **부적절한 시간 범위 확인**: 섹션 4.3.2에 연도 검증 요구 사항 없음
- **데이터 진위보다 형식 준수 우선**: 콘텐츠 검증보다 구문 분석 정확성 중요시

### 영향을 받는 시스템 매트릭스

| 시스템 유형          | 예시                         | 영향 수준   | 검증 우회       |
|----------------------|------------------------------|--------------|-------------------|
| 정부 ID 앱           | Missouri ShowMeID v3.0.14   | **심각**     | 완전              |
| 기업용 스캐너        | TokenWorks IDentiFake Plus   | **높음**     | 시간/패턴         |
| 소비자 도구          | Scannr iOS v4.2.1+          | **높음**     | 형식 기반         |
| KYC 플랫폼           | IDScan.net VSCloud          | **심각**     | 인증              |

## 저장소 구조```shell
./
├── Cargo.lock
├── Cargo.toml                  # Rust project configuration
├── generated_pdf417.png        # Example output barcode
├── LICENSE.md                  # Security Research License
├── README.md                   # This comprehensive documentation
├── scan_proof/                 # Validation evidence and screenshots
│   ├── show_me_id/             # Missouri ShowMeID bypass evidence
│   │   └── img.png
│   └── veriscan/               # VeriScan validation bypasses
│       ├── arizona/            # Arizona license validation tests
│       │   ├── cole_after.png
│       │   ├── cole_before.png
│       │   ├── unanimous_1.png
│       │   └── unanimous.png
│       ├── california/         # California license validation tests  
│       │   ├── andrew_before.png
│       │   ├── andrew_after.png
│       │   └── joe_biden.png
│       ├── florida/            # Florida license validation tests
│       │   ├── before.png
│       │   └── wendy_synthesized.png
│       ├── georgia/            # Georgia license validation tests
│       │   ├── hire_me_2.png
│       │   └── lucas_real.png
│       ├── new_jersey/         # New Jersey license validation tests
│       │   ├── ana_real.png
│       │   └── wendy_synthesized.png
│       ├── south_carolina/     # South Carolina license validation tests
│       │   ├── jason_real.png
│       │   └── slander.png
│       └── texas/              # Texas license validation tests
│           └── slander.png
├── signatures/                 # PGP signatures for all evidence
│   ├── show_me_id/
│   │   └── img.png.asc
│   └── veriscan/
│       ├── arizona/
│       │   ├── unanimous_1.png.asc
│       │   └── unanimous.png.asc
│       ├── california/
│       │   └── joe_biden.png.asc
│       ├── florida/
│       │   └── wendy_synthesized.png.asc
│       ├── georgia/
│       │   └── hire_me_2.png.asc
│       ├── new_jersey/
│       │   └── wendy_synthesized.png.asc
│       └── south_carolina/
│           └── slander.png.asc
├── vince_coordination/         # CISA VINCE case documentation
│   └── VU396042_thread.pdf     # Complete coordination thread
├── scripts/
│   └── barcode_reader.sh       # Barcode validation utility
└── src/                        # Proof of Concept implementation
    ├── main.rs                 # Interactive demonstration program
    ├── states/                 # State-specific implementations
    │   ├── california_cdl.rs   # California Commercial Driver's License
    │   ├── california.rs       # California standard license
    │   ├── florida.rs          # Florida license implementation
    │   ├── georgia.rs          # Georgia license implementation
    │   ├── illinois.rs         # Illinois license implementation
    │   ├── mod.rs              # States module
    │   ├── new_jersey.rs       # New Jersey license implementation  
    │   ├── south_carolina.rs   # South Carolina license implementation
    │   └── texas.rs            # Texas license implementation
    └── utils/                  # Core functionality
        ├── decoding/           # PDF417 barcode decoding
        │   ├── base64_to_str.rs
        │   ├── decode.rs
        │   ├── errors.rs
        │   ├── mod.rs
        │   └── tests.rs
        └── encoding/           # PDF417 barcode generation
            ├── encode.rs
            └── mod.rs

핵심 보안 취약점

기본적인 취약점은 ID 확인 생태계의 여러 계층에 걸쳐 나타납니다:

1. 형식 전용 검증 접근 방식

기술적 문제: 검증 시스템은 데이터의 내용이나 출처를 인증하지 않고 AAMVA 형식 준수 여부만 검증합니다.

영향: 적절한 PDF417 구조와 주(state)별 형식 지정을 유지하면 완전히 합성된 자격 증명도 검증을 통과할 수 있습니다.

2. 누락된 데이터베이스 상호 참조

기술적 문제: 시스템이 발급 기관의 권위 있는 기록과 바코드 정보가 일치하는지 확인하지 않습니다.

영향: 유효한 형식이지만 개인 정보가 완전히 조작된 자격 증명을 생성할 수 있습니다.

3. 헤더/오프셋 조작 취약점

기술적 문제: 합성 데이터를 사용하면서 기술적으로 올바른 오프셋 값을 계산함으로써, 조작된 자격 증명이 구문 분석 검증을 우회합니다.

영향: 정교한 공격자는 형식 검사와 기본 일관성 검사를 모두 통과하는 자격 증명을 생성할 수 있습니다.

4. 시간 논리 검증 실패

기술적 문제: 시스템이 생리학적, 논리적으로 불가능한 값(중세 시대 생년월일, 미래 발급일)을 허용합니다.

영향: 검증 워크플로에 기본적인 온전성 검사가 전혀 없음을 보여줍니다.

5. 상업용 면허 보안 격차

기술적 문제: 상업용 운전 면허증과 같은 강화된 보안 문서도 동일한 악용 기법에 취약합니다.

영향: 위험물/운송 자격 증명 위조를 통해 심각한 공공 안전 위험을 초래합니다.

주별 구현 분석

본 연구는 7개 주에 대한 포괄적 구현을 포함하며, 다양한 인코딩 체계에서 일관된 취약점 패턴을 보여줍니다:

캘리포니아 (california.rs, california_cdl.rs)

  • 형식: 고유 문서 식별자 패턴을 가진 ZC 하위 파일
  • CDL 기능: 전문 상업용 운전 추천 사항(HNX - 위험물/탱커/트리플 트레일러)
  • 취약점: 시간 검증 우회로 중세 시대 생년월일이 감지되지 않고 허용됨

플로리다 not available (florida.rs)

  • 형식: 주별 오프셋 계산이 포함된 ZF 하위 파일
  • 고유 기능: 특수 문서 식별자 생성 알고리즘
  • 취약점: 날짜 형식으로 인해 불가능한 시간 값 허용

조지아 (georgia.rs)

  • 형식: 군(county) 정보 필드가 있는 ZG 오프셋 형식
  • 구현: 여러 하위 파일에 걸쳐 주소 정보가 중복됨
  • 취약점: 알고리즘으로 생성된 면허 번호가 역공학 가능

일리노이 not available (illinois.rs)

  • 형식: 추가 데이터 필드가 있는 ZI 오프셋 형식
  • 구현: 특수 패턴 기반 문서 식별자
  • 취약점: 중복 필드가 일관성에 대해 적절히 검증되지 않음

뉴저지 (new_jersey.rs)

  • 형식: 파생 필드 계산이 포함된 ZN 오프셋 형식
  • 구현: 이름 접두사 형식 및 특수 숫자 필드
  • 취약점: 파생 알고리즘을 복제하여 합성 자격 증명 생성 가능

사우스캐롤라이나 (south_carolina.rs)

  • 형식: 하위 파일 지정자 없음(DLDAQ 대신 DLDCA 사용)
  • 고유 특징: 다른 주와 필드 순서가 다름
  • 취약점: 보안 필드 패턴이 적절히 검증되지 않음

텍사스 (texas.rs)

  • 형식: 텍사스 고유의 ZT 하위 파일 형식
  • 구현: 여러 필드에서 파생된 복잡한 문서 식별자
  • 취약점: 재고 관리 번호 검증 취약점

구현 참고 사항: 수정 가능 값

주별 구현 전반에 걸쳐, 일부 값은 검증을 깨뜨리지 않고 수정할 수 있습니다:

  • '9' 시퀀스: 999999999를 사용하는 필드는 임의의 값으로 수정 가능
  • 'X' 자리 표시자: XXXXX를 사용하는 필드는 모든 문자로 대체 가능
  • 시간 필드: 불가능한 값(중세 시대 생년월일, 미래 발급일)을 포함한 모든 날짜 수정 가능
  • 개인 정보: 이름, 주소를 완전히 조작 가능

이러한 유연성은 관련 시스템에서 포괄적인 데이터 검증의 부재를 강조합니다.

기술 구현 예시

합성 테스트 자격 증명 생성

각 주에 대한 빌더 패턴을 구현에서 제공합니다:```rust // Example demonstrating comprehensive validation bypass use crate::states::california::CaliforniaLicense;

let license = CaliforniaLicense::builder() .expiration_date("12312030") // Future expiration (accepted) .last_name("RESEARCH") // Synthetic data .first_name("TEMPORAL") .middle_name("BYPASS") .issue_date("07012025") // Current date .birth_date("01011500") // Medieval date (accepted by VeriScan) .sex("1") // Male .eye_color("BLU") // Blue eyes .height("070 IN") // Height in inches .address("123 VALIDATION ST") // Synthetic address .city("TESTTOWN") .state("CA") .zip_code("900010000") .license_number("T3ST1234") // Synthetic license number .country("USA") .weight("150") // Weight in pounds .hair_color("BRO") // Brown hair .sequence("99999") // Research sequence number .issuer_identification_number("636014") // Valid CA IIN .redundant_eye_color("BLU") // AAMVA redundant field .alternative_hair_color("BRO") // AAMVA alternative field .build() .expect("Failed to build California license");

// Generate barcode that bypasses VeriScan validation let barcode_data = license.to_barcode();

root@kitploit:~
### 테스트 및 검증```bash
# Run comprehensive test suite
cargo test

# Execute specific vulnerability demonstrations
cargo test -- --nocapture test_temporal_validation_bypass
cargo test -- --nocapture test_commercial_license_spoofing
cargo test -- --nocapture test_cross_state_consistency

# Generate and test specific state implementations
cargo test -- --nocapture test_california_license
cargo test -- --nocapture test_texas_license

설치 및 사용법

사전 요구 사항

  1. 시스템에 Rust와 Cargo가 설치되어 있어야 합니다
  2. 필요한 종속성 (Cargo.toml에 명시됨)

설치```bash

Clone the repository

git clone https://github.com/coleleavitt/AAMVA-PDF417-Vulnerability-Research.git cd AAMVA-PDF417-Vulnerability-Research

Build the project

cargo build --release

Run the interactive demonstration

./target/release/id-validation-poc

root@kitploit:~
### 생성된 바코드 스캔

생성된 바코드는 테스트를 위해 검증 시스템에 제시할 수 있는 PNG 파일로 저장됩니다:```bash
# Using the provided script to read a generated barcode (requires zbar tools)
./scripts/barcode_reader.sh generated_pdf417.png

AAMVA 표준 참조 구현

신체 특성 코드

눈 색상 표준:

  • BLK - 검정
  • BLU - 파랑
  • BRO/BRN - 갈색
  • GRY/GRA - 회색
  • GRN - 초록
  • HAZ/HZL - 헤이즐
  • MAR - 밤색
  • MUL - 여러 색상
  • PNK - 분홍
  • DIC - 이색성
  • UNK - 알 수 없음

머리 색상 표준:

  • BAL - 대머리
  • BLK - 검정
  • BLN/BLD - 금발
  • BRO/BRN - 갈색
  • GRY/GRA - 회색
  • RED/AUB - 빨간색/적갈색
  • SDY - 모래색
  • WHI - 하양
  • UNK - 알 수 없음

주 발급자 식별 번호 (IIN)

  • 캘리포니아: 636014
  • 플로리다: 636010
  • 조지아: 636055
  • 일리노이: 636035
  • 뉴저지: 636036
  • 사우스캐롤라이나: 636430
  • 텍사스: 636015

주요 연구 결과

  1. 체계적 취약성 패턴: 다중 공급업체와 플랫폼에서 일관된 유효성 검사 실패
  2. 암호화 보안 부재: 테스트된 시스템 중 암호화 데이터 검증 또는 디지털 서명을 구현한 시스템 없음
  3. 면허 복제 가능성: 동일한 면허 번호가 감지 없이 다른 개인 정보와 함께 사용 가능
  4. 차원 최적화 요구 사항: 각 주는 최적의 스캐너 인식을 위해 특정 PDF417 바코드 크기를 요구함
  5. 공공 안전 영향: 상업용 운전면허 위조 능력은 심각한 교통 보안 위험을 초래
  6. 조정 프로세스 부적절: 업계 및 규제 대응이 체계적 취약성 공개 프로세스의 격차를 보여줌

검증 및 진위 확인

GPG 서명 검증```bash

Import researcher's public key

curl https://keys.openpgp.org/vks/v1/by-fingerprint/2EFAA4791439CF3547A966801ECC2986AF903402 | gpg --import

Verify research archive integrity

gpg --verify complete-evidence.tar.gz.asc complete-evidence.tar.gz

Verify individual proof images (examples)

gpg --verify signatures/show_me_id/img.png.asc scan_proof/show_me_id/img.png gpg --verify signatures/veriscan/california/joe_biden.png.asc scan_proof/veriscan/california/joe_biden.png gpg --verify signatures/veriscan/arizona/unanimous.png.asc scan_proof/veriscan/arizona/unanimous.png

root@kitploit:~
**PGP 지문**: `2EFA A479 1439 CF35 47A9 6680 1ECC 2986 AF90 3402`

## 연구 방법론 및 윤리

### 책임 있는 공개 접근 방식
벤더의 무시와 CISA 사건 종결에도 불구하고, 이 연구는 책임 있는 공개 원칙을 유지합니다:

1. **확장된 조정 기간**: 120일 이상 (표준 90일 기간 초과)
2. **합성 데이터만 사용**: 모든 데모는 명확하게 표시된 연구 데이터를 사용합니다.
3. **벤더 참여**: 광범위한 기술 논의 및 제안된 해결책
4. **공공 안전 중점**: 악용보다 방어적 개선에 중점

### 기술 검증 표준
모든 발견 사항은 다음 기준에 따라 검증되었습니다:
- **NIST SP 800-63B** 신원 확인 지침
- **NIST 사이버보안 프레임워크 v1.1** 보안 통제
- **CWE/SANS Top 25** 취약점 분류
- **ISO/IEC 29147** 공개 표준

## 참고 자료 및 표준

### 기술 표준 및 지침
- [AAMVA DL/ID Card Design Standard](https://www.aamva.org/dl-id-standards/) - 공식 AAMVA 구현 사양
- [NIST SP 800-63B Identity Verification Guidelines](https://pages.nist.gov/800-63-3/sp800-63b.html) - 연방 신원 확인 표준
- [NIST Cybersecurity Framework v1.1](https://www.nist.gov/cyberframework) - 사이버보안 구현 지침
- [CWE/SANS Top 25 Most Dangerous Software Errors](https://cwe.mitre.org/top25/) - 취약점 분류 프레임워크
- [ISO/IEC 29147 Vulnerability Disclosure](https://www.iso.org/standard/45170.html) - 국제 공개 표준

### 조정 및 출판 참고 자료
- [MITRE CVE Program](https://cve.mitre.org/) - 취약점 조정 및 출판
- [CISA Vulnerability Disclosure Policy](https://www.cisa.gov/vulnerability-disclosure-policy) - 연방 조정 프레임워크

## 한계 및 윤리적 고려 사항

### 기술적 한계
1. **물리적 보안 기능 부재**: 생성된 바코드에는 물리적 보안 기능(홀로그램, RFID, 특수 잉크)이 없습니다.
2. **법적 준수 요구 사항**: 모든 데모는 "연구 목적으로만 사용" 워터마크가 있는 합성 데이터를 사용합니다.
3. **조정 과제**: 구현별 취약점을 해결하는 데 대한 업계의 저항
4. **규제 프레임워크 격차**: 체계적인 검증 보안 문제를 해결하기 위한 기존 프레임워크 부족

### 윤리적 연구 경계
1. **합성 데이터 독점 사용**: 어떤 데모에도 실제 개인 정보가 사용되지 않았습니다.
2. **교육 목적 중심**: 방어적 보안 역량 향상을 목표로 한 연구
3. **책임 있는 공개 준수**: 확장된 조정 기간 및 협력적인 벤더 참여
4. **공공 안전 우선**: 악용 가능성보다 보호 개선에 중점

## 향후 연구 방향

### 필요한 기술적 개선
1. **암호화 검증**: 디지털 서명 검증 구현
2. **행동 분석**: 의심스러운 스캔 행동에 대한 패턴 탐지
3. **데이터베이스 통합**: 발급 기관과의 실시간 상호 참조
4. **다중 요소 검증**: 물리적 및 디지털 검증 방법 결합

### 정책 및 조정 개선
1. **취약점 분류**: 표준 문제와 구현 문제를 구분하는 더 나은 프레임워크
2. **업계 책임성**: 보안 주장에 대한 명확한 책임 모델
3. **공공 안전 통합**: 실제 영향에 대한 향상된 고려
4. **국제 조정**: 국경 간 신원 확인 표준

## 책임 있는 공개 및 공공 이익

이 연구는 광범위한 조정 노력 후 공공 이익을 위해 출판됩니다. 출판 결정 요인:

1. **확장된 조정 약속**: 120일 이상의 선의의 벤더 및 규제 기관 참여
2. **공공 안전 위험 평가**: 상업용 면허 위조 기능은 심각한 교통 보안 위험을 초래합니다.
3. **기술적 가치 검증**: 업계의 주의가 필요한 문서화된 구현별 취약점
4. **교육적 가치 제공**: 연구는 보안 인식 및 방어 역량 개발을 향상시킵니다.

### 지속적인 벤더 참여
조정 상의 의견 차이에도 불구하고, 연구자는 다음을 위해 계속 이용 가능합니다:
- 기술 구현 개선 지원
- AAMVA 표준 개선 지원 및 협력
- 방어적 보안 조치 개발
- 필요에 따른 추가 기술 분석 제공

## 연락처 및 조정

### 연구 연락처 정보
- **기본 이메일**: [email protected] (PGP 암호화 선호)
- **GitHub 프로필**: [github.com/coleleavitt](https://github.com/coleleavitt)
- **LinkedIn**: [linkedin.com/in/coleleavitt](https://linkedin.com/in/coleleavitt)

### 지속적인 조정 채널
- **MITRE CVE 프로그램**: [email protected]
- **CISA 취약점 공개**: [email protected]
- **VINCE 사건 참조**: VU#396042 (종료되었지만 문서는 이용 가능)

## 라이선스 및 법적 프레임워크

이 연구는 포괄적인 보안 연구 라이선스에 따라 제공됩니다. 완전한 이용 약관은 [LICENSE.md](https://github.com/coleleavitt/aamva-pdf417-vulnerability-research/blob/HEAD/LICENSE.md)를 참조하십시오.

**연구 목적**: 이 연구는 신원 확인 생태계 전반의 보안을 개선하기 위한 목적으로 수행되었습니다. 조정 노력에서 상당한 어려움이 있었지만, 기술적 발견은 여전히 유효하며 공공 안전과 국가 안보 이익을 보호하기 위해 업계의 주의가 필요합니다.

**법적 준수**: 모든 연구 활동은 컴퓨터 사기 및 남용법(CFAA), 디지털 밀레니엄 저작권법(DMCA), 관련 주 및 연방 신원 문서 규정을 포함한 해당 법률을 준수합니다. 실제 개인 정보는 사용되지 않았으며, 모든 데모는 명확하게 표시된 합성 연구 데이터를 사용합니다.

**참고**: 이 연구는 신원 확인 생태계 전반의 보안을 개선하기 위한 목적으로 수행되었습니다. 조정 노력에 어려움이 있었지만, 기술적 발견은 여전히 유효하며 공공 안전과 국가 안보 이익을 보호하기 위해 업계의 주의가 필요합니다.
도구 다운로드