[发明专利]智能密码钥匙密码验证提取方法在审
申请号: | 201410315542.8 | 申请日: | 2014-07-04 |
公开(公告)号: | CN105227312A | 公开(公告)日: | 2016-01-06 |
发明(设计)人: | 潘理;周志洪;章文康;夏正敏;汪圣莅 | 申请(专利权)人: | 上海交通大学深圳研究院;上海鹏越惊虹信息技术发展有限公司 |
主分类号: | H04L9/32 | 分类号: | H04L9/32 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 智能 密码 钥匙 验证 提取 方法 | ||
技术领域
本发明提供一种智能密码钥匙USBKey密码信息的提取与验证方法,这里的密码信息指的是存储在智能密码钥匙中的会话密钥信息,而不是用户通常输入的PIN码。利用本发明可以对智能密码钥匙的算法正确性进行检测。本发明属于信息安全领域。
背景技术
智能密码钥匙作为用户身份认证的工具之一,在目前有着非常广泛的应用。在某些特殊情况下,比如对智能密码钥匙进行合规性检测时,需要对智能密码钥匙中存储的密钥信息进行读取并得到全部的明文数据,以进行之后的验证等工作。微软制定的的CryptoAPI是目前比较通用的对智能密码钥匙进行管理的接口标准,基于CryptoAPI接口标准与智能密码钥匙,能够实现各种安全认证技术与系统。
经过对现有技术的资料检索发现,CryptoAPI并不提供直接对智能密码钥匙所存储的密钥信息的明文导出的方法。只有在微软的帮助和支持网站上(http://support.microsoft.com/kb/228786/en-us),提供了一种基于“指数1”密钥的会话密钥信息导入与导出的方法。这种方法虽然能够进行密钥的导出和导入,但是操作复杂,需要巧妙地产生出一个“指数1”密钥对智能密码钥匙的会话密钥信息进行加密或解密。这在很大程度上会影响检测系统的性能,而且在生成“指数1”密钥时,一般需要输入智能密钥钥匙的PIN码才能得到相应的权限,这是上述方法所受到的限制条件。
发明内容
本发明针对现有技术的不足,提供一种基于CryptoAPI接口的智能密码钥匙密钥信息提取并验证智能密码钥匙加密算法正确性的方法。这种方法在读取会话密钥信息时,不需要输入PIN码即可进行提取。因此这种方法的限制条件较少,在不知道PIN码的情况下也可以提取会话密钥信息。
本发明是通过以下技术方案来实现的,本发明首先通过CryptoAPI的CryptExportKey方法得到密钥的KEYBLOB文件块信息,其次对KEYBLOB文件块信息进行相应的数据处理,最后得到密钥的明文信息。在得到密钥的明文信息以后,利用其它加密工具对智能密码钥匙的算法进行正确性测试。由于普通的会话密钥信息可以直接以PLAINTEXTKEYBLOB方式导出,在这种方式下,不需要产生其它密钥对会话密钥信息进行额外的加密操作,因此也不会产生输入PIN码的操作。从而简化了提取密钥信息的过程。
本发明包括如下步骤:
步骤一,获得智能密码钥匙密钥句柄,密钥句柄可通过CryptGenKey或CryptGetUserKey方法获得,会话密钥句柄在CryptoAPI中以HCryptKey类型存储。
步骤二:利用CryptExportKey方法导出智能密码钥匙存储的会话密钥的KEYBLOB文件块。KEYBLOB文件块是对密钥数据进行封装后的数据包,根据密钥的类型以及导出方法参数的设置,存在多种类型的KEYBLOB文件块。如果采用非明文方式导出,则需要指定加密密钥数据的密钥。
步骤三:根据KEYBLOB文件块的类型,解封KEYBLOB块头部信息,解密KEYBLOB数据信息,得到密钥的明文信息。如果KEYBLOB文件块的类型是PLAIBTEXTKEYBLOB,那么数据信息无需进行解密,去除头部信息后得到的就是密钥明文信息;如果KEYBLOB文件块是其他类型,如SIMPLEBLOB,那么在去除头部信息以后,还需要对数据进行解密,解密的密钥来自于步骤二中导出KEYBLOB时所使用的密钥。
步骤四:前三个步骤已经完成了密钥信息的提取,本步骤对智能密码钥匙的加密算法进行验证。使用智能密码钥匙对指定明文进行加密,同时利用其它加密工具对相同的明文进行加密,比较加密后得到的结果。
本发明所述方法通过分析KEYBLOB数据块结构对智能密码钥匙的密钥信息进行提取和验证,对于普通的会话密钥,实现了在不输入PIN码的情况下就能进行密钥信息的提取。在此基础上实现了对智能密码钥匙加密算法正确性检验的系统。
附图说明
图1:智能密码钥匙密码提取与验证流程图。
图2:PLAINTEXTKEYBLOB数据解封流程。
图3:SIMPLEBLOB数据解封流程。
具体实施方式
下面结合附图对本发明的实施例作详细说明。本发明所述智能密码钥匙提取密码信息的方法,是利用CryptoAPI接口将密码信息导出成KEYBLOB数据,再对KEYBLOB数据解封得到智能密码钥匙中密钥的明文信息,并在此基础上实现对密码算法的验证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海交通大学深圳研究院;上海鹏越惊虹信息技术发展有限公司,未经上海交通大学深圳研究院;上海鹏越惊虹信息技术发展有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410315542.8/2.html,转载请声明来源钻瓜专利网。