웹사이트 검색

GPG를 사용하여 Ubuntu 12.04 VPS에서 메시지를 암호화하고 서명하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

소개

GPG(GNU Privacy Guard)는 공개 키 암호화 구현입니다. 이를 통해 당사자 간에 정보를 안전하게 전송할 수 있으며 메시지의 출처가 진짜인지 확인하는 데 사용할 수 있습니다.

이 가이드에서는 GPG의 작동 방식과 구현 방법에 대해 설명합니다. 이 데모에서는 Ubuntu 12.04 VPS를 사용하지만 모든 최신 Linux 배포판에서 도구를 사용할 수 있습니다.

공개 키 암호화 작동 방식

많은 사용자가 직면하는 문제는 안전하게 통신하고 대화 상대의 신원을 확인하는 방법입니다. 이 질문에 답하려고 시도하는 많은 체계는 적어도 어느 시점에서는 안전하지 않은 매체를 통해 암호 또는 기타 식별 자격 증명을 전송해야 합니다.

의도한 당사자만 읽을 수 있도록 보장

이 문제를 해결하기 위해 GPG는 공개 키 암호화라는 보안 개념을 사용합니다. 아이디어는 전송의 암호화 및 암호 해독 단계를 두 개의 개별 부분으로 나눌 수 있다는 것입니다. 이렇게 하면 암호 해독 부분을 보호하는 한 암호화 부분을 자유롭게 배포할 수 있습니다.

이렇게 하면 누구나 만들고 암호화할 수 있지만 지정된 사용자(개인 암호 해독 키가 있는 사용자)만 암호를 해독할 수 있는 단방향 메시지 전송이 가능합니다. 두 당사자가 공개/개인 키 쌍을 만들고 서로 공개 암호화 키를 제공하면 서로에게 메시지를 암호화할 수 있습니다.

따라서 이 시나리오에서 각 당사자는 자신의 개인 키와 다른 사용자의 공개 키를 가지고 있습니다.

발신자의 신원 확인

이 시스템의 또 다른 이점은 메시지를 보낸 사람이 자신의 개인 키로 메시지에 "서명\할 수 있다는 것입니다. 수신자가 가진 공개 키를 사용하여 지정된 사용자가 실제로 서명을 보내고 있는지 확인할 수 있습니다.

이를 통해 제3자가 누군가의 신원을 "스푸핑\하는 것을 방지할 수 있습니다. 또한 손상이나 파일 손상 없이 메시지가 전체적으로 전송되었는지 확인하는 데 도움이 됩니다.

GPG 키 설정

GPG는 Ubuntu 12.04에 기본적으로 설치되어야 합니다. 그렇지 않은 경우 다음을 사용하여 설치할 수 있습니다.

sudo apt-get install gnupg

GPG를 사용하여 통신을 암호화하려면 키 쌍을 생성해야 합니다. 다음 명령을 실행하여 이를 수행할 수 있습니다.

gpg --gen-key

키를 구성하는 몇 가지 질문을 안내합니다.

  • 원하는 키 종류를 선택하십시오: (1) RSA 및 RSA(기본값)\n
  • 어떤 키 크기를 원하십니까? 4096
  • 키는 다음에 유효합니까? 0
  • 이 올바른지? 와이
  • 실명: 귀하의 실명\n
  • 이메일 주소: your_email@address.com
  • 댓글: 서명에 표시되는 선택적 댓글\n
  • (N)ame, ©omment, (E)mail 또는 (O)kay/(Q)uit를 변경하시겠습니까? 영형\n
  • 암호 입력: 여기에 보안 암호를 입력하십시오(대문자 및 소문자, 숫자, 기호).\n

이 시점에서 엔트로피를 사용하여 키를 생성해야 합니다. 이것은 기본적으로 시스템에 존재하는 예측 불가능성의 양을 설명하는 용어입니다. GPG는 이 엔트로피를 사용하여 임의의 키 세트를 생성합니다.

이것이 실행되는 동안 새 터미널을 열고 VPS에 ssh하는 것이 가장 좋습니다. 일부 소프트웨어를 설치하고 일부 작업을 수행한 다음 필요한 엔트로피를 생성할 수 있도록 가능한 한 기계를 사용하십시오.

이 프로세스는 시스템을 얼마나 활성화할 수 있는지에 따라 시간이 오래 걸릴 수 있습니다. 사용할 수 있는 haveged로 추가 엔트로피를 생성하는 방법에 대한 기사가 있습니다.

해지 인증서 생성

보안 위반이 있거나 비밀 키를 분실한 경우 키 쌍을 무효화하는 방법이 필요합니다. GPG 소프트웨어로 이 작업을 수행하는 쉬운 방법이 있습니다.

이 작업은 필요할 때가 아니라 키 쌍을 만드는 즉시 수행해야 합니다. 이 해지 키는 컴퓨터가 손상되거나 작동하지 않는 경우를 대비하여 미리 생성하여 안전한 별도 위치에 보관해야 합니다. 유형:

<예비>

취소된 이유를 묻습니다. 사용 가능한 옵션 중 하나를 선택할 수 있지만 미리 수행되므로 세부 사항을 알 수 없습니다.

그런 다음 의견을 제공하고 마지막으로 선택 사항을 확인하라는 메시지가 표시됩니다.

그러면 화면에 해지 인증서가 생성됩니다. 이것을 복사하여 안전한 위치에 붙여넣거나 나중에 사용할 수 있도록 인쇄하십시오.

Revocation certificate created.

Please move it to a medium which you can hide away; if Mallory gets
access to this certificate he can use it to make your key unusable.
It is smart to print this certificate and store it away, just in case
your media become unreadable.  But have some caution:  The print system of
your machine might store the data and make it available to others!
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.11 (GNU/Linux)
Comment: A revocation certificate should follow

iQIfBCABAgAJBQJSTxNSAh0AAAoJEIKHahUxGx+E15EP/1BL2pCTqSG9IYbz4CMN
bCW9HgeNpb24BK9u6fAuyH8aieLVD7It80LnSg/+PgG9t4KlzUky5sOoo54Qc3rD
H+JClu4oaRpq25vWd7+Vb2oOwwd/27Y1KRt6TODwK61z20XkGPU2NJ/ATPn9yIR9
4B10QxqqQSpQeB7rr2+Ahsyl5jefswwXmduDziZlZqf+g4lv8lZlJ8C3+GKv06fB
FJwE6XO4Y69LNAeL+tzSE9y5lARKVMfqor/wS7lNBdFzo3BE0w68HN6iD+nDbo8r
xCdQ9E2ui9os/5yf9Y3Uzky1GTLmBhTqPnl8AOyHHLTqqOT47arpwRXXDeNd4B7C
DiE0p1yevG6uZGfhVAkisNfi4VrprTx73NGwyahCc3gO/5e2GnKokCde/NhOknci
Wl4oSL/7a3Wx8h/XKeNvkiurInuZugFnZVKbW5kvIbHDWJOanEQnLJp3Q2tvebrr
BBHyiVeQiEwOpFRvBuZW3znifoGrIc7KMmuEUPvA243xFcRTO3G1D1X9B3TTSlc/
o8jOlv6y2pcdBfp4aUkFtunE4GfXmIfCF5Vn3TkCyBV/Y2aW/fpA3Y+nUy5hPhSt
tprTYmxyjzSvaIw5tjsgylMZ48+qp/Awe34UWL9AWk3DvmydAerAxLdiK/80KJp0
88qdrRRgEuw3qfBJbNZ7oM/o
=isbs
-----END PGP PUBLIC KEY BLOCK-----

다른 사용자의 공개 키를 가져오는 방법

통신하려는 사람들의 다른 공개 키를 수락할 수 없다면 GPG는 쓸모가 없을 것입니다.

다양한 방법으로 다른 사람의 공개 키를 가져올 수 있습니다. 누군가로부터 텍스트 파일의 공개 키를 얻은 경우 GPG는 다음 명령을 사용하여 공개 키를 가져올 수 있습니다.

<예비>

통신하려는 사람이 자신의 키를 공개 키 서버에 업로드했을 가능성도 있습니다. 이 키 서버는 전 세계 사람들의 공개 키를 보관하는 데 사용됩니다.

정보를 다양한 다른 서버와 동기화하는 인기 있는 키 서버는 MIT 공개 키 서버입니다. 웹 브라우저에서 여기로 이동하여 이름이나 이메일 주소로 사람을 검색할 수 있습니다.

http://pgp.mit.edu/

다음을 입력하여 GPG 내에서 키 서버를 검색할 수도 있습니다.

<예비>

키 확인 및 서명 방법

생성된 공개 키 파일을 자유롭게 배포할 수 있고 사람들이 이 파일을 사용하여 암호화된 방식으로 귀하에게 연락할 수 있지만 초기 공개 키 전송에는 여전히 신뢰 문제가 있습니다.

상대방의 신원 확인

공개 키를 제공하는 사람이 자신이 말하는 사람인지 어떻게 알 수 있습니까? 경우에 따라 간단할 수 있습니다. 노트북을 열어 키를 교환하는 사람 바로 옆에 앉아 있을 수 있습니다. 이것은 정확하고 적법한 키를 수신하고 있음을 식별하는 매우 안전한 방법이어야 합니다.

그러나 그러한 개인적인 접촉이 불가능한 다른 많은 상황이 있습니다. 상대방을 개인적으로 알지 못하거나 물리적 거리로 떨어져 있을 수 있습니다. 안전하지 않은 채널을 통해 통신하고 싶지 않다면 공개 키 확인이 문제가 될 수 있습니다.

다행히 양 당사자의 전체 공개 키를 확인하는 대신 이 키에서 파생된 "지문\을 간단히 비교할 수 있습니다. 이렇게 하면 둘 다 동일한 공개 키 정보를 사용하고 있다는 합당한 확신을 얻을 수 있습니다.

다음을 입력하여 공개 키의 지문을 얻을 수 있습니다.

<예비>

<예비>

이렇게 하면 비교할 훨씬 더 관리하기 쉬운 숫자 문자열이 생성됩니다. 이 문자열을 그 사람 자신이나 그 사람에게 접근할 수 있는 다른 사람과 비교할 수 있습니다.

키에 서명

키에 서명하면 제공된 키를 신뢰하고 해당 키가 해당 사람과 연결되어 있음을 확인했음을 소프트웨어에 알립니다.

가져온 키에 서명하려면 다음을 입력하십시오.

<예비>

키에 서명한 후에는 그 사람이 자신이 주장하는 사람임을 신뢰한다는 것을 확인하는 것입니다. 이것은 다른 사람들도 그 사람을 신뢰할지 여부를 결정하는 데 도움이 될 수 있습니다. 누군가가 당신을 신뢰하고 당신이 이 사람의 키에 서명한 것을 본다면 그들은 자신의 신원도 신뢰할 가능성이 더 높을 수 있습니다.

당신은 당신이 서명한 키를 가진 사람에게 서명된 키를 되돌려 보내 당신의 신뢰 관계의 이점을 허용해야 합니다. 다음을 입력하면 됩니다.

<예비>

암호를 다시 입력해야 합니다. 그런 다음 귀하가 서명한 공개 키가 화면에 표시됩니다. 다른 사람과 교류할 때 "승인 스탬프\를 얻을 수 있도록 이것을 보내십시오.

이 새로운 서명 키를 받으면 생성한 서명 정보를 GPG 데이터베이스에 추가하여 가져올 수 있습니다. 다음을 입력하면 됩니다.

<예비>

공개 키를 고가용성으로 만드는 방법

알려지지 않은 사람이 공개 키를 가지고 있는 경우 발생할 수 있는 악의적인 일은 실제로 없습니다.

이 때문에 공개 키를 쉽게 사용할 수 있도록 하는 것이 도움이 될 수 있습니다. 그러면 사람들은 첫 번째 통신에서 보안 메시지를 보낼 정보를 쉽게 찾을 수 있습니다.

GPG 시스템에서 공개 키를 요청하여 누구에게나 공개 키를 보낼 수 있습니다.

<예비>

<예비>

mQINBFJPCuABEACiog/sInjg0O2SqgmG1T8n9FroSTdN74uGsRMHHAOuAmGLsTse

그런 다음 이것을 복사하여 붙여넣거나 적절한 매체로 보낼 수 있습니다.

키 서버에 키를 게시하려면 대부분의 서버 사이트에서 사용할 수 있는 양식을 통해 수동으로 할 수 있습니다.

또 다른 옵션은 GPG 인터페이스를 통해 이를 수행하는 것입니다.

다음을 입력하여 키 ID를 찾습니다.

<예비>

강조 표시된 부분은 키 ID입니다. 내부 소프트웨어에 대한 키를 참조하는 짧은 방법입니다.

<예비>

키를 특정 키 서버에 업로드하려면 다음 구문을 사용할 수 있습니다.

<예비>

GPG로 메시지 암호화 및 해독

상대방과 키를 구성한 후 메시지를 쉽게 암호화하고 해독할 수 있습니다.

메시지 암호화

GPG의 "–encrypt\ 플래그를 사용하여 메시지를 암호화할 수 있습니다. 기본 구문은 다음과 같습니다.

<예비>

매개변수는 기본적으로 이메일을 암호화하고 개인 키로 서명하여 이메일이 사용자로부터 온 것임을 보장하고 원시 바이트 대신 텍스트 형식으로 메시지를 생성합니다.

메시지를 계속 읽을 수 있으려면 자신의 이메일 주소가 있는 두 번째 "-r” 수신자를 포함해야 합니다. 이는 메시지가 각 개인의 공개 키로 암호화되고 연결된 개인 키로 해독됩니다.

따라서 상대방의 공개 키로만 암호화된 경우 어떻게든 상대방의 개인 키를 얻지 않는 한 메시지를 다시 볼 수 없습니다. 자신을 두 번째 수신자로 추가하면 메시지가 각 수신자에 대해 하나씩 두 번 암호화됩니다.

메시지 해독

메시지를 받으면 메시지 파일에서 GPG를 호출하기만 하면 됩니다.

<예비>

소프트웨어는 필요에 따라 메시지를 표시합니다.

원시 텍스트 스트림으로 메시지가 있는 경우 인수 없이 gpg를 입력하기만 하면 복사하여 붙여넣을 수 있습니다. "CTRL-D\를 눌러 메시지의 끝을 알리면 GPG가 암호를 해독합니다.

키 유지보수

키 데이터베이스를 관리하기 위해 정기적으로 사용해야 하는 많은 절차가 있습니다.

다른 사람에게서 받은 사용 가능한 GPG 키를 나열하려면 다음 명령을 실행할 수 있습니다.

gpg --list-keys

공개 키 서버에서 가져온 정보에 의존하는 경우 키 정보가 구식이 될 수 있습니다. 해지된 키에 의존하고 싶지는 않을 것입니다. 이는 잠재적으로 손상된 키를 신뢰한다는 의미이기 때문입니다.

다음을 발행하여 키 정보를 업데이트할 수 있습니다.

gpg --refresh-keys

키 서버에서 새 정보를 가져옵니다.

다음을 사용하여 특정 키 서버에서 정보를 가져올 수 있습니다.

<예비>

결론

GPG를 올바르게 사용하면 다른 사람들과 안전하게 통신할 수 있습니다. 이는 특히 민감한 정보를 처리할 때뿐만 아니라 일상적인 메시지를 처리할 때도 매우 유용합니다.

모니터링 프로그램에 의해 특정 암호화된 통신에 플래그가 지정될 수 있기 때문에 "비밀\ 데이터뿐만 아니라 모든 것에 암호화를 사용하는 것이 좋습니다. 친절한 인사를 보냅니다.

GPG 암호화는 양 당사자가 우수한 보안 관행을 사용하고 다른 보안 관행에 대해 주의를 기울일 때만 유용합니다. 암호화된 보안 통신의 가능성을 갖고 싶다면 이러한 관행의 중요성에 대해 정기적으로 통신하는 사람들을 교육하십시오.

저스틴 엘링우드