一种基于USBKEY的通信方法和USBKEY与流程

文档序号:21719024发布日期:2020-08-05 01:08阅读:169来源:国知局
一种基于USB KEY的通信方法和USB KEY与流程

本申请实施例涉及信息安全领域,具体涉及一种基于usbkey的通信方法和usbkey。



背景技术:

usbkey从智能卡技术发展而来,是结合了现代密码学技术、智能卡技术和usb技术的新一代身份认证产品,是网络用户身份认证识别和数据保护的良好载体。usbkey可以内部产生私钥,实现私钥的安全存储,具有不可导出性。它可以迅速完成密码算法,包括对称加解密和非对称加解密以及哈希算法,实现数据加解密和数字签名验签等多种安全功能。

usbkey是连接于pc上的公共设备,对于pc上的所有进程是开放的。木马对于系统的攻击,也就是代替csp获取usbkey的签名,从而以csp的身份做一些只有合法进程才能做的事情。

这里攻击的关键是取得usbkey的签名,但是木马没有必要在得到私钥后进行签名,而是只需要拿到签名的结果即可。csp向usbkey发送命令,木马可以截获、修改甚至直接发送虚假命令。usbkey无法识别命令的来源,因此无法阻挡木马获得私钥的签名。



技术实现要素:

为此,本申请实施例提供一种基于usbkey的通信方法、usbkey、设备及可读存储介质,保障了usbkey的通信安全。

为了实现上述目的,本申请实施例提供如下技术方案:

根据本申请实施例的第一方面,提供了一种基于usbkey的通信方法,所述方法包括:

usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的;

接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的;

将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。

可选地,在usbkey生成对称密钥之前,所述方法还包括:

所述usbkey对所述csp系统服务的身份进行验证。

可选地,所述usbkey对所述csp系统服务的身份进行验证,包括:

所述usbkey生成随机数,发送至所述csp系统服务;

接收所述csp系统服务发送的解密结果,所述解密结果是所述csp系统服务利用所述rsa私钥对所述随机数进行解密得到;

利用所述rsa公钥验证所述解密结果,若计算结果为所述随机数,则所述csp验证通过。

可选地,所述将所述第二运算结果与所述对称密钥进行比较,还包括:

若不同,则不允许所述usbkey和所述csp系统服务建立加密通道,并发出警告消息。

根据本申请实施例的第二方面,提供了一种usbkey,所述usbkey包括:

加密模块,用于usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的;

消息接收模块,用于接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的;

校验模块,用于将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。

可选地,所述usbkey还包括:

csp验证模块,用于所述usbkey对所述csp系统服务的身份进行验证。

可选地,所述csp验证模块,具体用于:

所述usbkey生成随机数,发送至所述csp系统服务;

接收所述csp系统服务发送的解密结果,所述解密结果是所述csp系统服务利用所述rsa私钥对所述随机数进行解密得到;

利用所述rsa公钥验证所述解密结果,若计算结果为所述随机数,则所述csp验证通过。

可选地,所述校验模块,还用于:

若所述第二运算结果与所述对称密钥不同,则不允许所述usbkey和所述csp系统服务建立加密通道,并发出警告消息。

根据本申请实施例的第三方面,提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;

所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上述第一方面任一项所述的方法。

根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上述第一方面任一项所述的方法。

综上所述,本申请实施例提供了一种基于usbkey的通信方法、usbkey、设备及可读存储介质,通过usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的;接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的;将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。保障了usbkey的通信安全。

附图说明

为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。

本说明书所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容能涵盖的范围内。

图1为本申请实施例提供的一种usbkey的整体结构示意图;

图2为本申请实施例提供的应用拓扑结构示意图;

图3为本申请实施例提供的另一种应用拓扑结构示意图;

图4为本申请实施例提供的一种基于usbkey的通信方法流程示意图;

图5为本申请实施例提供的一种usbkey系统结构示意图。

具体实施方式

以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

文件进行加密只解决了传送信息的保密问题,而防止他人对传输的文件进行破坏,以及如何确定发信人的身份还需要采取其它的手段,这一手段就是数字签名。在安全保密系统中,数字签名技术有着特别重要的地位,在安全服务中的源鉴别、完整性服务、不可否认服务中,都要用到数字签名技术。

目前的数字签名是建立在公共密钥体制基础上,它是公用密钥加密技术的另一类应用。它的主要方式是,报文的发送方从报文文本中生成一个128位的散列值(或报文摘要)。发送方用自己的私人密钥对这个散列值进行加密来形成发送方的数字签名。然后,这个数字签名将作为报文的附件和报文一起发送给报文的接收方。报文的接收方首先从接收到的原始报文中计算出128位的散列值(或报文摘要),接着再用发送方的公用密钥来对报文附加的数字签名进行解密。如果两个散列值相同、那么接收方就能确认该数字签名是发送方的。通过数字签名能够实现对原始报文的鉴别。

应用广泛的数字签名方法主要有三种,即:rsa签名、dss签名和hash签名。这三种算法可单独使用,也可综合在一起使用。数字签名是通过密码算法对数据进行加、解密变换实现的。

rsa算法中数字签名技术实际上是通过一个哈希函数来实现的。数字签名的特点是它代表了文件的特征,文件如果发生改变,数字签名的值也将发生变化。不同的文件将得到不同的数字签名。一个最简单的哈希函数是把文件的二进制码相累加,取最后的若干位。哈希函数对发送数据的双方都是公开的。

usbkey的整体结构由硬件层、核心驱动层、标准中间件层和应用层组成,如附图1所示。

(1)应用层是针对usbkey开发的各类应用,如网络登录软件或者文件加密器等等。

(2)标准中间件层位于应用层和设备驱动之间,包括基于具有跨平台特性的pkcs#11标准接口和windows平台的加密服务提供商(cryptographicserviceprovider,csp)接口,是微软为windows开发者提供的最底层加解密接口。

(3)核心驱动层是指主机端的usb驱动程序。是依据微软定义的pc/sc(personalcomputer/smartcard)标准开发的驱动程序,使得上层可以通过win32标准函数集访问key。该层负责协调用户主机与硬件层之间的数据交互操作和处理上层应用对key的访问请求。

(4)硬件层包括硬件电路、固化在芯片里的智能卡操作系统cos(cardoperatingsystem)和设备端的usb驱动程序。硬件层和用户主机之间交换cos的apdu(应用协议数据单元applicationprotocoldataunit)。

应用拓扑结构附图2所示。usbkey与windowspc端直接进行交互。

对外的应用,可以有很多,比如远程身份认证,应用拓扑附图3所示。usbkey通过windowspc端与云端进行交互。

usbkey是连接于pc上的公共设备,对于pc上的所有进程是开放的。木马对于系统的攻击,也就是代替csp获取usbkey的签名,从而以csp的身份做一些只有合法进程才能做的事情。这里攻击的关键是取得usbkey的签名,但是木马没有必要在得到私钥后进行签名,而是只需要拿到签名的结果即可。csp向usbkey发送命令,木马可以截获、修改甚至直接发送虚假命令。usbkey无法识别命令的来源,因此无法阻挡木马获得私钥的签名。

图4示出了本申请实施例提出的基于usbkey的通信方法,能够有效阻止这种攻击,能够建立csp和usbkey之间的加密信道,通过usbkey识别发送命令的实体是否合法来保障通信安全。所述方法包括如下步骤:

步骤401:usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的。

步骤402:接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的。

步骤403:将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。

在一种可能的实施方式中,在步骤401之前,所述方法还包括:所述usbkey对所述csp系统服务的身份进行验证。

在一种可能的实施方式中,所述usbkey对所述csp系统服务的身份进行验证,包括:

所述usbkey生成随机数,发送至所述csp系统服务;接收所述csp系统服务发送的解密结果,所述解密结果是所述csp系统服务利用所述rsa私钥对所述随机数进行解密得到;利用所述rsa公钥验证所述解密结果,若计算结果为所述随机数,则所述csp验证通过。

在一种可能的实施方式中,在步骤403中,还包括:若不同,则不允许所述usbkey和所述csp系统服务建立加密通道,并发出警告消息。

本技术方案基于破译rsa能力的零知识证明加数字信封机制。具体可以包括如下步骤:

(1)usbkey在个人化阶段预装一个rsa公钥{e,n},在csp程序的代码中包含rsa私钥{d,n}。

(2)由usbkey产生随机数c,并发送给csp。

(3)csp用私钥d计算:m=c^dmodn,并将m发送给usbkey。

(4)usbkey验证m^emodn=c,则说明通信对象是csp。

由于木马不知道rsa私钥,因而也就不能通过认证。在此基础上usbkey和csp可以通过数字信封机制建立加密通道。具体步骤如下:

(1)usbkey内部产生一个用于加密的对称密钥k,用rsa公钥加密k’=k^emodn,将k’发送给csp。

(2)csp再用rsa私钥对密文进行解密得到过程密钥k=k’^dmodn。

通过以上两种机制,csp与usbkey实现了身份认证,保证了发送命令的实体的身份合法性,同时产生的过程密钥能够使得csp与usbkey之间建立起加密信道。从而抵御了木马攻击。

以后在windowspc借助usbkey实现的系统应用中,都可以采用本发明以加强系统安全性,帮助usbkey抵御木马攻击,因为谁也无法保证windowspc不会感染木马病毒。

综上所述,本申请实施例提供了一种基于usbkey的通信方法,通过usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的;接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的;将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。保障了usbkey的通信安全。

基于相同的技术构思,本申请实施例还提供了一种usbkey,如图5所示,所述usbkey包括:

加密模块501,用于usbkey生成对称密钥,经过rsa公钥加密,将加密后的第一运算结果发送至加密服务提供商csp系统服务;其中,所述rsa公钥是所述usbkey在初始化阶段预存的。

消息接收模块502,用于接收来自所述csp系统服务发送的第二运算结果;所述第二运算结果是所述csp系统服务利用rsa私钥对所述第一运算结果进行解密得到,所述rsa私钥是所述csp系统服务在初始化阶段预存的。

校验模块503,用于将所述第二运算结果与所述对称密钥进行比较,若相同,则允许所述usbkey和所述csp系统服务建立加密通道。

在一种可能的实施方式中,所述usbkey还包括:csp验证模块,用于所述usbkey对所述csp系统服务的身份进行验证。

在一种可能的实施方式中,所述csp验证模块,具体用于:所述usbkey生成随机数,发送至所述csp系统服务;接收所述csp系统服务发送的解密结果,所述解密结果是所述csp系统服务利用所述rsa私钥对所述随机数进行解密得到;利用所述rsa公钥验证所述解密结果,若计算结果为所述随机数,则所述csp验证通过。

在一种可能的实施方式中,所述校验模块503,还用于:若所述第二运算结果与所述对称密钥不同,则不允许所述usbkey和所述csp系统服务建立加密通道,并发出警告消息。

基于相同的技术构思,本申请实施例还提供了一种设备,所述设备包括:数据采集装置、处理器和存储器;所述数据采集装置用于采集数据;所述存储器用于存储一个或多个程序指令;所述处理器,用于执行一个或多个程序指令,用以执行如上述方法任一项所述的方法。

基于相同的技术构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机存储介质中包含一个或多个程序指令,所述一个或多个程序指令用于执行如上述方法任一项所述的方法。

本说明书中上述方法的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。相关之处参见方法实施例的部分说明即可。

需要说明的是,尽管在附图中以特定顺序描述了本发明方法的操作,但这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。

虽然本申请提供了如实施例或流程图的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。

上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。

本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。

通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。

本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本申请可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络pc、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。

以上所述的具体实施例,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施例而已,并不用于限定本申请的保护范围,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1