我的大學有一個門戶網站供學生註冊課程。如果你想進入一個完整的課堂,你必須不斷檢查門戶網站,並在課堂開放時註冊。可以安全地存儲其他網站的密碼嗎?
我寫了一個工具,它可以檢查口和自動註冊,但它需要的學生的大學用戶名和密碼。這些密碼與電子郵件帳戶,網絡共享,服務器登錄和大多數其他大學服務相關聯。
有什麼辦法可以安全地做到這一點?
我的大學有一個門戶網站供學生註冊課程。如果你想進入一個完整的課堂,你必須不斷檢查門戶網站,並在課堂開放時註冊。可以安全地存儲其他網站的密碼嗎?
我寫了一個工具,它可以檢查口和自動註冊,但它需要的學生的大學用戶名和密碼。這些密碼與電子郵件帳戶,網絡共享,服務器登錄和大多數其他大學服務相關聯。
有什麼辦法可以安全地做到這一點?
不幸的是,這是不是真的有可能 - 至少不是你想要做的方式 - 除非該大學提供了一個基於密鑰的驗證API。你總是可以很好地問他們,但他們可能太忙而無法提供幫助。如果您爲用戶提供充分的信息披露並保證服務器的安全,那就足夠了。
其實,有做它通過網絡不存儲密碼的一種方式 - 您可以使用Java或Flash應用程序。不幸的是,您的用戶需要在應用程序完成工作時將瀏覽器保持打開狀態,但這樣您就不需要存儲信息。
當您存儲它們,然後對它們進行解密,當你需要嘗試登錄。簡單地生成一個對稱密鑰,並用它來加密和解密密碼的存儲和檢索(分別)你可以加密的口令字符串。
你在哪裏存儲密鑰? – 2009-10-09 21:45:55
我可以,但解密代碼不會與加密密碼一起坐在我的服務器上嗎? – ABentSpoon 2009-10-09 21:46:15
@ABentSpoon:Martin聲稱存儲加密密碼(以及加密密鑰)不僅僅比存儲密碼更安全 - 他是對的。是的,你不能「隱藏」你的解密代碼 - 算法是很好理解的。 – 2009-10-09 22:15:41
您不能存儲它們完全安全的,因爲你需要能夠進行加密和解密,從而單向散列算法,如MD5,SHA-1,SHA-2是不夠的。你可以看看諸如DES或Triple-DES加密之類的東西。
那麼你在哪裏存儲DES或Triple-DES的對稱密鑰? – 2009-10-09 21:50:24
好問題。這就是爲什麼我說這不是完全安全。 – 2009-10-09 21:55:55
我想說,用另一個密碼加密密碼根本不能提高安全性。 – 2009-10-09 21:58:49
在安全性方面,最重要的是「threat model」。你害怕什麼樣的攻擊?
等
將加密密鑰存儲在內存中聽起來像是個不錯的主意。我不確定它會提供多少額外的安全性,但它至少會讓攻擊者絆倒一段時間,或許足夠長的時間來檢測攻擊並停止服務。 – ABentSpoon 2009-10-09 22:14:47
如果您需要重新啓動服務,那麼您將無法解密密碼。這是我看到的最大的問題,而不是缺乏安全性。 – 2009-10-09 22:53:11
我不認爲有。正如馬丁指出的一種加密方式不會爲你做。此外,這將爲您創建一個維護噩夢 - 每次用戶更改密碼時,您都必須更新數據。
我認爲要使它真正起作用,你必須改變設計:找到一種方法來在沒有用戶密碼的情況下進行註冊,即與應用程序的所有者通話,如果他們會給你一個帳戶,通過它你可以做代表其他人註冊
我想我甚至可以讓他們下載一個可以在後臺運行的客戶端。 我認爲完全披露和一般安全是要走的路。它將在我的slicehost帳戶上運行,我認爲它應該相對安全。 – ABentSpoon 2009-10-09 22:07:43