.Net服務器應用程序是否存在與存儲和檢索敏感的每用戶信息(如第三方憑證)相關的參考模式?.Net存儲和檢索敏感的每用戶數據的設計模式
我的初步設計思路是沿着線:
- 生成具有適當的堅固私鑰的自簽名X509證書,
- 導出證書和密鑰,並將它們存儲在這將是一個USB密鑰鎖定在一個寶箱和龍把守,
- 設計我的服務器應用程序請求從窗戶當前用戶證書存儲需求的私鑰,
- 當一個新的服務器上安裝服務器應用程序檢索USB密鑰並導入證書,並將私鑰標記爲不可導出。
我的要求是:
- 降低風險,儘可能的用戶的敏感信息,如果該存儲介質被破壞越來越受到損害。在我的情況下,存儲介質可能是關係數據庫或亞馬遜的SimpleDB,如果.Net服務器的主機操作系統(本例中爲Window's Data Center Edition)受到危害,則可降低用戶敏感信息受到攻擊的風險。
更新 3.忘記提到能夠重新鍵入定期是一個要求,使得同一prviate加密密鑰不使用10年。
問題:
- 如果主機操作系統被攻破,攻擊者可以安裝惡意應用程序來執行相同的解密操作爲我的.NET服務器。
更新 關於OS妥協思考一些我意識到沒有什麼是可以的,如果一個熟練的攻擊者能夠訪問來完成,但關鍵應避免不滿者管理員,也就是說,它比開放的問題更加一個文件或註冊表項來提取私鑰。
我敢肯定,這個問題已經解決了上千次,比一個鏈接的答案更令人高興,但是在「安全加密」類型的主題上搜索是低信號高噪聲。