达梦数据库目前与山东渔翁的SJK1861-G 5.0密码卡兼容良好,下面详细描述其适配操作步骤。

1、密码卡设备安装

机器断电(彻底拔除电源线)冷却5分钟后,将密码卡设备固定在机箱内的PCI-E插槽里,并用螺丝固定好,确保不松动、不摇晃。

备注:渔翁密码卡“SJK1861-G PCI-E 5.0密码卡”已不支持任何的windows系统,必须安装在linux系列的系统中,可以是国产系统。

2、检测密码卡设备被操作系统识别

以root用户身份运行lspci命令,确保列出的设备中有一行是“464d”,证明密码卡设备本身是安装好的,也就是不用再重新插拔密码卡。不同型号的密码卡代号不一样,“SJK1861-G PCI-E 5.0密码卡”密码卡的代号是“464d”,其他型号的密码卡可能不是该标识。 如果不确定密码卡被识别的代号,可以在安装密码卡设备之前运行一次 lspci,截图下来;安装密码卡之后运行一次 lspci,截图下来;两个截图做一个比较,如果第二次截图比第一次截图多出一行:“Unclassified device”,表明密码卡设备是安装好的。如果两次截图的行数和内容完全一样,表明密码卡设备是未被识别,未安装好的。

root@FT10565:/home/fhx#lspci

0a:00.0 Unclassified device [00ff]: Device 464d:0810 (rev 01)

如果没有 “464d”这一行,需要重新关机、断电、拔除电源、冷却5分钟或在拔除电源的情况下按开机键进行快速放电、拆机箱、重新拔除密码卡设备、重新插上密码卡设备、螺丝固定密码卡、开机,再检测密码卡设备是否被系统识别,直到该命令出现“464d”这行。

当金手指部分沾了灰尘的时候或没插稳固的情况下,会识别不出来,除此之外,基本上都能识别。

3、密码卡驱动安装

  1. 用root用户身份给altera_cvp_load、install.sh、setup.sh赋予执行权限
  1. root@FT10565:/home/fhx/fishman20200528/drv#chmod 777 altera_cvp_load
  2. root@FT10565:/home/fhx/fishman20200528/drv#chmod 777 install.sh
  3. root@FT10565:/home/fhx/fishman20200528/drv#chmod 777 setup.sh

(b)用root用户身份运行setup.sh

root@FT10565:/home/fhx/fishman20200528/drv# ./setup.sh

./altera_cvp_load

Check old driver and unload it.

Install driver.

当setup.sh命令执行后,打印信息的最后一行是“Install driver.”表明驱动是安装成功的,如果最后一行是“Card not detected!”或其他的报错信息,表明驱动是安装不成功的,不成功的情况,我们采取卸载密码卡驱动后重新安装密码卡驱动。

备注:密码卡驱动程序是和操作系统内核紧密相关的,因此每个不同的平台都要不同的驱动程序,如centos7、rh6、kylin10上的驱动都不一样,而且有时候和机器上的gcc运行库版本或操作系统补丁包版本等有关联,最坏的情况下是两台同一个光盘安装的centos7系统的机器要用2个不同的驱动程序。

可以以密码卡售后技术支持或项目合作等方式联系山东渔翁的售后技术支持团队给编译驱动,他们的售后还是相当给力的,一般情况下1-2天会给出对应的驱动,最长不过3天。可以让他们用远程的方式指导安装驱动过程中的各种错误,驱动安装首次不成功的概率非常大,需要耐心操作,需要时应该及时联系设备厂商协助。

4、重装密码卡驱动

当首次驱动安装不成功,则需要重新卸载驱动再安装驱动,卸载驱动就是一个清理操作,清理历史操作残留的驱动程序碎片文件。

root@FT10565:/home/fhx/fishman20200528/drv#rmmod FM_CPC_DRV

root@FT10565:/home/fhx/fishman20200528/drv#./setup.sh

重装密码卡驱动如还不能排除“Card not detected!”或其他的报错信息,则需要“关机+放电”进行再次尝试,“关机+放电”的一般步骤是“关机(shutdown -r)->断电->拔除电源->按开机键放残余电(3次)->冷却3分钟->开机”。

5、跟踪日志追踪密码卡驱动安装的问题

如果“关机+放电”也还是不能排除错误,则需要将跟踪日志发给密码卡厂商分析,跟踪日志的获取步骤是:

dmesg >dmesg_$(date "+%Y_%m_%d_%H_%M_%S").log

再将dmesgxxx.log发给渔翁售后技术支持,让他们判断驱动的问题,重新发个驱动再安装。

6、开卡测试密码卡

当密码卡设备及驱动均安装成功以后,需要执行TestCard开卡测试密码卡是否正常运行。

cd /home/fhx/fishman20200528/api

./TestCard

依次输入8、0、1、1:

#    8. FM_DEV_TYPE_PCIE_5_0X   #

Please select card type:8

Please input card index(0~3):0

#    1. Device Management #

Please select:1

#    1. Get Device Information #

Please select:1

******************** DEVICE INFO ********************

*       Issuer Name:Fisherman

*       Device Name:PCI-E V5.0

*       Device Serial:C1350190509B0765

*       DeviceVersion:e5.c.2005

*

*       Symmetric Algorithm:SM1 SM4 AES 3DES DES

*       Asymmetric Algorithm:SM2

*       HASH Algorithm:SHA1 SM3

能够获取到如上格式的“DEVICE INFO”表示密码卡开卡成功。如果驱动没有安装成功,开卡能够成功,也可以忽略驱动问题,只要开卡测试成功就OK。开卡成功后,按0,再按0退出TestCard程序。root退出是为了让dmdba用户后面能用数据库所带的引擎程序去开卡和使用密码卡。

7、删除root独占的日志文件和root独占的锁文件

cd /tmp

rm -rf *card.lg

rm -rf FM*.lock

如果这2个文件存在而dmdba却没有读写权限,dmdba则不能输出日志和写锁文件,dmdba用户后面用数据库所带的引擎程序去开卡和使用密码卡的时候就会受阻。

8、编译密码引擎库文件。

密码引擎是调用密码卡API动态库提供的功能函数,将其封装成《达梦安全管理手册》“密码引擎”接口的一个C/C++格式的源代码文件,该文件一般形式是enc_dll_pcie5.c,需要将其编译成适应于该平台该系统的动态库文件,如libenc_dll.so. 编译方法如下表格:

1、修改宏定义:

根据卡的型号,修改源文件enc_dll_pcie5.c中的下述宏定义,改为对应版本的渔翁版本的宏定义,如5改成6

FM_DEV_TYPE_PCIE_5_0X

这个根据卡的型号对应的宏定义来改,卡的型号及宏定义由卡厂商提供告知。

2、准备源文件:

把源码文件enc_dll_pcie5.c 复制到对应操作系统准备编译的目录,如假定/home/test/fhx目录下;

3、准备头文件:

把密码卡厂商提供的应用编程头文件放到源码所在目录的include子目录下,如假定/home/test/fhx/include目录下;再把达梦加密引擎头文件crypto_engine.h也放到/home/test/fhx/include目录下;

4、准备动态库文件:

把渔翁的应用编程动态库libfmapiv100.so放到/home/test/fhx目录下;

5、编译加密引擎库文件:

进入到/home/test/fhx目录,用下述命令编译成libenc_dll.so

gcc -shared -o libenc_dll.so -I./include enc_dll_PCIE5_0X.c -ldl -lm -lc -lrt -lpthread -lfmapiv100 -L./

或:

gcc -fPIC -shared -o libenc_dll.so -I./include enc_dll_PCIE5_0X.c -ldl -lm -lc -lrt -lpthread -lfmapiv100 -L./

备注:可能平台、架构等不同,gcc带的参数有所变化,上述是2个常见的命令。

9、拷贝密码卡的API动态库文件及密码引擎库文件。

密码卡的API动态库:libfmapiv100.so   (这个文件是卡厂商提供,不同厂商该文件名不同)

密码引擎库文件:libenc_dll.so (这个文件是上述编译而来的)

cd /home/fhx/fishman20200528/api/

cp libfmapiv100.so /home/dmdba/dmdbms/bin/

cp libfmapiv100.so /home/dmdba/dmdbms/bin/external_crypto_libs

cp libfmapiv100.so /home/dmdba/dmdbms/tool

cp libfmapiv100.so /home/dmdba/dmdbms/tool/external_crypto_libs

cd /home/test/fhx

cp libenc_dll.so /home/dmdba/dmdbms/bin/

cp libenc_dll.so /home/dmdba/dmdbms/bin/external_crypto_libs

cp libenc_dll.so /home/dmdba/dmdbms/tool

cp libenc_dll.so /home/dmdba/dmdbms/tool/external_crypto_libs

备注:放入bin及之下的external_crypto_libs文件夹是为了启动服务时可以调用密码卡上的算法,放入tool及之下的external_crypto_libs文件夹是为了启动界面客户端及DBCA初始化时可以调用密码卡上的算法。

另外还需要注意上述拷入的动态库文件,dmdba文件必须具备执行权。

10、设置环境变量PATHLD_LIBRARY_PATH,将上述放在最前面。

将下述内容写入/home/dmdba/.bash_profile

DM_HOME=/home/dmdba/dmdbms

PATH=$DM_HOME/bin:$DM_HOME/bin/external_crypto_libs:$PATH

LD_LIBRARY_PATH=$DM_HOME/bin:$DM_HOME/bin/external_crypto_libs:$LD_LIBRARY_PATH

PATH=$DM_HOME/tool:$DM_HOME/tool/external_crypto_libs:$PATH

LD_LIBRARY_PATH=$DM_HOME/tool:$DM_HOME/tool/external_crypto_libs:$LD_LIBRARY_PATH

export PATH

export LD_LIBRARY_PATH

执行source /home/dmdba/.bash_profile 让环境变量设置及时生效。

11、以dmdba用户身份启动disql

cd /home/dmdba/dmdbms/bin

./disql

如果运行打印有“load libfmapiv100.so success!”字样,表明前面所有的设置都是正确的。

如果出现了“load libfmapiv100.so fail”表明环境变量未设置好。

12、以dmdba用户初始化库并前台启动库。

cd /home/dmdba/dmdbms/bin

./dminit path=../data

./dmserver ../data/DAMENG/dm.ini

如果运行打印有“load libfmapiv100.so success!”字样,表明前面所有的设置都是正确的。如果出现了“load libfmapiv100.so fail”表明环境变量未设置好。前台启动的目的就是看打印信息,只要打印信息正确了之后就可以后台启动或服务方式启动。

13、查看数据库中的加密算法加载情况。

登录后查询系统表V$ciphers或V$external_ciphers动态视图,如果有“FM_SM”打头的算法,表明密码卡加密算法加载成功,否则加载不成功。

select * from V$ciphers;

select * from V$external_ciphers;

V$ciphers包括所有的算法,包括达梦内置算法和外部算法;V$external_ciphers仅包含外部算法。当密码卡加载成功后,应该有“FM_SM1_CBC、FM_SM1_ECB、FM_SM4_CBC、FM_SM4_ECB、FM_SM2、FM_SM3”等算法,其中SM1和SM4是对称加密算法,可用于存储加密,用法和AES、DES、DESEDE(3DES)一样;SM3是校验算法,可用于完整性校验,用法和MD5、SHA1一样;SM2是公钥加密算法,和RSA类似,一般用于根钥存储保护、签名和验签等数据库内部安全机制运作,数据库内的用户较少显式调用SM2这类的公钥加密算法。

14、使用加密算法

数据库成功加载了外部加密算法后,加密算法就可以和内部内置的算法一样的使用方法,具体参考达梦安全管理手册的存储加密章节。可以用在全库加密、表空间加密、列加密、页校验(page_check)、日志校验(rlog_hash_name)、日志加密(rlog_encrypt_name)等几乎所有的地方,还可以用在应用层通信加密(comm_encrypt_name)。

在达梦数据库上使用密码设备上的国密算法详细操作指南相关推荐

  1. 达梦数据库初级学习总结(上)

    达梦数据库初级学习总结(上) 达梦数据库 达梦数据库初级学习总结(上) 一.中标麒麟系统搭建 二.Linux简单指令 一.文件管理 二.用户和组管理 三.权限管理 三.DM8数据库安装 四.DM8数据 ...

  2. 嵌入式设备中支持国密算法的方法(三)——移植Openssl库的步骤说明

    本篇文章是介绍国密算法在嵌入式设备中应用方法系列文章的第三篇,介绍移植openssl库到嵌入式设备中的具体方法,当然最终的目的还是使我们的设备能支持国密算法.同上一篇文章中介绍的miracl密码库相比 ...

  3. 嵌入式设备中支持国密算法的方法——移植Miracl库的步骤说明

    上一篇文章中我们为大家介绍了嵌入式设备中支持国密算法的几种方法.本篇我们详细的介绍一下第一种方法:移植Miracl库的具体操作步骤. 第一步 获取源码 MIRACL密码库是开源软件,可以直接到官网下载 ...

  4. 嵌入式设备中支持国密算法的方法

    如今国密系列算法的应用已不仅仅局限于金融和电信等领域,诸如车载设备,消费类电子设备等越来越多的产品开始要求有国密算法的支持.但是国密算法的开源资料和应用案例少之又少,如何快速高效的在自己的设备中加入国 ...

  5. 达梦数据库忘记SYSDBA密码的问题探讨

    在实际过程中经常有人会问起万一忘记了SYSDBA密码怎么办.也有人在网络上吐槽,达梦数据库忘了SYSDBA密码就只能重装. 其实这个问题说起来有几个应用场景. 我们数据库里的数据不重要,我只是用来学习 ...

  6. 达梦数据库-安装配置规范(上)

    1.1 DM支持平台 达梦数据库支持国内外主流的的硬件和操作系统平台.通常情况下,用户的安装介质是一个iso镜像文件. CPU芯片支持列表: 操作系统支持列表: 1.2 资源配置 物理机最小配置推荐( ...

  7. “云上贵州”成全国首个国密算法应用试点项目 阿里政务云实现“国家级”安全保护...

    11月22日,阿里云联合国家密码管理局.贵州省密码管理局.数据通信科学技术研究所.云上贵州大数据产业发展有限公司共同宣布:"云上贵州"成为国内首个国家商用密码算法应用试点项目. 据 ...

  8. miracl实现ecdsa_嵌入式设备中支持国密算法的方法——移植Miracl库的步骤说明

    本篇我们详细的介绍一下:移植Miracl库的具体操作步骤. 第一步 获取源码 MIRACL密码库是开源软件,可以直接到官网下载,也可在csdn等论坛中获取. 第二步 利用MIRACL库函数实现SM2算 ...

  9. 如何使用DPA华为备份一体机备份达梦数据库

    环境描述: 备份一体机版本: 数据库版本: 操作系统版本:  第一.备份前的准备,在客户端安装代理: 首先,在客户端安装备份一体机客户端,根据操作系统,上传指定代理软件包至/opt目录下,解压软件代理 ...

最新文章

  1. 【Python】turtle库的小应用
  2. 解决ifconfig命令未找到
  3. 三个python文件怎么关联___name__= __main__怎么解释 怎么用 另外两个py文件之间的互动关联...
  4. 吴恩达:机器学习应以数据为中心
  5. 对象调用corePlot使用技巧及iOS内存优化之道
  6. (转)战斗bug技巧全攻略
  7. 苹果电脑上几款不错的cad绘图软件
  8. 使用国密函数读取金税盘信息
  9. 学习笔记:GAMES101图形学入门闫令琪(五)抗锯齿
  10. JAVA过滤机制——过滤器的概念、工作原理、生命周期
  11. sub1G-CC1310的应用开发之入门
  12. 从零开始内网渗透学习
  13. 获取微信用户的openId
  14. android手机返回桌面后,点击app图标,app重启
  15. 终于有人把数据治理的元数据、主数据等概念讲明白了
  16. java中任何变量都可以被赋值为null,关于异常处理:为什么“throw null”没有在Java中创建编译错误?...
  17. Nginx介绍及原理简单分析
  18. 《大西洋月刊》2014-2020年电子版合集| The Atlantic
  19. nginx正向代理服务器搭建
  20. 大端小端与LSB和MSB的小故事

热门文章

  1. JZOJ 5637 一双木棋
  2. ndk samples
  3. 电脑右键上网主页删除
  4. <2021SC@SDUSC>【Overload游戏引擎】OvUI源码模块分析(五)——Plugins
  5. Mac环境下配置tomcat的步骤详解
  6. Mac的Tomcat配置(含Eclipse、IDEA)
  7. 【系统收藏——腾讯操盘手 V1.7 PC版 [新版本新增开放操盘线功能]】
  8. scope=both和scope=spfile
  9. 摄像头poe供电原理_一篇图文,详解监控供电的几种方式选择
  10. 基于C++的考试系统