Share via


威脅防護技術

有數種威脅防護技術可供您使用,以更妥善地保護密碼。 這些技術是使用下列四種主要技術的一或多個來實作。

技術 描述
CryptoAPI CryptoAPI 提供一組函式,可協助您將密碼編譯常式套用至目標實體。 CryptoAPI 可以提供雜湊、摘要、加密和解密,以提及其主要功能。 CryptoAPI 也有其他功能。 若要瞭解密碼編譯和 CryptoAPI,請參閱 Cryptography Essentials
存取控制清單 ACL) (存取控制清單是適用于物件的安全性保護清單。 物件可以是檔案、進程、事件,或是具有安全描述元的任何其他專案。 如需 ACL 的詳細資訊,請參閱存取控制清單 (ACL) 。
資料保護 API 資料保護 API (DPAPI) 提供下列四個函式,供您用來加密和解密敏感性資料: CryptProtectDataCryptUnprotectDataCryptProtectMemoryCryptUnprotectMemory
儲存的使用者名稱和密碼 儲存體功能,可處理使用者的密碼和其他認證,例如私密金鑰、更容易、更一致且更安全。 如需此功能的詳細資訊,請參閱 CredUIPromptForCredentials

 

所有作業系統都無法使用這些技術。 因此,可以改善安全性的程度取決於涉及哪些作業系統。 以下是每個作業系統中可用的技術。

作業系統 技術
Windows Server 2003 和 Windows XP
  • CryptoAPI
  • 存取控制清單
  • 資料保護 API
  • 儲存的使用者名稱和密碼
Windows 2000

 

下列威脅防護技術使用四種技術的一或多個技術。 無法使用需要使用作業系統中未包含的技術。

從使用者取得密碼

當您允許使用者設定密碼時,強制使用強式密碼。 例如,要求密碼長度下限,例如八個字元以上。 密碼也必須包含大寫和小寫字母、數位和其他鍵盤字元,例如貨幣符號 ($) 、驚嘆號 (!) ,或大於 (>) 。

取得密碼之後,請快速 (盡可能) 使用程式碼,然後清除密碼的所有弱點。 這可將入侵者用來「設陷」密碼的時間降到最低。 這項技術的取捨是必須從使用者擷取密碼的頻率;不過,應盡可能採用原則。 如需如何正確取得密碼的資訊,請參閱 要求使用者取得認證

避免提供「記住我的密碼」使用者介面選項。 使用者通常會要求使用此選項。 如果您必須提供密碼,則至少請確定密碼會以安全的方式儲存。 如需詳細資訊,請參閱本主題稍後的一節。

限制密碼輸入嘗試。 在未成功嘗試的特定次數之後,請鎖定使用者一段特定時間。 您可以選擇性地延長每次嘗試的回應時間超過最大值。 這項技術的目標是要破壞猜測攻擊。

儲存密碼

絕對不要將密碼儲存在純文字 (未加密) 。 加密密碼會大幅增加其安全性。 如需儲存加密密碼的相關資訊,請參閱 CryptProtectData。 如需加密記憶體中密碼的相關資訊,請參閱 CryptProtectMemory。 Microsoft Store密碼盡可能少的地方。 儲存密碼越多,入侵者可能會發現密碼的機會就越大。 絕對不要將密碼儲存在網頁或網頁型檔案中。 將密碼儲存在網頁或網頁型檔案中,可讓他們輕鬆地遭到入侵。

加密密碼並加以儲存之後,請使用安全 ACL 來限制檔案的存取。 或者,您可以在卸載式裝置上儲存密碼和加密金鑰。 將密碼和加密金鑰儲存在抽取式媒體上,例如智慧卡,有助於建立更安全的系統。 擷取指定會話的密碼之後,即可移除卡片,進而移除入侵者可以存取它的可能性。