亚欧色一区w666天堂,色情一区二区三区免费看,少妇特黄A片一区二区三区,亚洲人成网站999久久久综合,国产av熟女一区二区三区

  • 發布文章
  • 消息中心
點贊
收藏
評論
分享
原創

MySQL表空間加密插件

2024-09-06 10:11:56
24
0

1 什么是國密/商密 加密

國家于 2020 年施行密碼法2021 年施行個人信息保護法,對個人隱私數據和數據安全加密有更高的要求。

國密算法是指由中國國家密碼管理局發布的密碼算法標準,旨在保障國家信息安全。目前,國家密碼管理局已發布了一系列國產商用密碼標準算法,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9以及祖沖之密碼算法(ZUC)等。

通過在金融、電子政務及安防等領域廣泛應用國密算法,在對敏感數據進行機密性、完整性和可用性保護的同時,減少對外部密碼產品的依賴,提升國家信息安全水平。

[?? 判斷是否符合我國商用密碼技術合規要求]

密碼產品需要通過 中國國家密碼管理局 商用密碼檢測中心 的檢測才會發放認證證書,認為此商用密碼產品符合規則要求。例如阿里銅鎖產品證書。

2 實現思想

MySQL本身支持物理表空間的加密,使用兩層加密架構。包括:主密鑰(master key) 和 表空間密鑰(tablespace key)。

主密鑰用于加密表空間密鑰,加密后的表空間密鑰存儲在表空間文件的header中。表空間密鑰用于加密數據。當用戶想訪問加密的表時,innoDB會先用 主密鑰 對之前存儲在表空間header中被加密的表空間密鑰進行解密,得到明文的表空間密鑰,再用表空間密鑰解密數據信息。

表空間密鑰是不會改變的,而主密鑰可以通過命令隨時改變。表空間加密功能由innodb和keyring插件共同實現。innodb負責使用表空間密鑰加/解密表內數據,keyring負責管理主密鑰。

MySQL加密的最底層選用的加密工具依賴于SSL,默認的加密使用工具是OPENSLL中提供的密鑰(隨機數)生成接口。

 對于主密鑰(master key)和表空間密鑰(tablespace key)來說最后的密鑰生成都依賴底層SSL庫對外提供的函數接口。GreatSQL在這里使用銅鎖提供的國密加密算法接口。

??銅鎖的加密思想是:通過安裝銅鎖到操作系統后,其就能夠在原來openssl的基礎上,添加支持國密的加密算法,并且提供相關的密鑰管理功能,這樣就能夠釜底抽薪的實現國密算法支持。

2.1 如何選擇國密加密的?

通過添加編譯選項 -DWITH_SSL_GM=ON將SM4_X加入到定義與使用中。就可以選擇國密。并且之后也不能再使用MySQL默認的AES aes_256_cbc 加密算法,只能是sm4_x。

2.2 國密加密的系統結構是如何的?

總體結構是怎么樣的?

比較關鍵的就是四個點:

1.是從客戶端到innodb層,操作類型包括輪轉/生成主密鑰、創建表時根據選項進項表空間加密、插入數據時進行加密等動作。

2.是innodb內部的一一系列操作,包括生成主密鑰、創建表空間及加密、數據加密等動作。

3.是從服務的角度,向innodb層提供加密的操作,例如生成密鑰、獲取密鑰、加密數據等操作。還有插件注冊到服務中,然后通過innodb調用服務,之后使用插件中的方法。

4.是innodb在寫undolog、logflush時,具體的將數據寫入到磁盤中。

master key更新需要執行“ALTER INSTANCE ROTATE INNODB MASTER KEY;”,表示旋轉主密鑰。

旋轉主密鑰的時候,也會進my_aes,主要就是用于,當要更換當前的master key后,同時也更新用于加密的元數據信息,也就是更新表空間加密所用的元數據信息(用于加密之后生成表的數據)。

從加密的角度來說,具體的加密數據是在innodb層調用了mysys層中的my_aes_openssl.cc中的my_aes_encrypt函數進行加密,這個函數里面基于master key生成表空間密鑰,也將源數據使用加密算法進行加密。

總的來說,在總體加密流程上,GreatSQl并沒有對原始的MySQL做出太大的改動,而是使用開源的、通過商業認證的銅鎖加密軟件,實現表空間的數據加密。表空間加密支持國密算法,只是通過原始的Openssl + 銅鎖 提供的接口函數+宏定義實現的。以上的整個流程,其實就是MySQL的加密流程。

0條評論
0 / 1000
張凡
7文章數
0粉絲數
張凡
7 文章 | 0 粉絲
原創

MySQL表空間加密插件

2024-09-06 10:11:56
24
0

1 什么是國密/商密 加密

國家于 2020 年施行密碼法2021 年施行個人信息保護法,對個人隱私數據和數據安全加密有更高的要求。

國密算法是指由中國國家密碼管理局發布的密碼算法標準,旨在保障國家信息安全。目前,國家密碼管理局已發布了一系列國產商用密碼標準算法,包括SM1(SCB2)、SM2、SM3、SM4、SM7、SM9以及祖沖之密碼算法(ZUC)等。

通過在金融、電子政務及安防等領域廣泛應用國密算法,在對敏感數據進行機密性、完整性和可用性保護的同時,減少對外部密碼產品的依賴,提升國家信息安全水平。

[?? 判斷是否符合我國商用密碼技術合規要求]

密碼產品需要通過 中國國家密碼管理局 商用密碼檢測中心 的檢測才會發放認證證書,認為此商用密碼產品符合規則要求。例如阿里銅鎖產品證書。

2 實現思想

MySQL本身支持物理表空間的加密,使用兩層加密架構。包括:主密鑰(master key) 和 表空間密鑰(tablespace key)。

主密鑰用于加密表空間密鑰,加密后的表空間密鑰存儲在表空間文件的header中。表空間密鑰用于加密數據。當用戶想訪問加密的表時,innoDB會先用 主密鑰 對之前存儲在表空間header中被加密的表空間密鑰進行解密,得到明文的表空間密鑰,再用表空間密鑰解密數據信息。

表空間密鑰是不會改變的,而主密鑰可以通過命令隨時改變。表空間加密功能由innodb和keyring插件共同實現。innodb負責使用表空間密鑰加/解密表內數據,keyring負責管理主密鑰。

MySQL加密的最底層選用的加密工具依賴于SSL,默認的加密使用工具是OPENSLL中提供的密鑰(隨機數)生成接口。

 對于主密鑰(master key)和表空間密鑰(tablespace key)來說最后的密鑰生成都依賴底層SSL庫對外提供的函數接口。GreatSQL在這里使用銅鎖提供的國密加密算法接口。

??銅鎖的加密思想是:通過安裝銅鎖到操作系統后,其就能夠在原來openssl的基礎上,添加支持國密的加密算法,并且提供相關的密鑰管理功能,這樣就能夠釜底抽薪的實現國密算法支持。

2.1 如何選擇國密加密的?

通過添加編譯選項 -DWITH_SSL_GM=ON將SM4_X加入到定義與使用中。就可以選擇國密。并且之后也不能再使用MySQL默認的AES aes_256_cbc 加密算法,只能是sm4_x。

2.2 國密加密的系統結構是如何的?

總體結構是怎么樣的?

比較關鍵的就是四個點:

1.是從客戶端到innodb層,操作類型包括輪轉/生成主密鑰、創建表時根據選項進項表空間加密、插入數據時進行加密等動作。

2.是innodb內部的一一系列操作,包括生成主密鑰、創建表空間及加密、數據加密等動作。

3.是從服務的角度,向innodb層提供加密的操作,例如生成密鑰、獲取密鑰、加密數據等操作。還有插件注冊到服務中,然后通過innodb調用服務,之后使用插件中的方法。

4.是innodb在寫undolog、logflush時,具體的將數據寫入到磁盤中。

master key更新需要執行“ALTER INSTANCE ROTATE INNODB MASTER KEY;”,表示旋轉主密鑰。

旋轉主密鑰的時候,也會進my_aes,主要就是用于,當要更換當前的master key后,同時也更新用于加密的元數據信息,也就是更新表空間加密所用的元數據信息(用于加密之后生成表的數據)。

從加密的角度來說,具體的加密數據是在innodb層調用了mysys層中的my_aes_openssl.cc中的my_aes_encrypt函數進行加密,這個函數里面基于master key生成表空間密鑰,也將源數據使用加密算法進行加密。

總的來說,在總體加密流程上,GreatSQl并沒有對原始的MySQL做出太大的改動,而是使用開源的、通過商業認證的銅鎖加密軟件,實現表空間的數據加密。表空間加密支持國密算法,只是通過原始的Openssl + 銅鎖 提供的接口函數+宏定義實現的。以上的整個流程,其實就是MySQL的加密流程。

文章來自個人專欄
文章 | 訂閱
0條評論
0 / 1000
請輸入你的評論
0
0