GnuPG/ko

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

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

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

다른 프로그램
At a very basic level GnuPG must be emerged. Many applications today have some sort of support for PGP, so having  as a USE variable is a good idea. When desiring an email client capable of using GnuPG any of the following options are well suited:
 * PinePGP ;
 * Mutt — A small but very powerful text-based mail client;
 * Thunderbird — Mozilla's e-mail solution;
 * Evolution — A GNOME Microsoft Outlook work alike;
 * KMail — KDE's mail client.
 * Installing KGPG might be of interest when using the KDE desktop environment. This small program allows for the generation of key pairs, importing keys from ASCII files, signing imported keys, exporting keys, among a few other nifty features.

키 만들기
키를 만들려면 그냥 를 실행하십시오. 처음에 실행할 때 몇가지 디렉터리를 만듭니다. 키를 만들려면 다시 실행하십시오:

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

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

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

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

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

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

명령은 공용 키 모음의 키를 보여줍니다. 키 ID를 볼 때 이 명령을 사용해서 폐기 인증을 만들 수 있습니다. 모든 키를 디렉터리에, 안전한 매체(안전한 위치에 보관할 CD-R 또는 USB 드라이브)에 폐기 인증을 복사하시는 것이 좋습니다. 파일은 키를 폐기할 때 사용할 수 있으며, 한 번 사용하고 나면 나중에 다시 사용할 수 없음을 기억하십시오.

키 내보내기
키를 내보내려면 와 같이 입력하십시오. 거의 언제든 키 ID 또는 키를 식별할 만한 문자열(여기서는 이메일 주소를 사용합니다)을 사용할 수 있습니다. Larry는 이제 친구에게 보내거나 웹 페이지에 넣어 다른 사람들이 Larry와 안전하게 통신할 수 있게 하는 파일을 가집니다.

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

이제 Luis Pinto(원 저자의 친구)의 공용키를 공용 키 모음에 추가해보도록 하겠습니다. 친구를 불러 키 지문을 요청한 다음, fpr 명령으로 출력한 지문과 비교하도록 하겠습니다. 키를 확인하고 나면 공용 키 모음에 추가합니다. 이 경우, Luis의 키는 2003년 12월 1일에 무효화되며, 유효기간이 경과하는 날에 키가 필요하면 다시 요청할 것입니다.

키 서버로 키 보내기
이제 키를 만들었으니, 키 서버로 보내 보도록 하는게 어떨까 합니다. 키 서버는 전세계에 널려있고, 대부분의 키 서버들끼리 공용키를 주고받습니다. 이 예제에서 Larry 소의 키를 keys.gnupg.net 서버로 보내겠습니다. 키를 보낼 때 HTTP를 사용하므로 HTTP 트래픽에 대해 프록시를 사용한다면 이 설정(  export http_proxy=http://proxy_host:port/  )을 잊지 마십시오. 키를 보내는 명령은 다음과 같습니다. 여기서 는 키 ID입니다. HTTP 프록시가 필요하지 않다면   옵션을 뺄 수 있습니다.

Sending other people's keys that Larry has signed signed to the key server is also a good idea. We could send Luis Pinto's key to the key server. This way someone who trusts Larry's key can use the signature that he has placed there to trust Luis's key.

키 서버에서 키 가져오기
Now we are going to search for Gustavo Felisberto's key and add it to the keyring of Larry the cow (just in case you did not notice Gustavo Felisberto is the author this guide :)).

From the server response it is possible to see few keys have been submitted to the key server, however only  is used. Now Larry the cow can get the key and sign it if he trusts it.

GPG 에이전트가 무엇인가요?
Sometimes working with certain applications requires the use of a GPG key very frequently, which means that a passphrase must be frequently entered. In the past many applications supported a passphrase caching mechanism. This would make life easier for users because passphrases were automatically entered. However, this disallowed sharing this cache across programs (how secure would that be?) and forced applications to reinvent the wheel over and over again.

A GPG agent is a separate application that GPG uses to cache the passphrase in a standard and secure way. It allows applications to use GPG concurrently: if the passphrase is entered while working in one application, the other application can work with GPG without reiterating the request for the passphrase to unlock the key — if the GPG Agent is configured to allow so, of course.

Gentoo provides a few GPG agent applications. The package contains what could be considered the reference one, and will be the primary choice used in this article.

gpg-agent와 pinentry 설정
GnuPG includes gpg-agent. Pinentry is a helper application that gpg-agent 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 eselect pinentry command:

Now create a file called and enter the following lines which define the default timeout of the passphrase (e.g. 30 minutes) and the application to be called for when the passphrase should be retrieved the first time (e.g. the GTK+ version of Pinentry).

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

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

GPG 에이전트 자동으로 시작하기
If KDE is used as the desktop environment, edit the following (system-wide) or  (local user) file. Add the following command to the appropriate file to have KDE automatically starting the GPG Agent:

Additionally, uncomment the following lines in (system-wide) or add it to  (local user):

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

암호화 및 서명
Lets say that Larry has a file he wishes to send Luis. Larry can encrypt it, sign it, or encrypt it and sign it. Encrypting means that only Luis will be able to open it. The signature tells Luis that it was really Larry who created the file.

The next three commands will do just that: encrypt, sign and encrypt/sign.

This will create binary files. When wishing to create ASCII files, just add a  option to the beginning of the command.

해독 및 서명 검증
Suppose that Larry has received a file which is encrypted to him. The command used to decrypt it is gpg --output document --decrypt encrypted_doc.gpg. 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 gpg --symmetric; decrypting uses the same command as mentioned previously.

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

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

Search for the above two lines and uncomment them. With this modification made, any time GnuPG needs to check a signature and does not find the public key on the local keyring it will contact the key server at keys.gnupg.net in attempt to fetch the public key from from the server.

Another nice command is gpg --refresh-keys</tt>. 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로 이루어진 텍스트도 입력할 수 있습니다.

From within the main screen text decrypted (a password is needed), files encrypted, and pasted text can be signed.

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

KMail
If the  USE flag is set, KMail will be compiled with gpg support, and will be able to encrypt and decrypt inline PGP mails automatically as well as encrypting OpenPGP/MIME mails. To decrypt OpenPGP/MIME mails as well (most users want) a GPG agent must be running.

To verify if KMail is properly configured navigate to. A GpgME-based backend should be listed and the OpenPGP checkbox should be checked. If it is listed but grayed out, click on. If the GpgME-based backend remains grayed out, KMail is not working properly.

When unable to get KMail to behave, see the official KMail PGP page for more information.

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

To use a GPG key with Claws-Mail navigate to. Once there choose which key to use, most users should go with the default key.

몇가지 문제
I had some problems with photos in keys. Check the version you are using. If you have GnuPG 1.2.1-r1 and up you are probably OK, older versions may have problems. Also most key servers do not like keys with photos, so you are better if you don't add photos.

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

여기에 없는 내용
gpg</tt> 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.

This article does not cover tools such as pgp4pine</tt>, gpgpine</tt>, evolution</tt>, and or Windows GPG tools.

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

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


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

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