PGP 64비트 키 ID 충돌 공격, 보안의 허점을 파고들다!
PGP의 64비트 키 ID의 취약점을 이용한 충돌 공격이 실증적으로 증명됨
생일 공격(Birthday Attack) 원리를 활용하여, 짧은 시간 안에 키 ID 충돌 발생
공격 성공 시, 악성 소프트웨어 배포 및 위변조 가능성(Tampering) 발생
키 ID 검증만 의존하는 사용자들은 공격에 취약해짐
생일 공격(Birthday Attack) 기반의 키 ID 충돌
본 연구는 64비트 키 ID를 사용하는 PGP에서 생일 공격(Birthday Attack)을 통해 키 ID 충돌을 성공적으로 재현했다. 공격자는 약 개의 키 ID를 생성한 후, 충돌하는 키 ID를 찾아냈다. 이는 키 ID의 짧은 비트 수(Short Bit Length)로 인해 발생하는 취약점이며, 암호학적 안전성을 위협하는 요소로 작용한다. 특히, 공격에 필요한 시간과 자원이 예상보다 적어 실질적인 위협으로 이어진다.
공격 방법 및 구현 상세
공격은 여러 단계로 진행되었으며, 먼저 키 페어를 생성하고, 각 키 페어에 대해 다양한 UNIX 타임스탬프(Timestamp)를 적용하여 키 ID를 계산했다. 그 후, 계산된 키 ID를 정렬하여 충돌하는 키 ID를 찾아냈다. 이 과정은 3일 정도 소요되었으며, 메모리 제약으로 인해 정렬 과정에서 상당한 시간이 소요되었다. 데이터 격리 아키텍처(Data Isolation Architecture)가 부재한 환경에서는 이러한 공격에 더욱 취약해질 수 있다.
공격의 실제 영향 및 시나리오
충돌하는 키 ID를 통해 공격자는 악성 소프트웨어를 배포하거나, 기존 소프트웨어의 무결성을 훼손할 수 있다. 예를 들어, 오픈 소스 패키지 관리자가 악성 키를 사용하여 소프트웨어를 위변조할 수 있다. PGP 키 서버(PGP Key Server)를 악용하여 사용자들이 위조된 키를 신뢰하도록 유도할 수 있으며, 데이터 미저장 정책(Zero-Retention Policy)을 사용하지 않는 시스템은 공격에 더욱 취약하다.
대응 방안 및 보안 권고
본 연구는 키 ID 검증(Key ID Verification)만으로는 안전하지 않음을 강조하며, 전체 키 지문(Full Key Fingerprint)을 확인하는 것을 권장한다. 또한, PGP 사용자는 키 서버의 신뢰성을 맹신하지 말고, 다중 검증(Multi-Factor Verification)을 통해 키의 진위 여부를 확인해야 한다. GDPR 규제 준수(GDPR Compliance)를 위한 보안 강화와 함께, 최신 암호화 기술 도입을 고려해야 한다.