2014-05-04 60 views
1

我正在做一個應用程序體系結構,該體系結構將在公共雲服務提供商(CSP)上運行,我需要加密'靜態數據'(*注意它不是AWS)。加密「靜態數據」公共雲

我一直在尋找與問候DB加密的最佳實踐的建議,應用程序使用PHP前端和SQL Server數據庫(它是一個商業產品,所以不要下井PHP/MSSQL的應用基礎架構,我無權過問在這一點;))

我們將使用Microsoft SQL Server 2012(標準版),我想知道什麼是解決這個(很明顯,增加的加密佔性能影響太)的最佳方式:

1 。)使用OOTB數據庫加密來加密整個數據庫(或表等),我從來沒有使用SQL Server加密,所以不太熟悉它?

2.)使用來自Web /應用程序層的AES,RSA,SHA-25等強加密方法(算法)對數據庫中的每個行級記錄進行加密(基於用戶請求進行加密/解密「 CRUD」)?

3.)同時使用1個& 2?

4.)我錯過的其他東西?

我們的要求是隻加密個人身份信息(PII),所以只有少數表列需要加密。

感謝

乾杯

回答

1

簡單的回答
雙方確保完整性(標誌,HMAC等)和保密性(加密)保護PII。我不知道你的架構詳細,所以我會假設不對稱在這裏不會購買任何東西(更多關於下面的內容)。使用諸如AES 128/256 GCM之類的東西,或者添加一個HMAC以及諸如AES-CBC之類的東西。確保生成一個隨機的IV,所有常用的東西。

只保護需要保護的內容(爲什麼會導致性能下降以保護無關緊要的數據)。


我假設你想在傳輸過程中的數據是安全的(消息級別的保護,和/或TLS/SSL等得到它那裏)和你真正的重點是數據在休息。

密鑰管理
無論是對稱密鑰或不對稱的私有密鑰,您需要正確地管理它。那個超級密鑰材料不應該暴露在任何地方,但它真正需要的地方。真的花一些時間跟蹤數據和關鍵材料,看看它是否有意義。考慮威脅建模。

+0

嘿@capybaras謝謝你,很好的高層次概述。你的假設在運輸中的數據是正確的。所以,如果我錯了,請糾正我,你是否說我應該選擇第2項,即使用上述建議僅對PII數據進行加密。你有什麼指針/鏈接到博客/白皮書等,我可以閱讀更多關於此?同意密鑰管理也是至關重要的,在這方面需要遵循一些最佳實踐。歡呼聲 – user728584

+0

正確。以下是關於AES-GCM的更多信息: http://x86overflow.blogspot.com/2013/01/authenticated-encryption-using-aes-gcm。html – capybaras

+0

謝謝,哇,深:)我認爲主要的編程語言有SDK支持AES-GCM開箱即用等。我的例子中的PHP?我有一個快速的谷歌,並沒有找到太多關於在編程級別的實施。 (我不是一個PHP的人,所以也許看錯了地方)。我正在尋求PII數據的完整性和機密性,並且實施複雜度最低。感謝您的幫助,非常感謝... – user728584