GnuPG/ko

이 안내서는 젠투 리눅스 사용자에게 보안 통신용 도구인 GnuPG 기본 사용 방법을 알려드립니다.

이 안내서에서 무얼 배울 수 있을까
이 안내서에서는 독자 여러분이 공용키 암호화 기법, 암호화, 디지털 서명에 대해 잘 알고 있음을 가정합니다. 만약 그렇지 않다면 공식 GnuPG 핸드북 2장을 따로 보시고 이 글로 다시 돌아오십시오.

이 안내서에서는 젠투 사용자에게 GnuPG 설치 방법, 키 쌍 만드는 방법, 키 모음에 키 추가하는 방법, 키 서버에 공용키를 제출하고 서명, 암호화, 검증, 보내고 받은 메시지 해독에 대한 모든 내용을 알려드립니다. 독자 여러분께서는 다른 사람들이 메시지 내용을 훔쳐보는걸 막기 위해 어떻게 파일을 암호화 하는지도 배웁니다.

다른 프로그램
간단한 수준에서 GnuPG를 이머지해야 합니다. 오늘날 많은 프로그램이 PGP 같은 기능을 지원하기에, USE 변수에  플래그를 추가하는 것이 좋습니다. 전자메일 클라이언트에서 GnuPG 기능을 활용을 고려한다면 다음 선택지가 적절할 수 있습니다:
 * PinePGP ;
 * Mutt — 작고 강력한 텍스트 기반 메일 클라이언트;
 * Thunderbird — 모질라 전자메일 솔루션;
 * Evolution — 그놈의 마이크로소프트 아웃룩 유사 동작 클라이언트;
 * KMail — KDE 메일 클라이언트
 * KDE 데스크톱 환경을 사용한다면 KGPG  설치에 관심있을 수도 있습니다. 이 작은 프로그램은 세련된 몇 가지 기능을 갖추고 있는데, 키 쌍을 만들고, ASCII 파일에서 키를 가져오고, 가져온 키에 서명하고, 키를 내보냅니다.

키 만들기
To create a key, use the command. The first time it is run, it will create some directories essential to the correct operation and implementation of GnuPG; run it again to create the keys:

사용하려는 키의 형식을 선택할 수 있습니다. 대부분 사용자는 기본 RSA 와 RSA를 사용합니다. 그 다음은 키 크기 입니다. 크면 클수록 좋지만, DSA/ElGamal 키로는 2048비트 이상 사용할 수 없습니다. 보통 전자메일 통신에서는 2048 비트면 충분합니다.

경과 기간이 도래하면, 조금 작은 키가 낫지만, 대부분 사용자는 유효 기간을 없애거나 2~3년 정도 설정할 수 있습니다.

이제 키 사용자의 신상 정보를 입력할 때입니다. 다른 사용자에게 공용키를 보낼 때 (가짜 전자메일 주소가 아닌)실제 전자메일 주소가 중요합니다.

이제 암호를 두 번 입력하십시오. 강력한 암호를 활용하는 것이 좋습니다. 관련 개인키를 취득하여 암호를 깰 수 있다면 실제 사용자처럼 메시지를 암호화해서 사용자를 속일 수 있습니다. 악의적인 사용자는 신뢰하는 전자메일 또는 메시지가 범죄 희생양이 보낸 것처럼 속여 연락처의 모든 대상 사용자에게 보냅니다. 이런 약점은 주된 문제로 대두됩니다.

그러면, GnuPG가 키를 만듭니다. 마우스를 움직이거나, 웹을 탐색하거나, 백그라운드에서 오디오 스트리밍을 재생하면 이러한 절차를 빨리 진행할 수 있게 하는데 GnuPG에서 키 쌍의 보안성을 강화할 임의 데이터를 만들 때 도움이 되기 때문입니다.

폐기 인증 만들기
키를 만들고 나면 철회 인증서를 만들어야합니다. 이 철회 인증서는 사용자로 하여금 고약한 일을 겪게 될 경우 (악의적인 사용자가 키/암호 제어권을 얻었다고 가정한다면) 키를 깰 수 있도록 합니다.

The command lists keys in the public keyring. It may be used to see the ID of the key so that a revocation certificate can be created. It is a good idea to copy the entire directory and the revocation certificate (in ASCII armor - ) to some secure medium (a CD-R or a USB drive stored in a safe location). Remember that the file can be used to revoke the keys and make them unusable in the future.

키 내보내기
To export a key, type. You can almost always use the key ID or something that identifies the key (in this example an email address was used). Larry now has a that he can send his friends, or place on his web page so that others can communicate safely with him.

키 가져오기
공용 키 모음에 파일을 추가하려면 다음 단계를 거쳐야합니다:
 * 1) 먼저 키를 가져온 다음,
 * 2) 키 지문을 확인해야 합니다.
 * 3) 지문을 인정한 다음, 검증해야 합니다.

Now we will be adding Luis Pinto's (a friend of mine) public key to our public keyring. After giving him a call and asking him for his key fingerprint, I compare the fingerprint with the output of the command. As the key is authentic, I add it to the public keyring. In this particular case, Luis's key will expire in 2003-12-01 so I am asked if I want my signature on his key to expire at the same time.

키 서버로 키 보내기
Now that a key has been generated, it is probably a good idea to send it to a world key server. There are a lot of key servers in the world and most of them exchange keys. In this next example Larry the cow's key will be sent to the keys.gnupg.net server. Sending keys uses HTTP, so if a proxy is used for HTTP traffic do not forget to set it accordingly. The command for sending the key is: where   is the key ID. If a HTTP proxy is not needed then the  option can be removed.

또한 Larry가 서명한 다른 사람의 키를 키 서버에 보내는건 좋은 방안입니다. Luis Pinto의 키를 키 서버로 보낼 수 있었습니다. 이런 방법을 통해 Larry의 키를 믿는 사람이 Luis 의 키를 믿을 수 있게 둔 서명을 사용할 수 있습니다.

키 서버에서 키 가져오기
이제 Gustavo Felisberto의 키를 검색하고 Larry the cow의 키 모음에 추가하도록 하겠습니다((그냥 이 경우에는 Gustabo Felisberto가 이 안내서의 작성자 임을 알아채지 못합니다 :))

서버 응답에서 키 서버로 몇가지 키를 제출했음을 볼 수 있습니다만, 현재   만을 사용합니다. 이제 Larry the cow가 키를 받을 수 있고 키를 믿을 수 있다면 키에 서명할 수 있습니다.

GPG 에이전트가 무엇인가요?
가끔 몇가지 프로그램을 다루다보면 GPG키를 빈번하게 사용하도록 요구하는데, 이는 암호를 자주 입력해야 한다는 의미입니다. 예전에는 대부분의 프로그램에서 암호 캐싱 기술을 지원했습니다. 이 기술은 암호를 자동으로 입력하므로 사용자에게 매우 편리했습니다. 그러나 프로그램 사이에서 이 캐시를 공유(보안이 어떻게 될까요?)하게끔 하는건 허락되지 않으며 프로그램에 하던 동작을 계속 하도록 강제하기도 합니다.

GPG 에이전트는 GPG가 안전한 표준 방식으로 암호를 캐싱하도록 사용하는 별개의 프로그램입니다. 이 프로그램은 다른 프로그램이 GPG를 동시에 사용하도록합니다. 어떤 프로그램 사용 중에 암호를 입력하면 다른 프로그램은 키 잠금을 풀기 위해 암호를 재차 요구하지 않고도 동작할 수 있습니다. GPG 에이전트가 이걸 허용하도록 했느냐면, 물론입니다.

젠투에서는 GPG 에이전트 프로그램을 제공합니다. 꾸러미에 참조할 것으로 간주할 수 있는 요소를 넣었으며, 이 문서에서 주로 활용합니다.

gpg-agent와 pinentry 설정
GnuPG includes. Pinentry is a helper application that  uses to request the passphrase in a graphical window. It comes in three flavors: it can popup a window using the GTK+, QT, or curses libraries (depending on the USE flags set in ).

If was installed with more than one popup window type, it is possible to choose between the windows with the  command:

이제 파일을 만들고, 암호 입력 기본 제한시간을 정의하는 다음 줄을 입력한 후 (pinentry GTK+ 버전의 경우) 처음에 암호를 가져와야 하는경우 프로그램을 호출하도록 해보겠습니다.

이제 적당한 때에 에이전트를 사용하도록 GnuPG를 설정하겠습니다. 를 편집하여 다음 줄을 추가하십시오.

이제 GPG 에이전트 사용 준비가 (거의) 되었습니다.

GPG 에이전트 자동으로 시작하기
KDE를 데스크톱 환경으로 사용한다면, 다음 를 편집하여 (시스템 전체) 또는 (로컬 사용자) 파일의 주석을 제거하십시오. 다음 명령을 적당한 파일에 추가하여 KDE를 시작할 때 자동으로 GPG 에이전트를 시작할 수 있게 하십시오:

또한, (시스템 범위)의 다음 줄을 제거하거나, 이 줄을  (로컬 사용자)에 추가하십시오:

When using a desktop environment other than KDE, put that line (the same as mentioned above) in the file (if the  command is used to invoke the GUI) or the  file (if XDM, GDM, KDM are used).

암호화 및 서명
이제 Larry에게 보내려는 파일이 있다고 해보겠습니다. 이걸 암호화 할 수 있고, 서명할 수도 있으며, 심지어는 암호화와 서명을 동시에 할 수도 있습니다. 암호화는 Larry만이 열 수 있음을 의미하며, 서명은 Larry에게 이 파일을 만든 진짜 사람이 여러분임을 알려줍니다.

다음 세가지 명령으로 암호화, 서명, 그리고 암호화 및 서명을 처리할 수 있습니다.

이 명령으로 이진 파일을 만듭니다. ASCII 파일을 만들려면 명령 시작 부분에 만 추가하십시오.

해독 및 서명 검증
Suppose that Larry has received a file which is encrypted to him. The command used to decrypt it is. This will decrypt the document and verify the signature (if there is one).

키 없이 암호화 및 해독
It is possible to encrypt files using passwords instead of keys. The password itself will function as the key — it will be used as a symmetric cypher. The file can be encrypted using ; decrypting uses the same command as mentioned previously.

GnuPG에서는 암호를 물어보고 암호 검증을 수행할 것입니다.

고급 기능
GnuPG에는 몇가지 고급 기능이 있습니다. 이를 찾아보려면 파일을 열어보십시오.

두 줄을 찾아서 주석 표시를 지워보십시오. 수정한 설정을 통해 GnuPG에서는 언제든지 서명을 확인하려 하며, 로컬 키 모음에 공용키를 찾으려 하지 않을 것이고, keys.gnupg.net 서버에 요청하여 공용키를 가져오려 시도합니다.

Another nice command is. This will contact the key server defined in the configuration file and refresh the public keys in the local key ring from there. It is capable of searching for revoked keys, new IDs, and new signatures on keys. It is a wise idea run this command once or twice a month; if a user revokes their key this can provide a notification the key can no longer be trusted.

전자메일 서명 정보
GnuPG를 전자메일과 함께 사용하는 95%의 목적은 보내는 메시지를 서명하고 암호화 하거나 서명/암호화 한 메시지를 읽는데 있습니다.

GnuPG로 전자 메일을 서명/암호화 하는데 두가지 방법이 있는데, 예전 방법과 최근의 방법입니다. 예전 방법대로는 메시지는 평문으로 나타나지만, 가능한 형식을 갖추지 않고, 첨부한 파일에 대해서는 서명 및 암호화를 하지 않습니다. 여기에 예전 방식대로의 메시지 서명 예를 들도록 하겠습니다:

HTML을 인식하는 기능을 갖춘 GUI 기반 전자메일 읽기 프로그램에게는 오늘날 이 방식대로 주고 받는 메시지가 썩 좋은 방식이 아닙니다.

이러한 추가 문제를 해결하기 위해 MIME(다중 목적 인터넷 메일 확장)을 만들었습니다. 이 규약을 통해 메일 보기 프로그램에 메시지 전체 내용을 서명했는지 암호화했는지를 알려주는 필드를 추가했습니다. 이에 대한 문제는 모든 메일 보기 프로그램이 이 기능을 지원하지 않는다는 점입니다. 일부 내용을 잘라버리기도 합니다(마이크로소프트 아웃룩은 이 기능을 지원하지 않기로 유명한 프로그램입니다).

Kgpg
Kgpg 는 GnuPG용으로 사용하는 멋들어진 GUI 프로그램입니다. 주 화면에는 서명 또는 암호화 한 테그트를 붙여넣을 수 있고, 그 반대도 가능합니다. 복호화할 ASCII로 이루어진 텍스트도 입력할 수 있습니다.

주 화면에서 문장(암호도 적어야 합니다) 해독, 다른 파일의 암호화, 새 문장 서명을 할 수 있습니다.

Seahorse
Seahorse 는 그놈 데스크톱용 GnuPG GUI 인터페이스를 목표로 합니다. 이 프로그램은 빠르게 발전을 거듭해왔지만, kgpg나 명령줄 버전의 프로그램에서 대부분의 중요하다고 생각되는 기능이 빠져있습니다.

KMail
USE 플래그를 설정했다면 KMail은 gpg 지원을 포함하여 컴파일 하며, OpenPGP/MIME 메일을 암호화하고, 자체 PGP 메일을 자동으로 암호화/해독 할 수 있습니다. OpenPGP/MIME 메일을 마찬가지로 해독하려면(대부분 사용자들이 원하는 대로) GPG 에이전트를 실행하고 있어야 합니다.

로 이동하여 KMail을 제대로 설정했는지 확인하십시오. GpgME 기반 백엔드 목록을 볼 수 있어야 하고, OpenPGP 확인 상자에 표시할 수 있어야 합니다. 목록에는 있는데 회색으로 표시되어 있다면, 을 누르십시오. GpgME 기반 백엔드가 그래도 회색으로 표시되어 있다면, KMail이 제대로 동작하고 있는 것은 아닙니다.

KMail에서 이 기능을 쓸 수 없다면, 공식 KMail PGP 페이지 에서 더 많은 내용을 알아보십시오.

Claws-Mail
이 메일 클라이언트en 는 큰 용량의 메일함에 매우 빠르게 동작하며, GPG와 상당히 잘 동작하고, 메일 보기 프로그램에 바라는 세련된 모든 기능이 다 들어있습니다. 유일한 문제라면 예전 PGP 서명으로는 동작하지 않기 때문에 이런 메일을 받게 되면 서명을 직접 확인해야 합니다.

Claws-Mail에서 gpg 키를 사용하려면 으로 이동하십시오. 어떤 키를 사용할 지 선택했으면 대부분 사용자에게 기본 키를 넣어 보내야합니다.

몇가지 문제
키에 들어간 사진에 약간의 문제가 있습니다. 어떤 버전을 사용하는지 확인하십시오. GnuPG 1.2.1-r1 이상이면 괜찮습니다, 그러나 그 이전의 버전이라면 문제가 있을 수 있습니다. 또한 대부분의 키 서버에서는 키랑 사진이 붙어있는걸 별로 좋아하지 않으므로, 사진을 추가하지 않는다면 괜찮습니다.

The latest versions of GnuPG do not seem to work with the that was used to send all keys in a keyring to the public server.

여기에 없는 내용
is a very complex tool, it lets user do much more than what has been covered here. This document is for users who are new to GnuPG. For more information check out the official GnuPG website.

이 문서는 pgp4pine, gpgpine, evolution 그리고 윈도우즈 GPG 도구를 다루지 않습니다.

고마운 사람들
John Michael Ashley의 GnuPG 핸드북은 초보자들에게 굉장히 좋은 책입니다.

Swift(Sven Vermeulen)가 이 글을 다시 작성하라고 독촉해주었습니다.


 * 1) gentoo-doc 에 있는 팀원 모두들 대단했어요.

Tiago Serra는 절 개인 정보 분야를 다시 맏게 해주었습니다.