PGP 64비트 키 ID 충돌 공격, 보안의 허점을 파고들다!

by DD
4개월 전
조회수 12

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)를 위한 보안 강화와 함께, 최신 암호화 기술 도입을 고려해야 한다.

Practical Collision Attack Against Long Key IDs in PGP