FIDO2ã¨ã¯ï¼ CTAPãªã©WebAuthné¢é£ã®ç¨èªã解説
2019å¹´3æãWorld Wide Web Consortiumï¼W3Cï¼ã¯ãWebAuthnããã¹ã¯ã¼ãã¬ã¹ãã°ã¤ã³ã®å ¬å¼Webæ¨æºã«ãªã£ããã¨ãçºè¡¨ãã¾ãããWebAuthnã¯å¹ åºãã¢ããªã±ã¼ã·ã§ã³ï¼Microsoft EdgeãChromeãFirefoxãã¢ãã¤ã«ã¢ããªãªã©ï¼ã§ãµãã¼ããããä»å¾æ°å¹´ã§ããã«æ®åããã¨è¦è¾¼ã¾ãã¦ãã¾ããååã®ããã°è¨äºã§ã¯ãWebAuthnãããããã«ã¹ã¿ãã¼ã¨ã¯ã¹ããªã¨ã³ã¹ã®åä¸ãã»ãã¥ãªãã£æ å¢ã®å¼·åã«ã¤ãã¦ãä¾ãæãã¦èª¬æãã¾ããã
ä»åã¯ãWebAuthnãæ°ããæ¨æºã¨ãã¦ç¢ºç«ãããä¸ã§éè¦ãªå½¹å²ãæ ã£ãæè¡çè¦ç´ ã¨ãããã³ã«ã«ã¤ãã¦èª¬æãã¾ãã
FIDO2ã¨ã¯
FIDO2ã¨ã¯ããã¹ã¯ã¼ãã使ç¨ãããæ¬äººç¢ºèªãè¡ãæè¡ä»æ§ã®æ¨æºåãæ¨å¥¨ããéå¶å©å£ä½FIDO Allianceã¨Wide Web Consortiumï¼W3Cï¼ãå®æ½ããããã¸ã§ã¯ãã§ããFIDO2ã®æ¨æºèªä½ã¯ãW3Cã®Web Authenticationï¼WebAuthNï¼ãã©ã¦ã¶APIæ¨æºã¨FIDOã®Client To Authenticator Protocolï¼CTAPï¼ã§æ§æããã¾ããFIDO2ã¯ãFIDO Allianceã以åã«è¡ã£ãUniversal 2nd Factorï¼U2Fï¼èªè¨¼æ¨æºã®ä½æ¥ãåºã«æ§ç¯ããã¦ãã¾ãã
FIDO2ã¯ãåºæ¬çãªãã°ãªã³ã«ã¨ã©ã¾ããªããåã®å¼·åãªWebèªè¨¼æ¨æºã確ç«ããæ§æè¦ç´ ã¨ãªãã¾ãã
CTAPã¨ã¯
Client To Authenticator Protocolï¼CTAPï¼ã¨ã¯ãã·ã¼ã¿ããã¨å¼ã°ããFIDO2対å¿ããã¤ã¹ãBluetoothãUSBãã¾ãã¯è¿è·é¢ç¡ç·éä¿¡ï¼NFCï¼ãä»ãã¦å¤é¨/ãã¼ãã³ã°ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã¨éä¿¡ããããã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ãæä¾ããä»æ§ãæå³ãã¾ãã
CTAPã«ãããããã¤ã¹éã§å®å ¨ãªèªè¨¼ãã£ãã«ã確ç«ããã¾ããããã¤ã¹éã®éä¿¡ã¯ãä¸è¬çã«ã¦ã¼ã¶ã¼ãææããæå·åãã¼ãã³ã°ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ï¼ã¹ãã¼ããã©ã³ããã¼ãã¦ã§ã¢ãã¼ãªã©ï¼ã¨ãã¯ã©ã¤ã¢ã³ããã©ãããã©ã¼ã ï¼ãã¼ãPCãªã©ï¼ã¨ã®éã§è¡ããã¾ãã
ãã®CTAPãããã³ã«ã¯ãç¹å®ã®ãã©ãããã©ã¼ã ï¼Macãªã©ï¼ã§ä¾æ å½äºè ï¼Webãµã¤ãããã¤ãã£ãã¢ããªï¼ã¨ããã¨ãããã¨ã³ãã¦ã¼ã¶ã¼ãããã¼ãã³ã°ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ï¼ã¹ãã¼ããã©ã³ãªã©ï¼ã¨ããã¨ãããããã«æ±ããããå ´åã«ä½¿ç¨ããã¾ãã
CTAP1ã¯ããå¤ãæ¨æºã§ãããå¤é¨ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ãèªè¨¼ã®ç¬¬2è¦ç´ ãæä¾ãã¦ãã¾ããCTAP2ã使ç¨ãããã¨ã§ãå¤é¨ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ãèªè¨¼ã®ç¬¬1ã¨ç¬¬2ã®ä¸¡æ¹ã®è¦ç´ ã¨ãã¦ä½¿ç¨ã§ãããã¹ã¯ã¼ãã¸ã®ä¾åãæé¤ã§ãã¾ãã
ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã«ã¤ãã¦
ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã¯ãå¿ è¦ã«å¿ãã¦ãã¹ã¯ã¼ããçä½èªè¨¼ã®å ¥åãªã©ã®ã¦ã¼ã¶ã¼ã¸ã§ã¹ãã£ã¼ãåå¾ããæ©è½ãæã¤ããã¤ã¹ã§ãã
ããã«åé¡ããã¨ããã©ãããã©ã¼ã ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã¯ããã¼ãPCãªã©ã®ããã¤ã¹ã«çµ±åããããªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã§ããããã¤ã¹ã¨å¯æ¥ã«çµåããã¦ãããããã¦ã¼ã¶ã¼ã¸ã§ã¹ãã£ã¼ãåå¾ããããã«ãUSBãNFCãBluetoothãªã©ã®å®å ¨ãªè»¢éãããã³ã«ãå¿ è¦ã¨ãã¾ããããã©ãããã©ã¼ã ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã®ä¸è¬çãªä¾ã«ã¯ãTouchIDãFaceIDãWindows Helloãªã©ãããã¾ãã
ãã¼ãã³ã°ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã¯ãå®å ¨ãªè»¢éãããã³ã«ãä»ãã¦ä»»æã®ãã¼ãPCã«æ¥ç¶ã§ãããã¼ã¿ãã«ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã§ãããã®ãããªãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã¯CTAPãããã³ã«ããµãã¼ãããå¿ è¦ãããã¾ãããã¼ãã³ã°ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã®ä¸è¬çãªä¾ã«ã¯ãYubiKEYSãBluetooth対å¿ã®ã¹ãã¼ããã©ã³ã¢ããªã±ã¼ã·ã§ã³ãªã©ãããã¾ãã
FIDO2ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã®å æ¬çãªãªã¹ãã¯ãFIDO Allianceã®Webãµã¤ãã«æ²è¼ããã¦ãã¾ãã
ãã©ã¦ã¶ã®å½¹å²ã«ã¤ãã¦
WebAuthnã«å¯¾å¿ãããã©ã¦ã¶ã¯ã次ã®æ©è½ãå®è¡ã§ããå¿ è¦ãããã¾ãã
- æä½ç¨ã®ã¡ãã»ã¼ã¸ãä½æãã
- æ¡å¼µãå¦çãã
- ãªã¼ã»ã³ãã£ã±ã¼ã¿ã¼ã«ã¦ã¼ã¶ã¼ã¤ã³ã¿ãã§ã¤ã¹ãé©å®æä¾ãã
- ã¨ã©ã¼å¦çã¨ãã¦ã¹ãã¼ãã³ã°ã管çãã
ææ°ã®ãã©ã¦ã¶ã®ã»ã¨ãã©ã¯ãWebAuthn APIããã§ã«ãµãã¼ããã¦ãã¾ãããã®æ¨æºããµãã¼ããããã©ã¦ã¶ã«ã¤ãã¦ã以ä¸ã«ãããããã示ãã¦ãã¾ãã
ç»åã½ã¼ã¹ï¼https://github.com/apowers313/fido2-webauthn-status
ä¾æ å½äºè ï¼Webãµã¼ãã¼ï¼ã«ã¤ãã¦
ä¾æ å½äºè ï¼Relying PartyãRPï¼ã¨ã¯ãFIDO2æ¨æºã使ç¨ãã¦æ示ãããå¼·åãªè³æ ¼æ å ±ã使ç¨ãã¦èªè¨¼ã§ããã¢ããªã±ã¼ã·ã§ã³ã§ããã¢ããªã±ã¼ã·ã§ã³ã®ç¨®é¡ã«å¿ãã¦ãWebAuthnã®å¼ã³åºããè¡ããã¤ãã£ãã¢ããªã±ã¼ã·ã§ã³ãWebAuthnã¯ã©ã¤ã¢ã³ãã«ãªããã¨ãããã¾ããã¾ããå¼ã³åºãã仲ä»ããWebãã©ã¦ã¶ãã¯ã©ã¤ã¢ã³ãã«ãªããã¨ãããã¾ãã
U2Fã¨UAFã«ã¤ãã¦
Universal 2nd Factorï¼U2Fï¼ã¯ãå°ç¨ã®USBã¾ãã¯NFCããã¤ã¹ã使ç¨ãã¦äºè¦ç´ èªè¨¼ãå¼·åã»ç°¡ç´ åãããªã¼ãã³èªè¨¼æ¨æºã§ããã¾ãU2Fã¯ãæ¨æºã®å ¬ééµæå·ã使ç¨ãã¦æ§ç¯ããã¦ãã¾ãã
Universal Authentication Factorï¼UAFï¼ã¯ããã©ã¤ããªèªè¨¼ã®ãã¹ã¯ã¼ããç½®ãæãããã¬ã¼ã ã¯ã¼ã¯ã§ãããçã®ãã¹ã¯ã¼ãã¬ã¹ã¨ã¯ã¹ããªã¨ã³ã¹ãå®ç¾ãã¾ãã
UAFã¨U2Fã®ä¸¡æ¹ã使ç¨ããã¨ãWebãµã¼ãã¹ã¯ãã¼ã«ã«ããã¤ã¹ã§ã®èªè¨¼ãè¦æ±ããç¶ãã¦Webãµã¼ãã¹ã¯ãã®èªè¨¼ãåãå ¥ãã¦ã¦ã¼ã¶ã¼ã®ãµã¤ã³ã¤ã³ã許å¯ãã¾ãã
ç»åã½ã¼ã¹ï¼FIDO Alliance
次ã®ã¹ãããã¯ï¼
åºæ¬çãªç¨èªãç解ããã¨ããã§ãæ¬ã·ãªã¼ãºã§ã¯æ¬¡ã«ã¦ã¼ã¶ã¼ç»é²ãèªè¨¼ãã¢ã«ã¦ã³ãå復ã®æµãã«ã¤ãã¦åãä¸ãã¾ããã¾ããOktane19ã®ä»¥ä¸ã®ã»ãã·ã§ã³ã§ãWebAuthnã«ã¤ãã¦è©³ãã説æãã¦ãã¾ãã®ã§ãã覧ãã ããã