本发明实施例涉及资源管理,特别涉及一种基于操作系统管理多用户使用加密卡资源的方法及装置。
背景技术:
1、随着互联网、大数据、人工智能和物联网等行业的快速发展,人们对密码模块的依赖与日俱增。密码模块作为基础密码设备,在金融、互联网、工控等行业中为各类安全应用提供身份认证、算法加速、敏感安全参数管理和保护等服务。
2、目前采用软件密码模块和硬件加密卡来同时提供密码服务,在对加密卡资源进行分配时,通常采用加密卡虚拟化技术来实现资源分配。现有的加密卡虚拟化技术均需要pcie硬件支持,需要加密设备支持pcie的虚拟化功能。
技术实现思路
1、本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法及装置,在无需pcie硬件支持的情况下,由操作系统实现用户对加密卡资源使用的管理。
2、第一方面,本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和sdf软件栈,所述sdf软件栈包括密码算法接口转换层、sdf逻辑实现层和sdf封装接口;所述方法由所述sdf逻辑实现层执行,所述方法包括:
3、为操作系统中每一个指定系统用户创建对应的sdf实例,以使创建有sdf实例的指定系统用户可使用加密卡资源;
4、为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应sdf实例中;
5、在接收到目标系统用户使用sdf封装接口访问加密卡资源时,确定是否存在所述目标系统用户的sdf实例;若存在,则基于所述目标系统用户的密钥索引从对应sdf实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
6、第二方面,本发明实施例还提供了一种基于操作系统管理多用户使用加密卡资源的装置,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和sdf软件栈,所述sdf软件栈包括密码算法接口转换层、sdf逻辑实现层和sdf封装接口;所述装置位于所述sdf逻辑实现层中,所述装置包括:
7、sdf实例创建单元,用于为操作系统中每一个指定系统用户创建对应的sdf实例,以使创建有sdf实例的指定系统用户可使用加密卡资源;
8、密钥生成单元,用于为每一个指定系统用户创建相应的密钥类型和密钥索引,并生成相应密钥类型的密钥以及根据相应密钥索引将生成的密钥存储至对应sdf实例中;
9、访问处理单元,用于在接收到目标系统用户使用sdf封装接口访问加密卡资源时,确定是否存在所述目标系统用户的sdf实例;若存在,则基于所述目标系统用户的密钥索引从对应sdf实例中获取相应密钥类型的密钥,并利用密码算法接口转换层通过所述加密卡调用接口和所述加密卡驱动实现对加密卡的调用,以使加密卡利用获取的该密钥为所述目标系统用户提供相应的密码运算;若不存在,则拒绝所述目标系统用户访问加密卡资源。
10、第三方面,本发明实施例还提供了一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现本说明书任一实施例所述的方法。
11、第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行本说明书任一实施例所述的方法。
12、本发明实施例提供了一种基于操作系统管理多用户使用加密卡资源的方法及装置,操作系统在外接加密卡后安装加密卡驱动以及获取加密卡调用接口,并在sdf软件栈中布设密码算法接口转换层、sdf逻辑实现层和sdf封装接口,在sdf逻辑实现层中,以系统用户为单位,通过创建sdf实例来限制系统用户对加密卡资源的使用,在为指定系统用户创建sdf实例后,为指定系统用户创建相应的密钥类型和密钥索引,将生成的相应密钥类型的密钥根据相应密钥索引存储至对应sdf实例中,当接收到目标系统用户使用sdf封装接口访问加密卡资源时,从对应sdf实例中获取密钥,并调用加密卡以由加密卡为目标系统用户提供相应密码运算。可见,本方案无需pcie硬件支持,仅由操作系统即可实现对多用户使用加密卡资源的管理。
1.一种基于操作系统管理多用户使用加密卡资源的方法,其特征在于,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和sdf软件栈,所述sdf软件栈包括密码算法接口转换层、sdf逻辑实现层和sdf封装接口;所述方法由所述sdf逻辑实现层执行,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,
3.根据权利要求2所述的方法,其特征在于,所述密码算法接口转换层用于将所述加密卡调用接口转换为多个实现不同功能的密码算法接口;
4.根据权利要求3所述的方法,其特征在于,所述密码算法接口至少包括如下中的多个:持久密钥生成和撤销接口、用户密钥生成导入和导出接口、国密密码运算接口、密钥协商接口、随机数获取接口、国密sm3哈希计算接口以及hmac计算接口。
5.根据权利要求1所述的方法,其特征在于,所述sdf封装接口至少包括如下任意一种类型的接口:会话密钥接口、对称加密操作接口、非对称加密操作接口和哈希操作接口;
6.根据权利要求1所述的方法,其特征在于,
7.根据权利要求6所述的方法,其特征在于,所述计算该系统用户对应的sdf实例中密码运算速率,包括:
8.一种基于操作系统管理多用户使用加密卡资源的装置,其特征在于,所述操作系统外接加密卡,所述操作系统包括依次连接的加密卡驱动、加密卡调用接口和sdf软件栈,所述sdf软件栈包括密码算法接口转换层、sdf逻辑实现层和sdf封装接口;所述装置位于所述sdf逻辑实现层中,所述装置包括:
9.一种电子设备,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时,实现如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-7中任一项所述的方法。