我們有一個(多操作系統)應用程序,它使用libcurl與https服務器進行通信並使用SSL客戶端認證。當客戶端認證受密碼保護時,應用程序必須要求用戶輸入密碼。應用程序向服務器發送數百個不同的https請求,因此每次創建新連接時我們都不會要求用戶輸入密碼。現在我們只需提示用戶在應用程序啓動時輸入一次密碼,然後通過「CURLOPT_KEYPASSWD」選項將密碼設置爲curllib。但是我擔心惡意用戶很容易侵入正在運行的進程並讀取客戶端認證密碼。無論如何,我可以緩存客戶端認證密碼,並防止從內存中輕鬆讀取密碼?如何使用libcurl在客戶端應用程序中緩存SSL客戶端證書密碼
2
A
回答
3
在現實生活中,你不應該擔心太多。如果您擔心這種攻擊,可以查看智能卡中基於硬件的密鑰和證書。
一些建議,以爭取交換和冷啓動攻擊:
- 鎖定持有密碼的記憶,不要讓它被換出(m鎖+的mprotect和POSIX,Windows還具有類似功能)
- 可能會加密保存密碼的內存,並且只能在使用密碼時對其解密。
在現實生活中,如果您的機器是擁有的,以至於有人可能侵入他/她不應該訪問的進程 - 您已經妥協了,並不想讓它變得模糊。
如果您認爲您控制了緩存 - 再想一想 - 在某些情況下,您永遠無法知道捲曲例如是否使用密碼複製並泄漏內存。
如果您認真對待SSL和安全性,請使用硬件令牌或智能卡。否則,希望一旦主機遭到入侵,您的軟件和通過該主機運行的任何訪問代碼都會受到威脅。
相關問題
- 1. 如何使用ldap_sasl_bind_s()與SSL,DN,密碼(無客戶端證書)
- 2. 客戶端的SSL證書
- 3. 使用Zend_Http_Client的客戶端SSL證書
- 4. SSL證書客戶端驗證 - 如何?
- 5. 在一個應用程序池中將SSL與客戶端證書混合並且沒有客戶端證書
- 6. 如何使用Mozilla的CA證書的SSL客戶端證書
- 7. 如何使用HTTP客戶端傳遞客戶端證書?
- 8. 如何使用AutoRest客戶端傳遞客戶端證書
- 9. 在公共Web應用程序中使用客戶端證書代替密碼
- 10. 如何使用Ssl Stream獲取/存儲客戶端證書?
- 11. https客戶端與cpp-netlib使用客戶端證書和密碼獲取
- 12. Tomcat作爲一個客戶端。在Tomcat Web應用程序不使用SSL客戶端證書
- 13. 在Enterprise iOS應用程序中使用.mobileconfig的客戶端SSL證書
- 14. SSL客戶端證書認證
- 15. SSL客戶端證書驗證優化
- 16. 如何使用boost :: asio SSL驗證客戶端證書?
- 17. 客戶端證書
- 18. 客戶端證書
- 19. Apigee客戶端應用程序客戶端身份驗證
- 20. 如何在Apache HttpClient上使用SSL客戶端證書?
- 21. 如何在SSL客戶端證書上使用frisby.js?
- 22. 如何從iPhone應用程序中刪除客戶端證書?
- 23. 將密碼存儲在客戶端應用程序中C
- 24. SSL證書:否客戶端證書密鑰傳出
- 25. 使用RavenDB客戶端API發送客戶端證書
- 26. 如何在iOS應用程序中使用客戶端證書身份驗證
- 27. 在證書存儲區中使用客戶端證書
- 28. 如何在Android中使用p12證書(客戶端證書)
- 29. Elixir SOAP(Detergentex)與客戶端SSL證書
- 30. Web服務客戶端的SSL證書