Linux에서 GPG를 사용하여 파일을 암호화 및 해독하는 방법

0
1433
노트북에서 리눅스 터미널 창
Fatmawati Achmad Zaenuri / Shutterstock.com

Linux로 개인 정보를 보호하십시오 gpg 명령. 비밀을 안전하게 지키기 위해 세계적 수준의 암호화를 사용하십시오. gpg를 사용하여 키로 작업하고 파일을 암호화하고 해독하는 방법을 보여줍니다.

GPG (GnuPrivacy Guard)를 사용하면 의도 한 수신자 만 파일을 해독 할 수 있도록 파일을 안전하게 암호화 할 수 있습니다. 특히 GPG는 “OpenPGP”표준을 준수합니다. PPG (Pretty Good Privacy)라는 프로그램을 모델로합니다. PGP는 1991 년 Phil Zimmerman에 의해 작성되었습니다.

GPG는 1 인당 2 개의 암호화 키를 사용합니다. 각 사람은 은밀한 열쇠와 공공의 키. 공개 키는 개인 키를 사용하여 암호화 된 것을 해독 할 수 있습니다.

파일을 안전하게 보내려면 개인 키로 파일을 암호화하십시오 수신자의 공개 키 파일을 해독하려면 개인 키가 필요합니다 공개 키.

여기에서 공개 키를 공유해야 함을 알 수 있습니다. 파일을 암호화하려면 수신자의 공개 키가 있어야하고 수신자는 파일을 해독하려면 공개 키가 필요합니다. 공개 키를 공개로 만드는 데 위험은 없습니다. 실제로, 우리가 보게 될 바로 그 목적을위한 공개 키 서버가 있습니다. 개인 키는 개인 키로 유지해야합니다. 공개 키가 공개 도메인에 있으면 개인 키를 비밀로 유지해야합니다.

GPG를 설정하는 것보다 GPG를 설정하는 단계가 더 많습니다. 고맙게도 일반적으로 한 번만 설정하면됩니다.

키 생성

그만큼 gpg 명령은 Ubuntu, Fedora 및 Manjaro를 포함하여 확인 된 모든 Linux 배포에 설치되었습니다.

이메일에 GPG를 사용할 필요는 없습니다. 파일을 암호화하여 다운로드 할 수있게하거나 수신자에게 물리적으로 전달할 수 있습니다. 그러나 생성 한 키와 이메일 주소를 연결해야하므로 사용할 이메일 주소를 선택하십시오.

다음은 키를 생성하는 명령입니다. 그만큼 --full-generate-key 옵션은 터미널 창의 대화식 세션에서 키를 생성합니다. 암호 문구를 입력하라는 메시지도 표시됩니다. 암호 문구가 무엇인지 기억하십시오. 구두점과 함께 결합 된 3 ~ 4 개의 간단한 단어는 암호와 암호 구를위한 강력하고 강력한 모델입니다.

gpg --full-generate-key

터미널 창에서 gpg --full-generate-key

메뉴에서 암호화 유형을 선택하라는 메시지가 표시됩니다. 타당한 이유가 없으면 다음을 입력하십시오. 1 Enter를 누르십시오.

암호화 키의 비트 길이를 선택해야합니다. Enter를 눌러 기본값을 승인하십시오.

터미널 창에서 주요 생성 질문

키의 지속 시간을 지정해야합니다. 시스템을 테스트하는 경우 다음과 같이 짧은 기간을 입력하십시오 5 5 일 동안. 이 키를 유지하려면 1 년 동안 1 년과 같이 더 긴 기간을 입력하십시오. 키는 12 개월 동안 지속되므로 1 년 후에 갱신해야합니다. 당신의 선택을 확인 Y.

이름과 이메일 주소를 입력해야합니다. 원하는 경우 의견을 추가 할 수 있습니다.

터미널 창에서 주요 생성 질문

암호 문구를 입력하라는 메시지가 표시됩니다. 키로 작업 할 때마다 암호가 필요하므로 그 암호가 무엇인지 알아야합니다.

gpg 암호 구문 창

클릭 OK 암호를 입력하면 버튼을 누릅니다. 작업하면서이 창이 나타납니다. gpg비밀번호 문구를 기억해야합니다.

키 생성이 수행되고 명령 프롬프트로 돌아갑니다.

터미널 창에서 gpg 키 생성 완료

해지 인증서 생성

개인 키가 다른 사용자에게 알려지면 새 키를 생성 할 수 있도록 이전 키를 사용자 ID에서 분리해야합니다. 이렇게하려면 해지 인증서가 필요합니다. 우리는 지금 이것을하고 안전한 곳에 보관할 것입니다.

그만큼 --output 옵션 뒤에 생성하려는 인증서의 파일 이름이 와야합니다. 그만큼 --gen-revoke 옵션 원인 gpg 해지 인증서를 생성합니다. 키 생성시 사용한 이메일 주소를 제공해야합니다.

gpg --output ~/revocation.crt --gen-revoke dave-geek@protonmail.com

gpg --output ~ / revocation.crt --gen-revoke 터미널 창에서 dave-geek@protonmail.com

인증서 생성을 확인하는 메시지가 표시됩니다. 프레스 Y Enter를 누르십시오. 인증서를 생성하는 이유를 묻는 메시지가 표시됩니다. 사전에이 작업을 수행 할 때 확실하지 않습니다. 프레스 1 그럴듯한 추측으로 Enter를 누르십시오.

원하는 경우 설명을 입력 할 수 있습니다. 설명을 마치려면 Enter를 두 번 누르십시오.

설정을 확인하라는 메시지가 표시되면 Y Enter를 누르십시오.

터미널 창에서 gpg 인증서 질문

인증서가 생성됩니다. 이 인증서를 안전하게 유지해야한다는 메시지가 표시됩니다.

Mallory라는 사람을 언급합니다. 암호화 토론은 오랫동안 Bob과 Alice를 두 사람이 의사 소통하는 데 사용했습니다. 다른 지원 문자가 있습니다. Eve는 도청 자이며 Mallory는 악의적 인 공격자입니다. 우리가 알아야 할 것은 인증서를 안전하고 안전하게 유지해야한다는 것입니다.

최소한 인증서와는 별도로 권한을 모두 삭제합시다.

chmod 600 ~/revocation.crt

터미널 창에서 chmod 600 ~ / revocation.crt

확인합시다 ls 현재 권한이 무엇인지 확인하십시오.

ls -l

터미널 창에서 http://cryptocouple.com/

저건 완벽 해. 파일 소유자 이외의 다른 사람은 인증서를 사용하여 아무것도 할 수 없습니다.

다른 사람의 공개 키 가져 오기

다른 사람이 해독 할 수있는 메시지를 암호화하려면 공개 키가 있어야합니다.

파일에 키가 제공된 경우 다음 명령을 사용하여 키를 가져올 수 있습니다. 이 예제에서 키 파일은 “mary-geek.key”입니다.

gpg --import mary-geek.key

gpg --import mary-geek.key ina 터미널 창

키를 가져 오면 해당 키와 관련된 이름과 이메일 주소가 표시됩니다. 분명히, 그것은 당신이 그것을받은 사람과 일치해야합니다.

터미널 창에서 키를 성공적으로 가져 왔습니다.

키가 필요한 사람이 키를 공개 키 서버에 업로드했을 수도 있습니다. 이 서버는 전 세계 사람들의 공개 키를 저장합니다. 키 서버는 정기적으로 서로 동기화되므로 키를 보편적으로 사용할 수 있습니다.

MIT 공개 키 서버는 널리 사용되는 키 서버이며 정기적으로 동기화되는 서버이므로 검색이 성공해야합니다. 누군가 최근에 키를 업로드 한 경우 표시되는 데 며칠이 걸릴 수 있습니다.

그만큼 --keyserver 옵션 뒤에는 검색하려는 키 서버의 이름이 와야합니다. 그만큼 --search-keys 옵션 뒤에는 검색 할 사람의 이름 또는 이메일 주소가 와야합니다. 다음 이메일 주소를 사용합니다 :

gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com

터미널 창에서 gpg --keyserver pgp.mit.edu --search-keys mary-geek@protonmail.com

일치하는 항목이 나열되고 번호가 매겨집니다. 하나를 가져 오려면 숫자를 입력하고 Enter를 누르십시오. 이 경우 단일 일치 항목이 있으므로 1 Enter를 누르십시오.

gpg 키 서버는 터미널 창에서 결과

키를 가져 오면 해당 키와 관련된 이름과 이메일 주소가 표시됩니다.

키 확인 및 서명

다른 사람이 공개 키 파일을받은 경우 해당 파일이 해당 사용자에게 속한다고 말할 수 있습니다. 공개 키 서버에서 다운로드 한 경우 키가 원하는 사람의 키인지 확인해야 할 수도 있습니다.

그만큼 --fingerprint 옵션 원인 gpg 4 개의 16 진 문자로 구성된 10 개의 짧은 시퀀스를 만듭니다. 상대방에게 열쇠의 지문을 보내달라고 요청할 수 있습니다.

그런 다음 --fingerprint 16 진수 문자와 동일한 지문 시퀀스를 생성하고 비교할 수 있습니다. 일치하면 키가 해당 사람의 것임을 알 수 있습니다.

gpg --fingerprint mary-geek@protonmail.com

터미널 창에서 gpg --fingerprint mary-geek@protonmail.com

지문이 생성됩니다.

터미널 창에서 gpg 지문

키가 정품이며 관련이있는 사람이 소유하고 있다고 확신하면 키에 서명 할 수 있습니다.

이 작업을 수행하지 않아도 해당 메시지를 사용하여 상대방과 메시지를 암호화 및 해독 할 수 있습니다. 그러나 gpg 키가 서명되지 않았기 때문에 계속 진행할 것인지 묻는 메시지가 나타납니다. 우리는 적절한 이름을 사용합니다 --sign-key 옵션을 선택하고 사람의 이메일 주소를 제공하여 gpg 서명 할 키를 알고 있습니다.

gpg --sign-key mary-geek@protonmail.com

터미널 창에서 gpg --sign-key mary-geek@protonmail.com

키와 사람에 대한 정보가 표시되며 키에 실제로 서명하고 있는지 확인하라는 메시지가 표시됩니다. 프레스 Y Enter 키를 눌러 키에 서명하십시오.

터미널 창에서 gpg 키 서명 확인

공개 키를 공유하는 방법

키를 파일로 공유하려면 키를 파일에서 내 보내야합니다. gpg 로컬 키 저장소. 이를 위해 우리는 --export 키를 생성하는 데 사용한 이메일 주소가 뒤에 와야합니다. 그만큼 --output 옵션 뒤에 키를 내보내려는 파일의 이름이 와야합니다. 그만큼 --armor 옵션은 말한다 gpg 이진 파일 대신 ASCII 갑옷 출력을 생성합니다.

gpg --output ~/dave-geek.key --armor --export dave-geek@protonmail.com

gpg --output ~ / dave-geek.key --armor --export dave-geek@protonmail.com 터미널 창에서

키 파일 내부를 살펴볼 수 있습니다. less.

less dave-geek.key

터미널 창에 공개 키 파일이 적습니다.

열쇠는 모든 영광을 보여줍니다 :

터미널 창에 공개 키 파일이 적습니다.

공개 키 서버에서 공개 키를 공유 할 수도 있습니다. 그만큼 --send-keys 옵션은 키를 키 서버로 보냅니다. 그만큼 --keyserver 옵션 뒤에 공개 키 서버의 웹 주소가 와야합니다. 전송할 키를 식별하려면 명령 행에 키의 지문이 제공되어야합니다. 네 문자 집합 사이에는 공백이 없습니다.

(키를 사용하여 키의 지문을 볼 수 있습니다. --fingerprint 선택권.)

gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

터미널 창에서 gpg --send-keys --keyserver pgp.mit.edu 31A4E3BE6C022830A804DA0EE9E4D6D0F64EEED4

키가 전송되었다는 확인 메시지가 나타납니다.

터미널 서버에서 확인 키가 키 서버로 전송되었습니다

파일 암호화

이제 파일을 암호화하여 Mary에게 보낼 준비가되었습니다. 파일 이름은 Raven.txt입니다.

그만큼 --encrypt 옵션은 말한다 gpg 파일을 암호화하고 --sign 옵션은 세부 사항으로 파일에 서명하도록 지시합니다. 그만큼 --armor 옵션은 gpg에게 ​​ASCII 파일을 만들도록 지시합니다. 그만큼 -r (받는 사람) 옵션 뒤에 파일을 보내는 사람의 이메일 주소가 와야합니다.

gpg --encrypt --sign --armor -r mary-geek@protonmail.com

터미널 창에서 gpg --encrypt --sign --armor -r mary-geek@protonmail.com

파일은 원본과 이름은 같지만 파일 이름에 “.asc”가 추가되어 만들어집니다. 내부를 살펴 봅시다.

less Raven.txt.asc

터미널 창에 적은 Raven.txt.asc

파일을 완전히 읽을 수 없으며 공개 키와 Mary의 개인 키를 가진 사람 만 해독 할 수 있습니다. 두 사람 모두를 가진 유일한 사람은 Mary 여야합니다.

터미널 창에서 raven.txt.asc의 암호화 된 내용

이제 아무도 파일을 해독 할 수 없다고 확신하여 파일을 Mary에게 보낼 수 있습니다.

파일 해독

Mary가 답장을 보냈습니다. coded.asc라는 암호화 된 파일에 있습니다. 우리는 그것을 사용하여 매우 쉽게 해독 할 수 있습니다 --decrypt 선택권. 출력을 plain.txt라는 다른 파일로 리디렉션합니다.

우리는 말할 필요가 없습니다 gpg 파일의 출처 파일의 암호화 된 내용에서이를 해결할 수 있습니다.

gpg --decrypt coded.asc > plain.txt

터미널 창에서 gpg --decrypt coded.asc> plain.txt

plain.txt 파일을 살펴 보겠습니다.

less plain.txt

터미널 창에서 덜 plain.txt

파일이 성공적으로 해독되었습니다.

터미널 창에서 더 적은 파일을 decrytpted

키 새로 고침

주기적으로 요청할 수 있습니다 gpg 공개 키 서버에 대해 키를 확인하고 변경된 키를 새로 고칩니다. 몇 개월마다 또는 새 연락처로부터 키를받을 때이 작업을 수행 할 수 있습니다.

그만큼 --refresh-keys 옵션 원인 gpg 확인을 수행하십시오. 그만큼 --keyserver 옵션 뒤에 선택한 키 서버가 와야합니다. 공개 키 서버간에 키가 동기화되면 어떤 키를 선택해도 상관 없습니다.

gpg --keyserver pgp.mit.edu --refresh-keys

터미널 창에서 gpg --keyserver pgp.mit.edu --refresh-keys

gpg 확인한 키를 나열하고 변경 및 업데이트 된 경우 알려줍니다.

터미널 창에서 gpg 키 새로 고침

프라이버시는 뜨거운 주제입니다

개인 정보 보호는 요즘 뉴스에서 멀지 않습니다. 정보를 안전하게 보호하려는 이유가 무엇이든, gpg 파일 및 통신에 매우 강력한 암호화를 적용 할 수있는 간단한 수단을 제공합니다.

사용하는 다른 방법이 있습니다 gpg. Enigmail이라는 Thunderbird 용 플러그인을 얻을 수 있습니다. 그것은 바로 당신에 연결 gpg Thunderbird 내부에서 전자 메일 메시지를 암호화 할 수 있도록 구성합니다.