Technique/LPIC

GnuPG에 의한 암호화

kaelina 2019. 11. 13. 15:09
반응형

파일을 임호 화 하고 싶은 경우 Linux에는 GnuPG( GNU Privacy Guard )를 이용할 수 있다. GnuPG는 공개키 암호를 사용하여 파일을 암호화/복호 하거나, 전자서명을 하거나 하는 것이 가능한 오픈소스 소프트웨어이다.

 

GnuPG는 암호화 소프트웨어 PGP( Pretty Good Privacy )와 호환성이 있다. PGP은 미국의 규제에 의해 미국 외의 반출이 불가능했지만, 해당 사양이 IETF ( Internet Engineering Task Force )에 의해 RFC로서 정리되어 GnuPG로서 실현되었다.

키 페어의 작성과 분실 증명서의 작성

GnuPG(GPG)의 사용을 하기 위해선 gpg 커맨드를 사용한다. 처음 공개키와 비밀키 페어를 작성할 필요가 있다. 

 

gpg --gen-key

 

~/. gnupg라고 하는 디렉터리가 새롭게 작성되며 그 안에 공개키의 키링 ( pubring.gpg )와 비밀키의 키링 ( secring.gg )가 작성된다.

 

이후 키의 분실 증명서를 작성한다. 분실 증명서란 패스플레이즈가 밖으로 공개되어 버리거나, 패스플레이즈를 잃어버렸을 경우 해당 키를 무효화 하기위해 사용한다.

 

gpg -o 분실증명서 파일명 --gen-revoke 메일 주소

 

작성된 분실 증명서 ( revoke.asc )는 안전한 장소에 보관되어 있다. 만에 하나 키가 공개되어 버렸거나 할 경우 아래와 같이 키를 무효화시킬 수 있다.

 

gpg --import revoke.asc

 

공용키를 이용한 파일의 암호화

gpg 커맨드를 사용하여 파일의 암호화보다 좀 더 간단한 것은 공용키를 사용한 암호화이다.

 

gpg -c service.txt

 

설정한 패스 플레이즈를 2회 입력하면 암호화된 파일 secret.txt.gpg가 작성된다. 해당 파일을 복호화 하기 위해선 옵션 없이 gpg 커맨드를 실행한다.

 

공용키를 사용한 암호화는 간단하지만, 공용키를 제삼자가 손에 넣어버리면 누구라도 복호화할 수 있다. 특정 사람만 복호가 가능하도록 하기 위해선 공개키를 사용한 암호화를 실행하는 것이다.

 

공개키를 사용한 파일의 암호화

공개키 암호에서는 불특정 다수에게 공개해도 되는 공개키와, 비밀로 하지 않으면 안 되는 비밀키를 페어로 사용한다. 공개키를 사용한 암호화 한 것은 페어가 되는 비밀키만이 복호화시킬 수 있도록 하는 성질이 있다. 이것은 공개키를 사용한 파일 암호화 또는 복호의 순서이다.

공개키의 export

우선 암호화된 데이터를 받아들이는 측은 통신 상대에게 공개키를 보내기 위해 공개키를 파일에 export 한다.

 

gpg -o 출력 파일명 -a --export 자기 자신의 메일 주소

 

이것으로 공개키가 pubkey 파일에 export 되기 때문에 해당 파일을 통신하는 상대에게 보낸다

 

 

공개키 import

통신 상대 (암호화 파일을 보낼 곳 )으로부터 공개키를 받았다면 우선 그것을 import 해야 한다.

 

gpg --import pubkey

 

import 된 공개키의 리스트를 보기 위해서 아래의 커맨드를 사용한다.

 

gpg --list-keys

 

받아들인 공개키가 신뢰할 수 있다면 키에 서명을 행한다. 서명을 행하지 않으면 공개키가 신뢰 하수 없는 것이 되므로 사용할 때마다 경고가 표시된다.

 

gpg --sign-key 자기 자신의 메일 주소

 

파일의 암호화

받아들인 공개키를 이용하여 비밀키의 주인만 복호화할 수 있는 암호화 파일을 작성할 수 있게 되었다.

 

gpg -e -a -r 보내는 곳의 메일 주소   암호화된 파일명

 

위와 같이 커맨드를 입력하면 암호화된 파일이 작성된다.

 

파일의 복호화

보내어진 파일을 비밀키를 이용하여 복호화한다.

 

gpg 암호화된 파일명. asc

 

반응형