레이블이 security인 게시물을 표시합니다. 모든 게시물 표시
레이블이 security인 게시물을 표시합니다. 모든 게시물 표시

2011년 3월 24일 목요일

Windows 환경에서 OpenSSL 빌드하기

OpenSSLSSL을 지원하는 많은 프로그램에서 사용하는 라이브러리 모듈이기 때문에 버그나 보안 관련 이슈가 발견되어 그것을 수정한 새로운 소스가 릴리즈될 경우 영향을 받을 수 있는 프로그램들은 최대한 빨리 업그레이드 해줄 필요가 있습니다. 다행스러운 점은 OpenSSL을 사용하는 대부분의 프로그램들이 (Windows 환경 기준으로) 두 개의 DLL 파일(ssleay32.dll & libeay32.dll)만 교체해주면 OpenSSL 모듈 업그레이드가 가능하다는 것입니다. -- DLL을 사용하지 않고 정적(static)으로 링크해버린 경우는 어쩔 수 없고, DLL을 사용했다고 하더라도 DLL 파일만 교체했을 때 드물게 오류를 일으키는 경우도 있습니다.

그러나 주의할 점이 하나 있는데, OpenSSL 1.0.x 버전과 0.9.x 버전의 라이브러리 인터페이스가 서로 다르기 때문에 DLL 파일 교체 시에 각각 인터페이스가 호환되는 버전으로 대체해야 한다는 것입니다. 예를 들어, 기존에 0.9.8q 버전의 DLL 파일이 사용되고 있었다면 0.9.8r 또는 그 이후 버전의 DLL 파일로 대체해야지 1.0.0d 버전이나 그 이후 버전의 DLL 파일로 대체하면 안 된다는 뜻이지요. DLL 파일의 속성 보기를 통해 버전 정보를 확인할 수 있으므로 적절한 대체 버전을 결정하는 것은 그리 어렵지 않습니다.

[libeay32.dll 속성 대화창]
[ssleay32.dll 속성 대화창]

빌드 준비

Windows 환경에서 OpenSSL 소스를 직접 빌드하는 것은 아주 간단합니다. 빌드에 사용되는 도구들도 모두 무료로 구할 수 있는 것들이기 때문에 비용에 대해 고민할 필요도 없습니다. (Visual C++ 64bit Compiler는 상용 제품에서만 제공됩니다.) 빌드에 필요한 도구들을 나열해보면 다음과 같습니다.

  • Perl: ActivePerl 또는 Strawberry Perl(@euler_kr 님 지적해주심)
  • C Compiler: Visual C++ 또는 Borland C 또는 GCC(Cygwin 또는 MinGW)
  • Assembler: nasm 또는 MASM

소스와 빌드 도구 다운로드 및 설치

소스는 OpenSSL 공식 홈페이지에서 다운로드 가능합니다. 1.0.x 버전과 0.9.x 버전이 함께 업데이트가 되고 있으므로 둘 다 받거나 둘 중 필요한 것으로 골라서 받습니다.

LINK: OpenSSL Source Downloads

이 글에서는 주로 많이 사용하는 Visual C++과 nasm을 가지고 Win32 환경으로 빌드하는 방법을 설명하겠습니다. 다른 도구 구성으로 빌드하고 싶은 분들은 OpenSSL 소스에 포함된 INSTALL.xxx 파일을 참고하시기 바랍니다. (Win32 빌드에 대해서는 INSTALL.W32 파일을, Win64 빌드에 대해서는 INSTALL.W64 파일을 참고)

가장 먼저 아래의 도구들을 각각 다운로드하여 설치합니다. OpenSSL 빌드에 사용되는 도구들은 특별히 버전에 대한 제약이 없으므로 최신 안정 버전을 받으면 됩니다. 단, Microsoft Visual C++은 빌드에 사용한 버전에 따라 결과물로 만들어진 DLL 파일이 해당 MSVC Runtime 버전에 대한 의존성을 가지게 되므로 외부에 전달할 때는 반드시 필요한 MSVC Runtime 버전을 알려주거나 재배포 가능한 패키지를 함께 제공할 필요가 있습니다.

LINK: ActivePerl 또는 Strawberry Perl 둘 중 하나

LINK: Microsoft Visual C++ Express Edition

LINK: Netwide Assembler(nasm)

빌드

  1. Windows 시작 메뉴에서 Visual Studio 명령 프롬프트를 실행합니다.

  2. nasmw.exe 파일의 위치를 PATH 환경 변수에 추가하거나 이미 PATH에 포함된 경로로 복사해줍니다.

    주의: 최근 nasm 배포본에서는 실행 파일명이 nasm.exe가 되었으므로 OpenSSL 빌드를 위해서는 nasmw.exe로 이름을 변경줄 필요가 있습니다.

  3. OpenSSL 소스가 풀려 있는 폴더로 경로를 변경합니다.

  4. Perl 스크립트를 통해 빌드 환경을 설정해줍니다.

    perl Configure VC-WIN32 --prefix=설치될_경로

    주의: 위와 같이 OpenSSL 기본 옵션으로 빌드하게 되면 미국과 몇몇 나라에서 특허로 보호받고 있는 암호화 알고리즘을 포함하게 되어 이것을 개발 중인 제품에 적용하거나 재배포할 때 법적인 문제를 야기할 수 있습니다. 그러므로, 특허로 보호되는 알고리즘을 제외하고 빌드하고 싶은 경우 no-idea no-mdc2 no-rc5 옵션을 추가해주어야 합니다. (greenfish77 님 지적해주심) 더 자세한 내용은 소스 내 README 파일의 PATENTS 항목과 FAQ 파일의 LEGAL 항목에서 확인할 수 있습니다.

    perl Configure VC-WIN32 no-idea no-mdc2 no-rc5 --prefix=설치될_경로
    또한 여기에 덧붙여, OpenSSL을 사용(또는 포함)한 어떠한 형태의 배포도 OpenSSL에 적용되고 있는 두 가지의 라이센스에 대해 표기해야 합니다. 자세한 것은 소스에 포함된 LICENSE 파일 내용을 참고하시기 바랍니다.

  5. Assembler로 nasm을 사용할 것임을 지정해줍니다.

    ms\do_nasm
  6. nmake로 빌드합니다. (한글 Windows 환경이라면 빌드 도중 에러가 발생할 수 있습니다. 이 에러에 대해서는 다음 단락을 참고하세요.)

    nmake -f ms\ntdll.mak
  7. 빌드가 잘 되었는지 테스트합니다.

    nmake -f ms\ntdll.mak test
  8. 최종적으로 만들어진 바이너리를 설치될_경로로 설치합니다.

    nmake -f ms\ntdll.mak install

빌드 중 compile error 해결하기

한글 Windows 환경에서 OpenSSL 소스를 빌드하게 되면 도중에 컴파일 에러를 만나게 됩니다. 소스 파일 중 딱 두 개가 컴파일 오류를 일으키는데, 그 원인은 소스 파일이 iso-8859-1 인코딩으로 저장되어 있고 그 내용 중에 확장 ASCII 문자가 포함되어 있기 때문입니다. Visual C++ Compiler(.NET 이후 버전부터)는 소스를 읽어 들일 때 UTF-8으로 인코딩된 파일인지 확인하고 그렇지 않다면 시스템 기본 인코딩(한글 Windows에서는 CP949)으로 간주합니다. 이 때 그 확장 ASCII 문자가 적절하지 못한 문자로 처리되어 컴파일 오류를 발생시키게 되는 것입니다.

컴파일 에러가 발생하는 소스 파일은 다음과 같습니다.

crypto\x509v3\v3_pci.c
crypto\x509v3\v3_pcia.c

해결 방법은 간단합니다. 문제가 되는 확장 ASCII 문자(ö)는 소스 파일 첫 부분(line 5)에 있는 주석 중 저작권 표기 부분에 포함되어 있습니다.

/* Copyright (c) 2004 Kungliga Tekniska Högskolan

그러므로, 적절한 텍스트 편집기로 열어서 그 이름 부분을 지우고 저장한 다음 빌드하면 됩니다. (주의: OpenSSL 라이센스 정책에 따라, 배포하는 소스에서 위 저작권 관련 표기를 삭제하는 것은 허용되지 않습니다. 이것은 단지 빌드 시에 오류를 피하기 위한 방법일 뿐입니다.) 혹은 그냥 소스를 UTF-8 인코딩으로 변환해서 저장해주면 됩니다.

2011년 2월 11일 금요일

OpenSSL 1.0.0d & 0.9.8r Win32 Binary

OpenSSL 1.0.0d 버전과 0.9.8r 버전이 함께 릴리즈 되었습니다.

주의:
이 제품에는 OpenSSL Toolkit에 사용하기 위해 OpenSSL Project에서 개발한 소프트웨어가 포함되어 있습니다. (http://www.openssl.org/)
이 제품은 Eric Young (eay@cryptsoft.com)이 작성한 암호화 소프트웨어를 포함합니다.
이 제품은 Tim Hudson (tjh@cryptsoft.com)이 작성한 소프트웨어를 포함합니다.
This product includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit.(http://www.openssl.org)
This product includes cryptographic software written by Eric Young (eay@cryptsoft.com)
This product includes software written by Tim Hudson (tjh@cryptsoft.com)

또한, 이 바이너리 배포판은 OpenSSL 기본 옵션으로 빌드되었습니다. 이것은 미국과 몇몇 국가에서 특허로 보호받고 있는 암호화 알고리즘을 포함하고 있다는 의미입니다. 그러므로, 이 바이너리 배포판을 자신의 제품에 적용하거나 재배포 할 때 특허 및 라이센스에 대해 고려하여야 합니다.

더 자세한 내용은 바이너리 배포판에 포함된 LICENSEREADME 파일의 PATENTS 항목을 참고하시기 바랍니다.

여기서 제공하는 binary는 MS Visual C++ 2010 Express Edition으로 빌드되었기 때문에 MS VC++ Runtime 2010이 필요합니다. 현재 시스템에 아직 설치되어 있지 않다면 아래 링크에서 다운로드한 후 설치하시면 됩니다.
LINK: Microsoft Visual C++ 2010 Redistributable Package (x86)

OpenSSL 1.0.0d 버전 Win32 binary는 아래에서 받으세요.
LINK: openssl-1.0.0d-win32-msvc100.zip (from DropBox)
LINK: openssl-1.0.0d-win32-msvc100.zip (from MediaFire)
LINK: openssl-1.0.0d-win32-msvc100.zip (from SkyDrive)

OpenSSL 0.9.8r 버전 Win32 binary는 아래에서 받으세요.
LINK: openssl-0.9.8r-win32-msvc100.zip (from DropBox)
LINK: openssl-0.9.8r-win32-msvc100.zip (from MediaFire)
LINK: openssl-0.9.8r-win32-msvc100.zip (from SkyDrive)

Binary build에 사용된 환경은 다음과 같습니다.
Microsoft Visual C++ Express Edition 2010 - http://www.microsoft.com/express/Downloads/#2010-Visual-CPP
NASM - http://www.nasm.us
ActivePerl - http://www.activestate.com/activeperl/


참고로, 제가 빌드해서 배포하는 것 외에 OpenSSL 공식 홈페이지에 게시된 binary 배포본의 링크는 아래에서 확인하실 수 있습니다.
LINK: http://www.openssl.org/related/binaries.html

2010년 12월 8일 수요일

OpenSSL 1.0.0c & 0.9.8q Win32 Binary

OpenSSL 1.0.0c 버전과 0.9.8q 버전이 함께 릴리즈 되었습니다.

여기서 제공하는 binary는 MS Visual C++ 2008 Express Edition으로 빌드되었기 때문에 MS VC++ Runtime 2008 SP1이 필요합니다. 현재 시스템에 아직 설치되어 있지 않다면 아래 링크에서 다운로드한 후 설치하시면 됩니다.
LINK: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

더 최신 버전의 바이너리가 릴리즈 되었습니다.
아래 링크를 확인하세요.
LINK: Kaisyu's Notes: OpenSSL

OpenSSL 1.0.0c 버전 Win32 binary는 아래에서 받으세요.

LINK: openssl-1.0.0c-win32-msvc90.zip (from DropBox)
LINK: openssl-1.0.0c-win32-msvc90.zip (from MediaFire)
LINK: openssl-1.0.0c-win32-msvc90.zip (from SkyDrive)

OpenSSL 0.9.8q 버전 Win32 binary는 아래에서 받으세요.
LINK: openssl-0.9.8q-win32-msvc90.zip (from DropBox)
LINK: openssl-0.9.8q-win32-msvc90.zip (from MediaFire)
LINK: openssl-0.9.8q-win32-msvc90.zip (from SkyDrive)
Binary build에 사용된 환경은 다음과 같습니다.
Microsoft Visual C++ Express Edition 2008 SP1 - http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
NASM - http://www.nasm.us
ActivePerl - http://www.activestate.com/activeperl/


참고로, 제가 빌드해서 배포하는 것 외에 OpenSSL 공식 홈페이지에 게시된 binary 배포본의 링크는 아래에서 확인하실 수 있습니다.
LINK: http://www.openssl.org/related/binaries.html

2010년 11월 24일 수요일

OpenSSL 1.0.0b & 0.9.8p Win32 Binary

OpenSSL 1.0.0a 버전과 0.9.8o 버전에서 중요한 버그 및 보안 이슈가 수정되어 1.0.0b 버전과 0.9.8p 버전이 함께 릴리즈 되었습니다.

여기서 제공하는 binary는 MS Visual C++ 2008 Express Edition으로 빌드되었기 때문에 MS VC++ Runtime 2008 SP1이 필요합니다. 현재 시스템에 아직 설치되어 있지 않다면 아래 링크에서 다운로드한 후 설치하시면 됩니다.
LINK: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

더 최신 버전의 바이너리가 릴리즈 되었습니다.
아래 링크를 확인하세요.
LINK: Kaisyu's Notes: OpenSSL

OpenSSL 1.0.0b 버전 Win32 binary는 아래에서 받으세요.
LINK: openssl-1.0.0b-win32-msvc90.zip (from DropBox)
LINK: openssl-1.0.0b-win32-msvc90.zip (from MediaFire)
LINK: openssl-1.0.0b-win32-msvc90.zip (from SkyDrive)

OpenSSL 0.9.8p 버전 Win32 binary는 아래에서 받으세요.
LINK: openssl-0.9.8p-win32-msvc90.zip (from DropBox)
LINK: openssl-0.9.8p-win32-msvc90.zip (from MediaFire)
LINK: openssl-0.9.8p-win32-msvc90.zip (from SkyDrive)

Binary build에 사용된 환경은 다음과 같습니다.
Microsoft Visual C++ Express Edition 2008 SP1 - http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
NASM - http://www.nasm.us
ActivePerl - http://www.activestate.com/activeperl/

2010년 6월 7일 월요일

OpenSSL 1.0.0a & 0.9.8o Win32 Binary

2010년 3월 29일자로 릴리즈된 OpenSSL 1.0.0 버전에서 중요한 버그와 보안 이슈가 수정된 1.0.0a 버전이 릴리즈 되었습니다. 그리고, 동일한 이유로 0.9.8o 버전도 함께 릴리즈 되었습니다.

여기서 제공하는 binary는 MS Visual C++ 2008 Express Edition으로 빌드되었기 때문에 MS VC++ Runtime 2008 SP1이 필요합니다. 현재 시스템에 아직 설치되어 있지 않다면 아래 링크에서 다운로드한 후 설치하시면 됩니다.
LINK: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

더 최신 버전의 바이너리가 릴리즈 되었습니다.
아래 링크를 확인하세요.
LINK: Kaisyu's Notes: OpenSSL

그리고, OpenSSL 1.0.0a 버전 Win32 binary는 아래에서 받으세요.

만약 위 아이콘이 보이지 않으면 아래 링크를 따라가세요.
LINK: OpenSSL 1.0.0a Win32 Binary (MSVC90)
Mirror: openssl-1.0.0a-win32-msvc90.zip


OpenSSL 0.9.8o 버전 Win32 binary는 아래에서 받으세요.

만약 위 아이콘이 보이지 않으면 아래 링크를 따라가세요.
LINK: OpenSSL 0.9.8o Win32 Binary (MSVC90)
Mirror: openssl_0.9.8o-win32-msvc90.zip



Binary build에 사용된 환경은 다음과 같습니다.
Microsoft Visual C++ Express Edition 2008 SP1 - http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
NASM - http://www.nasm.us
ActivePerl - http://www.activestate.com/activeperl/

2010년 3월 31일 수요일

OpenSSL 1.0.0 Win32 Binary

절대로 나오지 않을 것 같았던 OpenSSL 1.0 정식 버전2010년 3월 29일자로 릴리즈 되었습니다. 그 기념으로 Win32 binary를 만들었습니다.

아래 binary는 MS Visual C++ 2008 Express Edition으로 빌드되었기 때문에 MS VC++ Runtime 2008 SP1이 필요합니다. 현재 시스템에 아직 설치되어 있지 않다면 아래 링크에서 다운로드한 후 설치하시면 됩니다.
LINK: Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)

더 최신 버전의 바이너리가 릴리즈 되었습니다.
아래 링크를 확인하세요.
LINK: Kaisyu's Notes: OpenSSL

그리고, OpenSSL 1.0 정식 버전 Win32 binary는 아래에서 받으세요.

만약 위 아이콘이 보이지 않으시면 아래 링크를 따라가세요.
LINK: OpenSSL 1.0.0 Win32 Binary (MSVC90)

참고로, Binary build에 사용된 환경은 다음과 같습니다.
Microsoft Visual C++ Express Edition 2008 SP1 - http://www.microsoft.com/express/Downloads/#2008-Visual-CPP
NASM - http://www.nasm.us
ActivePerl - http://www.activestate.com/activeperl/

2004년 1월 10일 토요일

메일과 보안

POP3나 IMAP이 지원되는 메일 계정을 사용할 때, 메일이 왔나 체크하기 위해서 Outlook이나 Eudora와 같은 메일 클라이언트 프로그램을 실행하는 것은 꽤나 귀찮은 일입니다. 그래서 주기적으로 메일 체크를 해주는 프로그램을 많이 사용하게 되는데, 제각기 다양한 기능과 깜찍한 모양, 편리한 인터페이스를 자랑하지만, 그 많은 것들 중에 제 마음에 딱 드는 것이 없었습니다.

이유인 즉슨... 모두 SSL-POP 또는 SSL-IMAP 프로토콜을 지원하지 않는다는 것이었습니다. 요즘 들어서는 특히 packet sniffing 같은 것을 쉽게 할 수 있는 툴들도 많고 해서 자칫 잘못하면 계정과 패스워드가 고스란히 도난당할 위험이 큽니다. 그렇기 때문에 SSL을 통해 암호화된 통신을 할 수 있는 SSL-POP이나 SSL-IMAP 프로토콜의 지원이 중요한 관건이 되었다고 생각합니다.

많이 사용되고 있는 Outlook이나 Eudora, 혹은 Netscape 등은 이미 이 프로토콜들을 지원하고 있습니다. 하지만, 이것은 클라이언트측만의 노력으로 해결될 문제는 아닙니다. 메일 서버측에서도 이 프로토콜들을 지원해주어야 하기 때문이죠. 안타까운 것은 POP3 서비스를 제공하는 대형 메일 포탈들이 아직까지 이것들을 지원해주지 않고 있다는 것입니다.(야후를 포함한 몇몇은 HTTPS를 통한 웹메일 사이트 접근을 제공하고 있기는 합니다. 대신 안전한 메일 확인을 위해서는 메일 클라이언트가 아닌 웹브라우저에서 일일이 로그인 해야하는 번거로움이 있죠.)

그러나, 특정한 조직이나 개인, 단체, 혹은 학교에서 운영하는 메일 서버라면 약간의 수고로 지원이 가능하게 될 수도 있기 때문에 적극 건의를 통해서 지원이 되도록 하는 것이 좋을 것입니다.

메일의 보안에 대한 이슈는 여기서 그치지 않습니다. 근본적으로 메일이 SMTP를 거쳐서 전달되는 동안 암호화되지 않은 상태 그대로 전송이 된다는 것은 위에서 말씀드린 것과는 또 다른 문제입니다. 이것은 SMTP 기간 시스템을 수정하지 않으면 안되는 근본적인 문제입니다.

하지만, 대안으로 PGP, GnuPG 같은 메일 암호화 툴들을 생각해볼 수 있겠죠. 여기에 대한 것은 이미 많은 자료들이 인터넷에 존재합니다. 검색 엔진에서 'PGP' 혹는 'GnuPG'로 검색해보시면 많은 정보를 얻으실 수 있을 겁니다. 제 블로그에도 GnuPG에 대해 간략히 소개해 둔 것이 있습니다. (GnuPG + GPGshell for Windows 참고)

언젠가 '이제 몇 남지 않은 보안의 사각지대 중 가장 큰 것 두 가지는 MailFTP이다.'란 말을 본 적이 있습니다. 그만큼 많이 사용되고 있지만, 생각보다 보안에 허술한 것이 사실입니다. 이제부터라도 조금씩만 더 관심을 가지고 하나씩 보완해 나가야하지 않을까 생각해봅니다.

2003년 8월 9일 토요일

GnuPG + GPGshell for Windows

꽤 오래전부터 이 두 가지에 대한 소개글을 쓰고 싶었습니다. 그렇지만, 역시 제가 워낙에나 놀기 좋아하고 게으른 성격이라 잘 안되더군요. ^^; GnuPG를 사용하면 e-mail이나 중요한 문서를 암호화할 수 있고, 전자 서명을 덧붙여서 내용의 안전성을 보장해 줄 수도 있습니다. 그리고, 이러한 GnuPG를 편리하게 사용할 수 있도록 도와주는 GUI 프로그램으로 GPGshell이란 것도 있죠.

요즘처럼 개인정보 유출이 심각한 사회 문제로 대두되고 있고, 또 정보 자체가 지적 재산으로서 그 가치가 급상승하고 있는 시기에 여러분들도 이 두 프로그램을 사용해서 정보화 시대에 뒤쳐지지 않는 사람이 되어 보시는 것은 어떻겠습니까? ^^

1. GnuPG란?

GnuPG(GNU Privacy Guard)는 간단하게 말해서 암호화 도구입니다. GnuPG를 사용해서 여러분들의 중요한 문서나 파일, e-mail 내용 등을 암호화할 수도 있고, 전자 서명 기능을 통해 문서, e-mail 등의 내용에 대한 integrity를 보장할 수도 있습니다.
이러한 GnuPG는 이미 오래전부터 e-mail 및 개인 문서 보안에 사용되어 왔던 PGP(Pretty Good Privacy)를 완벽하게 대체할 수 있을 뿐만 아니라, 특허가 걸려있는 IDEA 알고리즘을 사용하지 않음으로 해서 이용 및 배포에 아무런 제약이 따르지 않는 장점이 있습니다.

GnuPG에 관한 좀 더 상세한 내용은 다음 링크를 참고하시기 바랍니다.
위 링크들은 모두 리눅스 환경에서 GnuPG를 설치하고 사용하는 방법에 대한 내용을 담고 있는 문서들입니다. 그러나, compile 및 설치를 제외한 개론 및 사용법에 관한 내용들은 platform에 상관없이 동일하므로 GnuPG를 이해하시는데 충분한 도움이 될 수 있을 겁니다.

2. Windows용 GnuPG 구하기

GnuPG의 Windows용 바이너리 및 소스는 GnuPG 공식 홈페이지의 다운로드 페이지에서 직접 다운로드 하실 수 있습니다.

http://www.gnupg.org

Windows용으로 미리 compile된 바이너리 패키지는 gnupg-w32cli-x.x.x.zip란 이름으로 되어 있습니다. GnuPG 1.4.1 버전 이후부터는 설치본 형태로 배포가 되기 때문에 gnupg-w32cli-x.x.x.exe 파일을 받으시면 됩니다.

3. Windows에서 GnuPG 설치하기

앞서 언급한 대로, 설치본 형태로 배포되는 파일이 있으므로 더 이상 아래 내용들은 의미가 없습니다. 그냥 설치본 파일을 실행하여 설치하시면 됩니다.

1) 다운로드한 바이너리 패키지 파일을 C:\GnuPG 디렉토리에 풀어놓습니다.
2) C:\GnuPG 디렉토리 아래에 Locale이란 디렉토리를 새로 만들고, 모든 mo 파일을 그 디렉토리로 옮깁니다.
3) gnupg-w32.reg 파일을 더블 클릭해서 registry 설정을 import 합니다.
4) PATH 환경 변수에 C:\GnuPG 디렉토리를 추가해줍니다. (이후 GPGshell을 사용하기 위해서 꼭 해주어야 할 중요한 부분입니다.)

이것으로 GnuPG의 설치는 완료되었습니다. 만약 C:\GnuPG 디렉토리가 아닌 다른 곳에 설치를 하고 싶으시다면 gnupg-w32.reg 파일을 메모장 같은 편집기로 연 후, C:\\GnuPG라고 되어 있는 부분을 모두 설치할 디렉토리 이름으로 대체해주시면 됩니다. 이때 주의하실 것은 경로 구분자를 \\로 해주셔야 한다는 것입니다.

4. GPGshell이란?

GnuPG가 CUI(Console User Interface) 형식으로 만들어져 있어 GUI에 익숙한 Windows 사용자들에게 다소 불편하게 느껴질 수 있는 것이 사실입니다. 이런 이유로 GnuPG에 대한 GUI Frontend 프로그램들이 많이 개발되어 있는데, 그 중 대표적인 것 두 가지가 WinPT와 GPGshell입니다. 이 글에서는 이 중 GPGshell에 대한 간략한 소개만을 하고자 합니다.

5. GPGshell 구하기

GPGshell의 공식 홈페이지는 다음과 같습니다.

GPGshell 공식 홈페이지

6. GPGshell 설치

설치 프로그램 형태로 제공이 되기 때문에 설치에 그다지 어려운 점은 없습니다. 다른 설치 패키지들과 마찬가지로 설치 마법사 인터페이스를 따라가면서 설치를 완료하시면 됩니다.

7. GPGshell 활용

이미 PGP를 사용해보신 분이라면 GPGshell의 인터페이스가 그다지 낯설지는 않을 것입니다. GPGshell은 5 가지 프로그램으로 구성되어 있습니다.
  1. GPGconfig
    GPGshell의 가장 기본적인 설정을 관리하는 도구입니다. GnuPG가 설치된 디렉토리를 설정해줄 수 있습니다.

  2. GPGkeys
    GnuPG의 키 목록을 관리하는데 사용되는 도구입니다. 자신의 비밀키와 공개키, import한 다른 사람들의 공개키가 목록으로 나타나며, 키와 관련된 거의 모든 동작을 마우스 오른쪽 버튼 메뉴를 이용해서 간편하게 처리할 수 있습니다.

  3. GPGtools
    암호화/복호화 및 서명과 같은 실제적인 동작을 처리해주는 도구입니다. 간단한 버튼 몇 개로 이루어진 단순한 인터페이스의 프로그램입니다.

  4. GPGtray
    사실상, GPGshell의 꽃이라고 할 수 있는 도구죠. GnuPG의 좀 더 편리한 사용을 위해서 Clipboard와 현재 활성화된 창에 있는 내용에 대한 암호화/복호화 기능을 제공해주고, GPGkeys와 GPGtools 같은 다른 도구 프로그램의 빠른 launching 메뉴도 제공합니다.

  5. GPGsfx
    자동으로 압축이 풀리면서 암호화된 파일이나 문서를 복호화 해주는 패키지를 제작하는 도구입니다. GPG를 사용하지 않고 있는 사람에게 암호화된 파일이나 문서를 전달할 때 유용합니다. Info-zip을 필요로 합니다.

이상으로 GnuPG와 GPGshell에 대한 간략한 소개를 마칠까 합니다. 내용이 많이 부실한 감이 없지 않지만, 실제로 인터넷이란 정보의 보고와 검색엔진이라는 좋은 도구가 있으니 저는 간단히 이런 것이 있다는 소개 정도로만으로도 충분할 거라 믿습니다.

덧붙여, Windows 환경에서 GnuPG + GPGshell 조합 대신 사용할 수 있는 것으로 Gpg4win 이라는 것도 있습니다만, 제 입장에서 볼 때 간단하게 쓰기엔 GnuPG + GPGshell 조합이 더 나은 듯 합니다. 그러나, S/MIME 지원, Explorer 및 Outlook 연동 등과 같은 좀 더 화려하고 향상된 기능을 원하신다면 Gpg4win을 고려해볼 만 합니다.

자, 이제 제 홈페이지 첫 화면에 있는 저의 GnuPG Public Key를 여러분들의 공개키 목록에 import하는 일만 남았습니다. ^^