我知道存儲這樣敏感的數據是一個壞主意。但是,如果應用程序每次啓動時都會詢問密碼,那麼它會很煩人......我知道OAuth,但這同樣是一回事 - 用戶會被瀏覽器中斷(或者我錯了嗎? - 這一刻不清楚爲了我)。我知道對稱密碼術。但如何安全地在應用程序內存儲密鑰?在twitter客戶端存儲登錄/密碼
問題很簡單。 (但有兩部分:-)
1)是否可以發送登錄名/密碼對而不是純文本?
和
2)如果不是,爲什麼我應該考慮一下安全性(在我的應用程序)?
如果您發現了一個拼寫錯誤隨時告訴我這件事
我知道存儲這樣敏感的數據是一個壞主意。但是,如果應用程序每次啓動時都會詢問密碼,那麼它會很煩人......我知道OAuth,但這同樣是一回事 - 用戶會被瀏覽器中斷(或者我錯了嗎? - 這一刻不清楚爲了我)。我知道對稱密碼術。但如何安全地在應用程序內存儲密鑰?在twitter客戶端存儲登錄/密碼
問題很簡單。 (但有兩部分:-)
1)是否可以發送登錄名/密碼對而不是純文本?
和
2)如果不是,爲什麼我應該考慮一下安全性(在我的應用程序)?
如果您發現了一個拼寫錯誤隨時告訴我這件事
的密碼時,發送到Twitter,因爲它使用HTTP基本身份驗證和Twitter不
使用
需要 SSL爲他們的API是不加密的。像所有基本身份驗證一樣,用戶名和密碼都是BASE64編碼的,但幾乎沒有任何安全性。
你應該安全地存儲它的原因是,你的應用程序不應該負責泄漏一堆用戶的密碼,如果出現問題。
我強烈建議您考慮使用OAuth。這有很多原因,但並不要求你的用戶使用他們的twitter憑據來信任你。您可以像存儲用戶名和密碼一樣存儲訪問令牌和令牌密碼,以便用戶不必每次都登錄,並且不必擔心對廣泛的安全漏洞負責。缺點是使用起來比基本更難一些,但並非如此。
如果打算成爲一個只有Windows .NET應用程序,你應該看看Data Protection API(DPAPI)。它將特定的安全實現委託給Windows,而Windows則使用用戶的Windows配置文件/憑證將數據保存到磁盤。既然這是真實的,經過徹底的審查並且經常受到攻擊,那麼您可以無憂無慮地存儲信息,並專注於對您而言重要的應用程序部分。
這很容易通過ProtectedData類使用DPAPI在.NET:
ProtectedData.Protect(data, entropy, DataProtectionScope.CurrentUser);
如果你是好奇的精確執行標的證券,這是discussed at length here。
對呀!但是在與Twitter的溝通過程中密碼會被加密嗎?我的問題是「如果沒有,我需要在我身邊使用任何安全工具?」 – 2009-11-16 10:26:37
這是否意味着OAuth令牌具有很長的使用壽命,我可以將其存儲以備後用?即使從產生的那一週起(或一個月或一年),令牌也會有效? – 2009-11-16 20:14:36
一旦用戶完成了授權應用程序的授權過程,OAuth令牌永遠是理想的,除非用戶撤銷它(或者twitter會撤銷您的應用程序的Consumer密鑰)。 – 2009-11-16 20:20:01