WebAuthn API 㧠macOS ã® Touch ID ã Chrome M70 ã§ä½¿ããããã«ãªã£ããã¨ããã®ã Chrome ãªãªã¼ã¹ãã¼ããè¦ã¦æ°ã«ãªã£ã¦ããã®ã§è©¦ããã
FIDO2 ã触ããã¨æã£ãã対å¿ããã¤ã¹ãæã£ã¦ããªãã£ãã®ã§ macOS Touch ID ã§ãã¾ãããã
çµæ
ãã©ã¦ã¶å´ã®å®è£ ã¯ç°¡åã ã£ããJavaScript ããã§ããã§ãã£ã¨æ¸ãã ãããã以ä¸ã¯ç¹ã«ãªãã
ãã®è¾ºãåèã«ããªããå®è£ ããã°è¯ãã
WebAuthn
WebAuthn ã¨ããã®ã¯ãããããªãã ã¨ããã®ãèªåã®ç解ã§æ¸ãã¦ããããã¼ãã¦ã§ã¢ãã¼ã¯ã³ãå©ç¨ããå ¬ééµã¨ç§å¯éµãå©ç¨ãã使ã£ãèªè¨¼ã®ä»çµã¿ã¨ç解ããã
ç解ããé¨åãç°¡åã«æ¸ãã¦ãããç´°ããã®ã¯çç¥ããã
ããã¤ã¹ç»é²
ãµã¼ããããã£ã¬ã³ã¸(32 ãã¤ãã®æå·çã«åé¡ã®ãªãä¹±æ°)ããã©ã¦ã¶ããµã¼ãããåå¾ããããã®é RP (Relying Party) ã¨ãã¦ãã®ãµã¤ãã®ãã¡ã¤ã³ã¨åå (Id) ãåå¾ããã
ããã«ãã¦ã¼ã¶æ å ±ã¨ãã¦ã ã¦ã¼ã¶ ID (ãã¤ããª) ãã¦ã¼ã¶åãã¦ã¼ã¶è¡¨ç¤ºåãéããã¦ããã¯ããã¡ãªã¿ã«ã¢ã¤ã³ã³ã® URL ãæå®ã§ããã
ãã¨ã¯ãã¼ã«ã«èªè¨¼ã§ Touch ID ãå®è¡ããã°ç§å¯éµã¨å ¬ééµãçæãããããã« RP ã«ç§å¯éµã§ç½²åããã¨ããä¸é£ã®æµãã«ãªãã
ãã¨ã¯ãããã®æ å ±ããã©ã¦ã¶ããµã¼ãã«éã£ã¦ãã¾ãã°ããããµã¼ãã¯ç½²åãå ¬ééµã§ç¢ºèªãã¦åé¡ããªããã°ã¦ã¼ã¶æ å ±ã¨å ¬ééµãã»ããã«ãã¼ã¿ãã¼ã¹ã«ä¿åãã¦ããã
ããã§èªè¨¼ããã¤ã¹ã¨ã¦ã¼ã¶ãç´ä»ããã
ããã¤ã¹èªè¨¼
ããã¤ã¹ç»é²ã¨æµãã¯ä¸ç·ã§ãµã¼ããããã£ã¬ã³ã¸ãã¦ã¼ã¶æ å ±ãããããããã§éãã®ã¯ãã§ã«ç»é²ããã¦ãããã¡ã¤ã³ã§ããã°ãéµãå©ç¨ãã¦ç½²åããã ãã§è¯ããªãããã¨ã¯ãããã®æ å ±ããµã¼ãã«éã£ã¦ãµã¼ãå´ã¯ä¿åããã¦ããå ¬ééµãå©ç¨ãã¦ç½²åããã§ãã¯ããã¨ããæµãã
ã¤ã¾ãæ®éã®å ¬ééµã®ä»çµã¿ããã¾ããã©ã¦ã¶ããå©ç¨ã§ããããã«ãªã£ã¦ããã¨ããã¨ãããæ大ã®é åã
ä»å㯠Touch ID (ãã©ãããã©ã¼ã )ã試ããã FIDO2 (ã¯ãã¹ãã©ãããã©ã¼ã )ã«ã対å¿ãã¦ããã®ã§ãYubikey 5 ãªã©ãå©ç¨ããã°ãã¼ãã¦ã§ã¢ã¼ãã¼ãå©ç¨ãããã¨ãã§ããã Touch ID 㨠USB ããã¤ã¹ã®ä¸¡æ¹ãç»é²ãã¦ããã¨ããäºãå¯è½ã ã
ã¡ãªã¿ã«ãã® USB ã¨ããåããããããã³ã«ã CTAP (Client to Authentication Protocol) ã¨ããããããUSB ã Touch ID ã®ãããªçä½èªè¨¼ä»¥å¤ã« NFC ã BLE ãªã©ã¨ããã¨ããã§ããã
FIDO2
WebAuthn ãå©ç¨ããã ããªã FIDO2 ãç解ããªãã¦è¯ããã¨ãããã£ãã®ã§èª¿ã¹ãªããYubiKey 5 ãæ¥ããåããã¦ã¿ãç¨åº¦ã«ããã
ããããã£ã¦ãªããã¨
Yubikey ã®ãããªå ´åãéµã®ãã¢ãã©ã®ãããä¿åã§ãããã®ãªã®ã ãããï¼éµã®ãã¢ããã¡ã¤ã³ãã¨ã«çæããã¨ããèªèãªã®ã§ 1000 ãµã¤ãã¨ãã ã£ãã 1000 åéµã®ãã¢ãæã£ã¦ãããã®ã ãããï¼
ã¾ã Touch ID ã§çæãããéµã®ãã¢ã¯ã©ãã§ã¿ããã®ã ãããï¼ æ¶ãããããã®ã ãããï¼
Twitter ã§æãã¦ããã ããã
YubiKey ã«ç»é²ããã¦ããã®ã¯ãã¼ãã³ã¼ããããç§å¯éµã§ããããããå©ç¨ã㦠RP ãã¨ã«å ¬ééµãçæï¼ãã¦ãããã ã
ã¡ãã£ã¨ç§å¯éµããè¤æ°ã®å ¬ééµãçæã§ããã®ãã©ããã¯æ£ç´ããããªãã£ããå ¬ééµãªãã ããå ¨é¨åãå ¬ééµã§ããæ°ãããããããããã¨æ¯ååãå ¬ééµãçæãã¦ããããªãã ããããããã¯ããå°ã調ã¹ãã»ããããæ°ãããã
ã¨ãããã YubiKey å´ã«ã¯ä¿åããªãã¨ããã®ãããã£ãã®ã¯å¤§ãããã¤ã³ã¿ã¼ãããæ¬å½ã«ãããããã
ã¤ã³ã¿ã¼ãããåããæ¬å½ã«ããããããã¨ãããã¨ã§ç´ æµãªè¨äºãæãã¦ããã ããã
YubiKey ã® U2F ã®å®è£ ã¯ç§å¯éµã HMAC-SHA256 ã§çæãã¦ããã¨ãããã«ä½¿ãã®ã RP Id 㨠Nonce 㨠YubiKey åºæã®ã·ã¼ã¯ã¬ãããã¼ã¨ãããã¨ã ã£ãã
ã§ãç§å¯éµããå ¬ééµãçæãã¦ããµã¼ãã«ã¯å ¶ã®å ¬ééµã¨ Nonce ãã»ããã«ãã¦éããèªè¨¼æã«ã¯ãµã¼ããã Nonce ãéããã¦ããã®ã§ãã® Nonce 㨠RP Id 㨠YubiKey åºæã®ã·ã¼ã¯ã¬ãããã¼ã§ç§å¯éµãåçã«çæãã¦ç½²åããã°ããã
ããã§ç§å¯éµããã¼ãã¦ã§ã¢å´ã«ä¿åãã¦ããå¿ è¦ããªããªãã
ç´å¾ãããæ¬å½ã«çæ§ãããã¨ããããã¾ãã
ãªã WebAuthn ãªã®ã
ãã¹ã¯ã¼ããã¤ã®ã ãããã1Password æç¨ãã¦ããã©ããã§ãããã©ããããã¦ã§ãã®èªè¨¼ãã¹ããã®çä½èªè¨¼ã«é£ã°ãã¦ãããããããæ¬å½ã«æé«ã ã¨æãã
ã¾ã社å¡ã®æã¡åºããªã PC ã«ã¯ Yubikey 5 ããã£ã¤ããããããã¨ã§ãããããã¾ããã£ã¦ã¿ããã
ãã¼ãã¦ã§ã¢ã¼ãã¼ã¯ã³ã®æ´å²ã¯ããããåãå¤ãããæ°ããæè¡ã¨ãããã¨ã§ã¯ãªãã¨æã£ã¦ãã¦ããããããã Web ã¨ãããã©ãããã©ã¼ã ã§ä½¿ããããã«ãªã£ãã¨ããã®ã¯æ¬å½ã«ç´ æ´ãããã¨æã£ã¦ãããããã¯è§¦ã£ã¦ããããã¨ããæãããã
ãã¨ä»äºã§ä½¿ãããé¢ç½ããã ãªã¨ãæã£ã¦ãããç解ããã客æ§ã¯åãå ¥ãã¦ãããããªã®ã§ã
ä»å¾
FIDO2 㪠Yubikey 5 ã§åãããçµããã«ããäºå®ããã¨ã¯ä»äºã§ä½¿ããã使ãç¨åº¦ã§ãã©ããªä»çµã¿ã§å®ç¾ãã¦ããã®ãããªãã¨ãªãç解ãã¦ããã§ååã