CN104579687A - 一种基于usbkey的csp实现方法 - Google Patents

一种基于usbkey的csp实现方法 Download PDF

Info

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
Application number
CN201510025834.2A
Other languages
English (en)
Inventor
梁媛
刘刚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201510025834.2A priority Critical patent/CN104579687A/zh
Publication of CN104579687A publication Critical patent/CN104579687A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种基于USBKEY的CSP实现方法,该方法步骤如下:在申请证书时选择CSP,将证书下载到USBKey中,利用公钥和证书进行数据的加解密和签名验证,证书使用CryptoAPI中的证书相关函数接口进行导入和导出;USBKey的内部保存着每个合法用户的证书和RSA密钥对,并且不允许导出私钥,需要时对私钥进行的操作均在USBKey中实现;以数字证书为媒介,通过对证书的使用和管理,在网络信息交流中实现身份认证并保证信息传输的安全性。本发明的一种基于USBKEY的CSP实现方法和现有技术相比,不仅充分满足CryptoSPI标准在功能和安全性方面的要求,使得用户可以通过CryptoAPI来使用USBKey所提供的高安全的加密服务,而且能很好地满足终端安全领域的市场需求。

Description

一种基于USBKEY的CSP实现方法
技术领域
本发明涉及计算机信息安全领域,具体地说是一种基于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。
CN201510025834.2A 2015-01-19 2015-01-19 一种基于usbkey的csp实现方法 Pending CN104579687A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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的安全套件库***

Patent Citations (3)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
刘晗嘉等: "基于USB KEY的CSP实现", 《计算机应用与软件》 *

Cited By (10)

* Cited by examiner, † Cited by third party
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