CN118094524A - 基于操作系统管理多用户使用加密卡资源的方法及装置 - Google Patents
基于操作系统管理多用户使用加密卡资源的方法及装置 Download PDFInfo
- Publication number
- CN118094524A CN118094524A CN202410287322.2A CN202410287322A CN118094524A CN 118094524 A CN118094524 A CN 118094524A CN 202410287322 A CN202410287322 A CN 202410287322A CN 118094524 A CN118094524 A CN 118094524A
- Authority
- CN
- China
- Prior art keywords
- sdf
- key
- system user
- interface
- instance
- 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
- 238000000034 method Methods 0.000 title claims abstract description 50
- 238000004422 calculation algorithm Methods 0.000 claims description 41
- 238000006243 chemical reaction Methods 0.000 claims description 21
- 238000005538 encapsulation Methods 0.000 claims description 21
- 230000006870 function Effects 0.000 claims description 16
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000002085 persistent effect Effects 0.000 claims description 10
- 238000004806 packaging method and process Methods 0.000 claims description 9
- 230000008676 import Effects 0.000 claims description 8
- 238000012545 processing Methods 0.000 claims description 7
- 239000000758 substrate Substances 0.000 claims 2
- 238000007726 management method Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 238000012550 audit Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000013468 resource allocation Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供了一种基于操作系统管理多用户使用加密卡资源的方法及装置,涉及资源管理技术领域,操作系统通过在SDF软件栈中布设密码算法接口转换层、SDF逻辑实现层和SDF封装接口,在SDF逻辑实现层中,以系统用户为单位,通过创建SDF实例来限制系统用户对加密卡资源的使用,并为指定系统用户创建相应的密钥类型和密钥索引,将生成的相应密钥类型的密钥根据相应密钥索引存储至对应SDF实例中,当接收到目标系统用户使用SDF封装接口访问加密卡资源时,从对应SDF实例中获取密钥,并调用加密卡以由加密卡为目标系统用户提供相应密码运算。本方案无需PCIe硬件支持,仅由操作系统即可实现对多用户使用加密卡资源的管理。
Description
技术领域
本发明实施例涉及资源管理技术领域,特别涉及一种基于操作系统管理多用户使用加密卡资源的方法及装置。
背景技术
随着互联网、大数据、人工智能和物联网等行业的快速发展,人们对密码模块的依赖与日俱增。密码模块作为基础密码设备,在金融、互联网、工控等行业中为各类安全应用提供身份认证、算法加速、敏感安全参数管理和保护等服务。
目前采用软件密码模块和硬件加密卡来同时提供密码服务,在对加密卡资源进行分配时,通常采用加密卡虚拟化技术来实现资源分配。现有的加密卡虚拟化技术均需要PCIe硬件支持,需要加密设备支持PCIe的虚拟化功能。
发明内容
本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法及装置,在无需PCIe硬件支持的情况下,由操作系统实现用户对加密卡资源使用的管理。
第一方面,本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述方法由所述SDF逻辑实现层执行,所述方法包括:
为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
第二方面,本发明实施例还提供了一种基于操作系统管理多用户使用加密卡资源的装置,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述装置位于所述SDF逻辑实现层中,所述装置包括:
SDF实例创建单元,用于为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
密钥生成单元,用于为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
访问处理单元,用于在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法及装置,操作系统在外接加密卡后安装加密卡驱动以及获取加密卡调用接口,并在SDF软件栈中布设密码算法接口转换层、SDF逻辑实现层和SDF封装接口,在SDF逻辑实现层中,以系统用户为单位,通过创建SDF实例来限制系统用户对加密卡资源的使用,在为指定系统用户创建SDF实例后,为指定系统用户创建相应的密钥类型和密钥索引,将生成的相应密钥类型的密钥根据相应密钥索引存储至对应SDF实例中,当接收到目标系统用户使用SDF封装接口访问加密卡资源时,从对应SDF实例中获取密钥,并调用加密卡以由加密卡为目标系统用户提供相应密码运算。可见,本方案无需PCIe硬件支持,仅由操作系统即可实现对多用户使用加密卡资源的管理。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于操作系统管理多用户使用加密卡资源的方法流程图;
图2是本发明一实施例提供的一种加密卡软件栈结构示意图;
图3是本发明一实施例提供的一种电子设备的硬件架构图;
图4是本发明一实施例提供的一种基于操作系统管理多用户使用加密卡资源的装置结构图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述方法由所述SDF逻辑实现层执行,该方法包括:
步骤100,为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
步骤102,为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
步骤104,在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
本发明实施例中,操作系统在外接加密卡后安装加密卡驱动以及获取加密卡调用接口,并在SDF软件栈中布设密码算法接口转换层、SDF逻辑实现层和SDF封装接口,在SDF逻辑实现层中,以系统用户为单位,通过创建SDF实例来限制系统用户对加密卡资源的使用,在为指定系统用户创建SDF实例后,为指定系统用户创建相应的密钥类型和密钥索引,将生成的相应密钥类型的密钥根据相应密钥索引存储至对应SDF实例中,当接收到目标系统用户使用SDF封装接口访问加密卡资源时,从对应SDF实例中获取密钥,并调用加密卡以由加密卡为目标系统用户提供相应密码运算。可见,本方案无需PCIe硬件支持,仅由操作系统即可实现对多用户使用加密卡资源的管理。
在描述图1所示各个步骤的执行方式之前,先对操作系统与加密卡的结构关系进行说明。
请参考图2,为加密卡软件栈结构示意图。操作系统外接加密卡,该加密卡为支持国密的加密卡,操作系统中包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈。
其中,加密卡驱动和加密卡调用接口是由加密卡厂商提供的,通过调用加密卡调用接口以利用加密卡驱动可以实现对加密卡的资源调用。
为了实现对多个用户使用加密卡资源的管理,在SDF软件栈中布设有密码算法接口转换层、SDF逻辑实现层和SDF封装接口。
下面在整体上对SDF软件栈中每一个模块分别进行说明。
第一、密码算法接口转换层,用于将加密卡调用接口转换为多个实现不同功能的密码算法接口。在需要实现相应功能的密码算法时,直接调用相应的密码算法接口,由此由加密卡提供相应密码运算。
在本发明实施例中,密码算法接口至少包括如下中的多个:持久密钥生成和撤销接口、用户密钥生成导入和导出接口、国密密码运算接口、密钥协商接口、随机数获取接口、国密SM3哈希计算接口以及HMAC计算接口。
下面对上述各个密码算法接口分别进行说明。
1、持久密钥生成和撤销接口:持久密钥是指可以持久性存储在加密卡中的密钥,即使机器重启或掉电,密钥依然能够存储在加密卡中。本发明实施例中,持久密钥用于对系统用户的SDF实例参数和SDF实例的密钥进行加密保护。持久密钥生成接口用于生成持久密钥,持久密钥撤销接口用于清除加密卡中的持久密钥。
2、用户密钥生成导入和导出接口:用户密钥在做密码运算时,需要从外部解密导入到加密卡中,然后使用密钥数据进行密码运算。用户密钥生成导入接口用于将用户密钥导入至加密卡中,用户密钥生成导出接口用于将生成的用户密钥导出到操作系统的指定位置,然后由加密卡加密存储。
3、国密密码运算接口:国密密码运算接口包括国密SM4对称密码运算和国密SM2非对称密码运算。
4、密钥协商接口:密钥协商接口是调用者和响应者双方协商会话密钥的过程接口,由调用者的两个接口和响应者的一个接口组成。有的加密卡会提供此类接口,若加密卡不支持此类接口,则可根据SM2的密钥交互协议标准规范调用加密的密码算法进行组装实现。
5、随机数获取接口:用于从加密卡中获取指定字节数量的随机数值。
6、国密SM3哈希计算接口:用于调用加密卡实现国密SM3哈希计算功能。
7、HMAC计算接口:用于调用加密卡实现HMAC(Hash-based MessageAuthentication Code,哈希消息认证码)的计算。
第二、SDF逻辑实现层,用于负责实现对多用户使用加密卡资源的管理。比如,SDF封装接口的逻辑功能、SDF实例与系统用户的映射、安全审计功能等。该部分的执行方式在后续对图1的描述过程进行说明。
第三、SDF封装接口,通过本地进程间通信为操作系统中的系统用户提供标准的SDF封装接口的使用。本发明实施例中,该SDF封装接口至少包括如下任意一种类型的接口:会话密钥接口、对称加密操作接口、非对称加密操作接口和哈希操作接口。
下面对上述每一种类型的SDF封装接口分别进行说明。
会话密钥接口:会话密钥是在SDF实例上运行的临时密钥,不会永久存储在SDF实例上。这些会话密钥接口包括密钥协商生成的密钥和从外部导入的会话密钥。
对称加密操作接口:包括SDF实例提供的对称加密接口和解密接口。
非对称加密操作接口:包括SDF实例提供的非对称加密接口和非对称解密接口,以及非对称签名和验签接口。
哈希操作接口:包括SDF实例提供的哈希相关的接口和HMAC接口。
由于加密卡种类多,加密卡厂商提供的加密卡调用接口各异,为了保证操作系统对多种加密卡的支持,本发明实施例中,在操作系统上为系统用户提供上述SDF封装接口,并且为系统用户屏蔽厂商提供的加密卡调用接口,系统用户在需要使用加密卡资源时,可以使用上述SDF封装接口访问加密卡资源,如此可以便于对系统用户使用加密卡资源的管理。
下面描述图1所示的各个步骤的执行方式。
首先,针对步骤100“为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源”和步骤102“为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中”同时进行说明。
操作系统中存在多个系统用户,同时加密卡资源有限,所以加密卡资源无法保证能够同时多个系统用户的使用。为了让操作系统中的系统用户合理使用加密卡,需要在操作系统层面上加入对系统用户分配加密卡资源的功能。
本发明实施例中,以操作系统中的系统用户为单位进行加密卡资源分配,为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源,未创建有SDF实例的系统用户不可使用加密卡资源。
具体地,可以通过如下方式为操作系统中每一个指定系统用户创建对应的SDF实例,包括:针对操作系统中每一个指定系统用户,均执行:获取该指定系统用户的用户名;确定该指定系统用户的用户名是否存在,若存在,则在指定路径下根据该指定系统用户的用户名创建对应的SDF实例目录,并在创建的SDF实例目录下创建空的密钥文件。
其中,指定系统用户可以是部分系统用户,也可以是全部系统用户。
需要说明的是,不同指定系统用户的指定路径可以相同,也可以不同。且每一个指定系统用户均拥有各自的SDF实例目录。
SDF实例目录下创建的空的密钥文件用于存放该指定系统用户的密钥。因此,在创建SDF实例之后,还需要为指定系统用户生成相应的密钥。
在步骤102中,需要为每一个指定系统用户创建相应的密钥类型和密钥索引。其中,密钥类型包括对称密钥和非对称密钥。密钥索引用于指示密钥的存储位置。
本发明实施例中,为指定系统用户创建的密钥类型可以为一种,也可以为两种。针对创建的每一种密钥类型均需生成相应密钥类型的密钥。其中,密钥的生成方式是直接调用密码算法接口转换层提供的密码算法接口来实现。
一个实施例中,调用相应功能的密码算法接口,在加密卡中生成相应密钥类型的密钥。其中,该密码算法接口为用户密钥生成导入和导出接口。具体地,在密钥类型为非对称密钥时,则调用用户密钥生成导入和导出接口在加密卡中生成非对称密钥对;在密钥类型为对称密钥时,则调用用户密钥生成导入和导出接口在加密卡中生成对称密钥。
相应地,在生成密钥之后,需要根据相应密钥索引将生成的密钥存储至对应SDF实例中,具体地,针对操作系统中每一个指定系统用户,均执行:根据该指定系统用户的用户名确定对应SDF实例目录下的密钥文件,根据该指定系统用户相应密钥索引计算存储位置,并将生成的密钥存储至该密钥文件的相应存储位置中。
另一个实施例中,为了保证生成的密钥的存储安全性,在上述实施例中利用加密卡生成相应密钥类型的密钥之后,还可以利用加密卡对生成的密钥进行加密。
可以理解,在得到的密钥为经过加密卡加密后的密钥时,上述存储至对应SDF实例中的密钥为经过加密卡加密后的密钥。
在本发明一个实施例中,当为某个系统用户创建SDF实例之后,若需要禁止该系统用户访问加密卡资源,那么可以通过删除该系统用户的SDF实例来实现。具体地,根据该系统用户的用户名将指定路径下该系统用户的SDF实例目录删除。
然后,针对步骤104,在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
由于在面向系统用户时,加密卡厂商提供的加密卡调用接口是被屏蔽,系统用户只能使用SDF封装接口访问加密卡资源。比如系统用户需要进行对称加密操作时,则使用对称加密操作接口访问加密卡资源,以由加密卡为其提供对称加密操作;再比如系统用户需要进行非对称加密操作时则使用非对称加密操作接口访问加密卡资源,以由加密卡为其提供非对称加密操作。通过向系统用户提供SDF封装接口,而屏蔽加密卡调用接口,不仅可以便于实现对系统用户访问加密卡资源的管理,还可以实现细粒度的加密卡资源管理控制。
在接收到目标系统用户使用SDF封装接口访问加密卡资源时,首先需要根据该目标系统用户的用户名确定是否存在目标系统用户的SDF实例,只有存在目标系统用户的SDF实例才具有访问加密卡资源的资格,若不存在SDF实例,则拒绝目标系统用户访问加密卡资源。不同SDF封装接口在实现相应操作时,需要使用相应的密钥类型的密钥来实现,因此需要基于目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,利用密码算法接口转换层通过加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算。
需要说明的是,若SDF实例中存储密钥的密钥类型与目标系统用户使用固定SDF封装接口所需的密钥类型不同,则拒绝目标系统用户对加密卡资源的访问。
在本发明一个实施例中,为了实现对系统用户访问加密卡资源的限制管理,还可以包括:生成并存储SDF封装接口的黑名单,所述黑名单中包括指定系统用户禁止访问的SDF封装接口的类型。比如指定系统用户A禁止访问会话密钥接口和对称加密操作接口,指定系统用户B禁止访问非对称加密操作接口。
本发明实施例中,黑名单至少可以对应两种形式,一种是黑名单中包括所有被禁止访问的指定系统用户,另一种是每一个被禁止访问的指定系统用户均对应有一个黑名单。
无论黑名单是哪种形式,均需存储在固定位置,以便于后续使用时能够快速从固定位置处获取到。
在存储黑名单之前,还可以使用加密卡对黑名单进行加密,以将加密后的黑名单存储在固定位置。
在本发明一个实施例中,当操作系统采用黑名单对系统用户访问加密卡资源实现限制管理时,那么在基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥之前,还可以包括:获取所述黑名单,根据所述黑名单确定所述目标系统用户在访问加密卡资源时所使用的SDF封装接口的类型是否为禁止访问的类型,若是,则禁止所述目标系统用户对加密卡资源的访问,若否,则执行所述基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥。
其中,目标系统用户使用SDF封装接口访问加密卡资源时,若黑名单是被加密卡加密后存储的,则利用加密卡将黑名单解密到SDF实例的指定内存空间中,以确定目标系统用户使用的SDF封装接口是否被禁止使用。
在本发明一个实施例中,由于加密卡资源有限,为保证指定系统用户能够同时使用加密卡资源,还可以包括:为每一个指定系统用户设置相应SDF实例上进行密码运算的最大速率。
相同的,设置的该最大速率与黑名单相同,也需要存储在固定位置,以及在存储之前由加密卡对存储有最大速率的文件进行加密以存储加密后的文件。
相应地,在所述为该系统用户提供相应的密码运算之后,还可以包括:计算该系统用户对应的SDF实例中密码运算速率,确定该密码运算速率是否超过设置的最大速率,若是,则返回错误信息,若否,则继续为该系统用户提供相应的密码运算。
本发明实施例中,可以通过如下方式计算该系统用户对应的SDF实例中密码运算速率,包括:确定当前时间与起始时间之间的差值是否大于等于设定时长,若是,则计算该系统用户对应的SDF实例中当前密码运算的数据长度与该差值的商值,将该商值确定为该系统用户对应的SDF实例中的密码运算速率;所述起始时间为接收到系统用户使用SDF封装接口访问加密卡资源时的时间。
需要说明的是,该最大速率可以是针对系统用户的SDF实例设置的,也可以是针对相应SDF实例中具体的密码运算设置的。如果是针对系统用户的SDF实例设置的,那么SDF实例中正在进行的所有密码运算均参与数据长度的累加以及运行时长的累加,然后利用累加的数据长度与累加的运行时长的商值来确定密码运算速率;如果是针对具体的密码运算设置的,那么只针对该具体的密码运算进行速率的计算。
针对具体的密码运算设置时,一个实现方式中,可以定义一组(start,size)alg变量单元,其中,start表示密码运算的起始时间,size表示密码运算累计的数据长度,alg则表示具体的密码算法,比如对称算法、非对称算法和哈希算法;同时定义SDF封装接口运行的时间为timecurrent,当前进行密码运算的数据长度为sizecurrent,密码运算速率计算结果为Valg。
在接收到目标系统用户使用SDF封装接口访问加密卡资源时,获取当前时间timecurrent,将该当前时间timecurrent确定为起始时间,此时startalg变量为空,在后续密钥运算过程中假设设定时长为1s,则进行如下判定:
当前(timecurrent-startalg)值小于1s,则把当前密码运算的数据长度sizecurrent值累加到sizealg上;
当前(timecurrent-startalg)值大于等于1s,则密码运算速率Valg=(sizealg+sizecurrent)/(timecurrent-startalg)。
本发明实施例中,通过为系统用户的SDF实例设置密码运算的最大速率,保证了加密卡不会被某个系统用户一直使用。
在本发明实施例中,SDF逻辑实现层可以采用操作系统的最高权限Root用户来实现。而为了保障操作系统的安全性,优选地,SDF逻辑实现层采用安全操作系统中的三权分离安全机制来实现。其中,三权分离安全机制的三权用户为系统管理员、安全管理员和审计管理员。
本发明实施例中,SDF实例的创建和删除是由安全管理员负责的,密钥生成和存储、黑名单设置以及最大速率的设置均是由系统管理员负责的,审计管理员可以对系统用户的SDF实例的管理情况以及SDF封装接口的调用情况的审计结果进行查看,以判定是否有违规使用加密卡资源的情况。
如图3、图4所示,本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的装置。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。从硬件层面而言,如图3所示,为本发明实施例提供的一种基于操作系统管理多用户使用加密卡资源的装置所在电子设备的一种硬件架构图,除了图3所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的电子设备通常还可以包括其他硬件,如负责处理报文的转发芯片等等。以软件实现为例,如图4所示,作为一个逻辑意义上的装置,是通过其所在电子设备的CPU将非易失性存储器中对应的计算机程序读取到内存中运行形成的。本实施例提供的一种基于操作系统管理多用户使用加密卡资源的装置,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述装置位于所述SDF逻辑实现层中,所述装置包括:
SDF实例创建单元401,用于为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
密钥生成单元402,用于为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
访问处理单元403,用于在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
在本发明一个实施例中,所示SDF实例创建单元,具体用于:针对操作系统中每一个指定系统用户,均执行:获取该指定系统用户的用户名;确定该指定系统用户的用户名是否存在,若存在,则在指定路径下根据该指定系统用户的用户名创建对应的SDF实例目录,并在创建的SDF实例目录下创建空的密钥文件;
所述密钥生成单元在根据相应密钥索引将生成的密钥存储至对应SDF实例中时,具体包括:针对操作系统中每一个指定系统用户,均执行:根据该指定系统用户的用户名确定对应SDF实例目录下的密钥文件,根据该指定系统用户相应密钥索引计算存储位置,并将生成的密钥存储至该密钥文件的相应存储位置中。
在本发明一个实施例中,所述密码算法接口转换层用于将所述加密卡调用接口转换为多个实现不同功能的密码算法接口;
所述密钥生成单元在生成相应密钥类型的密钥时,具体包括:调用相应功能的密码算法接口,在加密卡中生成相应密钥类型的密钥,并利用加密卡对生成的密钥进行加密;
其中,所述存储至对应SDF实例中的密钥为经过加密卡加密后的密钥。
在本发明一个实施例中,所述密码算法接口至少包括如下中的多个:持久密钥生成和撤销接口、用户密钥生成导入和导出接口、国密密码运算接口、密钥协商接口、随机数获取接口、国密SM3哈希计算接口以及HMAC计算接口。
在本发明一个实施例中,所述SDF封装接口至少包括如下任意一种类型的接口:会话密钥接口、对称加密操作接口、非对称加密操作接口和哈希操作接口;
还包括:黑名单生成单元,用于生成并存储SDF封装接口的黑名单,所述黑名单中包括指定系统用户禁止访问的SDF封装接口的类型;
所述访问处理单元还用于:获取所述黑名单,根据所述黑名单确定所述目标系统用户在访问加密卡资源时所使用的SDF封装接口的类型是否为禁止访问的类型,若是,则禁止所述目标系统用户对加密卡资源的访问,若否,则执行所述基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥。
在本发明一个实施例中,还包括:速率设置单元,用于为每一个指定系统用户设置相应SDF实例上进行密码运算的最大速率;
所述访问处理单元还用于:计算该系统用户对应的SDF实例中密码运算速率,确定该密码运算速率是否超过设置的最大速率,若是,则返回错误信息,若否,则继续为该系统用户提供相应的密码运算。
在本发明一个实施例中,所述访问处理单元在计算该系统用户对应的SDF实例中密码运算速率时,具体包括:确定当前时间与起始时间之间的差值是否大于等于设定时长,若是,则计算该系统用户对应的SDF实例中当前密码运算的数据长度与该差值的商值,将该商值确定为该系统用户对应的SDF实例中的密码运算速率;所述起始时间为接收到系统用户使用SDF封装接口访问加密卡资源时的时间。
可以理解的是,本发明实施例示意的结构并不构成对一种基于操作系统管理多用户使用加密卡资源的装置的具体限定。在本发明的另一些实施例中,一种基于操作系统管理多用户使用加密卡资源的装置可以包括比图示更多或者更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件、软件或者软件和硬件的组合来实现。
上述装置内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本发明任一实施例中的一种基于操作系统管理多用户使用加密卡资源的方法。
本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序在被处理器执行时,使所述处理器执行本发明任一实施例中的一种基于操作系统管理多用户使用加密卡资源的方法。
具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。
在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。
用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD+RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。
此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。
此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展模块中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展模块上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个…”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于操作系统管理多用户使用加密卡资源的方法,其特征在于,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述方法由所述SDF逻辑实现层执行,所述方法包括:
为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
2.根据权利要求1所述的方法,其特征在于,
所述为操作系统中每一个指定系统用户创建对应的SDF实例,包括:
针对操作系统中每一个指定系统用户,均执行:获取该指定系统用户的用户名;确定该指定系统用户的用户名是否存在,若存在,则在指定路径下根据该指定系统用户的用户名创建对应的SDF实例目录,并在创建的SDF实例目录下创建空的密钥文件;
所述根据相应密钥索引将生成的密钥存储至对应SDF实例中,包括:
针对操作系统中每一个指定系统用户,均执行:根据该指定系统用户的用户名确定对应SDF实例目录下的密钥文件,根据该指定系统用户相应密钥索引计算存储位置,并将生成的密钥存储至该密钥文件的相应存储位置中。
3.根据权利要求2所述的方法,其特征在于,所述密码算法接口转换层用于将所述加密卡调用接口转换为多个实现不同功能的密码算法接口;
所述生成相应密钥类型的密钥,包括:
调用相应功能的密码算法接口,在加密卡中生成相应密钥类型的密钥,并利用加密卡对生成的密钥进行加密;
所述存储至对应SDF实例中的密钥为经过加密卡加密后的密钥。
4.根据权利要求3所述的方法,其特征在于,所述密码算法接口至少包括如下中的多个:持久密钥生成和撤销接口、用户密钥生成导入和导出接口、国密密码运算接口、密钥协商接口、随机数获取接口、国密SM3哈希计算接口以及HMAC计算接口。
5.根据权利要求1所述的方法,其特征在于,所述SDF封装接口至少包括如下任意一种类型的接口:会话密钥接口、对称加密操作接口、非对称加密操作接口和哈希操作接口;
还包括:生成并存储SDF封装接口的黑名单,所述黑名单中包括指定系统用户禁止访问的SDF封装接口的类型;
在所述基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥之前,还包括:获取所述黑名单,根据所述黑名单确定所述目标系统用户在访问加密卡资源时所使用的SDF封装接口的类型是否为禁止访问的类型,若是,则禁止所述目标系统用户对加密卡资源的访问,若否,则执行所述基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥。
6.根据权利要求1所述的方法,其特征在于,
还包括:为每一个指定系统用户设置相应SDF实例上进行密码运算的最大速率;
在所述为该系统用户提供相应的密码运算之后,还包括:计算该系统用户对应的SDF实例中密码运算速率,确定该密码运算速率是否超过设置的最大速率,若是,则返回错误信息,若否,则继续为该系统用户提供相应的密码运算。
7.根据权利要求6所述的方法,其特征在于,所述计算该系统用户对应的SDF实例中密码运算速率,包括:
确定当前时间与起始时间之间的差值是否大于等于设定时长,若是,则计算该系统用户对应的SDF实例中当前密码运算的数据长度与该差值的商值,将该商值确定为该系统用户对应的SDF实例中的密码运算速率;所述起始时间为接收到系统用户使用SDF封装接口访问加密卡资源时的时间。
8.一种基于操作系统管理多用户使用加密卡资源的装置,其特征在于,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和SDF软件栈,所述SDF软件栈包括密码算法接口转换层、SDF逻辑实现层和SDF封装接口;所述装置位于所述SDF逻辑实现层中,所述装置包括:
SDF实例创建单元,用于为操作系统中每一个指定系统用户创建对应的SDF实例,以使创建有SDF实例的指定系统用户可使用加密卡资源;
密钥生成单元,用于为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应SDF实例中;
访问处理单元,用于在接收到目标系统用户使用SDF封装接口访问加密卡资源时,确定是否存在所述目标系统用户的SDF实例;若存在,则基于所述目标系统用户的密钥索引从对应SDF实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
9.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410287322.2A CN118094524A (zh) | 2024-03-13 | 2024-03-13 | 基于操作系统管理多用户使用加密卡资源的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410287322.2A CN118094524A (zh) | 2024-03-13 | 2024-03-13 | 基于操作系统管理多用户使用加密卡资源的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118094524A true CN118094524A (zh) | 2024-05-28 |
Family
ID=91161484
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410287322.2A Pending CN118094524A (zh) | 2024-03-13 | 2024-03-13 | 基于操作系统管理多用户使用加密卡资源的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN118094524A (zh) |
-
2024
- 2024-03-13 CN CN202410287322.2A patent/CN118094524A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110245506B (zh) | 基于区块链的智能合约管理方法及装置、电子设备 | |
US10891384B2 (en) | Blockchain transaction device and method | |
CN110580413B (zh) | 基于链下授权的隐私数据查询方法及装置 | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
CN111523110B (zh) | 基于链代码的权限查询配置方法及装置 | |
CN111475850B (zh) | 基于智能合约的隐私数据查询方法及装置 | |
CN110264192B (zh) | 基于交易类型的收据存储方法和节点 | |
CN113010856A (zh) | 一种动态非对称加解密的JavaScript代码混淆方法与系统 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
CN110851851B (zh) | 一种块链式账本中的权限管理方法、装置及设备 | |
CN113721983A (zh) | 外部存储器、提供密码服务的方法及业务处理设备 | |
Pop et al. | Secure migration of WebAssembly-based mobile agents between secure enclaves | |
CN116484379A (zh) | 系统启动方法、包含可信计算基软件的系统、设备及介质 | |
CN111831978A (zh) | 一种对配置文件进行保护的方法及装置 | |
CN118094524A (zh) | 基于操作系统管理多用户使用加密卡资源的方法及装置 | |
CN112507302B (zh) | 基于密码模块执行的调用方身份鉴别方法及装置 | |
Bissoli et al. | Authentication as a service: Shamir Secret Sharing with byzantine components | |
CN111651740B (zh) | 一种面向分布式智能嵌入式系统的可信平台共享系统 | |
US20210028949A1 (en) | Securing a provable resource possession | |
Ranjith et al. | Intelligence based authentication-authorization and auditing for secured data storage | |
CN111292082B (zh) | 一种块链式账本中的公钥管理方法、装置及设备 | |
CN108449753B (zh) | 一种手机设备读取可信计算环境中的数据的方法 | |
CN116992494B (zh) | 一种用于景区数据流通的安全保护方法、设备和介质 | |
CN113821805B (zh) | 一种数据加密方法及装置 | |
CN114866409B (zh) | 基于密码加速硬件的密码加速方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |