PGP
[image]
GnuPG로 암호화 된 텍스트. 풀려면 암호화에 사용된 공개키와 대칭되는 비밀키가 필요하다.[1]
Pretty Good Privacy,
암호학의 일대 혁명을 가져온 프로그램으로, 1991년 필 지머먼(Phil Zimmermann)이라는 프로그래머가 개발한 전자우편 암호화 프로그램과 그 파생작들을 말한다. 이 프로그램 전까지만 해도 암호화 기능은 정부나 군대, 그리고 정보기관의 전유물이었으나 PGP로 인해서 일반 사람들까지 암호가 퍼지게 되었다. 덕택에 열받은 미국 정부(+NSA)는 PGP의 강력한 암호화 기능이 테러리스트를 도울수 있다는 이유로 필 지머먼을 군수물자 통제법 위반으로 조사하였으나, 나중엔 조사를 포기하게 된다.
여담으로 1997년 PGP 국제버전인 PGPi 5.0이 개발되었고, 필 지머먼은 이를 국외로 수출하려고 했으나 당시 미국 정부는 암호화 프로그램을 무기로 간주하여 이를 저지한다. 이에 지머먼은 법률을 검토하던 중, 소프트웨어는 수출 금지 항목에 포함되어 있어도, 종이에 인쇄된 책은 수출에 제약이 없다는 점을 발견했다. 법의 허점이라기 보다는, 미국에서는 강력한 수정헌법 1조 덕에 출판의 자유가 보장되어 내용이 무엇이든 책으로 배포가 가능했던 것.[2] 그리하여 총 6천여 페이지의 소스코드를 출력하여 12권의 책으로 묶었고, 이를 수출하고 국외에서 지원자를 모집하여 스캐너로 책 페이지의 이미지를 떠서 OCR을 통해 다시 프로그램 소스 코드로 변환하여 컴파일하는 대단한 삽질(...)을 통해 결국 해외 수출에 성공한다. 당시 70여명의 지원자가 있었다고 한다. 스캔과 OCR 변환, 빌드와 미국 국외에서 출시하기까지 걸린 총 시간은 1000시간 쯤 된다고 한다.(...) 이를 "PGPi Scanning Project"라고 부른다. 이후 개정판 버전이 다시 이러한 과정을 거쳐 수출에 성공했으며, 미 정부가 1999년에 적성국가를 제외한 나머지 국가에 암호화 프로그램 수출을 허가하도록 법령을 수정하여 이러한 삽질은 더 이상 일어나지 않게 되었다.
또한, 암호화 알고리즘을 사용하는 다른 소프트웨어들도 같은 이유로 수출이 제한되어 해외에서는 미국산 소프트웨어에서 대칭키 암호화 알고리즘은 키 길이가 40비트로 제한된 알고리즘을 쓸 수 밖에 없었다. 따라서, 한국에서는 전자상거래용으로 SEED라는 128비트 키를 사용하는 독자적인 암호화 알고리즘을 개발해 익스플로러에 ActiveX 형태로 적용했으며, 이 때부터 ActiveX와 함께하는 환장할 인증 시스템이 완전히 뿌리내리게 된다. 지금은 살짝 바뀌었지만 어차피 그게 그거.
자세한 내용은 RSA 문서나 공개키 암호화 또는 RSA에 대한 전문서적을 참고.
간단히만 설명하자면, 이메일 내용 자체를 암호화하여 오로지 보내는 사람과 받는 사람만이 그 원문(Plain Text)을 알 수 있도록 하는 암호화 방식을 말한다. 물론 이메일 서비스 제공자(Google, Yahoo, Outlook 등)는 이메일의 전송 과정에서 TLS를 적용하는 등의 기본적인 보안을 제공한다. 하지만 이메일 서비스 제공자 자체를 신뢰할 수 없거나[3] , 법관이 발부한 압수수색 영장에 의해 수사상 필요로 인해 이메일 서비스 제공자가 이메일을 수사기관과 법원에 제출해야 하는 경우에는 이메일 내용이 그대로 노출될 수밖에 없다.[4] 따라서 심지어 이메일 제공자조차 이메일의 원문을 알 수 없도록 암호화를 할 필요가 있었고, 그것이 PGP이다.
공개키와 개인키를 통해 암호화와 복호화를 각각 개별적으로 수행한다. 공개키를 이용하여서 문서를 암호화 할 수는 있지만 그것을 복호하여 원래 문서로 되돌리는 것은 개인키를 이용해서만 가능하다. 따라서 공개키를 송신자에게 제공하여 송신전에 암호화를 수행하도록 하며 딱히 이것이 유출되는 것은 상관 없다. 그래서 공개키라 부른다. 사실상 개인키로만 복호화가 가능하므로 수신자가 가지고 있는 개인 키만 안전하게 보관이 가능하다면 상당히 높은 보안성을 유지할 수 있다.
처음 개발되었을 때 개인 사용자한테는 무료였지만, 현재는 유료로 시만텍에서 판매하고 있다. 그러나 PGP의 한 갈래인 OpenPGP는 현재 인터넷 표준으로 자리매김 하였으며, 이를 이용한 GnuPG같은 여러 프로그램이 등장했다. 당연하게 윈도우나 맥, 리눅스 버전도 존재한다.
리눅스는 패키지 보관소(Repository)에 보관된 소프트웨어를 보관소의 GPG 키를 이용하여 패키지에 문제가 있는지 없는지 확인하며, 몇몇 포럼의 Geek들은 자신이 직접 글을 썼다는걸 증명하기 위해 PGP를 사용해 사인하거나 암호화하여 글을 작성하기도 하며, 이러한 글은 작성자의 공개키를 바탕으로 PGP를 통해 해독하여 본인인지 아닌지 확인할 수 있다.
리눅스 이외에 많이 사용하는 다른 운영체제용으로, 다음의 링크에서 운영체제 별 주요 프로그램에 맞게 설정까지 해주어 편리하게 사용할 수 있는 설치형 패키지를 받을 수 있다.
안드로이드에서 PGP를 사용할 수 있는 오픈소스 애플리케이션은 세 가지가 있다.
APG와 OpenKeychain은 K-9 이메일 애플리케이션과 연동하여 사용할 수 있다. 다만 업데이트가 미진한 APG는 차기 버전에선 빠질 예정.
iOS에서도 PGP를 사용할수 있다.
덤으로 둘다 OpenPGP.js를 사용한다.
상대방의 이메일 주소를 가지고 공개키를 받을 수 있게 해 주는 서버. 물론 내 공개키를 제출하여 다른 사람이 검색하게 할 수도 있다.
GnuPG로 암호화 된 텍스트. 풀려면 암호화에 사용된 공개키와 대칭되는 비밀키가 필요하다.[1]
Pretty Good Privacy,
1. PGP의 의의
1.1. PGP의 개념 및 역사
암호학의 일대 혁명을 가져온 프로그램으로, 1991년 필 지머먼(Phil Zimmermann)이라는 프로그래머가 개발한 전자우편 암호화 프로그램과 그 파생작들을 말한다. 이 프로그램 전까지만 해도 암호화 기능은 정부나 군대, 그리고 정보기관의 전유물이었으나 PGP로 인해서 일반 사람들까지 암호가 퍼지게 되었다. 덕택에 열받은 미국 정부(+NSA)는 PGP의 강력한 암호화 기능이 테러리스트를 도울수 있다는 이유로 필 지머먼을 군수물자 통제법 위반으로 조사하였으나, 나중엔 조사를 포기하게 된다.
여담으로 1997년 PGP 국제버전인 PGPi 5.0이 개발되었고, 필 지머먼은 이를 국외로 수출하려고 했으나 당시 미국 정부는 암호화 프로그램을 무기로 간주하여 이를 저지한다. 이에 지머먼은 법률을 검토하던 중, 소프트웨어는 수출 금지 항목에 포함되어 있어도, 종이에 인쇄된 책은 수출에 제약이 없다는 점을 발견했다. 법의 허점이라기 보다는, 미국에서는 강력한 수정헌법 1조 덕에 출판의 자유가 보장되어 내용이 무엇이든 책으로 배포가 가능했던 것.[2] 그리하여 총 6천여 페이지의 소스코드를 출력하여 12권의 책으로 묶었고, 이를 수출하고 국외에서 지원자를 모집하여 스캐너로 책 페이지의 이미지를 떠서 OCR을 통해 다시 프로그램 소스 코드로 변환하여 컴파일하는 대단한 삽질(...)을 통해 결국 해외 수출에 성공한다. 당시 70여명의 지원자가 있었다고 한다. 스캔과 OCR 변환, 빌드와 미국 국외에서 출시하기까지 걸린 총 시간은 1000시간 쯤 된다고 한다.(...) 이를 "PGPi Scanning Project"라고 부른다. 이후 개정판 버전이 다시 이러한 과정을 거쳐 수출에 성공했으며, 미 정부가 1999년에 적성국가를 제외한 나머지 국가에 암호화 프로그램 수출을 허가하도록 법령을 수정하여 이러한 삽질은 더 이상 일어나지 않게 되었다.
또한, 암호화 알고리즘을 사용하는 다른 소프트웨어들도 같은 이유로 수출이 제한되어 해외에서는 미국산 소프트웨어에서 대칭키 암호화 알고리즘은 키 길이가 40비트로 제한된 알고리즘을 쓸 수 밖에 없었다. 따라서, 한국에서는 전자상거래용으로 SEED라는 128비트 키를 사용하는 독자적인 암호화 알고리즘을 개발해 익스플로러에 ActiveX 형태로 적용했으며, 이 때부터 ActiveX와 함께하는 환장할 인증 시스템이 완전히 뿌리내리게 된다. 지금은 살짝 바뀌었지만 어차피 그게 그거.
1.2. PGP의 원리
자세한 내용은 RSA 문서나 공개키 암호화 또는 RSA에 대한 전문서적을 참고.
간단히만 설명하자면, 이메일 내용 자체를 암호화하여 오로지 보내는 사람과 받는 사람만이 그 원문(Plain Text)을 알 수 있도록 하는 암호화 방식을 말한다. 물론 이메일 서비스 제공자(Google, Yahoo, Outlook 등)는 이메일의 전송 과정에서 TLS를 적용하는 등의 기본적인 보안을 제공한다. 하지만 이메일 서비스 제공자 자체를 신뢰할 수 없거나[3] , 법관이 발부한 압수수색 영장에 의해 수사상 필요로 인해 이메일 서비스 제공자가 이메일을 수사기관과 법원에 제출해야 하는 경우에는 이메일 내용이 그대로 노출될 수밖에 없다.[4] 따라서 심지어 이메일 제공자조차 이메일의 원문을 알 수 없도록 암호화를 할 필요가 있었고, 그것이 PGP이다.
공개키와 개인키를 통해 암호화와 복호화를 각각 개별적으로 수행한다. 공개키를 이용하여서 문서를 암호화 할 수는 있지만 그것을 복호하여 원래 문서로 되돌리는 것은 개인키를 이용해서만 가능하다. 따라서 공개키를 송신자에게 제공하여 송신전에 암호화를 수행하도록 하며 딱히 이것이 유출되는 것은 상관 없다. 그래서 공개키라 부른다. 사실상 개인키로만 복호화가 가능하므로 수신자가 가지고 있는 개인 키만 안전하게 보관이 가능하다면 상당히 높은 보안성을 유지할 수 있다.
1.3. 기타
처음 개발되었을 때 개인 사용자한테는 무료였지만, 현재는 유료로 시만텍에서 판매하고 있다. 그러나 PGP의 한 갈래인 OpenPGP는 현재 인터넷 표준으로 자리매김 하였으며, 이를 이용한 GnuPG같은 여러 프로그램이 등장했다. 당연하게 윈도우나 맥, 리눅스 버전도 존재한다.
리눅스는 패키지 보관소(Repository)에 보관된 소프트웨어를 보관소의 GPG 키를 이용하여 패키지에 문제가 있는지 없는지 확인하며, 몇몇 포럼의 Geek들은 자신이 직접 글을 썼다는걸 증명하기 위해 PGP를 사용해 사인하거나 암호화하여 글을 작성하기도 하며, 이러한 글은 작성자의 공개키를 바탕으로 PGP를 통해 해독하여 본인인지 아닌지 확인할 수 있다.
2. PGP (GnuPG) 사용하기
- Symantec PGP(상용): http://www.symantec.com/encryption/ [5]
- GnuPG(오픈소스): https://www.gnupg.org
리눅스 이외에 많이 사용하는 다른 운영체제용으로, 다음의 링크에서 운영체제 별 주요 프로그램에 맞게 설정까지 해주어 편리하게 사용할 수 있는 설치형 패키지를 받을 수 있다.
- 윈도우: http://www.gpg4win.org
- OS X: https://gpgtools.org - gpg4win과 다르게, 여기서는 애플 메일에다가 플러그인을 박아넣는다.
2.1. 안드로이드
안드로이드에서 PGP를 사용할 수 있는 오픈소스 애플리케이션은 세 가지가 있다.
- APG - F-Droid 링크
- GnuPrivacyGuard - F-Droid 링크, 가디언 프로젝트의 일환으로 제작되었다.
- OpenKeychain - F-Droid 링크
APG와 OpenKeychain은 K-9 이메일 애플리케이션과 연동하여 사용할 수 있다. 다만 업데이트가 미진한 APG는 차기 버전에선 빠질 예정.
2.2. iOS
iOS에서도 PGP를 사용할수 있다.
덤으로 둘다 OpenPGP.js를 사용한다.
3. PGP 공개키 서버
상대방의 이메일 주소를 가지고 공개키를 받을 수 있게 해 주는 서버. 물론 내 공개키를 제출하여 다른 사람이 검색하게 할 수도 있다.
- PGP Global Directory: https://keyserver.pgp.com/vkd/GetWelcomeScreen.event
PGP 사에서 운영하는 키서버 군이다. 현재 주로 쓰이는 SKS keyserver과 분리되어 있는 것으며, 6개월에 한번 키를 인증하여 갱신하지 않으면 서버에서 키가 사라진다.
- MIT Key Server: https://pgp.mit.edu
MIT 에서 독자적으로 운영하는 PGP 키 서버. 위 네트워크와 분리되어 있는 점이 특징. SKS 프로그램을 사용하는 키서버들과 연동된다.
2020년 9월 기준으로, 최근에는 https://keys.openpgp.org/, http://keyserver.ubuntu.com/# 등 또한 활발하게 쓰이고 있다. Where to upload PGP public key? Are KeyServers still surviving?4. 관련 문서
[1] 참고로 저걸 해독하면 Hello!가 나온다.[2] 1995년에 암호학자 대니얼 J. 번스타인이 소스코드의 출판 통제에 대해 연방대법원에 소를 제기했고, 1997년에 연방대법원은 소스코드 출판에 대한 미국 정부의 통제를 위헌으로 규정했다.[3] 이메일 서비스 제공자가 악의적으로 범죄에 이용하는 경우는 물론이고, 서버의 보안상 결함으로 이메일 데이터베이스가 유출되는 사고도 있을 수 있다.[4] 물론 압수수색 영장에 의한 서버의 압수수색이나 법원의 제출명령에 의한 자료제출은 모두 헌법과 법률에 근거가 있는 '적법절차'에 따른 것이다.[5] 기업용 제품이기 때문에 개인이 사용하기에는 부적절할 수 있다.