加密卡

肖卓2022年9月21日
大约 11 分钟

加密卡

该PCI-E密码卡/加密卡支持国产SM1、SM2、SM3、SM4、SM9密码算法和硬件真随机数生成,符合国密安全可靠和模块二级检测要求,支持PCI-Ex4及以上硬件接口。该密码卡具有数据加密/解密处理功能,并提供身份认证、数字签名和数据完整性验证等功能,具有安全有效的密钥管理功能和设备管理功能,能够提供安全有效的密钥保护措施。

该密码卡可以应用于服务器密码机、网络密码机、安全网关、IPSec/SSL VPN等商用密码设备中,为设备提供数据加解密、签名验证、密钥交换等基础密码服务;可以应用于各类安全服务器中,为服务器安全登陆、加密存储等各类具有安全需求的业务提供密钥管理、加解密、签名验证等服务;广泛适用于VPN、PKI、电子政务、电子商务等应用领域。

标准规范:该密码卡采用国家密码管理局批准的核心密码芯片。符合以下标准规范:

《密码设备应用接口规范》(GM/T 0018-2012)
《SM2椭圆曲线公钥密码算法》(GM/T 0003-2012)
《SM3密码杂凑算法》(GM/T 0004-2012)
《SM4分组密码算法》(GM/T 0002-2012)
《SM9标识密码算法》(GM/T 0044-2016)
《随机性检测规范》(GM/T 0005-2012)
《PCI密码卡技术规范》(国家密码管理局 2018年10月)

主要功能: SM1、SM4算法 支持SM1、SM4等算法的ECB、CBC等模式;

支持基于SM1、SM4 等算法的MAC消息鉴别码的产生与验证。 SM2算法 支持基于SM2算法的数字签名与验证、加密与解密;

支持SM2算法的密钥对生成;

支持基于SM2算法的密钥协商。 SM3算法 支持基于SM3杂凑算法的数据摘要产生与验证。 SM9算法 支持基于SM9算法的数字签名与验证、加密与解密;

支持SM9算法的密钥对生成;

支持基于SM9算法的密钥协商。 随机数生成 采用物理噪声源产生真随机数。 密钥管理 支持不同算法的密钥生成与销毁、导入与导出、备份与恢复;

采用三级密钥保护体系,保证密钥安全。 硬件接口 支持PCI-Ex4接口;

可定制开发mini-PCIE密码卡、USB密码卡以及用户自定义接口。 软件接口 支持国密SDF接口,符合GMT 0018-2012《密码设备应用接口规范》;

支持PKCS#11、JCE 等国际标准接口,支持对接口的定制开发;

支持在操作系统内核与应用层调用密码卡编程接口;

支持多卡并行调用,支持用户态与内核态的多进程、多线程调用。 操作系统支持 支持Linux、Unix等32/64位操作系统。

支持基于龙芯、飞腾、申威(神威)、海思、兆芯等国产处理器的操作系统。

其他参数: 名称 详细描述 物理特性 产品尺寸:标准PCI-E半高半长;

重量(含挡板):118g。 电气特性 总线形式:PCI-E总线;

工作电源:12V;

功耗:<15W。 环境参数 工作温度:-10℃~70℃;

存储温度:-40°C~85°C。

产品特点:该密码卡具有如下特点:

高性能:(1)加解算法密性能国内领先;(2)独有的多并发技术,将密码硬件的性能发挥到极致。

硬件实现SM9算法:全硬件方式实现国密SM9算法。

高易用性:(1)全面支持x86、amd64、arm、mips等多种硬件平台;(2)支持Linux、Unix等32/64位操作系统;(3)支持基于龙芯、飞腾、申威等国产处理器的操作系统;(4)快速响应的服务支持,可针对用户需求进行快速定制。

典型应用:密码卡主要应用于以下领域:

安全产品:IPSec/SSL VPN安全网关、服务器密码机、金融密码机、CA服务器等。

安全应用系统:加密数据库、加密存储服务器、视频传输与存储加密系统、安全电子政务。

新兴行业:工业控制网络加密安全传输、物联网通信加密与身份认证。

加密卡安装

硬件安装

  • 关闭系统电源,并拔掉电源线;
  • 将 PCIE 密码卡插入 PCIE 插槽内,并固定挡板;
  • 检查确认 PCIE 密码卡安装固定好之后,插入系统电源线,启动系统。

驱动安装

从厂商处获取驱动程序安装包,名称类似 piico_cc_driver_xxx.tgz,并在 Linux 下解压缩文件包。解压后的 目录和文件结构如下:

目录或文件名说明
driver/PIICOCard.ko内核模块,密码卡驱动程序
driver/Makefile内核模块安装脚本,包括创建设备文件
lib用户态的动态库与静态库
include头文件,用户进行开发时,需要用到
examples包含卡管理工具 piicoTool,以及密码卡调用的多个样例程序,用户可参考该源码进行开发
Makefile根目录 Makefile 文件,可执行 make、make install和 make uninstall 等操作,会分别调用各子目录

首先执行 make ,可编译 examples 下的样例程序;其次执行make install 进行内核模块、动态库的安装。此时,即可调用examples 下的卡管理工具 piicoTool 和范例程序对卡进行管理与使用。

#解压驱动包
tar -zxvf piico_cc_driver_xxx.tgz
#进入驱动目录
cd piico_cc_driver_xxx
#编译
make
#安装内核和动态库
make install

常见错误

1.make时报gcc不存在? 方案:安装gcc环境

sudo apt install gcc
sudo apt install automake
sudo apt-get install make
sudo apt install g++

2.不能发现模块中的piico_cc_driver/driver/PIICOCard.ko:Invalid module format? 方案:因为驱动文件错误,系统内核版本与驱动版本不一致,联系厂家技术人员,根据系统内核编译驱动文件进行替换

#查询驱动文件的目录
find / -name PIICOCard.ko
#复制编译好的驱动文件到指定目录
cp PIICOCard.ko /usr/local/src/piico/piico_cc_driver/driver

使用流程

管理工具 piicoTool

在 examples 目录下有密码卡管理工具 piicoTool 和 piicoToolWP,用户可以通过该管理工具对密码卡进行初始化、密钥 管理、用户管理、权限登录等不同操作。其中,piicoTool 适用于 带 UKEY 认证的密码卡管理,piicoToolWP 适用于 PIN 口令认证的密 码卡管理。该手册中的密码卡管理操作,均以 piicoTool 为例, piicoToolWP 管理工具操作与 piicoTool 类似,区别在于不用插入 UKEY,仅做 PIN 码认证。以带 UKEY 认证的密码卡管理工具 piicoTool 具体参数与功能如 下:

参数范例说明
-s./piicoTool -s显示密码当前登录权限与状态
-rs./piicoTool -rs注册超级管理员,需要在出厂状态下执行
-ra./piicoTool -ra注册管理员,需要在出厂状态、超级管理员权限下执行
-ro./piicoTool -ro注册操作员,需要在出厂状态、超级管理员权限下执行
-li./piicoTool -li身份登录
-ic./piicoTool -ic初始化文件系统和密钥容器空间,需要在出厂状态和超级管理员权限下执行
-gd./piicoTool -gd生成 0 号设备密钥,需要在初始状态和管理员权限下执行
-gu./piicoTool -gu生成 1~9999 号用户密钥,需要在就绪状态和管理员权限下执行
-gk./piicoTool -gk生成 0~1024 号密钥加密密钥(KEK),需要在就绪状态和管理员权限下执行
-bu./piicoTool -gk 目标目录/备份设备内所有密钥,需要在就绪状态和管理员权限下执行。按程序提示依次插入三只不同的备份 Ukey,分散保存备份设备内所有密钥的备份保护密钥。执行完成后会创建目标目录,并将密码卡内所有密钥以目录同名文件抬头的方式加密导出。
-rd./piicoTool -rd 目标目录/恢复设备密钥,需要在管理员权限和初始化状态下执行。按提示依次插入任意两支不同的备份Ukey,在卡内恢复出分散的备份密钥,随后恢复目标目录下加密保护的 0 号设备密钥
-ru./piicoTool -ru 目标目录/恢复用户密钥和 KEK 密钥,需要在管理员权限和就绪状态下执行。按提示依次插入任意两支不同的备份 Ukey,在卡内恢复出分散的备份密钥,随后恢复目标目录下加密保护的所有用户密钥和KEK 密钥
-ri./piicoTool -ri密码卡恢复出厂设置,需要在超级管理员权限下使用,不限制密码卡状态
-mp./piicoTool -mp修改私钥使用权限,需要在管理员权限下使用
-mk./piicoTool -mk修改 Ukey 的 PIN 口令(piicoToolWP 工具对应修改管理员认证口)

初始化口令

密码卡的私钥使用权限和 UsbKey 的初始化为”wuxipiico”。

登录流程

密码卡交付时处于可供测试的就绪状态,已经设置有超级管理 员、管理员和操作员,密码卡内生成有全部的设备密钥、用户密钥 和 KEK 密钥。

使用者可以通过“piicoTool -li”命令选择不同的 Ukey,获取不同的权限进行登录。 登录成功后,Ukey 拔下或者更换其它 Ukey,不会改变密码卡登录权限,当再次执行”piicoTool -li”并成功后,新的权限将覆盖 原有权限。

重置流程

1、选择超级管理员 Ukey 以”piicoTool -li”命令登录并获取 密码卡权限 2、执行”piicoTool -ri”命令清空密码卡内所有信息,包括注 册用户、密钥容器、文件系统、设备密钥、用户密钥和 KEK 信息。 3、此时执行”piicoTool -s”命令可以看到密码卡处于出厂、 无用户状态。

初始化流程

说明:使用 ukey 注册用 piicoTool 命令;如果仅适用口令注 册,则使用 piicoToolWP 命令。以使用 ukey 注册为例,密码卡初始 化流程如下: 1、执行”piicoTool -rs”命令注册超级管理员身份。 2、执行”piicoTool -li”命令以超级管理员身份登录并取得其对应权限 3、执行”piicoTool -ra”命令注册管理员身份 4、执行”piicoTool -ro”命令注册操作员身份 5、执行”piicoTool -ic”命令执行初始化密钥系统和文件系统操作 6、此时密码卡进入初始化状态,只有管理员权限可以在初始化状态进行工作,因此执行”piicoTool -li”命令,更换管理员身份 登录并取得其对应权限 7、执行”piicoTool -gd”命令生成设备密钥 8、此时密码卡进入就绪状态,执行”piicoTool -gu”命令生成密码卡的所有用户密钥。 9、执行”piicoTool -gk”命令生成密码卡所有 KEK 密钥。 此时密码卡初始化完成,可以进行加解密等操作测试。关机重起后密码卡状态及密钥状况不会改变,重新登录即可恢复使用。

备份流程

密码卡初始化完成后,可以对卡内的密钥信息进行备份操作, 备份需要管理员权限,其流程如下。 (1)执行”piicoTool -li”命令以管理员身份登录并取得对应 权限,如已登录则略过此步骤。 (2)执行”piicoTool -bu /dir/”命令可以对密码卡内所有密 钥加密成密文文件备份到指定的目录中。

升级流程

(1)联系生成厂商,获取 upper 升级包; (2)确认文件 gm_destroy_x.x.srec 和 gm_release_x.x.srec 在upper 目录下; (3)先执行./upper gm_destroy_x.x.srec (4)关机断电,重起机器

examples 范例说明

在驱动目录下的 examples 文件夹中,有较多的使用范例。大致功 能如下:

范例文件名范例说明
piicoTool基于 UKEY 的卡管理工具
piicoToolWP基于 PIN 码的卡管理工具
std_sm1 SM1算法标准数据加解密
std_sm2 SM2算法签名/验签、加密/解密
std_sm3 SM3算法调用范例
std_sm4 SM4算法标准数据加解密
AllTest包含了较多功能的使用范例
menu包含了较多功能的使用范例,以菜单形式
上次编辑于: 2023/9/23 20:40:17
贡献者: 肖桌
评论
Powered by Waline v2.5.1