借一æ¥ç½‘
作者:
在
在这个数å—化和信æ¯é«˜åº¦äº’è”的时代,密ç 的安全性和便æ·æ€§ä¸€ç›´æ˜¯ä¸€ä¸ªå¤‡å—关注的è¯é¢˜ã€‚éšç€ç½‘络钓鱼(phishing)攻击的日益猖ç—ï¼Œä¼ ç»Ÿçš„å¯†ç 验è¯æ–¹å¼æ˜¾å¾—越æ¥è¶Šè„†å¼±ã€‚为了解决这个问题,FIDO(快速身份在线)è”盟推出了一系列新兴的身份验è¯æ ‡å‡†ï¼Œå…¶ä¸æœ€å…·ä»£è¡¨æ€§çš„是 WebAuthn å’Œ FIDO2ã€‚è¿™ç¯‡æ–‡ç« å°†æ·±å…¥æŽ¢è®¨ WebAuthn API å’Œæ— å¯†ç 身份验è¯çš„原ç†ä¸Žåº”用,帮助我们更好地ç†è§£æœªæ¥çš„安全身份验è¯æ–¹å¼ã€‚
FIDO è”盟æˆç«‹äºŽ 2013 年,旨在开å‘安全ã€å¼€æ”¾ã€æ ‡å‡†åŒ–的防网络钓鱼身份验è¯å议。FIDO 的三个主è¦å议包括 UAF(通用身份验è¯æ¡†æž¶ï¼‰ã€U2F. ¼ˆé€šç”¨ç¬¬äºŒå› ç´ ï¼‰å’Œ FIDO2。FIDO2 æ˜¯å…¶æœ€æ–°çš„æ ‡å‡†ï¼Œä¸“æ³¨äºŽæ— å¯†ç 身份验è¯ã€‚✅
FIDO2 由两部分组æˆï¼šWebAuthn(客户端 API)和 CTAP(客户端到身份验è¯å™¨å议)。WebAuthn 使开å‘者能够通过 JavaScript 创建和管ç†å…¬é’¥å‡è¯ï¼Œè€Œ CTAP 则负责与身份验è¯å™¨ä¹‹é—´çš„低级别通信。
FIDO åè®®çš„æ ¸å¿ƒæ˜¯åŸºäºŽæŒ‘æˆ˜-å“应机制的身份验è¯æµç¨‹ã€‚æœåŠ¡å™¨å‘客户端å‘é€ä¸€ä¸ªæŒ‘战(challenge)和å‡è¯æ ‡è¯†ç¬¦ã€‚客户端将这些信æ¯å‘é€ç»™èº«ä»½éªŒè¯å™¨ï¼Œèº«ä»½éªŒè¯å™¨ä¼šè¦æ±‚用户进行验è¯ï¼ˆå¦‚输入 PIN 或使用生物识别技术)。验è¯é€šè¿‡åŽï¼Œèº«ä»½éªŒè¯å™¨ä½¿ç”¨ç§é’¥å¯¹æ•°æ®è¿›è¡Œç¾åï¼Œå¹¶å°†ç»“æžœè¿”å›žç»™å®¢æˆ·ç«¯ï¼Œæœ€ç»ˆå®¢æˆ·ç«¯å°†å…¶ä¼ é€’ç»™æœåŠ¡å™¨è¿›è¡ŒéªŒè¯ã€‚
è¿™ç§æœºåˆ¶ç¡®ä¿äº†ç”¨æˆ·çš„å‡è¯å§‹ç»ˆå˜å‚¨åœ¨æœ¬åœ°è®¾å¤‡ä¸Šï¼Œé¿å…了å‡è¯æ³„露的风险。æ¤å¤–,挑战-å“应机制有效地防æ¢äº†ä¸é—´äººæ”»å‡»ï¼ˆMITM)。
WebAuthn API æ供了两个基本æ“作:navigator.credentials.create å’Œ navigator.credentials.get。å‰è€…用于创建新的å‡è¯ï¼Œè€ŒåŽè€…用于获å–已注册å‡è¯çš„验è¯ã€‚
navigator.credentials.create
navigator.credentials.get
当用户需è¦æ³¨å†Œæ–°è´¦æˆ·æ—¶ï¼Œå¼€å‘者调用 navigator.credentials.create 方法。æ¤æ–¹æ³•éœ€è¦ä¸€ä¸ªåŒ…å«å¤šç§å‚数的对象,例如:
challenge
rp
user
pubKeyCredParams
通过这些å‚数,WebAuthn API 将生æˆæ–°çš„å‡è¯ï¼Œå¹¶åœ¨èº«ä»½éªŒè¯å™¨ä¸Šè¿›è¡Œå˜å‚¨ã€‚
在用户进行身份验è¯æ—¶ï¼Œå¼€å‘者调用 navigator.credentials.get 方法。æ¤æ–¹æ³•åŒæ ·éœ€è¦ä¸€ä¸ªå¯¹è±¡ï¼Œå…¶ä¸åŒ…括:
allowCredentials
如果身份验è¯å™¨èƒ½å¤Ÿè¯†åˆ«å‡è¯ï¼Œç”¨æˆ·å°†è¢«æ示进行验è¯ï¼ŒéªŒè¯é€šè¿‡åŽï¼Œè¿”回的结果将包å«èº«ä»½éªŒè¯ä¿¡æ¯ã€‚
æ— å¯†ç 身份验è¯çš„最大优势在于消除了密ç 本身的使用。这æ„味ç€ç”¨æˆ·ä¸å†éœ€è¦è®°ä½å¤æ‚的密ç ,也ä¸å¿…担心密ç è¢«ç›—æˆ–æ³„éœ²ã€‚ä»¥ä¸‹æ˜¯æ— å¯†ç 身份验è¯çš„一些主è¦ä¼˜ç‚¹ï¼š
WebAuthn å’Œæ— å¯†ç 身份验è¯åœ¨è®¸å¤šåœºæ™¯ä¸‹éƒ½æœ‰å¹¿æ³›çš„应用潜力。例如,电å商务ã€é‡‘èžæœåŠ¡ä»¥åŠç¤¾äº¤åª’体ç‰é¢†åŸŸéƒ½å¯ä»¥åˆ©ç”¨è¿™ä¸€æŠ€æœ¯æ¥æ高安全性和用户体验。
未æ¥ï¼Œéšç€æ”¯æŒ WebAuthn çš„å¹³å°å’Œè®¾å¤‡ä¸æ–å¢žåŠ ï¼Œé¢„è®¡æ— å¯†ç 身份验è¯å°†ä¼šæˆä¸ºä¸»æµã€‚å¼€å‘者将能够更方便地集æˆè¿™ä¸€æŠ€æœ¯ï¼Œç”¨æˆ·çš„身份验è¯è¿‡ç¨‹ä¹Ÿå°†å˜å¾—æ›´åŠ å®‰å…¨å’Œé«˜æ•ˆã€‚
è¦å‘表评论,您必须先登录。
在这个数å—化和信æ¯é«˜åº¦äº’è”的时代,密ç 的安全性和便æ·æ€§ä¸€ç›´æ˜¯ä¸€ä¸ªå¤‡å—关注的è¯é¢˜ã€‚éšç€ç½‘络钓鱼(phishing)攻击的日益猖ç—ï¼Œä¼ ç»Ÿçš„å¯†ç 验è¯æ–¹å¼æ˜¾å¾—越æ¥è¶Šè„†å¼±ã€‚为了解决这个问题,FIDO(快速身份在线)è”盟推出了一系列新兴的身份验è¯æ ‡å‡†ï¼Œå…¶ä¸æœ€å…·ä»£è¡¨æ€§çš„是 WebAuthn å’Œ FIDO2ã€‚è¿™ç¯‡æ–‡ç« å°†æ·±å…¥æŽ¢è®¨ WebAuthn API å’Œæ— å¯†ç 身份验è¯çš„原ç†ä¸Žåº”用,帮助我们更好地ç†è§£æœªæ¥çš„安全身份验è¯æ–¹å¼ã€‚
🔠什么是 FIDO 和 FIDO2?
FIDO è”盟æˆç«‹äºŽ 2013 年,旨在开å‘安全ã€å¼€æ”¾ã€æ ‡å‡†åŒ–的防网络钓鱼身份验è¯å议。FIDO 的三个主è¦å议包括 UAF(通用身份验è¯æ¡†æž¶ï¼‰ã€U2F. ¼ˆé€šç”¨ç¬¬äºŒå› ç´ ï¼‰å’Œ FIDO2。FIDO2 æ˜¯å…¶æœ€æ–°çš„æ ‡å‡†ï¼Œä¸“æ³¨äºŽæ— å¯†ç 身份验è¯ã€‚✅
FIDO2 由两部分组æˆï¼šWebAuthn(客户端 API)和 CTAP(客户端到身份验è¯å™¨å议)。WebAuthn 使开å‘者能够通过 JavaScript 创建和管ç†å…¬é’¥å‡è¯ï¼Œè€Œ CTAP 则负责与身份验è¯å™¨ä¹‹é—´çš„低级别通信。
🔄 FIDO 的工作原ç†
FIDO åè®®çš„æ ¸å¿ƒæ˜¯åŸºäºŽæŒ‘æˆ˜-å“应机制的身份验è¯æµç¨‹ã€‚æœåŠ¡å™¨å‘客户端å‘é€ä¸€ä¸ªæŒ‘战(challenge)和å‡è¯æ ‡è¯†ç¬¦ã€‚客户端将这些信æ¯å‘é€ç»™èº«ä»½éªŒè¯å™¨ï¼Œèº«ä»½éªŒè¯å™¨ä¼šè¦æ±‚用户进行验è¯ï¼ˆå¦‚输入 PIN 或使用生物识别技术)。验è¯é€šè¿‡åŽï¼Œèº«ä»½éªŒè¯å™¨ä½¿ç”¨ç§é’¥å¯¹æ•°æ®è¿›è¡Œç¾åï¼Œå¹¶å°†ç»“æžœè¿”å›žç»™å®¢æˆ·ç«¯ï¼Œæœ€ç»ˆå®¢æˆ·ç«¯å°†å…¶ä¼ é€’ç»™æœåŠ¡å™¨è¿›è¡ŒéªŒè¯ã€‚
è¿™ç§æœºåˆ¶ç¡®ä¿äº†ç”¨æˆ·çš„å‡è¯å§‹ç»ˆå˜å‚¨åœ¨æœ¬åœ°è®¾å¤‡ä¸Šï¼Œé¿å…了å‡è¯æ³„露的风险。æ¤å¤–,挑战-å“应机制有效地防æ¢äº†ä¸é—´äººæ”»å‡»ï¼ˆMITM)。
📜 WebAuthn API çš„æ ¸å¿ƒæ“作
WebAuthn API æ供了两个基本æ“作:
navigator.credentials.create
å’Œnavigator.credentials.get
。å‰è€…用于创建新的å‡è¯ï¼Œè€ŒåŽè€…用于获å–已注册å‡è¯çš„验è¯ã€‚创建å‡è¯
当用户需è¦æ³¨å†Œæ–°è´¦æˆ·æ—¶ï¼Œå¼€å‘者调用
navigator.credentials.create
方法。æ¤æ–¹æ³•éœ€è¦ä¸€ä¸ªåŒ…å«å¤šç§å‚数的对象,例如:challenge
:由æœåŠ¡å™¨ç”Ÿæˆçš„éšæœºæŒ‘战,用于防æ¢é‡æ”¾æ”»å‡»ã€‚rp
:有关ä¾èµ–方的信æ¯ï¼Œä¾‹å¦‚åç§°å’Œæ ‡è¯†ç¬¦ã€‚user
:用户的相关信æ¯ï¼ŒåŒ…æ‹¬å”¯ä¸€æ ‡è¯†ç¬¦å’Œç”¨æˆ·å。pubKeyCredParams
:æœåŠ¡å™¨æ”¯æŒçš„ç¾å算法列表。通过这些å‚数,WebAuthn API 将生æˆæ–°çš„å‡è¯ï¼Œå¹¶åœ¨èº«ä»½éªŒè¯å™¨ä¸Šè¿›è¡Œå˜å‚¨ã€‚
获å–å‡è¯
在用户进行身份验è¯æ—¶ï¼Œå¼€å‘者调用
navigator.credentials.get
方法。æ¤æ–¹æ³•åŒæ ·éœ€è¦ä¸€ä¸ªå¯¹è±¡ï¼Œå…¶ä¸åŒ…括:challenge
:与注册阶段相åŒçš„挑战。allowCredentials
:已注册å‡è¯çš„æ ‡è¯†ç¬¦åˆ—è¡¨ã€‚å¦‚æžœèº«ä»½éªŒè¯å™¨èƒ½å¤Ÿè¯†åˆ«å‡è¯ï¼Œç”¨æˆ·å°†è¢«æ示进行验è¯ï¼ŒéªŒè¯é€šè¿‡åŽï¼Œè¿”回的结果将包å«èº«ä»½éªŒè¯ä¿¡æ¯ã€‚
ðŸ›¡ï¸ æ— å¯†ç 身份验è¯çš„优势
æ— å¯†ç 身份验è¯çš„最大优势在于消除了密ç 本身的使用。这æ„味ç€ç”¨æˆ·ä¸å†éœ€è¦è®°ä½å¤æ‚的密ç ,也ä¸å¿…担心密ç è¢«ç›—æˆ–æ³„éœ²ã€‚ä»¥ä¸‹æ˜¯æ— å¯†ç 身份验è¯çš„一些主è¦ä¼˜ç‚¹ï¼š
🚀 应用场景与未æ¥å±•æœ›
WebAuthn å’Œæ— å¯†ç 身份验è¯åœ¨è®¸å¤šåœºæ™¯ä¸‹éƒ½æœ‰å¹¿æ³›çš„应用潜力。例如,电å商务ã€é‡‘èžæœåŠ¡ä»¥åŠç¤¾äº¤åª’体ç‰é¢†åŸŸéƒ½å¯ä»¥åˆ©ç”¨è¿™ä¸€æŠ€æœ¯æ¥æ高安全性和用户体验。
未æ¥ï¼Œéšç€æ”¯æŒ WebAuthn çš„å¹³å°å’Œè®¾å¤‡ä¸æ–å¢žåŠ ï¼Œé¢„è®¡æ— å¯†ç 身份验è¯å°†ä¼šæˆä¸ºä¸»æµã€‚å¼€å‘者将能够更方便地集æˆè¿™ä¸€æŠ€æœ¯ï¼Œç”¨æˆ·çš„身份验è¯è¿‡ç¨‹ä¹Ÿå°†å˜å¾—æ›´åŠ å®‰å…¨å’Œé«˜æ•ˆã€‚
📚 å‚考文献