處理密碼
目前,使用者名稱和密碼認證是用於驗證的最常見認證。 雖然其他類型的認證,例如憑證和生物特徵辨識技術,開始進入系統和網路的世界,但它們通常由密碼備份。 而且,即使使用憑證,其加密密鑰也必須受到保護。 因此,在可預見的未來,使用者名稱和密碼將繼續用於認證。
假設密碼和加密金鑰大約會持續一段時間,因此軟體系統必須以安全的方式使用這些密碼。 如果網路或計算機系統要保持安全,密碼必須受到保護,以免受到入侵者的保護。 這一開始似乎微不足道。 不過,因為攻擊者能夠嗅出用戶的密碼,一個又一個系統和網路因此遭到入侵。 問題範圍從使用者與某人共用其密碼,到攻擊者可滲透的軟體。
不可能以完全安全的方式將秘密資訊儲存在軟體中。 而且,由於將密碼和加密密鑰儲存在軟體系統中永遠無法完全安全,因此建議不要將它們儲存在軟體系統中。
不過,當密碼必須儲存在軟體系統中時,通常是這種情況,可以採取預防措施。 主要預防措施是讓入侵者儘可能難以探索密碼。 就像鎖住你的房子門一樣,如果有人決心闖入,幾乎不可能阻止他們這樣做。 但希望,你會提高足夠的難度水準,讓入侵者寧願找到更容易的獵物。
有許多方法可讓攻擊者更難探索密碼。 不過,實際可行的程度通常需要在網路或系統用戶願意接受的程度之間進行取捨。 例如,假設未使用「單一登錄」,且每次啟動應用程式時都會提示使用者輸入密碼。 在大部分情況下,這會給用戶帶來沉重的負擔,他們可能會抱怨。 不僅如此,而且缺乏單一登錄效率低下,而且會降低用戶的生產力。 因此,實際上,密碼通常不會從使用者收集,但登入時除外。
假設密碼通常必須儲存在軟體系統上,請務必確保盡可能保護密碼,並維護使用者的便利性。 如需詳細資訊,請參閱下列主題:
注意
當您完成在應用程式中使用密碼時,請呼叫 SecureZeroMemory 函式,從記憶體清除機密資訊。