
我有一個 Web 應用程序,其安全性要求高於普通 Web 應用程式。當任何使用者存取網域名稱時,他們都會看到兩個文字欄位:一個使用者名字段和一個密碼欄位。如果他們輸入有效的使用者/密碼,他們就可以存取 Web 應用程式。標準的東西。
但是,我正在尋找超出此標準設定的額外安全性。理想情況下,這將是一種軟體解決方案,但我也願意接受硬體解決方案(硬體=密鑰卡),甚至是程式更改(例如,一次在密碼鍵盤上使用密碼)。
這個網頁應用程式的獨特之處在於我們提前了解所有用戶,我們創建他們的用戶名和密碼並將其提供給他們。從這個意義上說,我們可以放心,使用者名稱和密碼是「強」的。
然而,我們的客戶要求除此之外的額外安全性。有人對如何增加安全性的另一層複雜性有任何想法嗎?
答案1
基於 Dan 所說,您不會透過增加複雜性來獲得任何額外的安全性。您需要額外因素的認證。查看雙重身份驗證取得各種解決方案的清單以及實踐的一般描述。身份驗證分為 3 個主要類別:
- 有東西(鑰匙圈、智慧卡、手機)
- 知道一些東西(密碼、數位憑證(只是一個很長的密碼!))
- 成為某人(指紋、視網膜印刷)
普遍的共識是你至少需要二前者有可靠的安全性。重複是沒有用的(兩個密碼並不比一個好。兩個密鑰卡也不比一個好)。您可以透過網路釣魚取得密碼,但滾動數位金鑰卡限制了可用性。你可以擊暈某人並竊取指紋(好萊塢電影),但你無法獲得他們的密碼。
請注意,鑰匙圈不必是用戶鑰匙圈上的另一個設備,只需與電腦分開的單獨設備,並且密碼位於絕不儲存。智慧型手機通常符合這個要求,如果您可以開發在用戶智慧型手機上運行的應用程序,您也許可以降低一些成本。這取決於公司需要多大的部署。
也,為了愛你所崇拜的神祇不強制規定最大密碼長度。
答案2
由於如今手機在大多數可以上網的地方都很普及,
因此使用手機作為第二點的雙重認證機制是很有意義的。
在某些情況下,電話無法接通或您不希望客戶等待移動第二因素序列的時間延遲。
這是一個可能已經獲得專利和/或廣泛使用的技巧:-)
我記得在技術演示中看到一個方案,該方案使用提前發送給客戶的一次性代碼。當他們使用可用的郵件時,新的郵件就會發送到他們的手機上——當這次發送發生時,前一個郵件就會過期。這是一個非常簡單又有趣的計劃。
重要的是要知道,兩因素或多因素身份驗證不會降低用戶學會更好地保護的好密碼的重要性。
順便說一句,我聽說有人放錯了他們的硬體鑰匙扣,這些鑰匙扣勾掉了8 位身份驗證序列,而他們卻將現在不那麼重要的密碼留在了公開的地方(或放在錢包裡)。因此,有了第二個因素,人們有時可能會感到虛假的安全感,因為他們認為自己已經把眾所周知的雞蛋放在了不同的籃子裡。
答案3
除了硬體之外,大多數額外的安全措施只是告訴用戶有 2 個密碼而不是 1 個。還有其他用於其他目的的特定安全措施。就像我的銀行一樣,我首先輸入我的用戶名,然後彈出我選擇的圖片,「證明」我位於正確的網站。但這很容易被非法網站從合法網站檢索我的圖片所擊敗。
最終,我認為從軟體方面來說,沒有什麼比強制使用更強的密碼更好的方法來增加安全性(除了正常的程序,例如從不儲存明文密碼、使用 https 等)。
也就是說,您可以採取許多措施來增強安全性。就像一些銀行所做的那樣,將您的答案設定為安全問題並輸入密碼。有幾種方法可以使用軟體(例如 IP 過濾)來添加真正的安全性,但這對於大多數 Web 應用程式來說並不實用。
正如您所說,有多種硬體解決方案,例如金鑰卡。如果您想添加真正的額外安全層,我相信這是您的最佳選擇。
答案4
我發現電話因素不久前,但它只能用於有限幾個國家的客戶。