피드로 돌아가기
Hacker NewsHacker News
Security

하드코딩된 AES 키와 7개 분석 툴, Persona SDK 보안 실태 분석

Age Verification as Mass Surveillance Infrastructure

2026년 4월 6일11advanced

Context

본인 인증 서비스 Persona SDK의 내부 동작 방식과 데이터 수집 경로 분석. 클라이언트 측 코드 역컴파일을 통해 심각한 보안 결함과 광범위한 사용자 감시 체계 확인.

Technical Solution

  • AES-256-GCM 암호화 키를 SDK 내부에 하드코딩하여 단순 난독화 수준의 텔레메트리 전송 구조
  • OkHttpClient 설정 시 Certificate Pinning을 누락하여 MITM 프록시를 통한 트래픽 가로채기 및 복호화 가능 설계
  • Sentry, Amplitude, Datadog, FingerprintJS 등 7개의 분석 서비스를 동시 구동하는 고밀도 데이터 수집 파이프라인
  • Sentry의 세션 트레이싱 비율을 100%로 설정하고 UI 계층 구조와 사용자 상호작용을 모두 캡처하는 추적 전략
  • HMAC-SHA256 기반의 4중 난독화 헤더와 Debug.isDebuggerConnected()를 이용한 디버거 탐지 및 변조 방지 메커니즘
  • faceapi.js 및 microblink.js를 활용하여 브라우저 로컬 환경에서 연령·성별 추정 및 MRZ 판독을 수행하는 클라이언트 사이드 ML 처리 방식

Impact

  • Sentry 세션 트레이싱 샘플링 비율 100%
  • Google Play Integrity 검증 시 최대 5회 재시도 및 1초 간격 지연 설정
  • faceapi.js 라이브러리 크기 1.3MB 및 microblink.js 91KB

Key Takeaway

클라이언트 측에 저장된 암호화 키와 인증서는 공개된 데이터와 다름없으므로 신뢰 경계(Trust Boundary)를 서버 측으로 설정하는 설계 원칙이 필수적임.


민감 정보 전송 시 하드코딩된 키 대신 Dynamic Key Exchange를 도입하고 반드시 Certificate Pinning을 적용하여 MITM 공격을 차단할 것

원문 읽기