威脅防護技術
有一些威脅防護技術可供您使用,以更妥善地保護密碼。 這些技術是使用下列四種主要技術的一或多個來實作。
科技 | 描述 |
---|---|
CryptoAPI | CryptoAPI 提供一組函式,可協助您將密碼編譯例程套用至目標實體。 CryptoAPI 可以提供哈希、摘要、加密和解密,以提及其主要功能。 CryptoAPI 也有其他功能。 若要瞭解密碼編譯和 CryptoAPI,請參閱 密碼編譯基本。 |
訪問控制清單 | 存取控制清單 (ACL) 是套用至物件的安全性保護清單。 物件可以是檔案、進程、事件,或具有安全性描述元的任何其他專案。 如需 ACL 的詳細資訊,請參閱 訪問控制清單 (ACL)。 |
數據保護 API | 資料保護 API (DPAPI) 提供下列四個用來加密和解密敏感數據的函式:CryptProtectData、CryptUnprotectData、CryptProtectMemory,以及 CryptUnprotectMemory。 |
儲存的使用者名稱和密碼 | 可讓處理使用者密碼和其他認證的記憶體功能,例如私鑰、更容易、更一致且更安全。 如需此功能的詳細資訊,請參閱 CredUIPromptForCredentials。 |
並非所有作系統都可使用這些技術。 因此,安全性的改善程度取決於涉及哪些作系統。 以下是每個作系統中可用的技術。
操作系統 | 科技 |
---|---|
Windows Server 2003 和 Windows XP |
|
Windows 2000 |
|
下列威脅防護技術使用四種技術的一或多個技術。 無法使用需要使用作系統中未包含之技術的技術。
從使用者取得密碼
當您允許使用者設定密碼時,強制使用強密碼。 例如,要求密碼長度下限,例如八個字元以上。 密碼也必須包含大寫和小寫字母、數位和其他鍵盤字元,例如貨幣符號($)、驚嘆號(!),或大於 (>)。
取得密碼之後,請快速使用它(盡可能少使用程式代碼),然後清除密碼的所有遺存專案。 這會將入侵者用來「設陷」密碼的時間降到最低。 使用這項技術的取捨是必須從使用者擷取密碼的頻率;不過,應盡可能採用該原則。 如需如何正確取得密碼的詳細資訊,請參閱 詢問使用者認證。
避免提供「記住我的密碼」使用者介面選項。 使用者通常會要求擁有此選項。 如果您必須提供密碼,請至少確定密碼會以安全的方式儲存。 如需詳細資訊,請參閱本主題稍後的一節。
限制密碼輸入嘗試。 在一定數目的嘗試未成功之後,請鎖定使用者一段特定時間。 選擇性地延長每次嘗試的回應時間上限。 這項技術旨在打敗猜測攻擊。
儲存密碼
永遠不要以純文本儲存密碼(未加密)。 加密密碼會大幅增加其安全性。 如需儲存加密密碼的相關信息,請參閱 CryptProtectData。 如需加密記憶體中密碼的資訊,請參閱 cryptProtectMemory。 盡可能少地儲存密碼。 儲存密碼的位置越多,入侵者可能會發現密碼的機會就越大。 請勿將密碼儲存在網頁或網頁型檔案中。 將密碼儲存在網頁或網頁型檔案中,可讓他們輕鬆遭到入侵。
加密密碼並儲存密碼之後,請使用安全的 ACL 來限制檔案的存取權。 或者,您可以將密碼和加密金鑰儲存在抽取式裝置上。 將密碼和加密金鑰儲存在抽取式媒體上,例如智慧卡,有助於建立更安全的系統。 擷取指定工作階段的密碼之後,就可以移除卡片,從而移除入侵者可以存取它的可能性。