商用密码产品(密码模块)-密码模块接口

一、定义

        GM/T 0028中给出了接口的定义,接口是密码模块的逻辑入口或出口,为逻辑信息流提供进出模块的通道。

二、密码模块接口

        GM/T 0028中定义了11个安全域,每个安全域都不是独立存在的,就今天的密码接口而言,与我们上一期文章中提到的密码模块边界密不可分,密码边界内的组成部分才会与密码模块接口有关,不在密码边界内,自然不是密码模块的接口,所以密码模块边界的划分是至关重要的,密码模块边界划定错了,会产生连锁效应,就像SM4算法CBC模式运算,第一个明文分组计算错误,加密过程会把这个错误的影响扩散到后续的明文分组。

三、密码模块接口类型

        从形态的角度来说,密码模块可以划分为物理接口、逻辑接口两个大类。物理接口是密码边界内可见形态的接口,比如USB接口、RJ45接口、HDMI接口、VGA接口、电源接口、led灯、液晶显示屏等。逻辑接口理解比较抽象,主要就是为了实现某些功能调用的功能函数,比如data_enc()、data_dec等等。

(1)USB接口

        USB接口通常作为优盘、键盘、鼠标、智能密码钥匙等设备的接入,优盘中的数据可以导入密码模块,此时USB接口就是数据输入接口;当连接鼠标、键盘等外设时,使用者会通过鼠标键盘输入指令,操作密码模块,此时USB接口就是控制输入接口等等。

(2)RJ45接口

        RJ45接口包括通信网口、控制口、管理口;通信网口一般是密码模块中数据通信的网络通道,也是密码模块功能相关数据的主要接口,所以网口是网络类设备的主要数据输入和输出接口,控制口和管理口主要是控制输入的接口。

(3)HDMI接口、VGA接口

        一般情况HDMI和VGA是设备主要的信息输出接口,一般是可视化界面的接口,通过这两个接口可以直观的观察到密码模块的使用情况,所以这两个接口也是主要的数据输出、状态输出接口。

(4)电源接口

        电源接口比较好理解,作为密码模块的供电接口。

(5)led接口

        led接口是密码模块中的状态输出接口,这个对应还是比较明确的,一般服务器设备会有不同颜色的led灯,不同的颜色代表不同的含义,比如,绿灯亮起表明设备状态运行正常,红灯亮起表明设备数据库运行错误,黄灯亮起表明存储空间不足。

(6)逻辑接口

        逻辑接口理解比较抽象,主要就是为了实现某些功能调用的功能函数,比如data_enc()、data_dec,一般来说,密码模块可能会没有硬件接口,很少有产品没有逻辑接口,但是不排除存在。逻辑接口应该和物理接口存在一定的映射关系,如果不同的逻辑接口复用同一个物理接口时,逻辑接口应该相互隔离。

四、密码模块接口举例

        不得不说,不同产品的密码模块接口千差万别,差异性很大,所以我们只举一个简答的例子,我们今天以智能密码钥匙为例子。

(1)数据输入接口

        物理接口:USB接口

        逻辑接口:ULONG DEVAPI SKF_ImportCertificate(HCONTAINER hContainer, BOOL bSignFlag,  BYTE* pbCert, ULONG ulCertLen)、ULONG DEVAPI SKF_ImportRSAKeyPair (HCONTAINER hContainer, ULONG ulSymAlgId, BYTE *pbWrappedKey, ULONG ulWrappedKeyLen,BYTE *pbEncryptedData, ULONG ulEncryptedDataLen)等等

(2)数据输出接口

        物理接口:USB接口

        逻辑接口:ULONG DEVAPI SKF_ReadFile (HAPPLICATION hApplication, LPSTR szFileName, ULONG ulOffset, ULONG ulSize, BYTE * pbOutData, ULONG *pulOutLen)、ULONG DEVAPI SKF_ExportCertificate(HCONTAINER hContainer, BOOL bSignFlag,  BYTE* pbCert, ULONG *pulCertLen)等等。

(3)控制输入接口

        物理接口:USB接口        

        逻辑接口:ULONG DEVAPI SKF_DeleteFile (HAPPLICATION hApplication, LPSTR szFileName)、ULONG DEVAPI SKF_CreateContainer (HAPPLICATION hApplication, LPSTR szContainerName, HCONTAINER *phContainer)等等。

(4)控住输出接口

        不涉及

(5)状态输出接口

        物理接口:USB接口

        逻辑接口:智能密码钥匙通过错误代码值对状态进行输出,例如:

宏描述

预定义值

说明

SAR_OK

0x00000000

成功

SAR_Fail

0x0A000001

失败

SAR_UnknownErr

0x0A000002

异常错误

SAR_NotSupportYetErr

0x0A000003

不支持的服务

SAR_FileErr

0x0A000004

文件操作错误

SAR_InvalidHandleErr

0x0A000005

无效的句柄

SAR_InvalidParamErr

0x0A000006

无效的参数

SAR_ReadFileErr

0x0A000007

读文件错误

SAR_WriteFileErr

0x0A000008

写文件错误

SAR_NameLenErr

0x0A000009

名称长度错误

SAR_KeyUsageErr

0x0A00000A

密钥用途错误

SAR_ModulusLenErr

0x0A00000B

模的长度错误

(6)电源接口

        物理接口:USB接口

        以上关于密码模块接口的描述,仅供参考,也可私信作者进一步深入沟通,微信号:TYNNNL。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值