Gnukã§OpenPGP cardäºæã®USBãã¼ã¯ã³ãä½ã£ã¦ã¿ã
2010/10/16ã«éå¬ããã楽天テクノロジーカンファレンス2010ã®LTã§gæ°é¨ããã®çºè¡¨ãGnuk -- a soother for GnuPGãã«è§¦çºããã¦gnukã試ãã¦ã¿ãã
Gnukã§ä½ãã§ããã
gnukãSTM32 CPUä¸ã§åãçµã¿è¾¼ã¿æ©å¨ã«ã¤ã³ã¹ãã¼ã«ããã¨ãOpenPGP cardäºæã®USBãã¼ã¯ã³ã¨ãã¦å©ç¨ã§ãã¾ãã
OpenPGP cardã«ã¯GnuPGã®ç§å¯éµãæ ¼ç´ã§ãããããGnuPGã®ç§å¯éµPCã®ã¹ãã¬ã¼ã¸ä¸ã«ä¿åããã«æ¸ãããã«ãªãã¾ãã
ä¸ãä¸PCãã¦ã¤ã«ã¹ãã¯ã¼ã çã«ææãã¦ããGnuPGã®ç§å¯éµãçã¾ãããã¨ã¯ï¼åºæ¬çã«ï¼ããã¾ãããã¤ãã¿ã¼ï¼
ã¾ããgpg-agentã¨gpg2sshkeyãå©ç¨ããã°GnuPGéµãsshç¨ã®éµã¨ãã¦å©ç¨ãããã¨ãå¯è½ã§ã*1ã
gnukã®ç¹å¾´
- OpenPGP cardäºæ(OpenPGP card protocol version 2)ã®USBãã¼ã¯ã³ãä½æã§ãã
- OpenPGP cardã¯ISO 7816-4,-8ã§è¦å®ããã¦ããã¹ãã¼ãã«ã¼ãå®è£ ã«GnuPGã®æ©è½ã追å ãããã®ãOpenPGP cardã使ããã¨ã§ãæå·åã復å·åããã¸ã¿ã«ç½²åãç½²åæ¤è¨¼ãèªè¨¼ãªã©ãã§ããã
- gpg-agentã¨çµã¿åããããã¨ã§OpenPGP cardãç¨ãã¦SSHèªè¨¼ã«ä½¿ããã¨ãã§ããã
- OpenPGP cardã«ç§»åããç§å¯éµã¯åãåºããã¨ã¯ã§ããªãï¼ã¯ãï¼
- åãã
ã§ããé«ããã§ãããï¼
å ¨ç¶ãããªãã¨ã¯ããã¾ããã
- çµã¿è¾¼ã¿ç¨ã®è©ä¾¡ãã¼ãã§æ§ç¯ã§ãã
- å¥ãåºãã®åºæ¿ã§ãããã°1,974å(STBee Mini)
- ã±ã¼ã¹ä»ãã®è©ä¾¡ç¨ãããã¿ã¤ãã§6,100å(STM32 Primer2)
- æåèªãã¶ã¤ã³ã¦ã§ã¼ããã¬ã¸ã³(CQåºç社)2008å¹´5æå·ã®ä»é²CQ_STARMã§ãå¯è½
å®éã«ã¤ãã£ã¦ã¿ã
ããã§ã¯æå®å¤ã§ä½ããSTBee Miniã®ä¾ãç´¹ä»ã
ç¨æãããã®
- STBee Mini
- é販ãµã¤ãStrawberry Linuxã§1,974å+éæ400å(2010/11/13æç¹)
- Linuxãã·ã³
- ARMã®ã¯ãã¹ã³ã³ãã¤ã«ç°å¢
- ã¹ã¯ãªããä¸çºã§ããã«ç¨æã§ãã
- GnuPG
- ccid(libccid)
- python-usb
- ARMã®ã¯ãã¹ã³ã³ãã¤ã«ç°å¢
注æäºé
- å¿ ãäºåã«$HOME/.gnupg/ã®ããã¯ã¢ãããåãã¾ãããã
- OpenPGP cardã«ç§»åãããç§å¯éµã¯OpenPGP cardããåãåºãã¾ãããããããã注æãã¦ãã ããã
- gnukã¯ã¾ã ä¸å®å®ãªé¨åãããã¾ãã®ã§å®éç¨ä¸ã®GnuPGéµãæ ¼ç´ããã®ã¯é¿ãã¾ãããã
å¿ è¦ãªã¢ããªã±ã¼ã·ã§ã³ã®ã¤ã³ã¹ãã¼ã«
gnupg, libccid, python-usbãããã°okã
Debian/Ubuntuã®å ´å
$ sudo apt-get install gnupg gnupg-agent libccid python-usb
libccidã¯1.3.11以éã使ããã¨ã
Gentoo Linuxã®å ´å
USEãã©ã°ã¯smartcardã¨usbãæå¹ã«ã
$ sudo euse -E smartcard usb $ sudo emerge gnupg ccid
è¨å®
å¿ è¦æä½éã®è¨å®ãç´¹ä»ã
GnuPGã®è¨å®
GnuPG2ç³»ãå©ç¨ããå ´åã$HOME/.gnupg/scdaemon.confã«disable-ccidã®è¨å®ãå¿ è¦ã
$ echo disable-ccid >> ~/.gnupg/scdaemon.conf
ccidã®è¨å®
libccid_Info.plistã«gnukã§ä½æãããFSIJ USB Tokenãç»é²ããã
Debian/Ubuntuã¯/etc/libccid_Info.plist
Gentooã¯/usr/lib/readers/usb/ifd-ccid.bundle/Contents/Info.plist
$ sudo vi /etc/libccid_Info.plist --- a/libccid_Info.plist 2009-07-29 06:50:20.000000000 +0900 +++ b/libccid_Info.plist 2010-09-05 09:09:49.000000000 +0900 @@ -104,6 +104,7 @@ <key>ifdVendorID</key> <array> + <string>0x234B</string> <string>0x08E6</string> <string>0x08E6</string> <string>0x08E6</string> @@ -237,6 +238,7 @@ <key>ifdProductID</key> <array> + <string>0x0000</string> <string>0x2202</string> <string>0x3437</string> <string>0x3438</string> @@ -370,6 +372,7 @@ <key>ifdFriendlyName</key> <array> + <string>FSIJ USB Token</string> <string>Gemplus Gem e-Seal Pro</string> <string>Gemplus GemPC Twin</string> <string>Gemplus GemPC Key</string>
pcscdã®èµ·å
$ sudo /etc/init.d/pcscd start
ARMã®ã¯ãã¹ã³ã³ãã¤ã«ç°å¢ãæ§ç¯ãã
ã³ãã³ãã²ã¨ã¤ã§ã¤ã³ã¹ãã¼ã«ã§ããã
http://github.com/esden/summon-arm-toolchain/
ããsummon-arm-toolchainããã¦ã³ãã¼ãã
$ wget http://github.com/esden/summon-arm-toolchain/raw/master/summon-arm-toolchain $ chmod +x summon-arm-toolchain $ ./summon-arm-toolchain ( $HOME/sat ã«æ§ç¯ããããå ´æã¯å¤æ´å¯è½ )
gnukãã³ã³ãã¤ã«
http://www.fsij.org/gnuk/ ããææ°çããã¦ã³ãã¼ãã2010/11/10æç¹ã®ææ°çã¯0.4
$ curl http://www.gniibe.org/oitoite/gnuk/gnuk-0.4.tar.gz | tar zxf - (ããã㯠git clone http://www.gniibe.org/git/gnuk.git/) $ cd gnuk-0.4/src $ ./configure --target=STBEE_MINI (STBee Miniã®å ´å) Configured for target: STBEE_MINI Using random serial number for card AID Configured for DFU $ PATH=$HOME/sat/bin:$PATH make ...
STBee Miniãæ¥ç¶ãã
Linuxã¨STBee MiniãUSBã§æ¥ç¶ãããLEDãç¹æ» ãããã¨ã確èªã
STBee MiniãDFUã¢ã¼ãã§èµ·å
PCã®USBãã¼ãã«æ¥ç¶å¾ãUSERã¹ã¤ãããæ¼ããªããRESETã¹ã¤ãããæ¼ããRESETã¹ã¤ããããæãé¢ããæå¾ã«USERã¹ã¤ãããé¢ãã
LEDã®ç¹æ»
ãé
ããªã£ããDFUã¢ã¼ãããããã¯lsusbã§0483:df11ãè¦ããã°DFUã¢ã¼ãã«ãªã£ã¦ããã
$ sudo lsusb -d 0483: Bus 005 Device 038: ID 0483:df11 SGS Thomson Microelectronics
ROMãç¼ã
STBee Miniã®å ´åãtool/dfuse.pyã§ã
$ cd ../tool $ sudo ./dfuse.py ../src/gnuk.hex ...
ç¼ããããªã»ãããã¿ã³ãæ¼ãããUSBã±ã¼ãã«ãæãæ¿ããè¡ãã
LEDãåã³ç¹æ»
ãã ããããlsusbã§ç¢ºèªã
$ lsusb -v -d 234b: Bus 005 Device 030: ID 234b:0000 Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 (Defined at Interface level) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x234b idProduct 0x0000 bcdDevice 2.00 iManufacturer 1 Free Software Initiative of Japan iProduct 2 FSIJ USB Token iSerial 3 20101023 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 86 bNumInterfaces 1 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 11 Chip/SmartCard bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 ChipCard Interface Descriptor: bLength 54 bDescriptorType 33 bcdCCID 1.00 nMaxSlotIndex 0 bVoltageSupport 1 5.0V dwProtocols 2 T=1 dwDefaultClock 3580 dwMaxiumumClock 3580 bNumClockSupported 1 dwDataRate 9600 bps dwMaxDataRate 9600 bps bNumDataRatesSupp. 1 dwMaxIFSD 254 dwSyncProtocols 00000000 dwMechanical 00000000 dwFeatures 00040040 Auto parameter negotation made by CCID Short and extended APDU level exchange dwMaxCCIDMsgLen 64 bClassGetResponse echo bClassEnvelope echo wlcdLayout none bPINSupport 0 bMaxCCIDBusySlots 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Device Status: 0x0001 Self Powered
æ ¼ç´ããGPGéµãç¨æãã
æ ¼ç´ã§ããGPGéµã¯RSA-2048ãRSA-2048ã®éµããªãå ´åã¯çæããã
$ gpg --gen-key gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ãå¸æã®éµã®ç¨®é¡ãé¸æãã¦ãã ãã: (1) RSA and RSA (default) (2) DSA and Elgamal (3) DSA (ç½²åã®ã¿) (4) RSA (ç½²åã®ã¿) é¸æã¯? 1 RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) è¦æ±ãããéµé·ã¯2048ããã éµã®æå¹æéãæå®ãã¦ãã ããã 0 = éµã¯ç¡æé <n> = éµã¯ n æ¥éã§æºäº <n>w = éµã¯ n é±éã§æºäº <n>m = éµã¯ n ãæéã§æºäº <n>y = éµã¯ n å¹´éã§æºäº éµã®æå¹æéã¯? (0) Key does not expire at all ããã§æ£ããã§ãã? (y/N) y You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: "Heinrich Heine (Der Dichter) <[email protected]>" æ¬å: MATSUU Takuto é»åã¡ã¼ã«ã»ã¢ãã¬ã¹: [email protected] ã³ã¡ã³ã: FSIJ USB Token v2 次ã®ã¦ã¼ã¶ã¼IDãé¸æãã¾ãã: âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>â åå(N)ãã³ã¡ã³ã(C)ãé»åã¡ã¼ã«(E)ã®å¤æ´ãã¾ãã¯OK(O)ãçµäº(Q)? O ç§å¯éµãä¿è·ããããã«ãã¹ãã¬ã¼ãºãããã¾ãã ä»ããé·ãä¹±æ°ãçæãã¾ãããã¼ãã¼ããæã¤ã¨ãããã¦ã¹ãåãã ã¨ãããã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã¨ãã®ä»ã®ãã¨ãããã¨ãä¹±æ°çæå㧠乱éãã®å¤§ããªããä¹±æ°ãçæãããããªãã®ã§ããå§ããããã¾ãã ä»ããé·ãä¹±æ°ãçæãã¾ãããã¼ãã¼ããæã¤ã¨ãããã¦ã¹ãåãã ã¨ãããã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã¨ãã®ä»ã®ãã¨ãããã¨ãä¹±æ°çæå㧠乱éãã®å¤§ããªããä¹±æ°ãçæãããããªãã®ã§ããå§ããããã¾ãã gpg: éµ03706F96ã絶対çã«ä¿¡ç¨ããããè¨é²ãã¾ãã å ¬ééµã¨ç§å¯éµãä½æããç½²åãã¾ããã gpg: ä¿¡ç¨ãã¼ã¿ãã¼ã¹ã®æ¤æ» gpg: æå°ã®ãããç¨åº¦ã®ä¿¡ç¨ã3ãæå°ã®ãå ¨é¢çä¿¡ç¨ã1ãPGPä¿¡ç¨ã¢ãã« gpg: æ·±ã: 0 æå¹æ§: 2 ç½²å: 17 ä¿¡ç¨: 0-, 0q, 0n, 0m, 0f, 2u gpg: æ·±ã: 1 æå¹æ§: 17 ç½²å: 0 ä¿¡ç¨: 17-, 0q, 0n, 0m, 0f, 0u gpg: 次åã®ä¿¡ç¨ãã¼ã¿ãã¼ã¹æ¤æ»ã¯ã2013-01-22ã§ã pub 2048R/03706F96 2010-11-12 æç´ = 1C8E 7A09 AFDD 6158 AF5D E090 E842 853D 0370 6F96 uid MATSUU Takuto (FSIJ USB Token v2) <[email protected]> sub 2048R/27B17D2A 2010-11-12
ã¤ãã§ã«æå·åéµãä½æãã¦ããã--expert --edit-keyã§ã
$ gpg --expert --edit-key 03706F96 gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ç§å¯éµã使ç¨ã§ãã¾ãã pub 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: SC ä¿¡ç¨: 絶対ç æå¹æ§: 絶対ç sub 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: E [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> addkey éµã¯ä¿è·ããã¦ãã¾ãã 次ã®ã¦ã¼ã¶ã¼ã®ç§å¯éµã®ããã¯ã解é¤ããã«ã¯ ãã¹ãã¬ã¼ãºãããã¾ã:âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>â 2048ãããRSAéµ, ID 03706F96ä½ææ¥ä»ã¯2010-11-12 ãå¸æã®éµã®ç¨®é¡ãé¸æãã¦ãã ãã: (3) DSA (ç½²åã®ã¿) (4) RSA (ç½²åã®ã¿) (5) Elgamal (æå·åã®ã¿) (6) RSA (æå·åã®ã¿) (7) DSA (set your own capabilities) (8) RSA (ç¬èªè½åãè¨å®) é¸æã¯? 8 éµRSAã«å¯è½ãªæä½: Sign Encrypt Authenticate ä»ãå¯è½ãªæä½: Sign Encrypt (S) ç½²ååã®å転 (E) æå·åã®å転 (A) èªè¨¼åã®å転 (Q) å®äº é¸æã¯? A éµRSAã«å¯è½ãªæä½: Sign Encrypt Authenticate ä»ãå¯è½ãªæä½: Sign Encrypt Authenticate (S) ç½²ååã®å転 (E) æå·åã®å転 (A) èªè¨¼åã®å転 (Q) å®äº é¸æã¯? S éµRSAã«å¯è½ãªæä½: Sign Encrypt Authenticate ä»ãå¯è½ãªæä½: Encrypt Authenticate (S) ç½²ååã®å転 (E) æå·åã®å転 (A) èªè¨¼åã®å転 (Q) å®äº é¸æã¯? E éµRSAã«å¯è½ãªæä½: Sign Encrypt Authenticate ä»ãå¯è½ãªæä½: Authenticate (S) ç½²ååã®å転 (E) æå·åã®å転 (A) èªè¨¼åã®å転 (Q) å®äº é¸æã¯? Q RSA keys may be between 1024 and 4096 bits long. What keysize do you want? (2048) è¦æ±ãããéµé·ã¯2048ããã éµã®æå¹æéãæå®ãã¦ãã ããã 0 = éµã¯ç¡æé <n> = éµã¯ n æ¥éã§æºäº <n>w = éµã¯ n é±éã§æºäº <n>m = éµã¯ n ãæéã§æºäº <n>y = éµã¯ n å¹´éã§æºäº éµã®æå¹æéã¯? (0) Key does not expire at all ããã§æ£ããã§ãã? (y/N) y æ¬å½ã«ä½æãã¾ãã? (y/N) y ä»ããé·ãä¹±æ°ãçæãã¾ãããã¼ãã¼ããæã¤ã¨ãããã¦ã¹ãåãã ã¨ãããã£ã¹ã¯ã«ã¢ã¯ã»ã¹ããã¨ãã®ä»ã®ãã¨ãããã¨ãä¹±æ°çæå㧠乱éãã®å¤§ããªããä¹±æ°ãçæãããããªãã®ã§ããå§ããããã¾ãã pub 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: SC ä¿¡ç¨: 絶対ç æå¹æ§: 絶対ç sub 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: E sub 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: A [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <[email protected]>
ã§ããã
GPGéµãUSBãã¼ã¯ã³ã«æ ¼ç´ãã
ã¾ãgpg-agentãèµ·åãããããããªãã¨GnuPGããOpenPGP cardããã¾ãæ±ããªã模æ§ã
$ eval $(gpg-agent --daemon)
OpenPGP cardã®ã¹ãã¼ã¿ã¹ãåå¾ããã
$ gpg --card-status Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: [æªè¨å®] Language prefs ...: [æªè¨å®] Sex ..............: ç¡æå® URL of public key : [æªè¨å®] Login data .......: [æªè¨å®] Signature PIN ....: å¼·å¶ Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none]
ãããªæãã§è¡¨ç¤ºãããã°æåã
å人æ
å ±ãè¨å
¥ãã¦ããã
$ gpg --card-edit Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: [æªè¨å®] Language prefs ...: [æªè¨å®] Sex ..............: ç¡æå® URL of public key : [æªè¨å®] Login data .......: [æªè¨å®] Signature PIN ....: å¼·å¶ Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none] gpg/card>
ã¾ãPINãå¤æ´ãããOpenPGP cardã®ããã©ã«ãã®PINã¯123456ã
OpenPGP cardã®PINã¯æ°åã§ããå¿
è¦ã¯ãªããè±æ°åOKã
gpg/card> passwd ... PIN changed.
管ç権éã«ç§»è¡ã
gpg/card> admin 管çã³ãã³ãã許å¯ããã¦ãã¾ã
æ§å¥ãè¨å®ãæ§å¥ãè¨å®ãããã¨ããã¨Admin PINãæ±ãããããOpenPGP cardã®ããã©ã«ãã®Admin PINã¯12345678ã
gpg/card> sex æ§å¥ ((M)ç·ã(F)女ã空ç½): M
ååããã°ã¤ã³ã¢ã«ã¦ã³ããå ¬ééµã®URLãè¨èªã®å¤æ´ãå ¬ééµã®URLã«è¨è¼ããå ´æã«å ¬ééµãè¨ç½®ã
gpg/card> name ã«ã¼ãææè ã®å§ (surname): MATSUU ã«ã¼ãææè ã®å (given name): Takuto gpg/card> login ãã°ã¤ã³ã»ãã¼ã¿ (ã¢ã«ã¦ã³ãå): matsuu gpg/card> url å ¬ééµãæ¢ç´¢ããURL: http://matsuu.org/gnupg/matsuu_fsij_token.asc gpg/card> lang è¨èªã®é¸å¥½: ja
Admin PINã¨ãªã»ããã³ã¼ãã®å¤æ´ã
gpg/card> passwd gpg: OpenPGPã«ã¼ãno. D276000124010200FFFE1DC0A4AA0000ãæ¤åº 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit é¸æã¯? 3 PIN changed. ange PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit é¸æã¯? 4 Reset Code set. 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit é¸æã¯? Q gpg/card> quit
次ã«GPGéµãUSBãã¼ã¯ã³ã«ã¤ã³ãã¼ããç½²åéµãèªè¨¼éµã
$ gpg --edit-key 03706F96 gpg (GnuPG) 2.0.16; Copyright (C) 2009 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. ç§å¯éµã使ç¨ã§ãã¾ãã pub 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: SC ä¿¡ç¨: 絶対ç æå¹æ§: 絶対ç sub 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: E sub 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé å©ç¨æ³: A [ultimate] (1). MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> toggle sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ssb 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ssb 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> addcardkey ã¾ãâtoggleâã³ãã³ãã使ã£ã¦ãã ããã gpg> keytocard ãã®ä¸»éµãæ¬å½ã«ç§»åãã¾ãã? (y/N) y Signature key ....: [none] Encryption key....: [none] Authentication key: [none] éµã®ä¿ç®¡å ´æãé¸æãã¦ãã ãã: (1) ç½²åéµ (3) èªè¨¼éµ é¸æã¯? 1 次ã®ã¦ã¼ã¶ã¼ã®ç§å¯éµã®ããã¯ã解é¤ããã«ã¯ ãã¹ãã¬ã¼ãºãããã¾ã:âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>â 2048ãããRSAéµ, ID 03706F96ä½ææ¥ä»ã¯2010-11-12 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ssb 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> key 1 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb* 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ssb 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> keytocard Signature key ....: [none] Encryption key....: [none] Authentication key: [none] éµã®ä¿ç®¡å ´æãé¸æãã¦ãã ãã: (2) æå·åéµ é¸æã¯? 2 次ã®ã¦ã¼ã¶ã¼ã®ç§å¯éµã®ããã¯ã解é¤ããã«ã¯ ãã¹ãã¬ã¼ãºãããã¾ã:âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>â 2048ãããRSAéµ, ID 27B17D2Aä½ææ¥ä»ã¯2010-11-12 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb* 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> key 1 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> key 2 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb* 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> keytocard Signature key ....: [none] Encryption key....: [none] Authentication key: [none] éµã®ä¿ç®¡å ´æãé¸æãã¦ãã ãã: (3) èªè¨¼éµ é¸æã¯? 3 次ã®ã¦ã¼ã¶ã¼ã®ç§å¯éµã®ããã¯ã解é¤ããã«ã¯ ãã¹ãã¬ã¼ãºãããã¾ã:âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>â 2048ãããRSAéµ, ID 5D001641ä½ææ¥ä»ã¯2010-11-12 sec 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb* 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 (1) MATSUU Takuto (FSIJ USB Token v2) <[email protected]> gpg> quit å¤æ´ãä¿åãã¾ãã? (y/N) y
ã«ã¼ãçªå·ãå ¥ã£ããã¨ã確èªãããã§GPGéµã¯PCä¸ã«ã¯æ®ã£ã¦ã¾ããã
ããã§ä¸æ¦USBãã¼ã¯ã³ãPCããæãæ¿ããã¾ãã¯RESETãã¿ã³ãæ¼ãã
åæ ããã¦ããã確èªã
$ gpg --card-status Application ID ...: D276000124010200FFFE1ABE1C420000 Version ..........: 2.0 Manufacturer .....: unmanaged S/N range Serial number ....: 1ABE1C42 Name of cardholder: Takuto MATSUU Language prefs ...: ja Sex ..............: ç· URL of public key : http://matsuu.org/gnupg/matsuu_fsij_token.asc Login data .......: matsuu Signature PIN ....: å¼·å¶ Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 3 3 Signature counter : 0 Signature key ....: 1C8E 7A09 AFDD 6158 AF5D E090 E842 853D 0370 6F96 created ....: 2010-11-12 16:57:35 Encryption key....: 9639 9D7B 101C D532 FE78 0CC5 F5C7 E2BB 27B1 7D2A created ....: 2010-11-12 16:57:35 Authentication key: 3181 D1AD 0A7D 07E7 E246 305E C3BD 113A 5D00 1641 created ....: 2010-11-12 17:03:41 General key info..: pub 2048R/03706F96 2010-11-12 MATSUU Takuto (FSIJ USB Token v2) <[email protected]> sec> 2048R/03706F96 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb> 2048R/27B17D2A ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42 ssb> 2048R/5D001641 ä½æ: 2010-11-12 æºäº: ç¡æé ã«ã¼ãçªå·: FFFE 1ABE1C42
ãã®ããã«Signature key, Encryption key, Authentication keyãå ¥ã£ã¦ããã°OKã
ç½²åã¨æ¤è¨¼ã試ã
$ echo hoge > hogefile $ gpg -u 03706F96 --clearsign hogefile ||< ç½²åããããã¡ã¤ã«ã¯hogefile.ascã«åºåãããã確èªããã³æ¤è¨¼ã >|| $ cat hogefile.asc -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 hoge -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.16 (GNU/Linux) iQEcBAEBAgAGBQJM3Xe2AAoJEOhChT0DcG+WFtwH/RKIXu/MP3EDxsHhxEQZVmKv 3Za7RMnnnkz5oViFJ2wudUgHbWpajA86MsnrZos2Cnp1ycwzWUtxjB+IZEr9AUI8 pWUuOgHZX683OOg7sbITuHPPldGYaNXbW5ryZSdizhlwWYEg7QbxahPteifSuBnq u5pXHtAWUOPliLsQw4qvXl9vJubeth/AGQNMg3ciubRQVpqJWw68PLVTh0+tME+1 bbe1zHQEEcraAwWWzrWiCCz7oFeDdD+zQsSR9KQGF4v7v5JYNMqa3xOxFb5hO6Fk SYYGGydJQS0X+Nv5yRGqfVZffn3aP4nhw3nTNCMvPSU3g5V3pTDnGs8TNQ6QWa8= =elp8 -----END PGP SIGNATURE----- $ gpg --verify hogefile.asc gpg: 2010å¹´11æ13æ¥ 02æ21å58ç§ JSTã«RSAéµID 03706F96ã§æ½ãããç½²å gpg: âMATSUU Takuto (FSIJ USB Token v2) <[email protected]>âããã®æ£ããç½²å
æå·åã¨å¾©å·åã試ã(調æ»ä¸)
$ echo hoge > hogefile $ gpg -r 03706F96 -e hogefile $ xxd hogefile.gpg 0000000: 8501 0c03 f5c7 e2bb 27b1 7d2a 0107 ff49 ........'.}*...I 0000010: a88f 083e 62ef d87a c30e 36f0 c679 746f ...>b..z..6..yto 0000020: 4bbf f2ca 5ec0 f8c8 e092 bf45 5577 565b K...^......EUwV[ 0000030: 1763 94ae df4e 4874 61c4 f3ef 7439 3611 .c...NHta...t96. 0000040: bb6c 80a6 a05a dba9 52a5 2813 76a8 0f37 .l...Z..R.(.v..7 0000050: 5c2a bf15 cdc9 3048 8b7f a72e 9af8 5089 \*....0H......P. 0000060: 370c baf2 b28a 0d57 32bb 4460 eb55 0967 7......W2.D`.U.g 0000070: db73 fcdc 13f2 81b8 27bd dfd7 a101 e6f4 .s......'....... 0000080: 553d cbc9 ce57 f3ce d913 dfc4 20c2 27b8 U=...W...... .'. 0000090: 1a7e ea7c 26dd f8d8 8315 85ba b88f 52a3 .~.|&.........R. 00000a0: c04b 6e27 54e7 1f68 4780 8aed 2606 c962 .Kn'T..hG...&..b 00000b0: af69 ccd2 75e9 f419 16bb 6b82 62a2 18a6 .i..u.....k.b... 00000c0: c250 ad41 8daa 11d9 1f1c 7851 f3ba c8a6 .P.A......xQ.... 00000d0: fc04 6d30 8913 16e1 12cb 641a dd36 2daf ..m0......d..6-. 00000e0: 639d fa52 d8ce f3ba 9181 eb30 770c 9cb9 c..R.......0w... 00000f0: 07ea 938e 7fe9 fc46 6dc0 6bc1 7d44 078e .......Fm.k.}D.. 0000100: 9636 fa14 2986 0b35 6b1a 670b 5a1a 1ed2 .6..)..5k.g.Z... 0000110: 4601 35d3 2412 d288 ce45 a64f b833 2469 F.5.$....E.O.3$i 0000120: 4b30 2ab6 a928 f108 c8d3 2ea1 0666 b42d K0*..(.......f.- 0000130: 03f7 8231 d871 76fb 5809 7685 f4c7 7a6f ...1.qv.X.v...zo 0000140: ee90 460a f524 9732 5ad4 1af5 37e4 de7a ..F..$.2Z...7..z 0000150: ee6d 1a93 5cd0 3f .m..\.? $ gpg hogefile.gpg
ã§ãããã¯ããªã®ã ãã©ãPIN blockedã«ãªã£ã¦ãã¾ã£ãã調æ»ä¸ã
èªè¨¼éµã試ã(調æ»ä¸)
èªè¨¼éµã試ãããã«ã¯ã$HOME/.gnupg/gpg.confã¨$HOME/.gnupg/gpg-agent.confã«è¨å®ãå¿
è¦ã
è¨å®å¾ãgpg-agentãåèµ·åããå¿
è¦ããã*2ã
gpgkey2sshã§SSHã®å
¬ééµç¸å½ãçæãgpgkey2sshã§æå®ããã®ã¯subkeyã®èªè¨¼éµãªã®ã§æ³¨æã
$ echo use-agent >> ~/.gnupg/gpg.conf $ echo enable-ssh-support >> ~/.gnupg/gpg-agent.conf $ pkill gpg-agent $ eval $(gpg-agent --daemon) $ gpgkey2ssh 5D001641 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCemHaHg2wxqb++P8vIrGI2fhId0Pl698RsHLG2adUiTdRDlvJ8JFYUYZWVJ4OkMkpieUu2K55GiU6EKsgQInLMMwGrpbWduFY1YlEKWubGlgcjauA2EcAZkkjy6BKdGrmdG8308kT2jduKIYg4Bj4rPycRmIIW5IgvogvSX6j9jKM0AFiFUKnkxqiL+kURwRyXo76GxOrUMuLJviY/5yZEw8QLOraPPDcb357nMNQ6ZfRbClzgkE9Hoiwb76T2AdgyvRb1zYXC7790BL0WI0BpOQaqjRK6drkE3TgsXnXQKHxcRc5T4rbcIqJa5BvNZQZWlH0P0N4EchH4olwNgpb9 COMMENT
ãããsshæ¥ç¶å ã®$HOME/.ssh/authorized_keysã«è¿½å ãã¦ããã°sshã§ããã¯ããªã®ã ãã»ã»ã»ã¾ã ã§ãã¦ã¾ããã調æ»ä¸ã§ãã
ãã®ä»
STM32 Primer2ã§ããã°ç§èåã®ç§æã§6,100åã§è³¼å ¥ã§ãã¾ããå ¥ãå£ããã®ã¬ã¸ã®åãããã«ããã¾ãã