GNU Privacy Guard
![]() | |||||||
![]() Key pair generation process in Unix terminal emulator | |||||||
Original author(s) | Werner Koch | ||||||
---|---|---|---|---|---|---|---|
Developer(s) | GNU Project | ||||||
Initial release | 7 September 1999 | ||||||
Stable release(s) | |||||||
| |||||||
Repository | dev | ||||||
Written in | C | ||||||
Operating system | Microsoft Windows, macOS, RISC OS, Android, Linux | ||||||
Type | OpenPGP | ||||||
License | 2007: GPL-3.0-or-later[a] 1997: GPL-2.0-or-later[b] | ||||||
Website | gnupg |
GNU Privacy Guard (GnuPG 또는 GPG)는 시만텍의 PGP 암호화 소프트웨어 제품군을 대체하는 자유-소프트웨어입니다. 그 소프트웨어는 OpenPGP의 IETF 표준-트랙 사양, RFC 4880을 준수합니다. 최신 버전의 PGP는 GnuPG와 기타 OpenPGP-호환 시스템과 상호-운용-가능합니다.[1]
GnuPG는 GNU 프로젝트의 일부이고 1999년 독일 정부로부터 주요 자금을 받았습니다.[2]
Installation
데비안 저장소에서 설치할 수 있습니다:
- sudo apt install gnupg wget ca-certificates lsb-release software-properties-common
Key generation
다음 과정으로 키를 생성할 수 있습니다:
- gpg --full-generate-key
- Please select what kind of key you want: ↵ Enter
- What keysize do you want? 4096 ↵ Enter
- Key is valid for? (0) ↵ Enter
- Is this corret? (y/N) y ↵ Enter
- Read name: 이름을 입력하세요. ↵ Enter
- Email address: 이메일을 입력하세요. ↵ Enter
- Comment: 필요하면 입력하세요. ↵ Enter
- Chang (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O ↵ Enter
- Passphrase: 생성될 키를 보호하기 위한 문구를 입력하십시오. 가능한 길게 입력하십시오.
이제, 사용자 홈디렉토리 아래에 .gnupg
아래에 키가 만들어지며, 확인을 하기 위해,
- gpg --list-keys
Private repository signify and public key export
데비안 저장소를 만들고 Release 파일에는 서명을 해야 경고 메시지가 출력되지 않습니다. 다음과 같이 서명할 수 있습니다:
- cat /var/www/html/debian/dists/bullseye/Release | gpg --default-key key_id -abs > Release.gpg
여기서 key_id는 입력한 이름의 성 또는 이름 또는 이메일 주소를 사용할 수 있습니다.
클라이언트 측에서는 Release와 Release.gpg를 모두 다운로드하고 유효한지 확인을 합니다. 대신에 속도를 높이기 위해 두 파일을 결합하는 세 번째 파일 InRelease를 만들 수 있습니다:
- cat /var/www/html/debian/dists/bullseye/Release | gpg --default-key key_id -abs --clearsign > InRelease
이제 사용자, 모드를 바꾸고 정해진 위치로 이동시킵니다:
- sudo chown root:root Release.gpg InRelease
- sudo chmod 644 Release.gpg InRelease
- sudo mv Release.gpg InRelease /var/www/html/debian/dists/bullseye/
이제, 공개 키를 배포해야 하는데, 아래와 같이 만들 수 있습니다:
- gpg --export key_id > dawoum.gpg
이제 소유자, 모드를 바꾸고 배포할 위치로 옮깁니다:
- sudo chwon root:root dawoum.gpg
- sudo chmod 644 dawoum.gpg
- sudo mv dawoum.gpg /var/www/html/debian/
Client key download
사용자는 위에서 배포하는 키를 다운로드받아서, 정해진 위치로 옮겨서 사용할 수 있습니다:
- wget -qO - https://dawoum.duckdns.org/debian/dawoum.gpg | sudo tee /etc/apt/trusted.gpg.d/dawoum.gpg > /dev/null
History
GnuPG는 처음에 Werner Koch에 의해 개발되었습니다.[3][4] 첫 번째 제품 버전, 버전 1.0.0은 첫 번째 GnuPG 출시 (버전 0.0.0)로부터 거의 2년 후인 1999년 9월 7일에 출시되었습니다.[5][3] 독일 연방 경제 기술부는 2000년에 문서와 Microsoft Windows로의 이식에 자금을 지원했습니다.[4]
GnuPG는 OpenPGP 표준을 준수하는 시스템이고, 따라서 OpenPGP의 역사가 중요합니다; 그것은 Phil Zimmermann에 의해 처음 설계되고 개발된 이메일 암호화 프로그램, PGP와 상호 운용되도록 설계되었습니다.[6][7]
2014년 2월 7일에, GnuPG 크라우드-펀딩 활동이 종료되어, 새로운 웹 사이트와 인프라 개선을 위해 €36,732를 모금했습니다.[8]
Branches
2021년 10월 버전 2.3.3부터 안정적인 GnuPG 2.3이 출시된 이후, GnuPG의 세 가지 안정적인 가지가 활발하게 유지 관리됩니다:[9]
- 현재 "안정 가지"는 (2021년 기준) 2.3 가지입니다.
- "LTS (장기 지원) 가지"는 현재 (2021년 기준) 2.2 분기 (이전에는 2.0 분기와 비교하여 "현대 가지"라고 불렀음)입니다.
- 이전 "레거시 가지" (이전에는 "클래식 가지"라고 불렀음)는 1.4 가지이고, 앞으로도 계속 유지될 것입니다.
GnuPG 2.3 이전에는, GnuPG의 두 가지 안정적인 가지가 활발하게 유지되었습니다:
- 2017년 8월 28일 GnuPG 2.2.0 릴리스로 대체된 이전 "stable"(2.0) 분기와 비교하여 타원형 곡선 암호화와 같은 수많은 새로운 기능이 있는 "현대(Modern)" (2.2) 가지.[10] 그것은 2014년 11월 6일에 처음 출시되었습니다.[11]
- "클래식(Classic)" (1.4), 아주 오래되었지만 여전히 유지되는 독립 실행형 버전으로, 구식 또는 임베디드 플랫폼에 가장 적합합니다. 2004년 12월 16일에 처음 출시되었습니다.[12]
다른 GnuPG 2.x 버전 (예를 들어 2.2와 2.0 가지)은 동시에 설치될 수 없습니다. 어쨌든, 임의의 GnuPG 2.x 버전과 함께 "클래식" GnuPG 버전 (즉, 1.4 가지에서)을 설치할 수 있습니다.[11]
GnuPG 2.2 ("modern") 출시 이전에는 현재 사용되지 않는 "안정" 가지 (2.0)가 2006년 11월 13일에 처음 출시된 일반 용도로 권장되었습니다.[13] 이 가지는 2017년 12월 31일에 수명을 다했습니다;[14] 그것의 마지막 버전은 2.0.31이며, 2017년 12월 29일에 출시되었습니다.[15]
GnuPG 2.0 출시 이전에는 모든 안정적인 출시가 단일 가지에서 시작되었습니다; 즉, 2006년 11월 13일 이전에는 여러 출시 가지가 병렬로 유지되지 않았습니다. 이전의 순차적으로 이어지는 (1.4까지) 출시 가지는 다음과 같습니다:
- 1.2 가지, 2002년 9월 22일에 처음 출시되었으며,[16] 1.2.6이 마지막 버전으로 2004년 10월 26일에 출시되었습니다.[17]
- 1.0 가지, 1999년 9월 7일에 처음 출시되었으며,[5] 1.0.7이 마지막 버전으로 2002년 4월 30일에 출시되었습니다.[18]
(GnuPG 2.3.0 출시 이전에 홀수 보조 출시 번호 (예를 들어, 2.1, 1.9, 1.3)를 가진 가지는 "+ 0.1" 더 높은 버전 번호 (예를 들어, 2.2, 2.0, 1.4)를 가진 안정적인 출시 가지로 이어지는 개발 가지였음을 주목하십시오; 따라서 가지 2.2와 2.1은 모두 "현대" 계열에 속하고 2.0과 1.9는 모두 "안정" 계열에 속하며, 가지 1.4와 1.3은 모두 "클래식" 계열에 속합니다.
GnuPG 2.3.0이 출시되면서, 이 명명법은 "현대" 시리즈의 "안정"과 "LTS" 가지와 마지막으로 유지 관리되는 "클래식" 가지인 1.4로 구성되도록 변경되었습니다. 역시, 짝수 또는 홀수 보조 출시 번호는 더 이상 안정 또는 개발 출시 가지를 나타내지 않음을 주목하십시오.)
Vulnerabilities
OpenPGP 표준은 메시지를 디지털적으로 서명하는 여러 방법을 지정합니다. 2003년에, 이러한 방법 중 하나를 더 효율적으로 만들기 위한 GnuPG 변경 오류로 인해, 보안 취약점이 발현되었습니다.[19] 그것은 일부 GnuPG 출시 (1.0.2에서 1.2.3)에 대해서만 메시지를 디지털적으로 서명하는 한 가지 방법에만 영향을 미쳤고, 키 서버에 나열된 1000개 미만의 키가 있었습니다.[20] 대부분의 사람들은 이 방법을 사용하지 않았고, 어떤 경우에도 그렇게 하는 것을 권장하지 않았으므로, (만약에 있었다면, 공개적으로 보고된 적이 없기 때문에) 피해가 최소화된 것으로 보입니다. 이 방법에 대한 지원은 이 발견 이후에 출시된 GnuPG 버전 (1.2.4 이상)에서 제거되었습니다.
2006년 초에 두 가지 추가 취약점이 발견되었습니다; 첫 번째는 서명 확인을 위한 GnuPG의 스크립팅된 사용으로 인해 거짓 양성을 초래할 수 있고,[21] 비-MIME 메시지가 디지털 서명에 의해 덮어쓰이지 않는 데이터 주입에 취약하다는 두 번째는 서명된 메시지의 일부로 보고될 것입니다.[22] 둘 다 경우에서, GnuPG의 업데이트된 버전이 발표 당시에 사용할 수 있었습니다.
2017년 6월에, 취약점(CVE-2017-7526)은 Bernstein, Breitner 등에 의해 Libgcrypt 내에서 발견되었습니다: Libgcrypt는 GnuPG에서 사용하는 라이브러리로 RSA-1024와 RSA-2048 키의 팔분의 1번째 이상에 대해 전체 키 복구를 가능하게 했습니다. 이 부-채널 공격은 Libgcrypt가 지수 비트의 누출과 전체 키 복구로 이어지는 지수에 대해 슬라이딩 윈도우 방법을 사용했다는 사실을 이용합니다.[23][24] 다시 말하지만, GnuPG의 업데이트된 버전이 발표 당시에 제공되었습니다.
2017년 10월에, ROCA 취약점이 PGP/GPG와 함께 자주 사용되는 YubiKey 4 토큰에 의해 생성된 RSA 키에 영향을 미친다고 발표되었습니다. 공개된 많은 PGP 키가 취약한 것으로 밝혀졌습니다.[25]
2018년 6월경, SigSpoof 공격이 발표되었습니다. 이것들은 공격자에게 디지털 서명을 설득력 있게 스푸핑하는 것을 허용했습니다.[26][27]
2021년 1월에, Libgcrypt 1.9.0이 릴리스되었으며, 여기에는 악용하기 쉬운 심각한 버그가 포함되어 있습니다. 수정 사항은 10일 후 Libgcrypt 1.9.1에서 출시되었습니다.[28]
See also
- Acoustic cryptanalysis
- Key signing party
- Off-the-Record Messaging – also known as OTR
- OpenPGP card – a smartcard with many GnuPG functions
- Package manager
- RetroShare – a friend-to-friend network based on PGP authentication
- Web of trust
Notes
References
- ^ "Gnu Privacy Guard". GnuPG.org. Archived from the original on 2015-04-29. Retrieved 2015-05-26.
- ^ "Bundesregierung fördert Open Source" (in German). Heise Online. 1999-11-15. Archived from the original on October 12, 2013. Retrieved July 24, 2013.
- ^ a b Angwin, Julia (5 February 2015). "The World's Email Encryption Software Relies on One Guy, Who is Going Broke". ProPublica. Archived from the original on 6 February 2015. Retrieved 6 February 2015.
- ^ a b Wayner, Peter (19 November 1999). "Germany Awards Grant for Encryption". The New York Times. Archived from the original on 25 August 2014. Retrieved 2014-08-08.
- ^ a b "Release Notes". GnuPG. Archived from the original on 2014-02-09. Retrieved 2014-01-30.
- ^ "Gnu Privacy Guard". OpenPGP.org. Archived from the original on 2014-02-27. Retrieved 2014-02-26.
- ^ "Where to Get PGP". Philzimmermann.com. Archived from the original on 2014-02-26. Retrieved 2014-02-26.
- ^ "GnuPG: New web site and infrastructure". goteo.org. Archived from the original on 2014-03-30. Retrieved 2014-03-09.
- ^ "GnuPG 2.3.3 released".
- ^ Koch, Werner (2017-08-28). "[Announce] GnuPG 2.2.0 released". gnupg-announce (Mailing list). Archived from the original on 2017-08-29. Retrieved 2017-09-21.
- ^ a b Koch, Werner (2014-11-06). "[Announce] GnuPG 2.1.0 "modern" released". gnupg.org. Archived from the original on 2014-11-06. Retrieved 2014-11-06.
- ^ Koch, Werner (2004-12-16). "[Announce] GnuPG stable 1.4 released". gnupg.org. Archived from the original on 2005-01-03. Retrieved 2004-12-16.
- ^ Koch, Werner (2006-11-13). "[Announce] GnuPG 2.0 released". gnupg.org. Archived from the original on 2014-02-14. Retrieved 2014-01-30.
- ^ Koch, Werner (2017-01-23). "[Announce] GnuPG 2.1.18 released". gnupg.org. Archived from the original on 2017-02-11. Retrieved 2017-02-04.
- ^ "GnuPG 2.0.31". 2017-12-29. Retrieved 2017-12-30.
- ^ Koch, Werner (2002-09-06). "[Announce]GnuPG 1.2 released". gnupg.org. Archived from the original on 2014-06-17. Retrieved 2014-11-06.
- ^ Koch, Werner (2004-08-26). "[Announce] GnuPG 1.2.6 released". gnupg.org. Archived from the original on 2014-06-17. Retrieved 2014-11-06.
- ^ Koch, Werner (2002-04-30). "[Announce] GnuPG 1.0.7 released". gnupg.org. Archived from the original on 2014-06-17. Retrieved 2014-11-06.
- ^ Nguyen, Phong Q. "Can We Trust Cryptographic Software? Cryptographic Flaws in GNU Privacy Guard v1.2.3". EUROCRYPT 2004: 555–570. Archived from the original on 2017-12-04. Retrieved 2019-08-23.
- ^ Koch, Werner (November 27, 2003). "GnuPG's ElGamal signing keys compromised". Archived from the original on March 18, 2004. Retrieved May 14, 2004.
- ^ Koch, Werner (February 15, 2006). "False positive signature verification in GnuPG". Archived from the original on June 17, 2006. Retrieved May 23, 2006.
- ^ Koch, Werner (March 9, 2006). "GnuPG does not detect injection of unsigned data". Archived from the original on May 5, 2006. Retrieved May 23, 2006.
- ^ Edge, Jake (5 July 2017). "Breaking Libgcrypt RSA via a side channel". LWN.net. Archived from the original on 28 July 2017. Retrieved 28 July 2017.
- ^ "Sliding right into disaster: Left-to-right sliding windows leak" (PDF). Archived (PDF) from the original on 2017-06-30. Retrieved 2017-06-30.
- ^ The Return of Coppersmith's Attack: Practical Factorization of Widely Used RSA Moduli Archived 2017-11-12 at the Wayback Machine, Matus Nemec, Marek Sys, Petr Svenda, Dusan Klinec,Vashek Matyas, November 2017
- ^ "Decades-old PGP bug allowed hackers to spoof just about anyone's signature". 14 June 2018. Archived from the original on 2018-09-07. Retrieved 2018-09-07.
- ^ "Pass gets a fail: Simple Password Store suffers GnuPG spoofing bug". Archived from the original on 2018-06-30. Retrieved 2018-09-07.
- ^ "Severe bug in Libgcrypt – used by GPG and others – is a whole heap of trouble, prompts patch scramble". Archived from the original on 2021-02-21.
External links
- Official website
- A Short History of the GNU Privacy Guard, written by Werner Koch, published on GnuPG's 10th birthday