🌠探索 WebAuthn API 和无密ç èº«ä»½éªŒè¯çš„未æ¥

在这个数字化和信æ¯é«˜åº¦äº’è”的时代,密ç çš„安全性和便æ·æ€§ä¸€ç›´æ˜¯ä¸€ä¸ªå¤‡å—关注的è¯é¢˜ã€‚éšç€ç½‘络钓鱼(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:已注册凭è¯çš„标识符列表。

如果身份验è¯å™¨èƒ½å¤Ÿè¯†åˆ«å‡­è¯ï¼Œç”¨æˆ·å°†è¢«æ示进行验è¯ï¼ŒéªŒè¯é€šè¿‡åŽï¼Œè¿”回的结果将包å«èº«ä»½éªŒè¯ä¿¡æ¯ã€‚

ðŸ›¡ï¸ æ— å¯†ç èº«ä»½éªŒè¯çš„优势

无密ç èº«ä»½éªŒè¯çš„最大优势在于消除了密ç æœ¬èº«çš„使用。这æ„味ç€ç”¨æˆ·ä¸å†éœ€è¦è®°ä½å¤æ‚的密ç ï¼Œä¹Ÿä¸å¿…担心密ç è¢«ç›—或泄露。以下是无密ç èº«ä»½éªŒè¯çš„一些主è¦ä¼˜ç‚¹ï¼š

  1. æ高安全性:由于没有密ç è¢«å‘é€æˆ–存储在æœåŠ¡å™¨ä¸Šï¼Œæ”»å‡»è€…无法通过网络钓鱼等手段获å–用户凭è¯ã€‚
  2. 用户体验:用户åªéœ€è¿›è¡Œç®€å•çš„生物识别验è¯æˆ– PIN 输入,显著æ高了登录的便æ·æ€§ã€‚
  3. é™ä½Žç»´æŠ¤æˆæœ¬ï¼šä¼ä¸šä¸å†éœ€è¦æ‰¿æ‹…密ç é‡ç½®å’Œç®¡ç†çš„相关æˆæœ¬ã€‚

🚀 应用场景与未æ¥å±•æœ›

WebAuthn 和无密ç èº«ä»½éªŒè¯åœ¨è®¸å¤šåœºæ™¯ä¸‹éƒ½æœ‰å¹¿æ³›çš„应用潜力。例如,电å­å•†åŠ¡ã€é‡‘èžæœåŠ¡ä»¥åŠç¤¾äº¤åª’体等领域都å¯ä»¥åˆ©ç”¨è¿™ä¸€æŠ€æœ¯æ¥æ高安全性和用户体验。

未æ¥ï¼Œéšç€æ”¯æŒ WebAuthn çš„å¹³å°å’Œè®¾å¤‡ä¸æ–­å¢žåŠ ï¼Œé¢„计无密ç èº«ä»½éªŒè¯å°†ä¼šæˆä¸ºä¸»æµã€‚å¼€å‘者将能够更方便地集æˆè¿™ä¸€æŠ€æœ¯ï¼Œç”¨æˆ·çš„身份验è¯è¿‡ç¨‹ä¹Ÿå°†å˜å¾—更加安全和高效。

📚 å‚考文献

  1. FIDO Alliance. (2019). FIDO2 Overview. FIDO Alliance
  2. WebAuthn Specification. (2021). W3C
  3. Ackermann, Y. (2019). Introduction to WebAuthn API and Passkey. ✅Medium
  4. Kitamura, E. (2019). Sign-in on the Web — Credential Management API and Best Practices. ✅Medium
  5. Demystifying attestation and MDS. Medium

0 0 投票数
Article Rating
订阅评论
æ醒
0 评论
最多投票
最新 最旧
内è”å馈
查看所有评论
0
希望看到您的想法,请您å‘表评论x