
솔직히 고백할게요.
저도 주니어 시절엔 PGP(Pretty Good Privacy) 키 하나쯤은 가지고 있어야 '진짜 개발자'라고 생각했습니다.
퍼블릭 키를 블로그 구석에 걸어두고, 이메일 하단에 GPG 지문(Fingerprint)을 남기는 게 일종의 멋이었죠.
"내 통신은 완벽하게 암호화된다"는 그 느낌.
다들 한 번쯤 경험해 보셨을 겁니다.
그런데 10년이 지난 지금, 후배가 "선배님, GPG 키 생성이랑 서브키 관리는 어떻게 하는 게 정석인가요?"라고 물어보면 저는 이렇게 대답합니다.
"그냥 쓰지 마. 제발."
오늘은 왜 수많은 보안 엔지니어와 암호학자들이 "PGP는 이제 놓아주자"고 외치는지, 커피 한 잔 마시며 이야기하듯 풀어보려 합니다.
우리가 PGP를 버려야 하는 이유는 단순히 사용하기 불편해서가 아닙니다.
근본적으로 설계가 낡았고, 심지어 위험하기 때문입니다.
1. 맥가이버 칼의 함정
PGP는 일종의 '스위스 아미 나이프(맥가이버 칼)'입니다.
이메일도 암호화하고, 파일도 잠그고, 패키지 서명도 하고, 신원 증명도 하죠.
숲속에서 조난당했다면 맥가이버 칼이 최고입니다.
하지만 집을 짓거나 정밀한 수술을 해야 하는데 맥가이버 칼을 쓴다면 어떨까요?
PGP는 너무 많은 기능을 욱여넣다 보니, 정작 개별 기능의 완성도가 떨어집니다.
파일 전송에는 불편하고, 메신저로 쓰기엔 보안성이 떨어지며, 백업 용도로도 훌륭하지 않습니다.
현대 암호학의 원칙은 "목적에 맞는 도구를 써라"입니다.
그런데 PGP는 90년대 감성으로 "하나로 다 해!"를 외치고 있는 셈이죠.
2. 90년대의 망령, 하위 호환성
가장 큰 문제는 PGP가 너무 오래되었다는 겁니다.
PGP는 1991년에 처음 나왔습니다. 윈도우 95보다도 형님이죠.
그러다 보니 '하위 호환성'이라는 족쇄에 묶여 있습니다.
여러분이 지금 GnuPG를 기본 설정으로 쓴다면, 아마도 2048비트 RSA 키와 CAST5 같은 64비트 블록 암호를 쓰고 있을 확률이 높습니다.
현대적인 시스템이라면 절대 기본값으로 쓰지 않을 낡은 기술들입니다.
물론 설정 파일을 뜯어고쳐서 최신 암호화 방식을 쓸 수도 있습니다.
하지만 내 PGP가 최신 방식(예: AEAD)을 지원해도, 상대방의 PGP가 옛날 버전이면 결국 가장 낮은 보안 수준으로 통신하게 됩니다.
결국 우리는 1990년대 수준의 보안성을 2024년에 쓰고 있는 셈입니다.
3. 끔찍한 복잡성과 UX
개발자인 우리도 솔직해집시다.
GPG 키 생성하고, 서브키 만들고, 만료일 설정하고, 신뢰망(Web of Trust) 구축하는 과정... 한 번에 성공한 적 있으신가요?
저는 매번 구글링해서 명령어 복사해 붙여넣기 바빴습니다.

전문가들도 헷갈리는 시스템을 일반 사용자에게 쓰라고 하는 건 고문이나 다름없습니다.
실제로 한 사용성 연구에서 기술직군 사람들에게 PGP 설정을 시켰더니, 2시간 뒤에 아무도 성공하지 못하고 포기했다는 일화도 있습니다.
이민 변호사에게 "Signal 메신저 설치하세요"라고 하면 1분이면 됩니다.
하지만 "PGP 키 생성해서 보내세요"라고 하면? 아마 그날로 연락이 끊길 겁니다.
4. 영원한 비밀은 없다 (Forward Secrecy의 부재)
PGP는 '장기적인 키'를 권장합니다.
한번 만든 키를 5년, 10년씩 쓰면서 "이게 나야!"라고 증명하죠.
이게 낭만적으로 보일지 모르지만, 보안 관점에서는 악몽입니다.
만약 여러분이 10년 동안 쓴 개인키(Private Key)가 오늘 해킹당했다고 가정해 봅시다.
그 키로 지난 10년 동안 주고받은 모든 암호화 메시지가 다 뚫린다는 뜻입니다.
현대적인 메신저(Signal, WhatsApp 등)는 '순방향 비밀성(Forward Secrecy)'을 기본으로 합니다.
오늘 키가 털려도, 어제 나눈 대화는 안전합니다. 대화할 때마다 임시 키를 쓰니까요.
PGP는 구조적으로 이런 현대적인 보안 개념을 적용하기가 매우 어렵습니다.
그럼 대체 뭘 써야 하나요?
막막하실 수 있습니다. 저도 그랬으니까요.
하지만 답은 의외로 명쾌합니다. "맥가이버 칼을 버리고 전용 공구를 쓰세요."
1. 대화를 하고 싶다면?
Signal이나 Wire 같은 현대적인 메신저를 쓰세요. 이미 수많은 보안 전문가가 검증한 프로토콜(Ratchet)을 사용합니다. 훨씬 안전하고 편합니다.
2. 파일을 암호화하고 싶다면?
age (Actually Good Encryption)라는 도구를 추천합니다. 복잡한 설정 없이, 작고 빠르고 안전합니다. 제가 최근 가장 애용하는 도구입니다.
3. 코드나 패키지에 서명해야 한다면?
Minisign이나 Signify를 사용하세요. 오로지 '서명' 하나만을 위해 만들어진 도구들입니다. 가볍고 실수가 적습니다.
마치며
기술은 계속 발전합니다.
우리가 더 이상 IE6에 맞춰 웹사이트를 개발하지 않듯이, 암호화 도구도 시대에 맞게 변해야 합니다.
PGP는 암호학의 역사에서 중요한 역할을 했고, 존중받아 마땅합니다.
하지만 실무에서 '안전'과 '효율'을 위해 선택해야 할 도구는 더 이상 아닙니다.
저도 처음엔 PGP 키를 버리는 게 왠지 발가벗겨지는 기분이었습니다.
하지만 목적에 맞는 현대적인 도구들을 하나씩 써보면서 깨달았습니다.
진정한 보안은 '복잡해 보이는 설정'이 아니라, '실수할 여지를 주지 않는 단순함'에서 온다는 것을요.
오늘 동료들과 커피 한 잔 하면서, 우리의 보안 도구함도 한번 점검해 보는 건 어떨까요?


