2014-09-29 47 views
3

其他一些答案(例如:How to encrypt data in SQL Azure?)表明SQL Server的正常數據加密機制(透明數據加密,非對稱密鑰,對稱密鑰等)在Azure SQL中不受支持,因此,必須使用高級方法。如何在ASP.NET中使用Azure SQL進行應用程序級數據加密?

我們唯一的要求是,一些數據不應該以純文本格式存儲,但應該在數據庫中加密(當然,攻擊者應該很難解密)。什麼是最好的方式來做到這一點?應該使用哪種加密方案?我搜索了很多,但找不到明確的答案。

應該使用對稱還是非對稱加密方法?我們應該如何存儲加密和解密數據所需的密鑰?

+0

雖然一個很好的問題,值得其注意力,它主要是基於意見,因此不適合StackOverflow。 – astaykov 2014-09-29 20:00:29

+0

@MarkVincze你最終選擇了哪條路線? – karol 2015-06-09 19:51:03

+0

@karol我們只需要對少數列進行加密,所以我們最終使用對稱加密算法在C#代碼中手動加密它們。在數據類上,我們創建了一些屬性,在其getter和setter中進行加密/解密。 (在數據庫表中,我們使用varbinary作爲這些列的數據類型。) – 2015-06-10 06:15:45

回答

1

確定 - 因此,雖然這個答案的某些部分,可以被解釋爲意見 - 有一定的東西具體的可以到這個出資...

[FWIW:我們目前正在經歷這個過程 - 所以我有人走了這條路的一部分]

對於你的兩個問題,我會建議閱讀Jericho Forum Commandments on de-perimeterisation and cloud computing。另外,Information Commissioner's Office guilelines on Cloud Computing通常是指示性的(是的,我來自英國)。

因此,您需要確保應用程序級別的加密機制(即證書)不與數據或應用程序(即嵌入式資源)保持一致。將數據存儲在密鑰中(即使在Azure BlobStorage中)也是將鑰匙粘貼到實際門上的親屬。您可以使用其他雲服務文件存儲或使用現成的解決方案,如Entrust(免責聲明:我不爲他們工作,還有其他人)。真正的目標是,如果你的數據被包含在內,你就可以控制解密機制,從而控制數據。

的對稱或非對稱加密的選擇是選擇之一 - 但對於證書過期是一大優勢是我眼裏的能力...

+1

感謝您的信息!你能確切地說出你最終使用哪種加密方法嗎? – 2014-10-06 11:17:26

相關問題