안전한메일, 파일전송및보관 By vangelis(securityproof@gmail.com) 요즘메일을통해중요한파일을전송하는일이많아졌다. 그리고무료메일계정을제공하는곳도점차증가하고있다. 그러나그무료계정이보안과개인프라이버시를보장해주지는않는다. 이글에서는메일을안전하게보내는방법과파일을더욱안전하게전송하는것에대해알아보기로한다. 심지어자신의중요한파일을안전하게저장하는방법이될수도있다. 이글에서는 gpg4win이라는프로그램을소개할것이다. gpg4win은 GnuPG(http://gnupg.org/) 의 Windows 버전이다. GnuPG는 RFC8440에정의되어있는 OpenPGP 표준을구현한것이다. GnuPG는데이터와커뮤니케이션을암호화할수있고, GPG로도알려져있다. http://www.gpg4win.org/ 에가서 Gpg4win 최신버전을다운받는다. Gpg4win light 버전도있으나매뉴얼과 GnuPG2 커맨드라인툴이생략되기때문에 light 버전보다는 Gpg4win 버전을다운받기를권한다. 이글을작성하는현재 1.1.3 버전이가장최신버전이다. 먼저설치부터하자. 본격적인설치단계에서초보자들과상세한매뉴얼을선택하는부분이있는데, 이부분은필요한사람들만선택하면되겠다. 자세한매뉴얼이필요하다면 Novice Manual 부분만제외하고설치하자. 나머지부분은어려움없이설치할수있을것이다.
설치가끝난후 WinPT 를클릭하면다음과같은스크린이등장한다. 여기서 OK 버튼을클릭한다. 클릭하면다음과같은스크린이등장한다. 여기서는공개키 (public key) 를만드는과정이다. 이키는 E-mail 뿐만아니라파일전송을위해서도필요하다. 여기서 Real name 부분에굳이실제자기이름을넣을필요는없다. E-mail address 부분역시자신이사용하는 e-mail 주소를입력하면되는데, 단순히파일전송이목적이라면굳이정확한 e-mail 주소를입력할필요는없다. RSA key를선호한다면 Prefer RSA keys 부분을체크한다. 입력이끝나고 OK 버튼을클릭하면다음과같은창이뜬다.
여기서는 passphrase를입력한다. 이패스워드는자신만이알고있어야할부분이다. 입력하고 OK 버튼을클릭하면다시한번더 passphrase를입력한다. OK 버튼을클릭하면 Key 생성과정이나온다. Key 값이생성되면완료되었다는창이뜨고, OK 버튼을클릭한다. OK 버튼을클릭하면 keyrings 를백업할것인지를묻는데, 예 (Y) 클릭한다.
백업과정이끝나면다음과같은 Key Manager의창이뜬다. 백업파일은 C:\Program Files\GNU\GnuPG\share에저장된다. 이제 public key 를생성하는데성공했다. 이제생성된 public key를추출한다. 먼저 Key Manager의메뉴바에서 Key를클릭한후 export를다시클릭한다. 그러면 asc 파일로저장하게된다. 만약 key 생성초기에 Real name을 vangelis라고했다면 vangelis.asc라는이름으로저장된다. 이파일역시 C:\Program Files\GNU\GnuPG\share에저장된다. 저장된파일을메모장으로읽으면다음과같이 PGP Public Key를확인할수있다. -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.7 (MingW32) mqgibefot3wrbaczyudxjmimodgqoth9mxskbn20qc9xtqkuem5fl721rjv5zp+u e5ra0ufw+ulrkdrleayxg0vus1e3yocjxjgykjt4uzh1b6b3crntnbgtzakkw3ix V816xE9WuuHNB2eHPz4aKvQHMDQgxrIT0Bx8G5+uASAjSPy7z5OFoW58fwCgn78T jmy9g0hfcvzovz6zzobmh70d/0/pe0mctqmvswd1u00ff0apqugbdjl5idfn9fhu QEzerOl8khNhqO8ugbPZqsn009Q55Cxw9t7kRb9DMq7loc2+p34TtURBk1SNnqvo SzOjdYG97NQQK+/NETrQnCHZzxcVU7fW31F3/sW1Qv8NyOvgHgXHdjcLTmpCnRHe S3l/A/sGZfkZZKrs2+fRTqgsFEqkZMNngynPFEMCSbzlEEb/cNUXYJSrTuXcCmLm Ynpi2K6dE2Q+IiXYWSS3TFl/78sbGXpJC/B6Zm9/xQ03QZsjPba6HJB4jXw/tj2Q CJELgU7eqdJIrKP5yKaNoBGNZr9dtPxbvkKaYkHOKf7qwsU43bQbdmFuZ2VsaXMg PGhhY2tlckBnbWFpbC5jb20+iGAEExECACAFAkfOt3wCGwMGCwkIBwMCBBUCCAME FgIDAQIeAQIXgAAKCRABkElknb2s0vHJAJ40cHDNWCr0/F/H8RVCldr5kROvDQCd GVlhByuCBnNH0F4w4tfn24d3gkK5Ag0ER863fBAIALPXGTi1t6N/PXR2PqHbGO5K XRnw4R+K2L+rTlK1y7I9GWiMFXTRGmJRxL2eSsdgEib0X8Vf/EG6WJh9SzEmcxi1 SQfw2RkikrJxlZmrjau5xFwijYZ2cgsHcdwqtloMZ7SHdCpXCbF2/+ZhtgGoGzWN OPhujscrvXybm2DnIGbG2CZgFOeeFrF/UXrymt85EbCjr6cteLINAN3v0EYwB6UO XXtN7e2s/2dG0GQzZczMBIRhzOli2v0oEmXjVg3iQivd9m5wto9P73K/LiIVGGoe 9M4V2+ftcmmqA/s98JpmGGddWhrcjlgW2fSl4px/4tzZqsua15jvt36ZPQlT+hMA AwUH/2Nc5+HuQTnNXm/sXGZwdpFBpbQFCs/975XFGfKDiParReT3WOHQC00uO7DS wbde52sci8ntng9qfn2+a32zhhm2g0q3l/4m51xyyvboxz9yjfyljnso0emyjnhy
4ScZzrXSukgQ2ILdfB8IGsecVQ3J5esQWUBDoXsYEc5Lx0b/GAooLRUksVwNJQuO 7aZKYJeimXaaJNgVBhrMadPglgosRPNSvhnB0sWm+fxCpjYu5xMiXnJl1s1katch X2I2e1gKkM8kpMs8OKjzEEiICn0U4jjFgUDxXwPu3t/Y/tI6fAASyTr/IpRlLW5C 4Zz/SlvtT6Or3n1euU6O+0n91x+ISQQYEQIACQUCR863fAIbDAAKCRABkElknb2s 0uN9AJ4mBng5HGI52Heru6L5jdCszOPRPACcDAfHs/MPrSAe2Q2mVbiKs0dA/Dk= =pyyj -----END PGP PUBLIC KEY BLOCK----- 이 asc 파일을 e-mail이나파일을주고받을다른사람들에게제공하면된다. 상대방도같은방식으로 asc 파일을전달한다. 이제상대방의 public key를등록해야하는데, 그방법은아주간단하다. 상대방으로부터 asc 파일을받아 Key Manager로끌어놓으면된다. 이글에서는메일링리스트에올라온 CORE Security Technologies의 asc 파일을설명을사용했다. asc 파일을끌어두면다음과같은창이뜬다. 여기서 import 를클릭하면다음과같은창이뜬다.
여기서 OK 를클릭하면다음과같이상대방의 key 값이등록된다. 이제부터는활용방법에대해알아본다. 먼저상대방에게파일을전송하는것에대해알아보자. Example.txt 라는파일을상대방에게전송 할것이다. 내가만든 example.txt라는파일이조작없이안전하게전달되게하는것이목적이다. 보안을위해먼저파일을압축하는데, 압축할때패스워드를지정하면안전할것이다. 필자는알집을이용하는데, 오른쪽아래를보면압축시암호를입력하는부분이있다. 이부분을이용해암호를지정하고압축을하자. 암호를지정할때는최소 8자이상의조합을사용한다. 압축시파일포맷은여러분들이선택하길바란다. 여기서지정한암호는상대방도알고있어야한
다. 모를경우 gpg 파일을 decrypt 한이후에도압축된파일을볼수없을것이기때문이다. 암호를지정한후압축이완료되면압축된파일위에마우스를위치시키고, 오른마우스를클릭한다. 그런다음열쇠표시와함께있는 GPGee에마우스를올리면다시메뉴창이뜨는데, 여기서 Encrypt(PK) 부분을클릭한다. 그러면 Sign/Encrypt 창이뜨는데, 이때상대방의공개키부분을체크한후 OK 버튼을클릭한다. 그러면 example.zip.gpg 파일이생성된다. 앞에서예를들었든 example.zip파일은 example.zip.gpg와같이생성된다. 그다음이 gpg 파일을상대방에게전달하는데, 전달할때는세가지가있을것이다. 직접전달하거나, 아니면 e-mail 또는메신저와같은 p2p 프로그램을이용하는것이다. 여기서는 e-mail을이용할때와메신저를이용하는것에대해간단하게알아보자. 요즘 gmail과같은무료계정을이용하는사람들이많을것이다. 그런데이무료계정들이완벽한프라이버시나보안을담보해주지않는다. 어떤경우메일서버에보관될수도있다. 그래서메일을보낼때는메일의실제내용은압축파일안에포함시켜 gpg 파일을첨부파일로보내는것이다. 이럴경우악의적인공격자가내메일계정을크래킹하여파일을갈취하더라도파일의내용을쉽게볼수없을것이다. gpg 파일로변환한것을메신저로보내는것도한방법이다. 왜냐하면서버에저장되는것을막을수있기때문이다. 이런식으로사용한다면 Key 값을생성할때정확한이름과 e-mail 주소를입력할필요가없을것이다. 상대방도같은순서로하면된다. 상대방은나의 asc 파일을이용해암호화한다. 이제파일을받았다면이파일의암호를풀어파일의내용을확인하는방법에대해알아보자. 먼저상대방으로부터받은파일에마우스를올리고오른쪽마우스를클릭하여 GPGee에마우스를올리면 Verify/Decrypt를선택한다. 그러면 Enter Passphrase 창이뜨는데, 이때 key 값을생성할때사용한 passphrase를입력한후 OK 버튼을클릭하면다음과같은성공메시지가뜬다. Successfully decrypted and written to file "C:\Documents and Settings\hacker\ 바탕화면 \example.zip". 마지막으로자신의컴퓨터에있는파일들을안전하게보관할때 gpg4win 를활용하는방법은없 을까? 있다. 바로앞에서설명한것과하나만차이가있을뿐이다. 최초자신의 public key를만들었을때그 key를이용해암호화하는것이다. 즉, GPGee를이용해자신의 public key로암호화하고, 다시 GPGee를이용해자신의 public key의 passphrase를이용해해독하면된다. 그런데다른사람의 public key 값을등록하면 GPGee를통한자신의 public key로암호화가되지않는문제가 gpg4win에있는것같다. 처음부터의도한것인가?