GnuPG, 보안의 핵심을 뒤흔드는 취약점 발견!
GnuPG를 포함한 여러 PGP 구현체에서 취약점이 발견되었으며, 이는 암호화 자체의 문제라기보다 파싱 코드의 구현상 오류에서 기인함
공격자는 서명된 데이터의 위변조, 전송 중 암호화 우회, 메모리 손상 등 다양한 방식으로 취약점을 악용할 수 있으며, 이는 PGP의 복잡한 구조에서 비롯됨
커뮤니티에서는 PGP의 복잡한 구조와 설계 결함을 지적하며, 보다 단순하고 안전한 암호화 방식의 필요성을 강조함
PGP 메시지 구조의 취약성
PGP 메시지는 다양한 종류의 패킷으로 구성되며, 이 패킷들은 암호화 바인딩이 일관되지 않아 공격에 취약하다. 구체적으로, GnuPG는 여러 모드로 작동하는 복잡한 상태 머신을 사용하며, 이로 인해 공격자는 메시지 스트림에 특정 패킷을 삽입하여 서명 검증을 우회할 수 있다. 따라서 메시지 구조 설계의 단순화가 필요하다.
GnuPG의 상태 머신과 공격 기법
GnuPG는 암호화 오류와 메시지 프레이밍 오류를 구분하지 못하여, 공격자가 CBC 비트플립을 통해 압축을 유도하고, 메시지를 변조하여 평문을 출력하게 할 수 있다. 반면, 폼피드() 문자를 이용한 공격은 라인 자르기 처리의 취약점을 이용하며, 이는 PGP의 복잡한 구조에서 비롯된 문제이다. 결과적으로, 상태 머신의 설계 개선이 시급하다.
PGP의 근본적인 설계 결함과 대안
PGP는 복잡한 구조로 인해 다양한 공격에 노출될 수 있으며, 이는 메시지 암호화 시스템의 근본적인 설계 결함이다. 따라서, 길이 제한된 불투명한 바이너리 블롭으로 모든 것을 처리하는 단순한 구조가 필요하다. detached signatures 공격과 같은 상황을 방지하기 위해, 간결한 설계와 엄격한 검증이 필수적이다.