2009-03-02 43 views
3

這是所有你那裏的安全專家。有人可能如何破解SQL Server 2005加密堆棧?

我有一個數據庫主密鑰,這與使用服務器的關鍵,而這又是使用Windows數據保護層的服務帳戶憑據加密一個非常強大的口令加密的SQL Server 2005數據庫。

我有一個使用數據庫主密鑰加密的證書。

我有使用AES256對稱密鑰它是使用證書加密,而我使用對稱密鑰來加密和數據庫解密機密領域。

有人需要破解數據庫中的加密字段是什麼?我唯一的假設是,由於對稱加密算法的強度,蠻力無法使用,並且對稱密鑰本身受到4個附加層加密的保護:

Windows DPAPI - >服務器 - >數據庫 - >證書 - >對稱密鑰

這對我來說似乎很緊張。

讓我們不要有明顯的答案,這肯定是有關「通過下藥和他一起睡獲得系統管理員的用戶名和密碼」,但不是我後。

回答

3

這是潛在的攻擊。它假定您已經有一種方法來運行任意代碼作爲服務帳戶。例如,您可能會執行遠程代碼執行錯誤。這樣做後,使用DPAPI獲取服務器密鑰相對比較簡單。完成之後,您可以獲取主數據庫密鑰,但您需要一些暴力破解方法來破解密碼。

這聽起來好像很難做到,這取決於密碼的強弱可能是不可能的。服務帳戶是低權限還是高權限?如果它是一個管理員帳戶,你可以使用它(假設它已被破壞)來安裝鍵盤記錄程序來獲取密碼。

0

在內存中的某個地方,這個未加密的密鑰被存儲爲可以對其進行加密,攻擊者是否有辦法獲得對SYSTEM級別的訪問權限,從而能夠基本上掃描內存,或者附加一個額外的線程MSSQL。

另外,這些加密字段,都在任何前端應用中使用?當你SELECT * FROM table?例如,您可以根據需要爲數據庫和字段提供儘可能多的安全性,但如果某人能夠使用SQL注入來編寫自己的SQL查詢並查看字段的值,那麼您仍然可以回到原來的位置。

+0

已將SQL注入作爲攻擊媒介消除,加密字段從不顯示,並使用單獨的API和安全上下文進行提取/存儲。 – Sam 2009-03-02 05:18:28

0

假設沒有人類工程攻擊是可能我會嘗試調試器附着在該程序閱讀它,獲取它的內存快照,並嘗試在蠻力攻擊每一個字節集。

即使我無法獲得內存映像我會嘗試在情況下,源文件中的關鍵是在出現了同樣的事情。

實際上,你要保證永遠不會出現在任何地方完好無損擊敗此類攻擊的關鍵。

+0

是的,如果有人損害了我們的Web服務器進程,那麼他們可以從調試器獲取內存轉儲中的解密數據 - 那麼如果有人可以從遠程位置執行此操作,那麼人們該如何做? – Sam 2009-03-02 05:27:10

+0

運行遠程調試程序需要您希望調試的服務器的權限,您需要安裝或運行內核或應用程序調試程序存根並允許權限。您可能還需要放鬆防火牆權限。 – 2009-03-02 06:11:28

+0

謝謝,我會研究一下 - 確保遠程調試是不可能的(至少在正常的權限/防火牆訪問的情況下) – Sam 2009-03-02 23:48:09

2