使用 Azure Active Directory 密碼保護排除不正確的密碼

許多安全性指引均建議不要將相同的密碼用於多處,而應使用複雜密碼,並避免 Password123 之類的簡單密碼。 您可以為使用者提供如何選擇密碼的指引,但還是有人會使用弱式或不安全的密碼。 Azure AD 密碼保護會偵測並封鎖已知的弱式密碼及其變體,此外也可封鎖您的組織特有的其他弱式字詞。

使用 Azure AD 密碼保護時,會自動將預設全域禁用密碼清單套用至 Azure AD 租用戶中的所有使用者。 如要支援您自己的商務和安全性需求,您可以在自訂禁用密碼清單中定義項目。 當使用者變更或重設其密碼時,系統會檢查這些禁用密碼清單,並強制使用強式密碼。

您應使用額外的功能 (例如 Azure AD Multi-Factor Authentication),而非僅依賴 Azure AD 密碼保護所強制執行的強式密碼。 如需使用多層安全性來登入事件的詳細資訊,請參閱 Pa$$word (密碼) 不重要

重要

此概念性文章會向系統管理員說明 Azure AD 密碼保護的運作方式。 如果您是已註冊自助式密碼重設的使用者,而且需要取回您的帳戶,請移至 https://aka.ms/sspr

如果您的 IT 小組尚未啟用重設您密碼的功能,請與您的技術服務人員聯繫以取得其他協助。

全域禁用密碼清單

Azure AD Identity Protection 小組會持續分析 Azure AD 安全性遙測資料,尋找常用的弱式或遭入侵的密碼。 具體來說,分析會尋找常用來作為弱式密碼基礎的基底字詞。 發現弱式字詞時,就會將其新增至全域禁用密碼清單。 全域禁用密碼清單的內容並非以任何外部資料來源為基礎,而是基於 Azure AD 安全性遙測和分析的結果。

為 Azure AD 租用戶中的任何使用者變更或重設密碼時,將會使用現行版本的全域禁用密碼清單來驗證密碼的強度。 這項驗證檢查會讓所有的 Azure AD 客戶獲得更強的密碼。

全域禁用密碼清單會自動套用至 Azure AD 租用戶中的所有使用者。 完全不需要啟用或設定,也沒有可停用的項目。 使用者透過 Azure AD 變更或重設其本身的密碼時,就會套用此全域禁用密碼清單。

注意

網路罪犯也會在其攻擊中使用類似的策略來識別常見的弱式密碼和變體。 為了提升安全性,Microsoft 不會發佈全域禁用密碼清單的內容。

自訂禁用密碼清單

有些組織為了提升安全性,會在全域禁用密碼清單之上新增其本身的自訂。 若要新增您自己的項目,您可以使用自訂禁用密碼清單。 新增至自訂禁用密碼清單的字詞,應著重於組織專用的字詞,例如下列範例:

  • 品牌名稱
  • 產品名稱
  • 位置,例如公司總部
  • 公司特有的內部字詞
  • 具有特定公司意義的縮寫

字詞在新增至自訂禁用密碼清單時,會與全域禁用密碼清單中的字詞合併。 然後,系統會根據這些禁用密碼清單的組合集,來驗證密碼變更或重設事件。

注意

自訂禁用密碼清單的上限為 1000 個字詞。 其設計訴求並不是要封鎖極龐大的密碼清單。

若要充分利用自訂禁用密碼清單的優點,在將字詞新增至自訂禁用清單之前,請先了解如何評估密碼。 此方法可讓您有效偵測和封鎖大量的弱式密碼及其變體。

Modify the custom banned password list under Authentication Methods

我們來看看名為 Contoso 的客戶。 該公司位於倫敦,生產名為 Widget 的產品。 就此範例客戶而言,嘗試封鎖這些字詞如下的特定變體不僅徒勞無功,也不甚安全:

  • "Contoso!1"
  • "Contoso@London"
  • "ContosoWidget"
  • "!Contoso"
  • "LondonHQ"

相對地,僅封鎖關鍵基底字詞會更有效率且更安全,如下列範例所示:

  • 「Contoso」
  • "London"
  • "Widget"

然後,密碼驗證演算法會自動封鎖弱式變體和組合。

若要開始使用自訂禁用密碼清單,請完成下列教學課程:

密碼噴灑攻擊和第三方遭入侵的密碼清單

Azure AD 密碼保護可協助您防禦密碼噴灑攻擊。 大部分的密碼噴灑攻擊並不會嘗試多次攻擊任何特定的個別帳戶。 此行為會提高被帳戶鎖定或其他機制偵測道的可能性。

實際上,大部分的密碼噴灑攻擊都只會對企業中的各個帳戶提交少量的已知最弱密碼。 這項技術可讓攻擊者快速搜尋容易遭到入侵的帳戶,並避免可能的偵測臨界值。

Azure AD 密碼保護可有效率地封鎖可能在密碼噴灑攻擊中使用的所有已知弱式密碼。 這項保護的基礎為 Azure AD 中用來建置全域禁用密碼清單的實際安全性遙測資料。

有一些第三方網站會列舉在先前已知的安全性缺口中遭入侵的數百萬個密碼。 第三方密碼驗證產品常會仰賴與這上百萬個密碼進行暴力密碼破解比較。 不過,基於密碼噴灑攻擊者所使用的常見策略,這些技術並不是提高整個密碼強度的最佳方式。

注意

全域禁用密碼清單不是以任何第三方資料來源為基礎,包括遭入侵的密碼清單。

雖然全域禁用清單相較於某些第三方大量清單顯得很小,但其源自對真實密碼噴灑攻擊的實際安全性遙測。 這種方法可改善整體的安全性和有效性,而且密碼驗證演算法也會使用智慧型模糊比對技術。 因此,Azure AD 密碼保護可有效偵測和封鎖數百萬個最常見的弱式密碼,使其無法在您的企業中使用。

內部部署混合式案例

許多組織都具有混合式身分識別模型,且內含內部部署 Active Directory Domain Services (AD DS) 環境。 若要將 Azure AD 密碼保護的安全性優勢擴充到 AD DS 環境中,您可以將元件安裝在內部部署伺服器上。 這些代理程式需要內部部署 AD DS 環境中的密碼變更事件,以符合 Azure AD 中的相同密碼原則。

如需詳細資訊,請參閱強制執行 AD DS 的 Azure AD 密碼保護

如何評估密碼

當使用者變更或重設其密碼時,系統會根據全域和自訂禁用密碼清單的合併字詞清單來驗證新密碼,以檢查密碼的強度與複雜度。

即便使用者的密碼包含禁用密碼,如果整體密碼還不夠強,仍可能接受該密碼。 新設定的密碼會經歷下列步驟以評估整體強度,進而決定應接受還是拒絕:

步驟 1:正規化

新密碼會先經歷正規化程序。 這項技術可讓一小組禁用密碼對應至一組大得多的潛在弱式密碼。

正規化有下列兩個部分:

  • 所有大寫字母都會變更為小寫。

  • 然後,會替代常見的字元,如下列範例所示:

    原始字母 替代的字母
    0 o
    1 l
    $ s
    @ a

請考慮下列範例:

  • 禁用密碼 "blank"。
  • 使用者嘗試將其密碼變更為 "Bl@nK"。
  • 即使未禁用 "Bl@nk",正規化程序仍會將此密碼轉換成 "blank"。
  • 此密碼將會遭到拒絕。

步驟 2:檢查密碼是否被視為禁用

接著會檢查密碼是否有其他相符的行為,並產生分數。 這最終的分數會決定要接受還是拒絕密碼變更要求。

模糊比對行為

模糊比對在正規化密碼上用來識別是否包含在全域或自訂禁用密碼清單上找到的密碼。 比對程序是以一 (1) 次比較的編輯差距為基礎。

請考慮下列範例:

  • 禁用密碼 "abcdef"。

  • 使用者嘗試將其密碼變更為下列其中之一:

    • 'abcdeg' - 最後一個字元從 'f' 變更為 'g'
    • 'abcdefg' - 'g' 附加至結尾
    • 'abcde' - 尾端 'f' 已從結尾刪除
  • 以上每個密碼皆未明確符合禁用密碼 "abcdef"。

    不過,由於每個範例都在禁用字詞 'abcdef' 的編輯距離 1 的範圍內,因此都會被視為與 "abcdef" 相符。

  • 這些密碼將遭到拒絕。

子字串比對 (在特定詞彙上)

子字串比對用於正規化密碼上,以檢查使用者的名字和姓氏,以及租用戶名稱。 在內部部署混合式案例中,在 AD DS 網域控制站上驗證密碼時不會進行租用戶名稱比對。

重要

對於長度至少為四個字元的名稱和其他字詞,才會強制執行子字串比對。

請考慮下列範例:

  • 名為 Poll 的使用者想要將其密碼重設為 "p0LL23fb"。
  • 正規化之後,此密碼會變成 "poll23fb"。
  • 子字串比對發現密碼包含使用者的名字 "Poll"。
  • 即使 "poll23fb" 並未明確列在任一份禁用密碼清單上,但是子字串比對在密碼中找到 "Poll"。
  • 此密碼將會遭到拒絕。

分數計算

下一個步驟是在使用者的正規化新密碼中找出所有禁用密碼執行個體。 系統會根據下列準則來指派分數:

  1. 在使用者密碼中找到的每個禁用密碼都會得到一分。
  2. 其餘不屬於禁用密碼的每個字元都會得到一分。
  3. 密碼至少須有五 (5) 分才能被接受。

在後續兩個範例案例中,Contoso 會使用 Azure AD 密碼保護,且其自訂禁用密碼清單中包含 "contoso"。 我們也假設 "blank" 位於全域清單上。

在下列範例案例中,使用者會將其密碼變更為 "C0ntos0Blank12":

  • 正規化之後,此密碼會變成 "contosoblank12"。

  • 比對程序發現此密碼包含兩個禁用密碼:"contoso" 和 "blank"。

  • 隨後,此密碼會獲得下列分數:

    [contoso] + [blank] + [1] + [2] = 4 分

  • 此密碼低於五 (5) 分,因此會被拒絕。

我們來看看稍微不同的範例,了解密碼如何以額外的複雜度產生被接受所需的分數。 在下列範例案例中,使用者會將其密碼變更為 "ContoS0Bl@nkf9!":

  • 正規化之後,此密碼會變成 "contosoblankf9!"。

  • 比對程序發現此密碼包含兩個禁用密碼:"contoso" 和 "blank"。

  • 隨後,此密碼會獲得下列分數:

    [contoso] + [blank] + [f] + [9] + [!] = 5 分

  • 此密碼達到最低標準五 (5) 分,因此會被接受。

重要

根據進行中的安全性分析和研究,禁用密碼演算法及全域進用密碼清單可能在 Azure 中隨時變更。

對於混合式案例中的內部部署 DC 代理程式服務,只有在 DC 代理程式軟體升級後,更新的演算法才會生效。

使用者看到的內容

當使用者嘗試將密碼重設或變更為將禁用的密碼時,會顯示下列其中一則錯誤訊息:

「抱歉,您的密碼包含的單字、片語或模式會使密碼輕易被猜出。 請使用不同的密碼再試一次。」

「此密碼已多次使用。 請選擇較難猜出的密碼。」

「選擇較不易猜到的密碼。」

授權需求

使用者 使用全域禁用密碼清單的 Azure AD 密碼保護 使用自訂禁用密碼清單的 Azure AD 密碼保護
僅限雲端使用者 Azure AD Free Azure AD Premium P1 或 P2
從內部部署 AD DS 同步處理的使用者 Azure AD Premium P1 或 P2 Azure AD Premium P1 或 P2

注意

未同步處理至 Azure AD 的內部部署 AD DS 使用者,也可根據已同步處理的使用者現有的授權受益於 Azure AD 密碼保護。

Azure Active Directory 價格網站上可以找到其他授權資訊 (包括成本)。

後續步驟

若要開始使用自訂禁用密碼清單,請完成下列教學課程:

然後,您也可以啟用內部部署 Azure AD 密碼保護