· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
KLDP Code Fest/KSP

KLDPCodeFest의 이벤트로 PGP/GPG Key Signing Party(이후 KSP)를 개최했습니다.
  • 시간: 2004년 7월 18일 13시 (약 1시간 소요 예정)
  • 장소: 서울교육문화회관 크리스탈룸 및 그 앞 복도
이벤트가 끝났습니다. 참가하신 분들은 [http]아래(http://wiki.kldp.org/wiki.php/KLDPCodeFest/KSP#s-4) 나와 있는 대로 실제 사인을 해서 키서버에 업로드해 주세요.


키 목록 내려받기
  • [http]ksp-kldpcodefest.txt(http://people.debian.org/~cwryu/ksp-kldpcodefest/ksp-kldpcodefest.txt) (UTF-8 encoding)
키 모음 내려받기 추가 키 모음 내려받기 결과 분석
1 KSP란 무엇인가? 왜 하는가?
2 참여하시는 분이 준비할 것
2.1 key를 새로 만드셔야 하는 경우
2.2 주의사항
3 행사 절차
4 행사 이후
5 key signing의 의미
6 참고자료
7 질문과 답
8 추가분의 키 데이터를 얻는 법
9 보너스: 숙제 검사? 하는 법

1 KSP란 무엇인가? 왜 하는가? #


키 사이닝 파티(key signing party, KSP)는 PGP/GPG를 사용하는 사람들이 모여서 사람들의 공개키를 자신의 키로 서명(sign)하는 행사입니다. 이 행사를 통해 PGP/GPG 사용자는 [http]web of trust(http://www.rubin.ch/pgp/weboftrust.en.html)를 크게 늘릴 수 있고, 또 자기 PGP/GPG 키의 신뢰도를 크게 높일 수 있는 기회가 됩니다.

또 이 행사는 자칫하면 말 한 마디 안 하고 서먹서먹한 상태로 헤어질 수 있는 오프라인 행사에서 어떤 사람들이 나왔는지 알 수 있고, 행사에 참여한 모든 사람들과 (비록 조금씩이지만) 이야기를 나눌 수 있는 좋은 친목의 기회이기도 합니다.



이 KSP에서는 가능한 빨리 많은 사람들의 키를 확인할 수 있도록 Len Sassaman의 [http]Efficient Group Key Signing Method(http://sion.quickie.net/keysigning.txt)를 사용합니다. (원리가 궁금하시면 읽어보세요. 안 읽어 보셔도 참여하는 데는 지장이 없습니다.)

2 참여하시는 분이 준비할 것 #


  • 참여하고자 하시는 분은 2004년 7월 15일 23시 59분 59초까지 자신의 공개키를 cwryu@debian.org로 메일로 보내 주십시오. 메일의 제목에 "KLDP CodeFest KSP"를 포함해 주십시오
    $ gpg --export -a KeyID > mykey.asc
    
    (키가 없으신 분은 아래를 참고해서 새로 만드십시오.)
    현재 마감되었습니다!! 7월 16일 이후라도 보내 주시거나 이벤트 시작 전에 찾아 주시면 참여할 방법을 만들겠습니다. 하지만 1차 키 목록에는 포함되지 않습니다
  • 진행자는 그때까지 키를 모아서 2004년 7월 16일 10시에 공개키 및 각 공개키의 ID/fingerprint/UID를 열거한 문서 및 키 모음을 공개할 것입니다.
  • 2004년 7월 16일 10시 이후에 [http]ksp-kldpcodefest.txt(http://people.debian.org/~cwryu/ksp-kldpcodefest/ksp-kldpcodefest.txt) 문서 파일을 내려 받으신 다음 그 문서의 ?MD5SUM과 ?SHA1 hash를 계산합니다.
    $ gpg --print-md md5 ksp-kldpcodefest.txt
    $ gpg --print-md sha1 ksp-kldpcodefest.txt
    

  • ksp-kldpcodefest.txt 문서를 인쇄하고 위에서 계산한 ?MD5SUM 및 ?SHA1 hash를 적어 놓습니다.
    cwryu가 계산한 값은 아래와 같습니다. 하지만 아래 값만 보고 쓰지 마시고 꼭 직접 명령을 실행해서 확인하세요!
    $ gpg --print-md md5 ksp-kldpcodefest.txt
    ksp-kldpcodefest.txt: EB C4 1D 6F 10 25 DF 79  8F ED FA 63 62 DF 24 AD
    $ gpg --print-md sha1 ksp-kldpcodefest.txt
    ksp-kldpcodefest.txt: DD26 65CB B1D8 BBDD A32B  80AD AD79 4FD8 5B26 1FCB
    

2.1 key를 새로 만드셔야 하는 경우 #


[http] GnuPG 키 만들기(http://people.kldp.org/~eunjea/wiki/wiki.php/gnupg) 페이지 만들었습니다. -- eunjea 2004-07-06 02:18:48

2.2 주의사항 #


  • 가명이나 ID만 들어 있는 키는 사용하실 수 없습니다! 신분증에 있는 것과 같은 실명이 들어 있는 UID가 들어 있어야 합니다. 이미 만들어 놓은 키에 실명이 없다면 gpg --edit-key 내KeyID 명령으로 편집 모드에 들어가서 adduid 명령으로 실명 UID를 추가하십시오.
    • 한글로 된 신분증밖에 없는데 영문으로 표기한 경우는 허용합니다.
    • 영어로 이름 쓰기 애매하시면 걱정하지 마시고 Real Name을 한글로 쓰셔도 됩니다.
    • 별명이나 ID를 Real Name 부분에 쓰고 싶으시면 Gildong "nickname" Hong이나 홍길동 (nickname)과 같이 쓰시면 됩니다.
  • 반드시 공개키를 공개 키서버에 업로드하십시오.
    $ gpg --send-keys --keyserver wwwkeys.de.pgp.net 키ID
    

3 행사 절차 #


준비물: 필기도구, 위에서 인쇄한 문서, 정부에서 발행한 신분증

(종이와 펜을 사용한다는 가정하에 설명합니다. PDA나 노트북을 사용할 수도 있습니다.)

  1. 미리 준비를 못하신 분들이 참여할 수 있게 시간을 약간 할애할 예정입니다. (하지만 빠른 진행을 위해 꼭 키를 미리 보내 주세요)
  2. 진행자가 앞에서 ?MD5SUM 및 ?SHA1 hash를 읽어 드릴 것입니다. 위에서 준비한 ?MD5SUM과 ?SHA1 hash와 맞는 지 확인하십시오. 확인이 되면 참여하는 사람 모두는 동일한 문서로 작업한다는 뜻입니다. 확인이 끝나면 fingerprint를 개개인이 하나하나 확인할 필요가 없습니다.
  3. 충분한 공간을 확보하고 2열로 마주보고 선 다음 마주본 상대를 확인합니다. 이때 다음 두 가지를 확인해야 합니다.
    1. 상대방이 문서의 checksum과 그 문서 안에 들어 있는 자기 키의 fingerprint를 확인했는 지 여부 (문서에서 Fingerprint OK란에 체크)
    2. 신분증으로 눈앞에 있는 사람이 그 사람이 맞는 지 여부 (문서에서 ID OK란에 체크)
  4. 시계방향으로 돌아가면서 반복

4 행사 이후 #


  • 컴퓨터 앞에 돌아가면 KSP에 참여했던 키를 keyserver에서 가져오거나 위의 ksp-kldpcodefest.asc 및 ksp-kldpcodefest-add.asc 파일을 내려 받아서 import합니다
    $ gpg --import ksp-kldpcodefest.asc
    $ gpg --import ksp-kldpcodefest-add.asc
    

  • Fingerprint OK와 ID OK에 체크하신 키를 서명합니다. 반드시 체크하신 키만 서명하십시오!
    $ gpg --sign-key 키ID
    

  • 원칙은 서명한 키를 해당 사용자에게 메일로 보내고 본인이 키서버에 업로드할 지 결정합니다. 하지만 행사 당일 동의했으므로 바로 keyserver에 업로드합니다.
    $ gpg --send-keys --keyserver wwwkeys.de.pgp.net 키ID
    



  • 메일로 보낼 때는 gpg-mailkeys 스크립트를 사용하시면 편리합니다. [http]http://packages.debian.org/testing/misc/signing-party
  • 다른 분들로부터 서명을 받으면 gpg --import 명령으로 그 서명을 자기 키에 추가한 다음, 많은 사람들이 알 수 있도록 gpg --send-keys 명령으로 키 서버에 업로드합니다.

5 key signing의 의미 #


PGP/GPG가 하는 일은 크게 두 가지입니다. 하나는 암호화이고 또 하나는 인증입니다.

암호화는 내가 보내는/받는 정보를 다른 사람이 도청하더라도 알 수 없도록 암호화하는 기능입니다.
  • 연애편지에 들어 있는 데이트 스케줄을 연적이 알지 못하도록 해야 하겠고,
  • 지난달에 카드를 몰래 얼마나 썼는지 청구서가 날아왔는데 와이프가 알아채면 곤란하고,
  • 전쟁중인데 폭격 계획을 적이 눈치채면 안 될 것입니다.
--encrypt--decrypt 명령이 그런 기능을 합니다.
  • mutt/Mozilla Thunderbird/Ximian Evolution 등 전자메일 클라이언트에는 GPG로 암호화된 메일을 주고 받는 기능이 있습니다.
인증은 내가 보내는 정보가 내가 보냈다는 사실을 증명하고, 또 내가 받은 정보가 진짜로 그 사람에서 왔는지 확인하는 기능입니다.
  • 위에 있는 연적이 나를 사칭해서 데이트 스케줄을 바꾸는 일이 없어야 겠고,
  • 혹시라도 와이프가 내 계좌에 로그인해서 이번달에 카드대금이 빠져나간 사실을 볼 수 없어야 겠고,
  • 적이 아군의 최고통수권자를 사칭해 아군 지역에 폭격 명령을 내리는 일이 없어야 할 것입니다.
--sign---verify 명령이 그런 기능을 합니다.
  • mutt/Mozilla Thunderbird/Ximian Evolution 등 전자메일 클라이언트에는 메일을 GPG로 서명하고, 서명을 확인하는 기능이 있습니다.
  • 리눅스의 경우 FTP 사이트에 *.sign이 붙어 있는 파일을 볼 수 있습니다. 여기 들어 있는 서명을 이용해 이 파일이 오리지널 커널 아카이브에서 나온 파일이고 조작되지 않았는지 여부를 확인할 수 있습니다.
  • 데비안은 패키지를 업로드할 때 checksum이 들어 있는 파일을 메인테이너의 GPG key로 서명해서 잘못된 업로드를 막습니다.


GPG가 인증부분에 있어서 문제점이라면, 누구나 어떤 이름으로든 키를 만들 수 있다는 점입니다.
  • 만약 연적이 저를 사칭해 "아 지금 내가 GPG key를 잃어버려서 sign을 할 수가 없다. key를 바꿔야 겠다. 핑거프린트는..." 이라고 한다면 그게 정말 제가 key를 잃어버려서 한 말인지, 연적이 저를 사칭하는 것인지 어떻게 알 수 있을까요?
이런 경우에는,
  • 이미 잘 알고 있는 사람이라서 목소리로 확인할 수 있다면 전화로 확인할 수도 있겠고,
  • 잘 모르는 경우라면 직접 만나서 신분증의 사진을 대조해 보고 확인할 수도 있을 것이고,
  • 누군가 Scream에 나오는 음성변조기나 Mission Impossible에 나오는 위조여권을 가지고 고무가면을 쓰고 나올 가능성이 있다면, 다른 확인도 해야 할 지 모릅니다. :-)
확인을 했을 때 키를 서명합니다 (key signing). 자신의 키로 상대방의 키를 서명하는 것인데, 그 의미는 이 사람은 내가 알고 있는 그 사람이 맞는지 확인했다라는 뜻입니다. 그리고,
  • 내가 직접 서명한 키를 신뢰,
  • 내가 직접 서명한 키가 (제대로 서명할 거라고 생각되면) 서명한 키를 신뢰,
이런 식으로 나가다 보면 신뢰할 수 있는 키의 범위가 커지는데, 그걸 web of trust라고 합니다. (컨트롤이나 독점이 없는 순수한 풀뿌리 PKI입니다.)



6 참고자료 #


7 질문과 답 #

DeleteMe 이 행사는 꼭 KLDPCodeFest에서만 할 수 있는 행사는 아니니 ?KeySigningParty 라는 좀더 일반적인 이름의 페이지로 독립시켜서 작성하는 것이 어떨까요? -- 권순선
일반적인 정보라고 하기는 좀 어려운데요... 필요하다면 일반적인 정보를 추가하겠지만, 일단은 이번 행사에 어떻게 해야 할 지에 대한 정보를 담을 예정입니다. -- cwryu

공개키 서버에 공개키를 업로드 했는데. 나중에 공개키를 서버에서 지울 수 있습니까? --pyrasis
못 합니다. 공개키를 무효로 만드려면 revoke 인증서를 서버에 올리면 됩니다. 하지만 완전히 지울 수는 없습니다. --cwryu

은재님의 위키를 따라 공개키를 만들었습니다. 서버에도 올렸고, 이메일도 보냈습니다. 헌데, 이 공개키를 만든 컴퓨터를 가지고 코드페스트에 참여하지 않을거거든요.. 회사 컴이라.. 제 노트북을 가져가야되는데.. 아무 상관없는건가요?? 이럴땐 어떻게 하는건가요?? -- kwon37xi
다른 컴퓨터에서 이용하려면 개인키를 백업한 다음 import하면 됩니다. 꼭 그런 경우가 아니더라도 키를 잃어버리지 않게 백업해 두는 것이 좋습니다.
gpg --list-secret-key
하면 자기가 가진 키 목록이 나올 것이고 그 중에서 하나를 골라 다음 명령으로 백업합니다.
gpg --export-secret-key -a 키ID > mysecretkey.asc
이 파일을 다른 컴퓨터에서 이용하려면 파일을 해당 컴퓨터로 옮긴 다음 {{--import}}} 명령으로 가져옵니다.
gpg --import mysecretkey.asc
행사 당일에는 직접 키를 사인할 필요는 없기 때문에 (시간도 좀 부족하고) 개인키를 꼭 가져오실 필요는 없겠지만, 할 때 한번에 하는 것도 기분이 나겠지요? :) --cwryu

공개키서버에 업로드에 하는 것 관련 질문입니다.

행사전에
$ gpg --send-keys --keyserver wwwkeys.de.pgp.net KeyID
행사후에
$ gpg --send-keys --keyserver wwwkeys.pgp.net 키ID

이렇게 두 번 업로드 하는 건가요? 그리고 행사전과 행사후의 keyserver 주소가 하나는 .de가 들어가 있고 하나는 빠져 있는데 그게 같은 서버인지도 궁금합니다. --세벌
하나는 자기 키를 업로드하는 거고 뒤에는 사인한 남의 키를 업로드하는 거죠. wwwkeys.pgp.net 연결이 안 좋아서 wwwkeys.de.pgp.net으로 바꾸어 놓았는데 공용 키서버들은 서로 데이터를 교환하기 때문에 어떤 서버를 써도 상관없습니다.
나중에 추가분의 키를 등록하신 분들의 키 데이터가 없습니다. 받을 수 있도록 해주세요 cwryu님.
올렸습니다 --cwryu

8 추가분의 키 데이터를 얻는 법 #

다음 명령으로 KSP에 늦장 참여한 사람들의 gpg 키를 받을 수 있습니다. 예컨데 제(cdpark) 키를 받으시려면
$ gpg --keyserver wwwkeys.de.pgp.net --recv-keys 25E4C066
라고 치면 됩니다.


추가로 KSP에 참가한 6명의 GPG key ID입니다.
F77115D9 yongbin@...com
DBB76C7A ddoman@...com
25E4C066 cdpark@...com
F37C8D18 envia@...com
C7A9B1C7 idkiller@...com
82E2B7A1 mithrandir@...net

wwwkeys.de.pgp.net에만 등록한 분도 있고, wwwkeys.pgp.net에만 등록한 분도 있으니 두 곳 모두에게 물어보면 확실하겠죠? 귀찮겠죠? 한꺼번에 다 받으려면...
$ gpg --keyserver wwwkeys.de.pgp.net --recv-keys F77115D9 DBB76C7A 25E4C066 F37C8D18 C7A9B1C7 82E2B7A1
$ gpg --keyserver wwwkeys.pgp.net --recv-keys F77115D9 DBB76C7A 25E4C066 F37C8D18 C7A9B1C7 82E2B7A1
라고만 쳐 주세요.

현재(2004-7-18 21:50) mithrandir 님의 키가 키서버에 올라가 있지 않습니다. 제가 올린 키 자료가 변조(!) 되었을지도 모르니 fingerprint를 반드시 확인하세요.

-- cdpark
앗 키 올리는것을 깜빡 했군요. 지금 막 올렸습니다. -- mithrandir

9 보너스: 숙제 검사? 하는 법 #

$ gpg --keyserver wwwkeys.de.pgp.net --recv-keys keyID
$ gpg --list-sigs keyID
라고 치면 자신의 key에 대해 사인한 사람 목록을 볼 수 있습니다. (역시 두 서버를 번갈아가면서 확인해보세요.)
-- cdpark

See also KLDPCodeFest

ID
Password
Join
You will step on the soil of many countries.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-11-10 11:18:56
Processing time 0.0047 sec