2014-02-27 50 views
2

我有一個ASP.Net Web API(v2),要求對所有對它進行的調用都使用SSL,沒有例外。沒有登錄系統,而是我打算向用戶提供一個密鑰密鑰,以識別它們。所有基於未來的請求都將包括這個密鑰密鑰作爲識別和驗證該用戶是誰的方式。單獨使用SSL和密鑰代碼是否足以保證Web API的安全?

我的問題是SSL是否足以保證安全?假設永遠不會有包含密鑰的不安全連接,我是否需要通過其他長度來加密或保護它?我已經閱讀了對稱,非對稱和散列方法,但是如果SSL始終存在,似乎這隻會是多餘的。

這似乎太簡單了,我錯過了什麼?

其他一些筆記,密鑰鍵碼不是用戶手動輸入的。它可以存儲在系統應用程序中(加密的),也可以被其他公司的API與我們聯繫。

+0

這不是祕密,如果你提供它。這只是一個祕密,如果他們*提供它。聽起來你應該使用SSL進行雙向認證。 – EJP

+0

好點,我看到我的術語就在那裏。這將是更多的關鍵代碼。 –

+0

由於系統應用程序有可能爲各種最終用戶安裝大量的安裝程序,我不認爲相互的SSL可行嗎?既然它需要雙方的證書? –

回答

1

我想這取決於你的意思是「安全」 - 安全運輸?使用SSL,您可以獲得從應用到服務器的安全通道以及服務器的身份驗證。如果你已經在任何地方使用SSL,我建議的唯一附加保護就是證書鎖定,它可以防止流氓CA(更多信息和代碼示例:https://www.owasp.org/index.php/Certificate_and_Public_Key_Pinning)。此外,請確保服務器上的SSL堆棧符合規範並禁用弱/易受攻擊的密碼。我認爲如果用戶沒有輸入任何內容進行身份驗證,那麼對密鑰代碼(加密,簽名)做更多的事情會給你帶來很大的幫助。

我會更關心你在應用程序中存儲鍵碼的位置,以及用戶如何配置它。

相關問題