一种基于usbkey的csp实现方法

文档序号:8265289阅读:455来源:国知局
一种基于usbkey的csp实现方法
【技术领域】
[0001]本发明涉及计算机信息安全领域,具体地说是一种基于USBKEY的CSP实现方法。
【背景技术】
[0002]近十年来,信息技术尤其是计算机网络技术得到了飞速发展。人们得益于信息革命带来的巨大机遇的同时,不得不面对信息安全问题的严峻考验。为保证网上数字信息的传输安全,除了在通信传输中采用更强的加密算法等措施之外,必须建立一种信任及信任验证机制,保证传输数据的认证、完整性、机密性和不可否认性。
[0003]CryptoAPI是一个应用程序编程接口,向开发人员提供信息安全方面的各种功能,包括各种加密算法、数字签名算法以及对密钥的管理等,这些功能实现了信息的保密性、完整性和不可抵赖性。CryptoAPI定义了很多函数以及与函数相关的常数、结构、对象,开发人员不用知道底层的细节就可以调用这些函数来实现相关功能。上层应用程序通过CryptoAPI函数对CSP进行操作,并实现加密、解密、签名、验证等过程。
[0004]CSP是密码服务供应商为了给用户提供方便,针对应用层提供的标准接口函数。CryptoAPI事实上是通过CSP以多种方式实现同一密码函数。CSP是一个独立的模块,它实现了那些通过CryptoAPI公共接口访问的密码函数,即CSP封装和隐藏了密码算法的具体实现,这样用户就不需要去关心它。
[0005]PKI技术以数字证书为媒介,通过对证书的使用和管理,可在网络信息交流中实现身份认证并保证信息传输的安全性。USBKey中存储了数字证书和对应的私钥,并且不允许私钥导出。即使USBKey丢失也有口令保护,不会造成私钥的随意泄漏,正是USBKey的小巧、方便易用以及高安全可靠性,使得它的应用范围越来越广在证书系统中成为重要载体。

【发明内容】

[0006]本发明的技术任务是提供一种基于USBKEY的CSP实现方法。
[0007]本发明的技术任务是按以下方式实现的,该方法步骤如下:
在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用Crypto API中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。
[0008]所述的Crypto API从系统调用层次方面分为相互独立的三层:
1)应用层:用户通过调用系统层提供的CryptoAPI使用加密服务的应用程序,利用统一的API接口进行编程,由操作系统通过统一的SPI接口来与具体的CSP进行交互;
2)中间层:即操作系统层,隔离了应用层和底层CSP和具体加密实现细节,为应用层提供统一的API接口,为加密服务提供层提供SPI接口;
3)加密服务提供层:使用不同的加密和签名算法产生密钥,交换密钥、数据的加密验证。
[0009]所述的CSP的开发流程如下:
1)Crypto SPI 函数集
自定义的CSP的DLL包括所有的Crypto SPI函数,按照功能分为4大类:连接、密钥产生与交换、数据加密以及哈希和数字签名;
2)CSP的结构设计
CSP的结构从下往上分为三层:硬件抽象层、功能实现层以及接口封装层;
硬件抽象层:该层屏蔽了硬件的具体实现细节,为功能实现层提供一个统一的卡片操作函数;
功能实现层:该层的核心部分是卡片文件系统,完成卡片资源空间的分配和回收;同时该层对硬件抽象层进一步封装,为接口封装层提供更友好的界面;该层可供底层开发用户使用;
接口封装层:该层实现CSP所定义的标准;
3)设计CSP动态链接库
开发一个包含CSP接口函数的壳动态库Shell, dll文件来获取微软签名,壳动态库Shell, dll是用来调用实体CSP动态库Csp.dll ;
基于 USBKEY 的 CSP 由以下四个 DLL 组成:Shell, dll,Csp.dll,Token, dll 和 U1.dll ;其中CryptoAPI函数调用Shell, dll,具体的功能都在Csp.dll实现,Token, dll为Csp.dll提供统一的卡片操作函数,U1.dll提供友好的界面函数接口 ;
4)CSP注册程序
建立CSP的安装程序,将CSP的DLL拷贝到指定的目录,安装完成后,Shell, dll获得微软的正式签名,就可以通过CryptAPI测试开发出的CSP。
[0010]本发明的一种基于USBKEY的CSP实现方法和现有技术相比,不仅充分满足CryptoSPI标准在功能和安全性方面的要求,使得用户可以通过CryptoAPI来使用USBKey所提供的高安全的加密服务,而且能很好地满足终端安全领域的市场需求。
【附图说明】
[0011]附图1为一种基于USBKEY的CSP实现方法的加密服务体系结构示意图。
[0012]附图2为一种基于USBKEY的CSP实现方法的CSP和CryptoAPI接口关系示意图。
[0013]附图3为一种基于USBKEY的CSP实现方法的CSP设计结构示意图。
[0014]附图4为一种基于USBKEY的CSP实现方法的动态库的组建结构示意图。
【具体实施方式】
[0015]实施例1:
该基于USBKEY的CSP实现方法步骤如下:
在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用Crypto API中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。
[0016]所述的Crypto API从系统调用层次方面分为相互独立的三层:
1)应用层:用户通过调用系统层提供的CryptoAPI使用加密服务的应用程序,利用统一的API接口进行编程,由操作系统通过统一的SPI接口来与具体的CSP进行交互;
2)中间层:即操作系统层,隔离了应用层和底层CSP和具体加密实现细节,为应用层提供统一的API接口,为加密服务提供层提供SPI接口;
3)加密服务提供层:CSP是一个真正的数据加密独立于应用层和操作系统的模块,具体功能包括使用不同的加密和签名算法产生密钥,交换密钥、数据的加密验证。
[0017]所述的CSP的开发流程如下:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1