繁體中文(台灣)
  • mfa
  • auth
  • authentication
  • product

探索 MFA:從產品角度看驗證

通過分析其核心組件、用戶流程和基本指導原則,解構多因素驗證 (MFA)。

Ran
Ran
Product & Design

在數字領域,如果每個應用程式都以相同的方式登入,我們是否可以通過簡化身份驗證過程來節省時間和資源?聽起來有可能,對吧?就像你對一切都使用 "用 Google 繼續",或者對所有事情只用一個電子郵件和密碼組合。

但真正的故事更有趣。每個應用程式都有其獨特的方式來確保是真的你在登入。我們為這個驗證過程投入了努力,以保障安全,平衡用戶體驗,並尊重每位用戶的隱私偏好。

由於沒有適用於所有人的神奇公式,讓我們來剖析驗證工作原理並創建符合服務的設計。

基本:驗證的兩個部分

驗證,即驗證你身份的花俏詞語,由兩個部分組成:識別符和驗證因素。

可以把識別符理解為說 "嗨,我是 Sarah。" 你可能會想,"哦,那是 Sarah,很好。" 但安全人員會問,"這真的是 Sarah 嗎?Sarah 是否擁有必要的憑據以獲得訪問?" 這就是驗證因素的作用。讓我們用技術術語來解釋。

識別符:你的數位 ID

識別符決定用戶可以訪問什麼。由於資源總是稀缺的,你的身份是你的獨特通行證。第一步:在登入頁面輸入你的識別符。但我們不能使用暱稱或全名,這會成為搜尋過載的等待發生。可以使用的識別符有:

  • 用戶 ID:技術上不變且唯一。這有點像管理員的管理,但用戶無法記住每個產品的這些 ID。

  • 用戶名:用戶 ID 的友好迭代。它是唯一的,在帳戶系統中不能重複。社交平台個性化配置檔案,但為了保持認可穩定,必須是用戶名。變更有限,甚至可能需要支付。

  • 身份證號碼:像身份證、學生證或銀行卡號碼一樣,是堅固且唯一的識別符。儘管不容易記住,但如果你忘記了主要 ID,它們可以作為可靠的備份機制。

  • 電子郵件或電話號碼:不同於用戶名可能容易被遺忘,聯繫資訊更容易記住。使用電子郵件或電話號碼作為識別符可以防止長期未使用或被召回的用戶忘記自己的身份,減少潛在流失的風險。 雖然這種便利對用戶友好,但管理 "個人、電子郵件和帳戶" 之間的互動可能會複雜化你的產品結構。考慮 Instagram: (1) 它允許使用單個電子郵件來建立多個帳戶; (2) 可以將多個電子郵件地址添加到 Instagram 個人資料中以進行登入或恢復; (3) Instagram 允許跨帳戶同時登入,無論電子郵件是否匹配。雖然帳戶通常有分隔的資源,Instagram 允許合併帳戶資訊,促進一致的驗證、針對性廣告和個人化推薦。

    Email

驗證因素

驗證因素是證明你真的是你的動作。這裡有很多根據屬性劃分的因素可供選擇:

意思驗證因素
知識你知道的東西密碼、電子郵件驗證碼、備份碼
擁有你擁有的東西短信驗證碼、驗證器應用程式 OTP、硬體 OTP (安全金鑰)、智能卡
嵌入性你是什麼的人生物識別,如指紋、面部 ID

理論上,你可以用任何識別符來混合這些驗證因素來證明是你。常見的:電子郵件地址(ID) 和電子郵件驗證碼(Factor)。但你可以混合:電子郵件地址(ID) 和短信驗證碼(Factor)。

因為邪惡無處不在,單一因素不夠。因此,多因素驗證(MFA)就出現了。當你登入時,第一次驗證 (1FA) 是必須的,但可能有更多步驟,第二次 (2FA),甚至第三次。此外,當你在應用中請求訪問關鍵資源時,你需要重新驗證身份。這些額外的層次提供了對惡意行為者的更高安全防護,這整個範圍就是 MFA。

MFA

設計你的驗證流程

回到開始——為什麼每個應用都有不同的識別符和驗證因素組合?這關乎用戶體驗。

驗證太嚴格可能讓用戶感到煩惱,覺得 "為什麼這麼難?" 驗證太鬆散可能導致帳戶被黑客攻擊和混亂。那麼,這是誰的麻煩?

三個編排原則:

確保你的真實用戶可以登入

人有時會忘記 ID 或丟失驗證步驟。為了減少潛在的支援負擔,我們需要提供幫助的方式:

  1. 提供各種因素進行驗證——通常至少兩個 用於 MFA。因為生物識別很酷,但不工作時不起作用;有時用戶可能遺失設備。
  2. 具有恢復驗證的選項——例如 "忘記密碼" 或再次找到你的 ID。但在恢復之前,還需要初步的身份驗證,這通常與登入過程不同。
  3. 提供透過客戶服務或系統管理員的恢復聯繫資訊作為備份。

驗證無漏洞

驗證並不完美,兩步驗證不一定是更安全的。記住:

  1. 在 MFA 流程中,第二步驗證應具備與第一步不同的屬性 (知識/擁有/嵌入性)。例如,使用 "密碼 (知識)" 作為 1FA 和 "驗證器應用程式 OTP (擁有)" 作為 2FA 可以阻止不同的攻擊向量。
  2. 恢復方法不能跳過 MFA。例如,如果你可以透過短信 "忘記密碼",就不能再用短信作為第二步驗證因素。另一個選項是為 "忘記密碼" 流程添加 2FA,儘管這看起來可能會很複雜。
  3. 考慮設置降速時間或速率限制。在多次驗證錯誤後,限制隨後驗證的速率。並不允許多步驟驗證中間有較長的間隔。

平衡用戶體驗

不是每個動作需要 1FA 或 2FA。這取決於情況,而不是總是遵循相同的步驟。

  1. 給不同角色自訂能力:確保資源的安全性主要是產品的責任,但也是個人的責任。制定 MFA 規範可以根據服務的性質定制:應用中的全域用戶 MFA,組織驅動的 MFA,和用戶決策驅動的 MFA。
  2. 利用自適應 MFA:對於存在潛在風險或高風險操作的場景,強制驗證是務實的。相較之下,安全環境或低風險操作可能需要簡化的訪問,透過保留會話,最小化驗證步驟,甚至是訪客訪問。值得注意的是,這取決於用戶的情境。
    • 不安全的環境:如新設備、不常見的旅行位置,或不信任的 IP。
    • 敏感操作:如涉及加密數據訪問、大筆金融交易,或更改驗證方法的情況。

欲了解詳情,請查閱 NIST 的身份驗證保證級別 (AAL) 指南

結尾筆記

隨著我們結束對驗證和多因素驗證 (MFA) 的探索,我們希望你能對其在我們數位生活中起到的重要作用有所了解。MFA,融合識別符和驗證因素,創造了一個強大的屏障,保持安全訪問,同時提供用戶友好的互動。

令人興奮的消息是,Logto 的 MFA 即將面世。對於個人和企業,Logto 確保安全的線上互動。