CPK组合公钥技术之我见 联系客服

发布时间 : 星期二 文章CPK组合公钥技术之我见更新完毕开始阅读c7f730f9bceb19e8b8f6baa5

下:

1. 将响应报文数据域中的数据块分解成8字节长的数据块,标号为D1,D2,D3,

D4 等等。每个数据块使用如下过程进行解密。

2. 对数据块D1,D2,D3,D4等分别使用加密相同的密钥进行DES解密,得到解密

后的数据块D1’,D2’,D3’,D4’等。

3. 计算结束后,所有解密后的数据块依照顺序(解密后的D1’,解密后的D2’,等等)

连接在一起。数据块由Ld,明文数据,填充字符组成。因为Ld表示明文数据的长度,因此,它被用来删除填充字符以恢复明文数据。

3.4 访问权限控制

3.4.1 用户权限

COS对特定命令、特定的文件都有着严格的控制。目前用户权限分为三级权限:管理员权限、超级用户权限和普通用户权限。管理员权限只有CPK发行机构可以使用,主要用来做密钥装载,COS升级使用。而超级用户权限和普通用户权限则提供给企业管理员及普通用户使用。

三级权限(管理员权限、超级用户权限和普通用户权限),均需要口令认证通过后才能拥有该权限,即通过口令认证后,才能执行相应的命令或操作。

为了防止非法访问及蓄意破坏,对于口令认证,设置最大允许次数,当超过最大允许次数时,直接将指定权限或者设备锁定。

3.4.2 内部认证

内部认证,主要是通讯端(一般为我们会封装出开发包,即SDK),用户直接利用我们的开发包做二次开发,对于某些操作,用户也需要对CPK设备进行认证,防止通讯端将数据发给伪造的CPK设备,造成信息泄露。

内部认证过程如下:在设备的外部产生8字节的随机数,执行内部认证命令,数据域为上述方法产生的随机数。设备将命令中的数据域用指定的内部认证密钥加密后送出设备。外部则用自己持有的密钥对随机数解密,并自己持有的数据进行比较,根据比较结果进行相应处理。

8

APPCOS外部产生8字节随机数APP产生8字节随机数,并传给COSCOS对随机数使用内部认证进行加密,返回加密后的数据APDU使用内部认证密钥(文件01)对随机数进行DES加密送出加密后的数据

Figure 3-2 内部认证控制

3.4.3 外部认证

外部认证主要是COS对访问它的通讯端进行认证,以防止CPK设备被非法访问。 外部认证过程如下:首先执行产生随机数命令,从设备中直接获取8字节的随机数后,在设备外部用已知密钥加密。对设备执行外部认证命令,数据域为用上述方法得到的加密数据。COS将命令中的数据域用指定的外部认证密钥解密,然后与先前产生的随机数进行比较。如果一致,则表示认证通过,置安全状态寄存器为该密钥规定的后续状态值,错误允许计数器恢复成初始值;如果不一致,则认证失败,错误允许计数器值减1,且不改变安全状态寄存器的值。

APPCOS取8字节随机数返回8字节随机数用特定的外部认证密钥对随机数加密,并传给COSCOS用指定的外部认证密钥,对传入的认证数据进行验证,返回验证结果

Figure 3-3外部认证

9

3.5 私钥授权控制

3.5.1 私钥存储

私钥是指CPK体系中的私钥信息,公钥与之对应。在CPK体系中,称之为私钥,是为了与传统的密钥相区别。私钥有其对应的标识信息(手机号、用户名、邮件地址等),利用CPK私钥矩阵通过某种算法计算而成,而传统的密钥一般不具有对应的标志信息,为一串毫无意义可言的信息。

CPK私钥可以由企业自行生产和存储,但对于特定设备,特定私钥如果要进行签名和打开数字信封的操作,则需要向CPK生产厂家申请授权,这也是CPK设备厂家控制CPK设备,收取授权费用的盈利点。

私钥信息在COS系统中以文件格式存储,由于采用了FAT文件系统,其在FLASH的存储地址几乎就是随机的,无法通过破解FLASH内容来进行攻击破解,信息以加密方式存储,更增加了系统的安全性,私钥的相关信息在Flash上按如下格式存储:

文件偏移 0x00~0x1F 存储内容 备注 使用内部密钥对私钥进行加内部密钥即rG(r为随机数,密 COS第一次下载完成后生成),G为ECC曲线上的基点 0x20 ~ 0x2F 0x20~0x23 签名授权标识 0x00无授权控制; 0x01只控制截止日期; 0x02只控制次数; 0x03同时控制日期与次数 0x24~0x27 0x28~0x2B 0x2C~0x2F 0x30 ~ 0x3F 0x34~0x37 0x30~0x23 截止日期 剩余次数 保留 打开数字信封授权 格式:yyyymmdd的整型数据 每使用一次,次数减一 0x00无授权控制; 0x01只控制截止日期; 0x02只控制次数; 0x03同时控制日期与次数 截止日期 10

格式:yyyymmdd的整型数据

0x38~0x3B 0x3C~0x3F 0x40~0x6F

剩余次数 保留 私钥基于rG的数字信封 每使用一次,次数减一 即csk*rG 本文仅对表中的授权信息进行描述,其它信息不做讲解。授权信息是需要向CPK生产企业获取的。

3.5.2 私钥授权

私钥授权,也体现了CPK实现中COS对其安全性的设计思路,更进一步保护CPK体系中私钥的使用的安全。

私钥授权流程图如下所示:

应用程序COS服务器申请私钥授权,传入私钥文件ID(10-1F)COS返回16字节随机数产生/获取(如果1x文件已存在)随机数信息将随机数及密钥位ID,设备信息发给服务器,请求授权返回授权信息(签名授权和打开数字信封授权)+对授权信息和随机数的签名授权信息+对授权信息和随机数的签名COS做验签处理验签通过保存授权信息验签的公钥存在COS文件中返回处理结果

1. APP(PC端)向COS发送申请私钥授权命令,COS产生随机数,并根据指定的参

数,存储到相应的私钥空间。

2. APP根据COS产生的随机和CPK设备的相关信息等一并发给服务器,得到相关的

设备、指定私钥的授权数据。

注:以上两个动作可以不连续。申请私钥授权命令可以被多次执行,如果随机数未被使用过(未执行过写入授权指令)则不会被COS清除,多次执行会时被直接返回

11