ããã§ã¯ã次ã®ãããã¯ã«ã€ããŠèª¬æããŸãã
- é¢é£ãœãããŠã§ã¢ãæäœããããã®PGPã®åºæ¬ãšæšå¥šäºé
ã
- Gitã§PGPã䜿çšããŸãã
- éçºè
ã¢ã«ãŠã³ãã®ä¿è·ã
ææã®æ§é ã«ã€ããŠ
ãã®äžé£ã®è³æã®åã»ã¯ã·ã§ã³ã¯ã2ã€ã®éšåã«åãããŠããŸãã
- ç¹å®ã®ãããžã§ã¯ãã®ããŒãºã«é©å¿ã§ãããã§ãã¯ãªã¹ãã
- ãã§ãã¯ãªã¹ãã®èŠçŽ ã®æ¬è³ªã®èª¬æãããã³ããã°ã©ã ãæäœããããã®æ瀺ã
ãã§ãã¯ãªã¹ãæ©èœ
åãã§ãã¯ãªã¹ãã®èŠçŽ ã«ã¯ãç¹å®ã®ã¢ã€ãã ã®åªå 床ã¬ãã«ã«é¢ããæ å ±ãå«ãŸããŠããŸãã ããããææ¡ãããæšå¥šäºé ã®äœ¿çšã«é¢ããææ決å®ã«åœ¹ç«ã€ããšãé¡ã£ãŠããŸãã
- åªå
床ããéèŠãã«å²ãåœãŠãããŠããèŠçŽ ã«ã¯ãç¹å¥ãªæ³šæãæãå¿
èŠããããŸãã ãéèŠãªããã€ã³ãããã®æšå¥šäºé
ãå®è£
ãããŠããªãå Žåãããã¯ãããžã§ã¯ãã«å«ãŸããã³ãŒãã«é¢ããåé¡ã®ãªã¹ã¯ãé«ãããšãæå³ããŸãã
- æšå¥šé
ç®ã«ã¯ãã»ãã¥ãªãã£ã®å
šäœçãªã¬ãã«ãåäžãããããã«å®è£
ããã®ã«åœ¹ç«ã€æšå¥šäºé
ãå«ãŸããŠããŸãã ãããã®å®è£
ã¯ãããã°ã©ããŒãšåœŒã®äœæ¥ç°å¢ãšã®çžäºäœçšã«åœ±é¿ãäžããå¯èœæ§ããããããã«ã¯æ°ããç¿æ
£ã®ç¿åŸãŸãã¯å€ãç¿æ
£ã®æŸæ£ãå¿
èŠã«ãªãå ŽåããããŸãã
ããã«ãªã¹ããããŠãããªã¹ãã¯ãã¹ãŠæšå¥šäºé ã§ããããšã«æ³šæããŠãã ããã äžããããåªå 床ã¬ãã«ãã»ãã¥ãªãã£ã®èŠ³ç¹ãããããžã§ã¯ãã®è©³çŽ°ãåæ ããŠããªããšæããå Žåãããããããªãã®ããŒãºã«é©åãããå¿ èŠããããŸãã
åºæ¬çãªPGPã®æŠå¿µãšããŒã«
âãã§ãã¯ãªã¹ã
ãã®ã»ã¯ã·ã§ã³ã®è³æãæ£åžžã«ãã¹ã¿ãŒããåŸãããã²ãŒãããå¿ èŠããããããã¯ã¯æ¬¡ã®ãšããã§ãã
- ããªãŒãœãããŠã§ã¢éçºã«ãããPGPã®åœ¹å²ïŒéèŠïŒã
- å
¬ééµæå·ã®åºç€ïŒéèŠïŒã
- æå·åè³æãšçœ²åè³æã®éãïŒéèŠïŒã
- PGPããŒIDïŒéèŠïŒã
- PGPããŒã®æå¹æ§ïŒéèŠïŒã
- GnuPGãŠãŒãã£ãªãã£ã®ã€ã³ã¹ããŒã«ïŒããŒãžã§ã³2.xïŒïŒéèŠïŒã
説æ
ãªãŒãã³ãœãŒã¹ã³ãã¥ããã£ã¯ããœãããŠã§ã¢è£œåã®ä¿¡é Œæ§ãšæŽåæ§ã確ä¿ããããã«ãé·ãéPGPã«äŸåããŠããŸããã ããã«æ°ä»ããŠããªããããããŸããããLinuxãMacãWindowsã®ããããå®è¡ããŠããŠãããã§ã«PGPã䜿çšããŠã³ã³ãã¥ãŒãã£ã³ã°ç°å¢ã®æŽåæ§ã確ä¿ããŠããŸãã
- Linuxãã£ã¹ããªãã¥ãŒã·ã§ã³ã¯PGPã䜿çšããŠããã€ããªããã±ãŒãžãŸãã¯ãœãŒã¹ããã±ãŒãžãäœæãããŠãããšã³ããŠãŒã¶ãŒã«ãã£ãŠã€ã³ã¹ããŒã«ããããŸã§å€æŽãããªãããã«ããŸãã
- éåžžãããªãŒãœãããŠã§ã¢ãããžã§ã¯ãã¯ããªãªãŒã¹ããããœãããŠã§ã¢ã¢ãŒã«ã€ãçšã«åå¥ã®PGââP眲åãæäŸããããããããã«äŸåãããããžã§ã¯ãã¯ãããŠã³ããŒããããªãªãŒã¹ã®æŽåæ§ãæ€èšŒããŠãããç¬èªã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«çµ±åã§ããŸãã
- éåžžãããªãŒãœãããŠã§ã¢ãããžã§ã¯ãã¯ããªãªãžã³ã远跡ããéçºè
ã«ãã£ãŠæäŸãããã³ãŒãã®æŽåæ§ã確ä¿ããããã«ãã³ãŒãèªäœã®PGP眲åã«äŸåããŠããŸãã
ããã¯ãã¯ããŒãºããœãŒã¹ãã©ãããã©ãŒã ã§äœæ¥ããããã°ã©ãã䜿çšããéçºè 蚌ææžãšã³ãŒã眲åã®ã¡ã«ããºã ã«éåžžã«äŒŒãŠããŸãã å®éãããã2ã€ã®æè¡ã®åºç€ãšãªãåºæ¬çãªæŠå¿µã¯ã»ãšãã©åãã§ãã ãããã¯ãäž»ã«å®è£ ã®æè¡çãªè©³çŽ°ãšãä¿¡é Œãå§ä»»ããæ¹æ³ãç°ãªããŸãã PGPã¯äžå€®éäžåã®èªèšŒãµãŒãã¹ã«äŸåããã代ããã«ãã®ã·ã¹ãã ã«ããããŠãŒã¶ãŒã¯å蚌ææžã«ä¿¡é Œã¬ãã«ãåå¥ã«å²ãåœãŠãããšãã§ããŸãã
ç§ãã¡ã®ç®æšã¯ããããžã§ã¯ãã«å ¥ãã³ãŒãã®èµ·æºãå¶åŸ¡ããPGPã§ãã®æŽåæ§ã远跡ã§ããããã«ããããšã§ãã ããã¯ãPGPã䜿çšããåºæ¬çãªå®å šèŠåãåŠç¿ããããã®æšå¥šäºé ã«åŸãããšã§å®è¡ã§ããŸãã
PG PGPããã©ãŒãã³ã¹ã®æŠèŠ
PGPã®åäœã«é¢ãã詳现ããã¹ãŠç¥ãå¿ èŠã¯ãããŸããã ãã®æè¡ãããŸã䜿çšããã«ã¯ããã®åºæ¬æŠå¿µãç解ããã ãã§ååã§ãã PGPã¯å ¬ééµæå·ã䜿çšããŸãã ããšãã°ãæå·åæ¹åŒã䜿çšãããšããã¬ãŒã³ããã¹ããæå·åãããããã¹ãã«å€æã§ããŸãã ãã®ããã»ã¹ã«ã¯2ã€ã®ç°ãªãããŒãå¿ èŠã§ãã
- 誰ããç¥ã£ãŠããå
¬ééµã
- ææè
ã®ã¿ãç¥ã£ãŠããç§å¯éµã
âæå·å
æå·åã®ããã«ãPGPã¯æå·åãããçŽ æãæå³ãããŠãã人ã®å ¬ééµã䜿çšããŸãã æå·åäžã«ãã¡ãã»ãŒãžåä¿¡è ã«å±ãã察å¿ããç§å¯ããŒã䜿çšããŠã®ã¿è§£èªã§ããã¡ãã»ãŒãžãäœæãããŸãã
æå·åããã»ã¹ã¯æ¬¡ã®ããã«ãªããŸãã
- éä¿¡è
ã¯ãã©ã³ãã ãªæå·åããŒïŒã»ãã·ã§ã³ããŒïŒãäœæããŸãã
- éä¿¡è
ã¯ããã®ã»ãã·ã§ã³ããŒã䜿çšããŠïŒå¯Ÿç§°æå·ã䜿çšããŠïŒã¡ãã»ãŒãžã®å
容ãæå·åããŸãã
- éä¿¡è
ã¯ãåä¿¡è
ã®PGPå
¬éããŒã䜿çšããŠã»ãã·ã§ã³ããŒãæå·åããŸãã
- éä¿¡è
ã¯ãæå·åãããããŒã¿ãšæå·åãããã»ãã·ã§ã³ããŒãåä¿¡è
ã«éä¿¡ããŸãã
æå·åãããã¡ãã»ãŒãžã解èªããã«ã¯ã次ã®ã¢ã¯ã·ã§ã³ãå®è¡ãããŸãã
- åä¿¡è
ã¯ãPGPç§å¯éµã䜿çšããŠã»ãã·ã§ã³ããŒã埩å·åããŸãã
- åä¿¡è
ã¯ã»ãã·ã§ã³ããŒã䜿çšããŠãã¡ãã»ãŒãžã®å
容ã解èªããŸãã
â眲å
ããŒã¿ã«çœ²åããã«ã¯ãPGPå ¬ééµãšç§å¯éµãå察ã®æ¹æ³ã§äœ¿çšãããŸãã
- 眲åè
ã¯ãããã€ãã®ããŒã¿ã®ãã§ãã¯ãµã ããã·ã¥ãçæããŸãã
- 眲åè
ã¯ç¬èªã®ç§å¯éµã䜿çšããŠããã®ãã§ãã¯ãµã ãæå·åããŸãã
- 眲åè
ã¯ãããŒã¿ãšãšãã«æå·åããããã§ãã¯ãµã ãæäŸããŸãã
眲åãæ€èšŒããã«ã¯ã次ã®æé ãå®è¡ããŸãã
- æ€èšŒè
ã¯ãç¬èªã®ããŒã¿ã®ãã§ãã¯ãµã ãçæããŸãã
- æ€èšŒè
ã¯çœ²åè
ã®å
¬ééµã䜿çšããŠãæäŸããããã§ãã¯ãµã ã解èªããŸãã
- ãã§ãã¯ãµã ãäžèŽããå Žåãã³ã³ãã³ãã®æŽåæ§ã確èªãããŸãã
encryptionæå·åãšçœ²åã®å ±æ䜿çš
å€ãã®å Žåãæå·åãããã¡ãã»ãŒãžãéä¿¡è èªèº«ã®PGPããŒã䜿çšããŠçœ²åãããŸãã èªèšŒãªãã®æå·åã¯ããŸãæå³ããªãã®ã§ãæå·åãããã¡ãã»ãŒãžã亀æãããšãã¯åžžã«ãã®ã¢ãããŒãã䜿çšããå¿ èŠããããŸãïŒããããããã®ãããªããšã®å¿åæ§ã¯ãç§å¯ãšãŒãžã§ã³ããå ¬éæ å ±ãå ¬éãã人ã«ã®ã¿å¿ èŠã§ãïŒã
ããŒã®èå¥
åPGPããŒã¯ãããŒææè ã®IDã«é¢é£ä»ããå¿ èŠããããŸãã ããã¯éåžžã次ã®åœ¢åŒã®å人ã®ãã«ããŒã ãšã¡ãŒã«ã¢ãã¬ã¹ã§ãã
Alice Engineer <alice.engineer@example.com>
è³æ Œæ å ±ã«ã¯ãç¹å®ã®ããŒã®è©³çŽ°ããšã³ããŠãŒã¶ãŒã«ç¥ãããããã®ã³ã¡ã³ããæ¬åŒ§å ã«å«ãŸããŠããå ŽåããããŸãã
Bob Designer (obsolete 1024-bit key) <bob.designer@example.com>
ããŒãææãã人ã¯ãå€ãã®è·æ¥çããã³å人çãªåœ¹å²ãæŒããããšãã§ãããããåãããŒã«è€æ°ã®èå¥ããŒã¿ã»ãããååšããå¯èœæ§ããããŸãã
Alice Engineer <alice.engineer@example.com> Alice Engineer <aengineer@personalmail.example.org> Alice Engineer <webmaster@girlswhocode.example.net>
è³æ Œæ å ±ã®è€æ°ã®ã»ããã䜿çšãããå ŽåãããŒæ€çŽ¢ãç°¡çŽ åããããã«ããã®ãã¡ã®1ã€ããã©ã€ããªãšããŠããŒã¯ãããŸãã
âããŒèªèšŒ
æå·åãŸãã¯æ€èšŒã«ä»ã®èª°ãã®å ¬ééµã䜿çšã§ããããã«ããã«ã¯ããããå®éã«ãã®äººç©ïŒãã®å Žåã¯ã¢ãªã¹ïŒã«å±ããè©æ¬ºåž«ïŒè©æ¬ºåž«ãã€ããšåŒã¶ïŒã§ã¯ãªãããšã確èªããå¿ èŠããããŸãã PGPã§ã¯ãããã¯ããŒã®æå¹æ§ãšåŒã°ããŸãã
- ããŒã®å®å
šãªæå¹æ§ã¯ãããŒãã¢ãªã¹ã«å±ãããšããéåžžã«é«ãã¬ãã«ã®ç¢ºå®æ§ãããããšãæå³ããŸãã
- ããŒã®å¢çæå¹æ§ã¯ãããŒãã¢ãªã¹ã«å±ããŠããããšãããçšåºŠç¢ºä¿¡ããŠããããšãæå³ããŸãã
- ããŒã®æªç¥ã®çæ£æ§ã¯ããã®ããŒãã¢ãªã¹ã«å±ããŠãããšãã確信ããŸã£ãããªãããšãæå³ããŸãã
trustä¿¡é Œã®ãããã¯ãŒã¯ãšãåå䜿çšæã®ä¿¡é Œãã®ã¡ã«ããºã
PGPã«ã¯ãWeb of TrustïŒWOTïŒãšããŠç¥ãããä¿¡é Œå§ä»»ã¡ã«ããºã ãå«ãŸããŠããŸãã æ¬è³ªçã«ã¯ãHTTPS / TLSã§äœ¿çšããããããªéäžåãããèªèšŒãµãŒãã¹ã®å¿ èŠæ§ã眮ãæããè©Šã¿ã§ãã ãã®ã¢ãããŒãã§ã¯ããŠãŒã¶ãŒã¯ç¬ç«ããŠèª°ãä¿¡é Œãããã決å®ããŸãã
æ®å¿µãªãããä¿¡é Œãããã¯ãŒã¯ãã©ã®ããã«æ©èœããããç解ããŠãã人ã¯éåžžã«å°ãªãããã®æè¡ãæ°ã«ãã人ã¯ããã«å°ãªãã ä¿¡é Œãããã¯ãŒã¯ã¯åŒãç¶ãOpenPGPä»æ§ã®éèŠãªåŽé¢ã§ãããGnuPGïŒ2.2以éïŒã®æ¢åã®ããŒãžã§ã³ã¯ãæåã®äœ¿çšæã®ä¿¡é ŒïŒTOFUïŒã¡ã«ããºã ã«ä»£è¡šããã代æ¿ã¢ãããŒããå®è£ ããŠããŸãã
TOFUã¯SSHãšæ¯èŒã§ããŸãã åããŠSSHã䜿çšããŠãªã¢ãŒãã·ã¹ãã ã«æ¥ç¶ãããšãã·ã¹ãã ã¯ãã®ããŒã®ãã£ã³ã¬ãŒããªã³ããèšæ¶ããŸãã ããŒãå€æŽããããšãSSHã¯ã©ã€ã¢ã³ãã¯ãããéç¥ããŠæ¥ç¶ãæåŠããå€æŽãããããŒãä¿¡é Œãããã©ããã®æ±ºå®ãæ±ããããã³ããã衚瀺ããŸãã
TOFUã¡ã«ããºã ãåæ§ã«æ©èœããŸãã 誰ãã®PGPããŒãåããŠã€ã³ããŒããããšãä¿¡é Œã§ãããšèŠãªãããŸãã ãã®åŸãGnuPGãåãè³æ Œæ å ±ãæã€æ°ããããŒã«ééãããšãäž¡æ¹ã®ããŒãç¡å¹ãšããŠããŒã¯ãããã©ã¡ããä¿æããããèªåã§æ±ºå®ããå¿ èŠããããŸãã
ãã®ã¬ã€ãã§ã¯ãTOFUä¿¡é Œã¢ãã«ã䜿çšããŸãã
âçšèªã«ã€ããŠ
ããã§ãPGPãOpenPGPãGnuPGãgpgãªã©ã®çšèªã®éããç解ããããšã®éèŠæ§ã«æ³šç®ããŸãã
- PGPïŒPretty Good PrivacyïŒã¯ã1991幎ã«ãªãªãŒã¹ãããåçšããã°ã©ã ã®ååã§ãã
- OpenPGPã¯ãPGPãšäºææ§ã®ããIETFæšæºã§ãã
- GnuPGïŒGnu Privacy GuardïŒã¯ãOpenPGPæšæºãå®è£
ããããªãŒãœãããŠã§ã¢ã§ãã
- GnuPGã®ã³ãã³ãã©ã€ã³ããŒã«ã¯gpgãšåŒã°ããŸãã
ä»æ¥ãPGPãšããçšèªã¯ãããã°ã©ã ã®ååãšããŠã§ã¯ãªãããOpenPGPæšæºãã®æå³ã§ã»ãŒæ®éçã«äœ¿çšãããŠãããããPGPãšOpenPGPã¯äºæçã«äœ¿çšãããŸãã GnuPGããã³gpgãšããçšèªã¯ãç¹å®ã®ããŒã«ãæå³ããå Žåã«ã®ã¿äœ¿çšããå¿ èŠããããæšæºãä»ã®æŠå¿µãšã¯é¢ä¿ãããŸããã äŸïŒ
- PGPããŒïŒGnuPGãŸãã¯GPGã§ã¯ãªãïŒ
- PGP眲åïŒGnuPGãŸãã¯GPGã§ã¯ãªãïŒ
- PGPããŒãµãŒããŒïŒGnuPGãŸãã¯GPGã§ã¯ãªãïŒ
ãããã®éããç解ãããšãä»ã®PGPãŠãŒã¶ãŒãšã®ã³ãã¥ãã±ãŒã·ã§ã³ã«åœ¹ç«ã¡ãŸãã
GGnuPGã®ã€ã³ã¹ããŒã«
Linuxã䜿çšããŠããå ŽåãGnuPGãœãããŠã§ã¢ããã§ã«ã·ã¹ãã ã«ã€ã³ã¹ããŒã«ãããŠããããšãæå³ããŸãã Macã§ã¯ã GPG-Suiteãã€ã³ã¹ããŒã«ãããã
brew install gnupg2
䜿çšããå¿ èŠããããŸãã WindowsãŠãŒã¶ãŒã®å Žåã GPG4Winãæ©èœããŸã ãããããããã®ã¬ã€ãã®ããã€ãã®ã³ãã³ããå€æŽããå¿ èŠããããŸãã Windows Unixã®ãããªç°å¢ã䜿çšããŠããå Žåãã³ãã³ããå€æŽããå¿ èŠã¯ãããŸããã ä»ã®ãã©ãããã©ãŒã ã䜿çšããå Žåã¯ãGnuPGã®é©åãªå®è£ ãèªåã§éžæããå¿ èŠããããŸãã
nuGnuPGããŒãžã§ã³1ããã³2
GnuPG v.1ãšGnuPG v.2ã¯ã©ã¡ããåãæšæºãå®è£ ããŠããŸãããäºææ§ã®ãªãã©ã€ãã©ãªãšã³ãã³ãã©ã€ã³ããŒã«ãæäŸããŠãããããå€ãã®ãã£ã¹ããªãã¥ãŒã·ã§ã³ã«ã¯å€ãããŒãžã§ã³1ãšæ°ããããŒãžã§ã³2ã®äž¡æ¹ãä»å±ããŠããŸããåžžã«GnuPG v.2ã䜿çšããŠããããšã
éå§ããã«ã¯ã
gpg
ãšããååã§ã·ã¹ãã ã«é ããŠããGnuPGã®ããŒãžã§ã³ã確èªããã«ã¯ã次ã®ã³ãã³ããå®è¡ããŸãã
$ gpg --version | head -n1
gpg (GnuPG) 1.4.x
ãããªãã®ã衚瀺ãããå Žåãããã¯
gpg
ã³ãã³ãã§gnuPG v.1ãåŒã³åºãããããšãæå³ããŸãã ãã®å Žåã
gpg2
ã³ãã³ããè©ŠããŠãã ããã
$ gpg2 --version | head -n1
gpg (GnuPG) 2.xx
ãããªãã®ã衚瀺ãããå Žåããã¹ãŠãæ£åžžã§ãã ããã§ã¯ãGnuPG 2.2以éã®ããŒãžã§ã³ãããããšãåæãšããŠããŸãã ããŒãžã§ã³GnuPG 2.0ã䜿çšããŠããå Žåãããã§æäŸãããã³ãã³ãã®äžéšã¯æ©èœããªããããGnuPGã®ææ°ããŒãžã§ã³2.2ã®ã€ã³ã¹ããŒã«ãæ€èšããå¿ èŠããããŸãã
GGnuPG v.2ã®ãšã€ãªã¢ã¹
ã·ã¹ãã ã«
gpg
ã³ãã³ããš
gpg2
ã³ãã³ãã®äž¡æ¹ãããå Žåãå€ãããŒãžã§ã³ã®ãœãããŠã§ã¢ã§ã¯ãªãã
gpg
ã³ãã³ã
gpg
GnuPG v.2ã
gpg
ããã«ãã¹ãŠãæ§æãããšããã§ãããã ãããè¡ãã«ã¯ããšã€ãªã¢ã¹ãäœæããŸãã
$ alias gpg=gpg2
ãã®ã³ãã³ãã¯ãGnuPG v.2ããã°ã©ã ã
gpg
ã³ãã³ãã«å¿çããããã«ã
.bashrc
ã«é 眮ã§ããŸãã
ãŸãšã
ããã§ã¯ãã³ãŒãä¿è·ã§PGPãæ£åžžã«äœ¿çšããããã«å¿ èŠãªPGPã®åºæ¬ã«ã€ããŠèª¬æããŸããã 次åã¯ãPGPããŒã®äœæãšä¿è·ã«ã€ããŠèª¬æããŸãã
芪æãªãèªè ïŒ ãœãããŠã§ã¢ãããžã§ã¯ãã®ã³ãŒããä¿è·ããããã«PGPã䜿çšããŠããŸããïŒ