注意安全方面的考慮:雖然我提到H2,這可以適用於任何DBMS,與H2
,使您可以存儲在一個文件中的整個數據庫; 和
使其源代碼公開可用。
我的關注:
是否有可能通過執行類似下面打入加密H2數據庫?
在某個表中存儲一個非常大的,歸零的BLOB,大小爲幾個100 KB。
檢查新的H2數據庫文件二進制文件,並在頁面/塊邊界附近查找重複模式。頁面/塊大小可以從H2源代碼獲得。如此獲得的重複模式將是用於加密H2數據庫的密碼密鑰。
一旦密鑰暴露出來,黑客只需要足夠的專注,然後進一步深入H2源並找出其表,列和行的確切結構。換句話說,從這一點來看,所有東西都是暴露出來的。
我沒有親自研究H2的源代碼,我也不是一個密碼學專家,但在這裏就是爲什麼我認爲上面的 - 或者沿着上面的紋路一些黑客 - 可能的工作:
由於性能方面的原因,所有DBMS都以塊(512或8 KB大小的頁面或塊)讀取/寫入數據,H2也是如此。
由於數百KB大小的BLOB將遠遠超過DBMS的頁面/塊大小,因此可以預期加密圖形密鑰(使用用戶密碼在內部生成)以重複模式顯示尺寸小於頁面/塊大小。
暴露所描述行爲的任何密碼都被設計破壞了。 –