Yahoo! JAPAN's 免密碼驗證的做法減少了 25% 的提問,登入時間減少 2.6 倍

瞭解 Yahoo!日本打造出無密碼的身分識別系統。

Yahoo! JAPAN 是日本最大的媒體公司之一,提供 服務,例如搜尋、新聞、電子商務和電子郵件等等。使用者超過 5 千萬人 登入 Yahoo!JAPAN 服務。

多年來,許多使用者帳戶與問題都遭受攻擊 無法存取帳戶。這些問題大多與密碼使用有關 進行驗證。

隨著驗證技術日新月異,Yahoo!JAPAN 決定 從密碼式驗證轉為無密碼驗證

為何要不需要密碼?

Yahoo!JAPAN 提供電子商務和其他金錢相關服務 可能造成使用者受到嚴重損害的風險,

與密碼相關的最常見的攻擊是密碼清單攻擊和 。密碼清單攻擊是常見原因之一, 是許多人習慣將相同密碼用於 應用程式和網站

以下圖表是由 Yahoo!Japan 提供的大多數曝光比重指標製作報表。

    50 人 %

    在 6 個以上網站使用相同的 ID 和密碼

    60 次 %

    在多個網站上使用相同密碼

    70 次 %

    使用密碼做為主要登入方式

使用者經常忘記密碼,其中大多數是 密碼相關問題。以及詢問 除了密碼之外,還忘記登入 ID。這些是當年的高峰 負責處理所有帳戶相關問題的佔比超過三分之一

在此情況下,Yahoo!JAPAN 旨在改善安全性 可用性高,而且不會增加任何額外的負擔。

從安全性的角度來看,使用者不必輸入密碼 驗證程序可降低清單式攻擊所造成的損害 可用性的角度,提供不需仰賴使用者操作的驗證方法 記住密碼有助於避免使用者登入 因為他們忘記密碼了。

Yahoo! JAPAN 的無密碼計劃

Yahoo! JAPAN 採取了多項措施, 驗證,大致分為三個類別:

  1. 提供密碼的替代驗證方式。
  2. 密碼停用。
  3. 無密碼帳戶註冊。

前兩項針對現有使用者的計畫,無密碼 針對新使用者註冊

1. 提供密碼的替代驗證方式

Yahoo! JAPAN 提供下列密碼替代方式。

  1. 簡訊驗證
  2. 使用 WebAuthn 的 FIDO

此外,我們還提供電子郵件等驗證方法 驗證、密碼與簡訊動態密碼 (動態密碼) 的結合,以及 密碼與電子郵件動態密碼的結合。

簡訊驗證

SMS 驗證是一種系統,可讓已註冊的使用者 透過簡訊傳送的 6 位數驗證碼。使用者收到簡訊後 他們可以在應用程式或網站中輸入驗證碼。

Apple 向來允許 iOS 讀取簡訊及建議驗證 擷取出一組原始程式碼最近,您可以在 指定「一次性代碼」在輸入內容的 autocomplete 屬性中 元素。Android、Windows 和 Mac 上的 Chrome 可提供相同的使用體驗 使用 WebOTP API

例如:

<form>
  <input type="text" id="code" autocomplete="one-time-code"/>
  <button type="submit">sign in</button>
</form>
if ('OTPCredential' in window) {
  const input = document.getElementById('code');
  if (!input) return;
  const ac = new AbortController();
  const form = input.closest('form');
  if (form) {
    form.addEventListener('submit', e => {
      ac.abort();
    });
  }
  navigator.credentials.get({
    otp: { transport:['sms'] },
    signal: ac.signal
  }).then(otp => {
    input.value = otp.code;
  }).catch(err => {
    console.log(err);
  });
}

這兩種方式都是透過在 簡訊內文,並僅針對指定網域提供建議。

如要進一步瞭解 WebOTP API 和 autocomplete="one-time-code", 請參閱簡訊動態密碼表單最佳做法

使用 WebAuthn 的 FIDO

搭配使用 WebAuthn 的 FIDO 會使用硬體驗證器產生公開金鑰 並證明所有可能性透過智慧型手機 驗證器,可以結合生物特徵辨識驗證 (例如 指紋感應器或臉部辨識),才能執行單步驟雙重驗證 驗證。在此情況下,只有簽章和成功指標 生物特徵辨識驗證會傳送到伺服器 竊取生物特徵辨識資料

以下是 FIDO 的伺服器用戶端設定。 用戶端驗證器會使用生物特徵辨識功能驗證使用者,並簽署 透過公開金鑰密碼編譯而成的結果。用來建立 簽章會安全地儲存在 TEE (受信任的執行環境) 中 或類似位置使用 FIDO 的服務供應商稱為 RP (依賴方)。

使用者執行驗證 (通常是使用生物特徵辨識掃描或 PIN 碼) 後,驗證器就會使用私密金鑰將已簽署的驗證信號傳送至瀏覽器。接著,瀏覽器會將這個信號提供給 RP 的網站。

接著,RP 網站會將已簽署的驗證信號傳送至 RP 伺服器,根據公開金鑰驗證簽名以完成驗證程序。

如需更多資訊,請參閱 FIDO 聯盟的驗證指南

Yahoo! JAPAN 支援 Android (行動應用程式和網頁)、iOS (行動應用程式) 上的 FIDO 和網頁)、Windows (Edge、Chrome、Firefox),以及 macOS (Safari、Chrome)。身為 FIDO,幾乎適用於所有裝置, 推薦無密碼驗證的選項

作業系統 支援 FIDO
Android 版 應用程式、瀏覽器 (Chrome)
iOS 應用程式 (iOS14 以上版本)、瀏覽器 (Safari 14 以上版本)
Windows 瀏覽器 (Edge、Chrome、Firefox)
Mac (Big Sur 或以上版本) 瀏覽器 (Safari、Chrome)
Yahoo!JAPAN 就會提示您透過 FIDO 進行驗證。

Yahoo! JAPAN 建議使用者透過 WebAuthn 註冊 FIDO, 未透過其他方式完成驗證使用者需要登入時 也可以使用生物特徵辨識感應器快速進行驗證

使用者必須在所有用來登入的裝置上設定 FIDO 驗證機制 新版 Search Ads 360 服務中的 Yahoo!Japan 提供的大多數曝光比重指標製作報表。

為了推廣無密碼驗證,並且顧及 我們提供多種方式, 驗證。也就是說,不同的使用者 驗證方法設定,以及可用的驗證方法 會因瀏覽器而異如果能 使用者每次登入時,都必須使用相同的驗證方法。

為符合這些規定,必須追蹤先前的驗證狀態 方法,並將這項資訊儲存為 Cookie 等。我們便可分析不同瀏覽器和應用程式的 用於驗證系統會要求使用者提供 依照使用者的設定進行驗證 及所需的最低驗證等級。

2. 密碼停用

Yahoo! JAPAN 要求使用者設定替代驗證方法,並 並停用其密碼,使其無法使用。除了設定 停用替代驗證、停用密碼驗證 (因此 導致只有密碼才能登入) 以清單為基礎的攻擊

我們已採取下列步驟,鼓勵使用者停用 密碼。

  • 在使用者重設密碼時宣傳其他驗證方法。
  • 鼓勵使用者設定簡單易用的驗證方法 (例如 FIDO),並停用密碼,以解決不常發生的問題 驗證。
  • 要求使用者在使用高風險服務前停用密碼, 例如電子商務付款

如果使用者忘記密碼,可以執行帳戶救援程序。先前 這涉及密碼重設作業使用者現在可選擇設定 驗證方式,我們也建議他們這麼做

3. 無密碼帳戶註冊

新使用者可建立不含密碼的 Yahoo!JAPAN 帳戶。使用者優先 ,必須通過簡訊驗證才能註冊。使用者登入後 因此鼓勵使用者設定 FIDO 驗證機制。

FIDO 是依個別裝置的設定,因此可能難以復原帳戶。 ,屆時裝置無法運作。因此,我們要求使用者保留自己的 已註冊的電話號碼,即使客戶已設定額外驗證也一樣。

無密碼驗證的主要驗證問題

密碼仰賴人為記憶體,且與裝置無關。另一方面 我們到目前為止在無密碼計畫中介紹的驗證方法 都因裝置而異這構成了幾項挑戰

使用多部裝置時,會遇到一些與可用性相關的問題:

  • 使用簡訊驗證功能從電腦登入時,使用者必須檢查 透過手機接收 SMS 訊息。這可能會帶來不便 需要使用者的手機隨時可用,而且要隨時輕鬆使用。
  • 透過 FIDO (特別是使用平台驗證工具), 系統將無法在未註冊的裝置上進行驗證。 您必須為要使用的每部裝置完成註冊。

FIDO 驗證與特定裝置相連結,因此必須保持登入狀態 使用者擁有且正在活躍

  • 服務合約取消後,您將無法再 傳送簡訊到註冊的電話號碼。
  • FIDO 會將私密金鑰儲存在特定裝置上。如果裝置遺失 無法使用金鑰。

Yahoo! JAPAN 已採取多項措施來解決這些問題。

最重要的解決方法是鼓勵使用者 驗證方式。如此一來,當您的裝置放送廣告時, 就會遺失FIDO 金鑰因裝置而異,因此最好 在多部裝置上註冊 FIDO 私密金鑰。

或者,使用者也可使用 WebOTP API 通過簡訊驗證 驗證碼從 Android 手機轉移到電腦版 Chrome。

我們相信,解決這些問題將比以往更加重要 無密碼驗證擴大。

提倡無密碼驗證

Yahoo! JAPAN 自 2015 年起就持續推行這些無密碼計劃。 我們從 2015 年 5 月收購 FIDO 伺服器認證開始, 然後介紹簡訊驗證、密碼停用 和 FIDO 支援

目前,已有超過 3 千萬名每月活躍使用者 並使用非密碼的驗證方式。Yahoo! 日本 FIDO 最初是 Android 版 Chrome,如今已突破一百萬 使用者已設定 FIDO 驗證機制。

但由於 Yahoo!JAPAN 的倡議,在市場上 與使用者的登入 ID 或密碼有關 這類問題的數量最高,而我們也 可以確認未經授權的存取遭拒, 無密碼帳戶數量增加 30%。

FIDO 容易設定,所以轉換率特別高。 事實上,Yahoo!JAPAN 發現 FIDO 的轉換率高於簡訊 驗證。

    25 人 %

    針對忘記的憑證發出的要求數量減少 75%

    74 分 %

    使用者透過 FIDO 驗證成功

    65 次 %

    已完成簡訊驗證

FIDO 的成功率比簡訊驗證更高,而且平均和 驗證時間中位數至於密碼,有些群組 驗證次數,我們認為這是因瀏覽器的 autocomplete="current-password"

密碼、簡訊和 FIDO 的驗證時間比較圖。
一般而言,FIDO 需要 8 秒的驗證時間,密碼則需要 21 秒,而簡訊驗證作業則需要 27 秒鐘。

提供無密碼帳戶的最困難並不是如此 驗證方法,但優先使用驗證器。 如果使用無密碼服務的使用體驗並不容易使用, 轉換並不容易

我們相信,如要提升安全性,就必須先提升可用性。 這將使每項服務都需要獨特的創新技術

結論

密碼驗證具有安全性風險,而且過程也可能造成 可用性方面的難題現在,新技術支援 非密碼驗證 (例如 WebOTP API 和 FIDO) 即可開始使用無密碼驗證。

請前往 Yahoo!JAPAN,這種做法對 可用性和安全性不過,很多使用者仍然使用密碼,因此我們 將繼續鼓勵更多使用者改用無密碼驗證 方法。我們也會持續改善產品,為的使用者提供最優質的服務 提供無密碼驗證體驗

相片由 olieman.eth 提供,發表於 Unsplash 網站上