PostgreSQL 加密選項

2021-08-31 10:51 更新

PostgreSQL提供了幾個不同級別的加密, 并且在保護數(shù)據(jù)不會因為數(shù)據(jù)庫服務(wù)器偷竊、不道德的管理員、不安全網(wǎng)絡(luò)等因素而泄漏方面 提供很高的靈活性。加密可能也是保護一些諸如醫(yī)療記錄或財務(wù)交易等敏感數(shù)據(jù)所要求的。

口令加密

數(shù)據(jù)庫用戶的口令都是以哈希(取決于password_encryption配置)的方式存儲, 所以管理員不能限定實際的口令賦予用戶。如果 SCRAM 或者 MD5 加密算法被用于客戶端認(rèn)證, 那么未加密的口令甚至都不可能出現(xiàn)在服務(wù)器上,因為客戶端在通過網(wǎng)絡(luò)發(fā)送口令之前,就已經(jīng)加密過。推薦使用SCRAM,因為它是互聯(lián)網(wǎng)標(biāo)準(zhǔn)而且相比于PostgreSQL特定的MD5認(rèn)證協(xié)議更安全。

指定列加密

pgcrypto模塊允許對特定域進行加密存儲。這個功能只對某些敏感數(shù)據(jù)有用。 客戶端提供解密的密鑰,然后數(shù)據(jù)在服務(wù)器端解密并發(fā)送給客戶端。

在數(shù)據(jù)被解密和在服務(wù)器與客戶端之間傳遞時,解密數(shù)據(jù)和解密密鑰將會在服務(wù)器端存在短暫的一段時間。 這就給那些能完全訪問數(shù)據(jù)庫服務(wù)器的人提供了一個短暫的截獲密鑰和數(shù)據(jù)的時間,例如系統(tǒng)管理員。

數(shù)據(jù)分區(qū)加密

存儲加密可以在文件系統(tǒng)層面或者塊層面上執(zhí)行。Linux 文件系統(tǒng)加密 選項包括 eCryptfs 和 EncFS,而 FreeBSD 使用 PEFS??鞂用婊蛘呷?盤加密選項包括 Linux 上的 dm-crypt + LUKS 以及 FreeBSD 上的 GEOM 模塊 geli 及 gbde。很多其他操作系統(tǒng)也支持這個功能,包括 Windows。

這個機制避免了在整個計算機或者驅(qū)動器被盜的情況下, 未加密的數(shù)據(jù)被從驅(qū)動器中讀取。它無法防止在文件系統(tǒng)被掛 載時的攻擊,因為在掛載之后,操作系統(tǒng)提供數(shù)據(jù)的解密視圖。不過,要想掛載該文件系統(tǒng),你需要有一些方法把加密密鑰傳遞給操作 系統(tǒng),并且有時候這個密鑰就存儲在掛載該磁盤的主機上的某處。

跨網(wǎng)絡(luò)加密數(shù)據(jù)

SSL 連接加密所有跨網(wǎng)絡(luò)發(fā)送的數(shù)據(jù):口令、查詢以及返回的數(shù)據(jù)。pg_hba.conf文件允許管理員指定哪些主機可以使用 非加密連接(host),以及哪些主機需要使用 SSL 加密的連接(hostssl)。 客戶端還可以指定它們只通過 SSL 連接到服務(wù)器。

GSSAPI 加密的連接加密通過網(wǎng)絡(luò)發(fā)送的所有數(shù)據(jù),包括查詢和返回的數(shù)據(jù)。(不會在網(wǎng)絡(luò)中發(fā)送密碼。) pg_hba.conf 文件允許管理員指定哪些主機可以使用非加密連接 (host) 和哪些主機需要 GSSAPI-加密連接(hostgssenc。 此外,客戶端還可以指定它們僅在GSSAPI-加密的連接上來連接服務(wù)器( gssencmode=require)。

StunnelSSH 也能夠被用于加密傳輸。

SSL 主機認(rèn)證

客戶端和主機都可以提供 SSL 證書給對方。這在兩邊都需要一些額外的配置, 但是這種方式提供了比僅使用口令更強的身份驗證。 它避免一個計算機偽裝成服務(wù)器,這個時長只要足夠讀取客戶端發(fā)送的口令就行了。它還避免了 中間人攻擊,在其中有一臺計算機處于客戶端和服務(wù)器之間并偽裝成服務(wù)器讀取和傳遞兩者之間的所有數(shù)據(jù)。

客戶端加密

如果服務(wù)器所在機器的系統(tǒng)管理員是不可信的,那么客戶端加密數(shù)據(jù)也是必要的。在這種情況下,未加密的數(shù)據(jù)從來不會在數(shù)據(jù)庫服務(wù)器上出現(xiàn)。數(shù)據(jù)在發(fā)送給服務(wù)器之前加密,而數(shù)據(jù)庫結(jié)果在能使用之前必須在客戶端上解密。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號