CN104579687A - 一种基于usbkey的csp实现方法 - Google Patents
一种基于usbkey的csp实现方法 Download PDFInfo
- Publication number
- CN104579687A CN104579687A CN201510025834.2A CN201510025834A CN104579687A CN 104579687 A CN104579687 A CN 104579687A CN 201510025834 A CN201510025834 A CN 201510025834A CN 104579687 A CN104579687 A CN 104579687A
- Authority
- CN
- China
- Prior art keywords
- csp
- layer
- dll
- usbkey
- certificate
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于USBKEY的CSP实现方法,该方法步骤如下:在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用CryptoAPI中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。本发明的一种基于USBKEY的CSP实现方法和现有技术相比,不仅充分满足CryptoSPI标准在功能和安全性方面的要求,使得用户可以通过CryptoAPI来使用USBKey所提供的高安全的加密服务,而且能很好地满足终端安全领域的市场需求。
Description
技术领域
本发明涉及计算机信息安全领域,具体地说是一种基于USBKEY的CSP实现方法。
背景技术
近十年来,信息技术尤其是计算机网络技术得到了飞速发展。人们得益于信息革命带来的巨大机遇的同时,不得不面对信息安全问题的严峻考验。为保证网上数字信息的传输安全,除了在通信传输中采用更强的加密算法等措施之外,必须建立一种信任及信任验证机制,保证传输数据的认证、完整性、机密性和不可否认性。
CryptoAPI是一个应用程序编程接口,向开发人员提供信息安全方面的各种功能,包括各种加密算法、数字签名算法以及对密钥的管理等,这些功能实现了信息的保密性、完整性和不可抵赖性。CryptoAPI定义了很多函数以及与函数相关的常数、结构 、对象,开发人员不用知道底层的细节就可以调用这些函数来实现相关功能。上层应用程序通过CryptoAPI函数对CSP进行操作,并实现加密、解密、签名、验证等过程。
CSP是密码服务供应商为了给用户提供方便,针对应用层提供的标准接口函数。CryptoAPI事实上是通过CSP以多种方式实现同一密码函数。CSP是一个独立的模块,它实现了那些通过CryptoAPI公共接口访问的密码函数,即CSP封装和隐藏了密码算法的具体实现,这样用户就不需要去关心它。
PKI技术以数字证书为媒介,通过对证书的使用和管理,可在网络信息交流中实现身份认证并保证信息传输的安全性。USBKey中存储了数字证书和对应的私钥,并且不允许私钥导出。即使USBKey 丢失也有口令保护,不会造成私钥的随意泄漏,正是USBKey 的小巧、方便易用以及高安全可靠性,使得它的应用范围越来越广在证书***中成为重要载体。
发明内容
本发明的技术任务是提供一种基于USBKEY的CSP实现方法。
本发明的技术任务是按以下方式实现的,该方法步骤如下:
在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用Crypto API中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。
所述的Crypto API从***调用层次方面分为相互独立的三层:
1)应用层:用户通过调用***层提供的Crypto API使用加密服务的应用程序,利用统一的API接口进行编程,由操作***通过统一的SPI接口来与具体的CSP进行交互;
2)中间层:即操作***层,隔离了应用层和底层CSP和具体加密实现细节,为应用层提供统一的API接口,为加密服务提供层提供SPI接口;
3)加密服务提供层:使用不同的加密和签名算法产生密钥,交换密钥、数据的加密验证。
所述的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和UI.dll;其中CryptoAPI函数调用Shell.dll,具体的功能都在Csp.dll实现,Token.dll为Csp.dll提供统一的卡片操作函数,UI.dll提供友好的界面函数接口;
4)CSP注册程序
建立CSP的安装程序,将CSP的DLL拷贝到指定的目录,安装完成后,Shell.dll获得微软的正式签名,就可以通过CryptAPI测试开发出的CSP。
本发明的一种基于USBKEY的CSP实现方法和现有技术相比,不仅充分满足CryptoSPI标准在功能和安全性方面的要求,使得用户可以通过CryptoAPI来使用USBKey所提供的高安全的加密服务,而且能很好地满足终端安全领域的市场需求。
附图说明
附图1为一种基于USBKEY的CSP实现方法的加密服务体系结构示意图。
附图2为一种基于USBKEY的CSP实现方法的CSP和CryptoAPI接口关系示意图。
附图3为一种基于USBKEY的CSP实现方法的CSP设计结构示意图。
附图4为一种基于USBKEY的CSP实现方法的动态库的组建结构示意图。
具体实施方式
实施例1:
该基于USBKEY的CSP实现方法步骤如下:
在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用Crypto API中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。
所述的Crypto API从***调用层次方面分为相互独立的三层:
1)应用层:用户通过调用***层提供的Crypto API使用加密服务的应用程序,利用统一的API接口进行编程,由操作***通过统一的SPI接口来与具体的CSP进行交互;
2)中间层:即操作***层,隔离了应用层和底层CSP和具体加密实现细节,为应用层提供统一的API接口,为加密服务提供层提供SPI接口;
3)加密服务提供层:CSP是一个真正的数据加密独立于应用层和操作***的模块,具体功能包括使用不同的加密和签名算法产生密钥,交换密钥、数据的加密验证。
所述的CSP的开发流程如下:
1)Crypto SPI函数集
自定义的CSP的DLL包括所有的Crypto SPI函数,PROV_RSA_FULL类型的CSP必须提供与Crypto API中的基本加密函数接口完全对应的Crypto SPI的23个接口函数,按照功能分为四大类:连接、密钥产生与交换、数据加密以及哈希和数字签名;
2)CSP的结构设计
CSP的结构从下往上分为三层:硬件抽象层、功能实现层以及接口封装层;
硬件抽象层:该层屏蔽了硬件的具体实现细节,为功能实现层提供一个统一的卡片操作函数;
功能实现层:该层的核心部分是卡片文件***,完成卡片资源空间的分配和回收;同时该层对硬件抽象层进一步封装,为接口封装层提供更友好的界面;该层可供底层开发用户使用;
接口封装层:该层实现CSP所定义的标准;
3)设计CSP动态链接库
开发一个包含CSP接口函数的壳动态库Shell.dll文件来获取微软签名,壳动态库Shell.dll是用来调用实体CSP动态库Csp.dll;
基于USBKEY的CSP由以下四个DLL组成: Shell.dll、Csp.dll、Token.dll和UI.dll;其中CryptoAPI函数调用Shell.dll,具体的功能都在Csp.dll实现,Token.dll为Csp.dll提供统一的卡片操作函数,UI.dll提供友好的界面函数接口;Csp.dll除了实现CSP标准外,还扩展了部分函数功能,增加了PIN口令以及KEY初始化操作,从而更好地满足应用开发的需要。
4)CSP注册程序
建立CSP的安装程序,要建立适当的注册表,将CSP的DLL拷贝到指定的目录,安装完成后,Shell.dll获得微软的正式签名,就可以通过CryptAPI测试开发出的CSP。
本发明设计的USBKey是免驱动的,操作***可以直接识别设备,使用方便。USBKey作为密码设备,CSP的DLL是建立在USBKey通信函数之上的,即硬件抽象层实现USBKey的信息互动,可以根据不同的COS命令,把COS命令通过函数UKeyTransmit(hCardHandle, SendData, SendDataLen, ReceiveData, ReceiveDataLen)进行通讯,SendData参数为发送到USBKey的COS命令,然后通过ReceiveData参数接收返回的处理信息, 另外还有其他封装的函数接口, 如写文件WriteFile、 签名RSASignature 等。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
Claims (3)
1.一种基于USBKEY的CSP实现方法,其特征在于,该方法步骤如下:
在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用Crypto API中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。
2.根据权利要求1所述的一种基于USBKEY的CSP实现方法,其特征在于,所述的Crypto API从***调用层次方面分为相互独立的三层:
1)应用层:用户通过调用***层提供的Crypto API使用加密服务的应用程序,利用统一的API接口进行编程,由操作***通过统一的SPI接口来与具体的CSP进行交互;
2)中间层:即操作***层,隔离了应用层和底层CSP和具体加密实现细节,为应用层提供统一的API接口,为加密服务提供层提供SPI接口;
3)加密服务提供层:使用不同的加密和签名算法产生密钥,交换密钥、数据的加密验证。
3.根据权利要求1所述的一种基于USBKEY的CSP实现方法,其特征在于,所述的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和UI.dll;其中CryptoAPI函数调用Shell.dll,具体的功能都在Csp.dll实现,Token.dll为Csp.dll提供统一的卡片操作函数,UI.dll提供友好的界面函数接口;
4)CSP注册程序
建立CSP的安装程序,将CSP的DLL拷贝到指定的目录,安装完成后,Shell.dll获得微软的正式签名,就可以通过CryptAPI测试开发出的CSP。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510025834.2A CN104579687A (zh) | 2015-01-19 | 2015-01-19 | 一种基于usbkey的csp实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510025834.2A CN104579687A (zh) | 2015-01-19 | 2015-01-19 | 一种基于usbkey的csp实现方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104579687A true CN104579687A (zh) | 2015-04-29 |
Family
ID=53094966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510025834.2A Pending CN104579687A (zh) | 2015-01-19 | 2015-01-19 | 一种基于usbkey的csp实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104579687A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060037A (zh) * | 2016-05-27 | 2016-10-26 | 北京京东尚科信息技术有限公司 | 基于http接口的加解密方法、装置及*** |
CN107729760A (zh) * | 2017-10-09 | 2018-02-23 | 惠州Tcl移动通信有限公司 | 基于Android***的CSP实现方法及智能终端 |
CN107977565A (zh) * | 2016-10-25 | 2018-05-01 | 航天信息股份有限公司 | Usbkey接口***及与usbkey连接的方法 |
CN108173659A (zh) * | 2017-12-18 | 2018-06-15 | 河北华沃通信科技有限公司 | 一种基于ukey设备的证书管理方法、***及终端设备 |
CN110263524A (zh) * | 2019-08-05 | 2019-09-20 | 厦门亿力吉奥科技信息有限公司 | 一种移动设备加密u盾 |
CN111241605A (zh) * | 2019-12-31 | 2020-06-05 | 航天信息股份有限公司 | 基于税务数字证书的安全存储装置及方法 |
CN112328932A (zh) * | 2020-07-30 | 2021-02-05 | 神州融安科技(北京)有限公司 | 操作执行方法、电子设备及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196968A (zh) * | 2007-12-17 | 2008-06-11 | 山东超越数控电子有限公司 | 一种单机信息的安全保护方法 |
US20120291023A1 (en) * | 2010-11-25 | 2012-11-15 | Feitian Technologies Co., Ltd. | Device and method for automatic driver installation |
CN103457742A (zh) * | 2013-09-18 | 2013-12-18 | 浪潮电子信息产业股份有限公司 | 一种基于usb key的安全套件库*** |
-
2015
- 2015-01-19 CN CN201510025834.2A patent/CN104579687A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101196968A (zh) * | 2007-12-17 | 2008-06-11 | 山东超越数控电子有限公司 | 一种单机信息的安全保护方法 |
US20120291023A1 (en) * | 2010-11-25 | 2012-11-15 | Feitian Technologies Co., Ltd. | Device and method for automatic driver installation |
CN103457742A (zh) * | 2013-09-18 | 2013-12-18 | 浪潮电子信息产业股份有限公司 | 一种基于usb key的安全套件库*** |
Non-Patent Citations (1)
Title |
---|
刘晗嘉等: "基于USB KEY的CSP实现", 《计算机应用与软件》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106060037A (zh) * | 2016-05-27 | 2016-10-26 | 北京京东尚科信息技术有限公司 | 基于http接口的加解密方法、装置及*** |
CN106060037B (zh) * | 2016-05-27 | 2019-07-02 | 北京京东尚科信息技术有限公司 | 基于http接口的加解密方法、装置及*** |
CN107977565A (zh) * | 2016-10-25 | 2018-05-01 | 航天信息股份有限公司 | Usbkey接口***及与usbkey连接的方法 |
CN107729760A (zh) * | 2017-10-09 | 2018-02-23 | 惠州Tcl移动通信有限公司 | 基于Android***的CSP实现方法及智能终端 |
CN107729760B (zh) * | 2017-10-09 | 2022-01-04 | 惠州Tcl移动通信有限公司 | 基于Android***的CSP实现方法及智能终端 |
CN108173659A (zh) * | 2017-12-18 | 2018-06-15 | 河北华沃通信科技有限公司 | 一种基于ukey设备的证书管理方法、***及终端设备 |
CN108173659B (zh) * | 2017-12-18 | 2020-11-10 | 河北华沃通信科技有限公司 | 一种基于ukey设备的证书管理方法、***及终端设备 |
CN110263524A (zh) * | 2019-08-05 | 2019-09-20 | 厦门亿力吉奥科技信息有限公司 | 一种移动设备加密u盾 |
CN111241605A (zh) * | 2019-12-31 | 2020-06-05 | 航天信息股份有限公司 | 基于税务数字证书的安全存储装置及方法 |
CN112328932A (zh) * | 2020-07-30 | 2021-02-05 | 神州融安科技(北京)有限公司 | 操作执行方法、电子设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429254B (zh) | 一种业务数据处理方法、设备以及可读存储介质 | |
CN110933108B (zh) | 基于区块链网络的数据处理方法、装置、电子设备及存储介质 | |
CN104579687A (zh) | 一种基于usbkey的csp实现方法 | |
CN1708942B (zh) | 设备特定安全性数据的安全实现及利用 | |
CN102711101B (zh) | 一种实现智能卡发行的方法及*** | |
CN108924147B (zh) | 通信终端数字证书签发的方法、服务器以及通信终端 | |
US10880100B2 (en) | Apparatus and method for certificate enrollment | |
KR101213984B1 (ko) | 복합 인증 시스템을 구비한 하이브리드 클라우드 | |
CN104205891A (zh) | 虚拟sim卡云平台 | |
CN109547464A (zh) | 用于存储和执行访问控制客户端的方法及装置 | |
US20080148062A1 (en) | Method for the secure storing of program state data in an electronic device | |
CN103152179A (zh) | 一种适用于多应用***的统一身份认证方法 | |
CN101043335A (zh) | 一种信息安全控制*** | |
CN101841525A (zh) | 安全接入方法、***及客户端 | |
CN105282179A (zh) | 一种基于cpk的家庭物联网安全控制的方法 | |
WO2015158172A1 (zh) | 一种用户身份识别卡 | |
CN105635062A (zh) | 网络接入设备的验证方法和装置 | |
CN104462949A (zh) | 一种插件的调用方法及装置 | |
CN101296083A (zh) | 一种加密数据传输方法和*** | |
CN113515756B (zh) | 基于区块链的高可信数字身份管理方法及*** | |
CN108847942A (zh) | 一种基于标识公钥的认证方法及*** | |
CN105653986A (zh) | 一种基于microSD卡的数据保护方法及装置 | |
CN105812334A (zh) | 一种网络认证方法 | |
Cooijmans et al. | Secure key storage and secure computation in Android | |
CN111241492A (zh) | 一种产品多租户安全授信方法、***及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20150429 |