关键字:
概述
设置GUC参数enable_selftest,自测试控制开关,默认关闭状态。
kingbase.conf配置enable_selftest=on,则初始化数据时候进行自测试检测,依次进行SM2、SM3、SM4、随机数、软件完整性测试
使用步骤
带加密卡的服务器下:
- 成功在服务器中部署好数据库,初始化步骤如下:
初始化指定参数,新增加密设备可选项wstsdk_cd,例如:
./initdb -Ddata_wst -Usystem -e wstsdk_cd --encrypt-device-lib=libencwsttjsdk_device.so --encrypt-driver-lib=libsw_api_v60_pcie1_l0f13.so --encrypt-maxkey-len=16 --encrypt-align-num=16 -W
卫士通加密卡加密配置说明:
设置加密设备库:libencwsttjsdk_device.so
设置加密驱动程序库:libsw_api_v60_pcie1_l0f13.so
设置加密最大密钥 Len:16
设置加密算法对齐数:16
- 设置GUC参数enable_selftest,自测试控制开关,默认关闭状态。
kingbase.conf配置enable_selftest=on,则初始化数据时候进行自测试检测,依次进行SM2、SM3、SM4、随机数、软件完整性测试。
- 已提前将卫士通加密卡在服务器上插上,驱动库和设备库已放在数据库安装目录/lib目录中libsw_api_v60_pcie1_l0f13.so libencwsttjsdk_device.so
- 修改kingbase.conf配置enable_selftest=on,重启数据库成功
5、进行sys_ctl -D data start操作时,可看到数据库data/sys_log下的日志文件中有初始化数据时候进行自测试检测信息,依次进行软件完整性、SM2、SM3、SM4、随机数测试
问题与解决
问题:
开启自测试后启动服务失败,出现core,询问开发后,原因为需要一个对应的校验文件才行,查看安全指导书的用例里没提到校验文件,由此产生疑问,什么是自测试的校验文件,为什么平时不需要配置。
解答:
自测试的校验文件,应该是安装包自带的,不需要用户配置。由于某些原因,目前的现状是,安装包里自带的校验文件是local的,不是硬件的。如果要测硬件的,必须单独打包,生成硬件的才能配置自测试参数。local的就是初始化的时候,初始化-esm4或者-erc4,不能初始化硬件加密卡的。
安装完bin目录下,执行 ll -a,就能看到校验文件:隐藏文件.Integrity .keydata。一个是校验算法的.keydata,一个是校验程序完整性的.Integrity。
此外这两个文件可通过工具生成./sys_genintegrity -P /home/yanghui/seft_test/db1 -D wstsdk_cd
如果没有这两个隐藏文件,则需要手动生成,生成方法为:
- 将包libsw_api_v60_pcie1_l0f13.so、libk5crypto.so.3复制到Server/lib目录下
- 配置环境变量
export LD_LIBRARY_PATH=/home/kingbase/wz/db/Server/lib
(按实际路径进行调整)
- 使用sys_genintegrity工具生成两个隐藏文件
./sys_genintegrity -P /home/kingbase/wz/db/Server -D wstsdk_cd
在bin目录下执行
ll -a
存在.Integrity .keydata两个文件,则成功。
参考资料
《KingbaseES 安全指南》