기타 Lobsters · 19시간 전

미국 NSA가 암호 표준에 대놓고 백도어 심어뒀던 충격적인 방식 PoC

핵심 요약
  • 미국 NSA가 설계하고 표준(NIST)으로 지정됐던 난수 생성기 Dual_EC_DRBG의 백도어 작동 원리를 입증한 PoC 분석입니다.
  • 타원곡선의 두 점 사이에 숨겨진 비밀 스칼라값만 알고 있으면 불과 17비트 무차별 대입으로 내부 시드를 알아내 이후의 모든 난수를 예측할 수 있습니다.
  • 정부 표준 규격이라는 명목 하에 합법적 감청/백도어를 의도적으로 설계해 심어두었음을 기술적으로 폭로한 사건입니다.
요약 미국 국가안보국(NSA)이 주도하고 미국 국립표준기술연구소(NIST)가 표준(NIST SP 800-90A)으로 지정했던 난수 생성 알고리즘 'Dual_EC_DRBG'의 백도어 원리를 입증한 개념 증명(PoC) 분석 글입니다. 과거 FIPS 인증 소프트웨어 등에 필수 구현 규격으로 강제되거나 일부 보안 벤더 제품의 기본 난수 생성기로 채택되기도 했던 이 규격은, 애초에 의도적인 백도어(정부 은어로 키 에스크로 메커니즘)가 심겨 있었다는 의혹을 강하게 받아왔습니다. 이미 2007년 마이크로소프트의 댄 슈모우와 닐스 퍼거슨이 해당 알고리즘의 백도어 가능성을 수학적으로 제기했고, 심지어 2004년 Certicom의 댄 브라운이 유사한 특허를 출원했던 사실까지 확인된 바 있습니다. 작성자는 OpenSSL FIPS를 기반으로 이를 직접 검증하는 공개 개념 증명 코드를 제시했습니다. 해당 난수 생성기는 시드 값을 타원곡선 상의 두 점 P와 Q에 대입해 난수를 출력합니다. 타원곡선 암호화에서는 이산로그 문제의 특성상 공개된 두 점 사이의 스칼라 관계를 역산하기가 매우 어렵지만, 만약 점 P와 Q 사이에 특정 비밀 숫자 d(P = dQ)가 존재하고 설계자만이 이 d를 알고 있다면 구조적 치명타가 발생합니다. 실제 출력 과정에서 x 좌표의 최상위 2바이트가 누락되지만, 이는 기껏해야 17비트 수준의 브루트포스(무차별 대입)만으로 원래의 타원곡선 점을 완벽히 복원할 수 있습니다. 공격자가 첫 32바이트 출력값만 확보하면, 복원한 점에 비밀값 d를 곱해 내부 시드 상태를 그대로 계산해낼 수 있으며, 이후 생성될 모든 난수와 키 값을 완벽하게 도청 및 예측할 수 있게 됩니다. 결국 국가 기관이 수학적 난제를 가장해 전 세계 보안 체계에 은밀한 백도어를 심어두었음을 적나라하게 보여주는 사례입니다.
Sponsored · 광고