사실 e 메일은 보낸 사람의 신뢰성에 취약한 점이 있다.
그것을 보완하기 위해 GnuPG 를 이용해 송신자의 전자 서명 및 암호화 기능을 사용할 수 있어서
윈도우 환경에서 사용법을 기록해 두었다.
현재 GnuPG 경우 사용자의 공개키 공유가 우선 이루어 져야 하는데
특정 서버를 통해 공유 할 수 없어서 메일이나 다른 방법으로 우선 공유 되어야 한다.
1. GnuPG 개요
Gnu Privacy Guard 의 약자로 PGP의 오픈소스로 구현한 것이다. 표준 문서는 RFC 4880 이다.
GnuPG는 Free Software Foundation에서 OpenPGP 표준에 따라 개발한 프로그램이며
윈도우용 이름은 Gpg4win 이다
GPL(GNU General Public License) 라이센스 정책하에서 무료로 사용할 수 있고 소스코드도 공개 되어 있다.
GnuPG는 줄여서 GPG 라고도 한다.
2. GnuPG 설치
윈도우 환경에서 GnuPG툴을 받아서 설치를 해보자.
해당 윈도우용 설치 다운로드 및 설치는 https://www.gpg4win.org 사이트에서 그림 처림 진행 한다.
특별히 결제시 $0 선택하면 무료로 다운 받을 수 있다.
이렇게 하면 gpg4win-4.1.0.exe 파일을 다운로드 후 실행 하면 설치 된다.
설치 옵션은 디폴트 상태로 했다.
3. GnuPG 실행
설치후 Kleopatra 를 실행 하 화면이다.
처음 설치 시 키 쌍을 만들어야 하기 때문에 "새 키 쌍" 을 눌러준다.
키쌍 이름과 메일 주소를 입력한다. 이때 발신용 메일 주소와 일치 해야 한다.
이때 이름이랑 메일 주소 개인키 패스워드를 입력한다.
4. 개인키 저장 및 백업 하기
개인키 경우 GnuPG를 다시 설치 시에도 기존 메일 암/복호화 내용을 읽어 볼 수 있게 하기 위해 백업을 해야 한다.
백업은 아래 처럼 비밀키 백업을 통해 저장 한다. 이 때 개인키 암호를 입력 한다.
이 파일은 절대 노출 되어서는 안되다.
5. 공개키 내보내기/ 가져오기
GnuPG를 사용하여 전자서명 및 암/복호화를 하기 위해서는 내 공개키는 내보내기로 파일로 전달 하여야 하고
상대방의 공개키를 가져오기를 통하여 저장 한다.
메일 송수신 방법
- 사용 목적
- 보안을 위하여 이메일에 사용되는 파일이나 텍스트를 암호화하여 전송.
- 사용 방법
- 메일 송수신 전, 서로의 공개키를 공유한다.(사전 작업)
- 상대방에게 메일을 전송할 시, 상대방의 공개키를 사용하여 암호화한 후 암호문 전송.
- 상대방은 상대방의 개인키를 이용하여 암호문 복호화 후, 내용 파악 가능.
- 상대방에게서 암호문 메일이 전송된 경우, 자신의 개인키를 사용하여 복호화 후, 내용 파악 가능
- 키 용도
- 개인키 : 전자 서명 생성, 전달받은 데이터를 복호화 할 때 사용. (상대방과 공유X)
- 공개키 : 전자 서명 검증, 전송할 데이터를 암호화 할 때 사용. (상대방과 공유 O)
6. 메일 전자서명/암복호화
메일 내용을 전자서명과 암/복호화를 하기 위해서는 Kleopatra 의 메모장을 이용하면 된다.
물론 파일로 처리도 가능 하다.
메모장에서 GnuPG 메일을 만들고 메모장을 통하여 받은 GnuPG 메일을 복호화 해서 내용을 확인 하면되다.
아래 그림은 예제로 암호화 된 메일 이다.
참고로 전자 서명은 나의 개인키로 하고 암호화는 상대방의 공개키로 해야 한다.
그래야 상대방이 나의 공개키로 전자서명을 검증 할 수 있고
상대방의 개인키로 수신자인 상대방만이 복호화를 할 수 있기 때문이다.
간단히 GnuPG 에 대해 간단히 사용법을 설명 했다.
하지만 아래 그림 처럼 GpgOL 이라는 Outlook extension을 통해 아웃룩에서 직접 사용도 가능 하다.
실제로 Kleopatara 툴로 S/MIME 도 지원은 한다. 하지만 S/MIME 을 사용하기 위해서는 S/MIME 용 인증서가 필요하다.
아래는 나의 GnuPG 공개키 값이다.
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEZEjQ4xYJKwYBBAHaRw8BAQdAKLCFQmle+PQUqhbmhpuCUq/D3qxyyL/zdPi4
wWMZhkS0G2p5a2ltNzQgPGp5a2ltNzRAZ21haWwuY29tPoiZBBMWCgBBFiEEtmbW
bDZ2DY8JZmhbBp/zWTGTpx0FAmRI0OMCGwMFCQPDe00FCwkIBwICIgIGFQoJCAsC
BBYCAwECHgcCF4AACgkQBp/zWTGTpx1usgD+IlOQX5a01+97dxEJEg8lgACZmB0U
CgM/y8JTZaye1AsA/0OTItMOevHU77CdSm8RNkqSB4srQH15ita729Nkj3EJuDgE
ZEjQ4xIKKwYBBAGXVQEFAQEHQMU9TFEcr130n9NxU0GMRPjVEfqCl2Hm8QXZqHDi
ZZM8AwEIB4h+BBgWCgAmFiEEtmbWbDZ2DY8JZmhbBp/zWTGTpx0FAmRI0OMCGwwF
CQPDe00ACgkQBp/zWTGTpx3E7wEA/PalkCNWYV2EMEzVxrVagXJxOwdO5K+c4rhW
vBxADQoA/1afkHk9jdJXCPBAhJYSxVz+wxORzg5RTJt+PphqbzwG
=2R7a
-----END PGP PUBLIC KEY BLOCK-----
'IT > 보안' 카테고리의 다른 글
ICAP 서비스 리디렉션 (0) | 2024.05.19 |
---|---|
스퀴드(Squid)로 프록시 서버 구축하기 (0) | 2024.05.19 |
GPG 자료 암호화/복호화하기 (0) | 2024.04.17 |
Internal Server Error, 서버 500 에러는 어떤 경우에 발생하나요? (0) | 2023.11.29 |
DNS 영역 및 레코드 개요 (0) | 2023.11.11 |