SQL TDE 和證書處理建議
我已經看過這篇文章的資訊:但我認為它不能回答這個特定的問題/擔憂:
我有多個帶有多個數據庫的 SQL 伺服器。我們想在其中一些上使用 TDE。
我應該為所有 TDE 使用使用一個證書,還是為每個數據庫使用一個證書?或者也許是另一種方式?選擇其中一個而不是另一個的原因是什麼?
如果對所有數據庫使用一個證書,如果證書被“洩露”,那麼所有使用它的數據庫都可能是
decrypted
攻擊者?如果我們每個數據庫使用一個證書,這會給我們帶來一定程度的隔離嗎?
我只是在腦海中,如果對所有數據庫使用一個證書,如果證書被“洩露”,那麼所有使用它的數據庫都可能被攻擊者解密?
我假設(妥協的意思),當“有人可以竊取數據庫文件
.mdf and .ldf or backups
和TDE 證書以及它的私鑰,並且可以知道用於加密證書備份的**密碼”。**你認為這會發生嗎?我的問題是,我應該為所有 TDE 使用一個證書,還是為每個數據庫使用一個證書?
我不認為每個數據庫擁有多個證書可以阻止它(上述情況)。因為,一個可以竊取一個證書的人也有可能竊取多個證書。
回答(在我看來)
但是,在我看來,僅靠數據庫加密並不能完全解決安全問題,您還可以考慮以下幾點:
- 基礎設施級別:圍繞數據庫伺服器建構強大的防火牆
- 作業系統級別:避免
builtin\administrators
在數據庫伺服器等中使用多個使用者。此外,物理安全(超出技術範圍)
我相信,如果您可以按照Standard TDE Architecture實施 TDE ,那會很好,並專注於可能出現的周圍安全問題(如上所述)。
…
編輯文章:
你的密碼有多強(來源)?
要檢查您的密碼強度並了解它們是否在流行的彩虹表中,您可以在MD5 雜湊生成器上將您的密碼轉換為 MD5 雜湊,然後通過將這些雜湊送出給線上MD5 解密服務來解密您的密碼。
比如你的密碼是
0123456789A
,用暴力破解,電腦大概需要一年的時間才能破解你的密碼,但是如果你通過送出MD5雜湊C8E7279CD035B23BB9C0F1F954DFF5B3
到MD5解密網站來解密,那麼破解需要多長時間它?您可以自己進行測試。
就個人而言,我會為每個使用 TDE 加密的數據庫生成一個唯一的證書。為所有 TDE 加密數據庫擁有一個證書意味著證書的任何洩漏都將允許攻擊者輕鬆解密他們可以找到的每個數據庫。
如果您有一個每個數據庫的證書,則任何洩露的證書都只能用於解密該單個數據庫。攻擊者需要特定數據庫和該數據庫的證書。
安全是關於縱深防禦。顯然,您需要保護 TDE 加密數據庫的證書;每個數據庫擁有一個證書允許您建構一種分層的證書儲存方法。將高度敏感的數據庫的證書與不太敏感的數據庫分開儲存。
擁有每個數據庫的證書還意味著您可以根據需要更新單個證書。例如,如果您懷疑證書已被洩露,您可以為受影響的數據庫頒發新證書,使用新證書重新加密數據庫,而不必擔心所有其他數據庫。