程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 關於Symfoware的透明加密

關於Symfoware的透明加密

編輯:關於PHP編程

關於Symfoware的透明加密


關於Symfoware的透明加密

Symfoware V12基於PostgreSQL,並提供了一些功能增強,其中包括表空間級的透明加密。

概述

加密key和keystore

  1. 每個表空間的數據由各自的Key加密
  2. 表空間Key由Master Key加密
  3. Master Key整個數據庫實例只有1個,使用者通過密碼加密保存在keystore中

加密算法

采用AES算法,利用Intel Xeon內置的AES-NI(Advanced Encryption Standard New Instructions)硬件加密,可加減少加解密的資源消耗。

加密范圍

  1. 表空間內的所有文件
    數據,索引,臨時表,臨時索引。
  2. 備份數據
    pgx_dmpall和pg_basebackup命令輸出的備份的文件
  3. WAL和臨時文件(排序和Join產生的臨時文件)
  4. 流復制主備間傳送的數據

使用方法

  1. 在postgres.conf中設置keystore文件存放位置

    keystore_location = '/key/store/location' 
  2. 設置master key

    SELECT pgx_set_master_key('passphrase'); 

    這個函數會生成master key,並通過passphrase加密存儲到keystore_location設定目錄的keystore.ks中。passphrase即keystore的密碼。

  3. 打開keystore

    SELECT pgx_open_keystore('passphrase'); 

    每次啟動數據庫後,需要打開keystore,把master key加載到內存。這裡的passphrase是前面傳入pgxsetmaster_key()的密碼。

  4. 表空間的加密

    設置以後創建的表空間自動數據加密

    SET tablespace_encryption_algorithm = 'AES256';CREATE TABLESPACE secure_tablespace LOCATION '/My/Data/Dir'; 

    設置以後創建的表空間不使用加密

    SET tablespace_encryption_algorithm = 'none'; 
  5. keystore的密碼變更

    SELECT pgx_set_keystore_passphrase('old_passphrase', 'new_passphrase'); 
  6. 設置自動打開keystore

    pgx_keystore --enable-auto-open /key/store/location/keystore.ks 

    執行後生成keystore.aks文件,keystore.aks是keystore.ks解密後再經過混淆後的結果。 生成keystore.aks後,每次數據庫啟動時會自動打開keystore,加載master key,無需輸入密碼。

注意事項

  1. 內存中的數據是解密後的明文,所有要防止core文件和swap洩密。
  2. 防止包含keystore密碼的SQL語句記錄到日志或在通信過程中洩密。

參考

http://software.fujitsu.com/jp/manual/manualfiles/m140019/j2ul1736/05z200/index.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved