Sql-Server
使用儲存過程/視圖進行加密/解密
我正在開發一個使用實體框架供程序員訪問數據的項目。我們最近發現需要添加已確定需要加密的欄位。這將是第一個需要加密的欄位。
我們計劃使用對稱密鑰對該特定欄位進行單元級加密。為了讓開發人員繼續使用實體框架,我想創建一個儲存過程來處理該表的插入,這將加密所需的單元格,以及一個用於打開密鑰和解密欄位的視圖。
我計劃加密儲存過程和視圖,以便通過查看定義看不到元數據。
這是一個合理的計劃嗎?我忽略了什麼嗎?
請注意,SQL Server 中的模組加密並不是真正的加密;它更像是弱混淆。任何擁有搜尋引擎和幾分鐘殺戮的人都可以對您的對象進行逆向工程,因此加密它們幾乎完全沒有意義。
DENY VIEW DEFINITION
在這裡更有效(以及不給您的開發人員sysadmin
和其他權限提升)。至於數據,SQL Server 2016 將始終加密(在此處閱讀),如果您可以等待,它可能會使您的很多工作變得更容易。一大優點是應用程序可以通過已經加密的提供程序發送數據,因此無法通過跟踪或其他中間人攻擊來嗅探。但也要注意限制: