피드로 돌아가기
I built an Aadhaar QR reader that works 100% offline — no server, no data leak
Dev.toDev.to
Security

WASM 기반 100% Offline Aadhaar QR 디코더 구현으로 개인정보 유출 원천 차단

I built an Aadhaar QR reader that works 100% offline — no server, no data leak

Pt. Prashant tripathi2026년 6월 16일6intermediate

Context

기존 디지털 Aadhaar 검증 도구들이 서버 기반으로 동작하며 발생하는 민감한 생체 ID 데이터의 무분별한 수집 및 유출 리스크 존재. 브라우저 내 로컬 처리만으로 데이터를 검증하는 완전한 Client-side 아키텍처 요구됨.

Technical Solution

  • jsQR을 활용한 Raw RGBA 픽셀 데이터 분석 및 Base-10 형태의 대규모 십진수 문자열 추출
  • Big-integer 연산을 통한 Decimal to Uint8Array 변환으로 UIDAI 바이너리 페이로드 복원
  • 외부 라이브러리 없이 Native Web API인 DecompressionStream을 활용한 Gzip 압축 해제
  • Browser 미지원 포맷인 JPEG 2000 디코딩을 위해 Emscripten으로 컴파일된 openjpeg.js WASM 모듈 도입
  • DataView와 TextDecoder를 이용한 바이너리 스키마 기반의 고정 위치 필드 파싱
  • Vanilla ES Modules 기반의 Zero-dependency 설계를 통한 런타임 오버헤드 및 외부 텔레메트리 제거

1. 브라우저 Native API(DecompressionStream 등) 지원 범위를 먼저 확인하여 외부 라이브러리 의존성 최소화

2. 브라우저가 지원하지 않는 바이너리 코덱 처리 시 C/C++ 라이브러리를 WASM으로 포팅하여 Client-side 성능 최적화

3. 민감 데이터 처리 시스템 설계 시 Network Call을 물리적으로 제거한 Stateless 아키텍처 검토

원문 읽기