智能密码钥匙查看器UkeyViewer

        最近经常用到不同厂商生产的智能密码钥匙(在本文中将智能密码钥匙称为Ukey),厂商一般会提供 UKey 及其相应的在 Windows 平台上的驱动程序。驱动程序常见形式为 32 位的 dll 格式文件,或者是一个 exe 文件,运行后将 dll 等文件拷贝到用户计算机上。对于现在大部分国内厂商生产的 Ukey,其驱动都符合我国密码行业标准 GM/T 0016-2012《智能密码钥匙密码应用接口规范》。该规范以 C 语言接口函数的形式,定义了访问 Ukey 内部数据结构、调用 Ukey 进行对称加解密、杂凑、公钥加密及签名运算等功能的方法。

        根据 GM/T 0016-2012,每一个 Ukey 都被视为一个设备(device),在该设备内部可以包含多个应用(Application),在每个应用中,又可以包含多个容器(container)(注意:这里的容器是一个智能密码钥匙硬件中的特有概念,与 Docker 容器是两码事)。在每个容器中,可以存放两对公钥,一对用于加解密,另一对用于签名和验签。容器中还可以存放加密密钥对对应的加密数字证书、签名密钥对对应的签名数字证书。Ukey的内部结构可以用下面的示意图表示:

        每当拿到一个 Ukey 后,总是希望知道这个 Ukey 内部信息,比如设备名是什么、包含哪些应用、每个应用中又包含哪些容器、容器的类型是什么。为此我用 C 语言写了一个命令行工具——智能密码钥匙查看器 UkeyViewer,使用它可以看到这个 Ukey 的内部信息。下载地址是:http://download.csdn.net/detail/henter/9752483 。由于下载的 zip 压缩文件中包含 exe 文件,作者也不能保证文件在上传后不会在服务器端遭到篡改,所以建议用户下载后先将 zip 文件上传到 http://www.virscan.org/ 上扫描一下,确认没有问题再运行。

        在运行 UkeyViewer 之前,用户需要先手动配置 ukey_type_info.xml 文件,在其中填入当前计算机能支持的 Ukey 类型个数、每种类型 Ukey 的生产厂商名、驱动程序 dll 文件名。如果不知道驱动程序 dll 文件名,可以向 Ukey 生产厂商的技术人员咨询。目前程序中自带了一个 ukey_type_info.xml 示例文件。在该文件中,支持 3 种类型的 Ukey,并写明了每种 Ukey 的生产厂商名(当前以拼音表示)、驱动程序名。在一般情况下,用户不能直接使用这个示例文件,而是应先了解示例文件的内容极其含义,然后修改它,根据自己的实际情况填写 ukey_type_info.xml 文件中各项的值。

该程序运行后的结果示例如下:

1. 未插入 Ukey 时:


2. 插入一个 Ukey 时:


3. 插入两个 Ukey 时:


附加说明:

        在 2 月 4 日发布这个小程序之后,近日又拿到了一个桃红色的文鼎创新型 Ukey,试验后发现其容器名长度超出了原先 32 个字节的上限。这说明原先设定的上限值太小,为了能让 UkeyViewer 也能够识别这种 Ukey,我对原来的程序做了一点小调整,把原先设置的一些上限修改如下:
1. Ukey 设备名长度不能超过 63 个字节;
2. 一个 Ukey 中最多只能包含 8 个应用;
3. Ukey 中的应用名长度不能超过 63 个字节;
4. 一个应用中最多只能包含 8 个容器;
5. 应用中的容器名长度不能超过 63 个字节。

      这样就可以正确识别这种类型的 Ukey 了。我请 CSDN 网站管理员删除了原来资源的下载链接,重新上传了修改后的程序,并对博客内容也进行了更新。插入一个文鼎创新型 Ukey 后,用 UKeyViewer 查看的结果类似于下图:


  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值