CN113626859B - 支持密钥托管个人文件加密保护方法、系统、设备、介质 - Google Patents

支持密钥托管个人文件加密保护方法、系统、设备、介质 Download PDF

Info

Publication number
CN113626859B
CN113626859B CN202110845708.7A CN202110845708A CN113626859B CN 113626859 B CN113626859 B CN 113626859B CN 202110845708 A CN202110845708 A CN 202110845708A CN 113626859 B CN113626859 B CN 113626859B
Authority
CN
China
Prior art keywords
file
key
encryption
user
encrypted
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.)
Active
Application number
CN202110845708.7A
Other languages
English (en)
Other versions
CN113626859A (zh
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.)
Xidian University
Original Assignee
Xidian University
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 Xidian University filed Critical Xidian University
Priority to CN202110845708.7A priority Critical patent/CN113626859B/zh
Publication of CN113626859A publication Critical patent/CN113626859A/zh
Application granted granted Critical
Publication of CN113626859B publication Critical patent/CN113626859B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于云盘加密技术领域,公开了一种支持密钥托管个人文件加密保护方法、系统、设备、介质,所述支持密钥托管个人文件加密保护方法,包括虚拟文件、密钥管理、文件加密、目录加密、文件解密以及文件恢复。本发明通过将国密算法对个人文件进行加密之后,将受保护的文件上传到用户所要使用的云服务,理论上可以配合任何同步型网盘进行使用。本发明解决了用户将文件保存到云存储时的隐私问题。用户在本地计算机对数据进行加密,然后上传到云端服务以密文的形式保存在云存储网盘中,只有掌握文件保管库密码的人才能打开保管库,读取或者更改库中的文件内容。本发明保证了用户的隐私安全,降低了云提供商或第三方未经许可访问存储在云中的数据的风险。

Description

支持密钥托管个人文件加密保护方法、系统、设备、介质
技术领域
本发明属于云盘加密技术领域,尤其涉及一种支持密钥托管个人文件加密保护方法、系统、设备、介质。
背景技术
目前,在当下“云计算”日渐流行的趋势下,“云存储”的应用率先被人们接收。如今各种各样云盘应用遍地开花,人们不断增加对云盘的了解,将云盘作为自己互联网生活的精彩元素之一。然而,用户在使用各种云盘的过程中,最常见的是在云端上保存常用的电影、软件、普通文档/照片等,而不敢上传真正敏感性的数据,如:涉及隐私的照片、个人敏感信息等。近年来曝光的越来越多从个人到企业,甚至到国家的安全事件,在不断刺激着人们的神经,这也促使越来越多的人们开始理性的思考信息安全问题。互联网从来没有绝对的安全,只要文件放在网上,它们都有被泄露的风险。所以,个人文件的安全保密变得越来越重要。
现在很多云同步服务都声称自己会加密储存用户资料,例如Dropbox、GoogleDrive等,但是这些云服务产品都不支持用户自己提供加密密钥来实现端到端加密,也就是说云服务商持有用户资料的解密密钥,这种加密或许能够防止黑客入侵,但一旦用户密码泄漏或被破解,资料就可以被查看到;或者说对于云服务商而言,用户的资料是透明的。此外还有一些像Encrypto、Boxcryptor等加密工具可以满足每次都要手工加密解密,甚至不支持云同步功能。
通过上述分析,现有技术存在的问题及缺陷为:
(1)现有云存储网盘自身的加密存在一定的风险使得用户的数据和隐私被窥探窃取,不能防止云服务商解密用户的资料。
(2)现有的一些加密工具需要用户每次进行手动的加密解密。
(3)目前的一些加密方法无法做到云同步。
解决以上问题及缺陷的难度和意义为:为了获得更好的安全性,需要一种支持密钥托管个人文件加密保护方法,能够有效的从数据安全、用户隐私保护的角度解决数据传输、静态数据存储和第三方运维过程中的安全性问题。
发明内容
针对现有技术存在的问题,本发明提供了一种支持密钥托管个人文件加密保护方法、系统、设备、介质。
本发明是这样实现的,一种支持密钥托管个人文件加密保护方法,所述支持密钥托管个人文件加密保护方法包括以下步骤:
步骤一,虚拟文件:通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
此步骤的意义在于,使用虚拟文件系统创建的保管库能够使用户更方便的使用,创建之后相当于一个独立的磁盘,能够对个人文件进行更精确的加解密。
步骤二,密钥管理:CA为用户签发独有的密钥交换证书并保存至USBkey,经过证书公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
作用在于,CA签发的密钥交换证书能够保存至USBkey中,保管库只能通过该USBkey才能够打开,解密,进而使用保管库中的文件,进一步加强了对个人文件安全性的保护。
步骤三,文件加密:将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
作用在于,文件在本地进行加密,然后以密文的形式同步到云网盘中,解决了云盘中个人文件泄露的风险。即使云盘中的文件泄露,攻击者也无法获取文件的真实内容,从而更好地保障了个人的数据隐私。
步骤四,目录加密:每个目录都有一个在文件名加密过程中需要的唯一ID,使用SM4-SIV加密目录ID以加密目录层次结构;创建加密目录ID的SM3哈希以获得统一的长度;使用Base32对哈希进行编码以获得一串可打印的字符;根据Base32编码的哈希构造目录路径。
作用在于,对文件的目录进行加密,以保证文件实际存储位置的安全性,确保攻击者不会获取到文件的实际保存路径。
步骤五,文件解密:用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
作用在于,解密时使用USBkey验证身份通过之后解密打开保管库,解锁后,在虚拟文件系统驱动下,保管库就可以像任何其他硬盘驱动器或U盘一样与本地的机密文件进行交互。由于保管库中的文件是在本地解锁之后进行解密的,所以解决了用户个人文件的安全问题。
步骤六,文件恢复:将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
作用在于,将密钥交换证书托管至CA在用户的USBkey出现故障时,可以有CA恢复公钥,且用于文件加密的主密钥KEK是使用该公钥加密生成的,所以用户可以重新获取主密钥进而找回加密文件的密钥。
进一步,步骤一中,所述虚拟文件,包括:
用户在创建的保管库中使用任何磁盘驱动器添加、编辑和删除个人文件;文件被透明地加密和解密,不存在未加密的副本;每次打开保管库访问虚拟驱动器内的文件时,均即时加密和解密所述文件。
进一步,步骤一中,用户在创建保险库时,随机生成一个加密密钥和一个身份验证的MAC主密钥,同时由可信任的国密CA为用户签发独有的密钥交换证书和数字签名证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥生成主密钥KEK,并按照SM4-WRAP使用KEK对加密密钥和MAC主密钥进行Wrap加密;加密后的密钥记录在Json文件中,该文件即可相当于保险库的密码表;用户需要打开保险库时,提供口令并依照Json文件中的参数实现对加密文件的解密;在具体的加密过程中,对文件的名称、头文件和文件本身分别进行加密。
进一步,步骤二中,所述密钥管理,还包括:
随机生成一个加密密钥和一个身份验证的MAC密钥,由可信任的国密CA为用户签发独有的密钥交换证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥加密生成用户独有的主密钥KEK,并按照SM4-WRAP算法使用KEK对加密密钥和MAC主密钥进行Wrap加密。
进一步,步骤三中,所述文件加密,包括文件内容加密和文件名加密;
其中,所述文件内容加密,文件头存储文件内容加密所需的某些元数据可用于文件内容加密,由72个字节组成;在报头有效载荷加密期间使用的16字节随机数;24字节SM4-CTR加密有效载荷,包括8字节填充1以供将来使用和16字节的文件内容密钥;32字节的前40字节头部MAC;将明文分解成多个块,每个块最多32KiB+48字节,包括16字节随机数,使用SM4-CTR和文件内容密钥最多32KiB加密有效负载,以及32字节MAC,包括文件头随机数,将此块绑定到文件头;块号为8字节大端整数,随机数和加密的有效载荷;加密的块被加入并保留明文块的顺序。
所述文件名加密,文件的明文名称使用标准化形式C中的UTF-8进行编码,以获得唯一的二进制表示;使用SM4-SIV来加密名称,父文件夹的目录ID作为关联数据传递。
进一步,步骤四中,所述目录加密,包括:
每个目录都有一个在文件名加密过程中需要的唯一ID,根目录的目录ID是空字符串;对于所有其他目录,它是最多36个ASCII字符的随机序列;遍历目录时,给定子目录的目录ID分四步处理,以确定Vault内的存储路径:
使用SM4-SIV加密目录ID以加密目录层次结构;创建加密目录ID的SM3哈希以获得统一的长度;使用Base32对哈希进行编码以获得一串可打印的字符;根据Base32编码的哈希构造目录路径。
本发明的另一目的在于提供一种应用所述的支持密钥托管个人文件加密保护方法的支持密钥托管个人文件加密保护系统,所述支持密钥托管个人文件加密保护系统包括:
虚拟文件模块,用于通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
密钥管理模块,用于通过CA为用户签发独有的密钥交换证书并保存至USBkey,经证书公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
文件加密模块,用于将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
目录加密模块,每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
文件解密模块,用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
文件恢复模块,用于将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
本发明的另一目的在于提供一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件,文件被透明地加密和解密;CA为用户签发独有的密钥交换证书并保存至USBkey,经过密钥交换证书中的公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
本发明的另一目的在于提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件,文件被透明地加密和解密;CA为用户签发独有的密钥交换证书并保存至USBkey,经过密钥交换证书中的公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
本发明的另一目的在于提供一种信息数据处理终端,所述信息数据处理终端用于实现所述的支持密钥托管个人文件加密保护系统。
结合上述的所有技术方案,本发明所具备的优点及积极效果为:本发明提供的支持密钥托管个人文件加密保护方法,通过将国密算法对个人文件进行加密之后,将受保护的文件上传到用户所要使用的云服务,理论上可以配合任何同步型网盘进行使用。本发明解决了用户将文件保存到云存储时的隐私问题。用户在本地计算机对数据进行加密,然后上传到云端服务以密文的形式保存在云存储网盘中,只有掌握文件保管库密码的人才能打开保管库,读取或者更改库中的文件内容。这保证了用户的隐私安全,降低了云提供商或第三方未经许可访问存储在云中的数据的风险。本发明对于一些重度依赖网盘同步来办公,而又担心重要文件被泄露的用户来说非常有用。
本发明可以与现有的云存储网盘、同步软件等完美搭配结合使用,为了用户保存在云盘里面的个人文件提供客户端的加密,以此来防止用户的文件泄密或者没有被未授权的访问,只需要使用的这款软件,就算用户的网盘文件泄漏,别人也没有方法破解原内容;并且软件的加密方式是自动的加密解密,不需要用户每次登陆带来的手工加密解密,软件的运行速度也非常的快,还能够自动的为用户保存在云盘里面的文件提供客户端的加密或解密,以此来防止文件泄密或者没有被未授权的访问。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图做简单的介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的支持密钥托管个人文件加密保护方法流程图。
图2是本发明实施例提供的支持密钥托管个人文件加密保护方法原理图。
图3是本发明实施例提供的支持密钥托管个人文件加密保护系统结构框图;
图中:1、虚拟文件模块;2、密钥管理模块;3、文件加密模块;4、目录加密模块;5、文件解密模块;6、文件恢复模块。
图4是本发明实施例提供的密钥管理示意图。
图5是本发明实施例提供的文件头加密过程示意图。
图6是本发明实施例提供的文件内容加密过程示意图。
图7是本发明实施例提供的文件名加密过程示意图。
图8是本发明实施例提供的文件解密过程示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种支持密钥托管个人文件加密保护方法、系统、设备、介质,下面结合附图和实施例对本发明作详细的描述。
如图1所示,本发明实施例提供的支持密钥托管个人文件加密保护方法包括以下步骤:
S101,虚拟文件:通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
S102,密钥管理:CA为用户签发独有的密钥交换证书并保存至USBkey,通过密钥交换证书中的公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
S103,文件加密:将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
S104,目录加密:每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
S105,文件解密:用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
S106,文件恢复:将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
本发明实施例提供的支持密钥托管个人文件加密保护方法原理图见图2。
如图3所示,本发明实施例提供的支持密钥托管个人文件加密保护系统,包括:
虚拟文件模块1,用于通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
密钥管理模块2,用于通过CA为用户签发独有的密钥交换证书并保存至USBkey,经密钥交换证书中的公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
文件加密模块3,用于将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
目录加密模块4,每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
文件解密模块5,用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
文件恢复模块6,用于将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
下面结合附图对本发明的技术方案作进一步描述。
如图4所示为本发明密钥管理示意图。用户在创建保险库时,会随机生成一个加密密钥和一个身份验证的MAC主密钥,同时由可信任的国密CA为用户签发独有的密钥交换证书和数字签名证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥加密生成主密钥KEK,并按照SM4-WRAP使用KEK对加密密钥和MAC主密钥进行Wrap加密。加密后的密钥会记录在Json文件中,这份文件就相当于保险库的密码表。用户需要打开保险库时,需要提供口令并依照Json文件中的参数实现对加密文件的解密。在具体的加密过程中,会对文件的名称、头文件和文件内容分别进行加密,这样也就确保了文件在本地完成了彻底的加密。
如图5所示的文件头加密过程示意图。文件头存储某些元数据,文件内容加密需要这些元数据。8个字节填充1加上ContentKey使用加密密钥(Encryption Key)通过SM4-CTR算法生成24字节密文有效载荷,再使用MAC Key通过HMAC-SM3算法生成前40字节的headerMAC。
如图6所示的文件内容加密过程示意图。这是实际文件内容被加密的地方。明文被分解成多个块,每个块最多32KiB+48字节,包括:16字节随机数,使用带有文件内容密钥的SM4-CTR加密有效载荷,最多可达32KiB,以及32字节MAC,包括:文件头随机数(将此块绑定到文件头),块号为8字节大端整数(以防止未检测到的重新排序),随机数,加密的有效载荷。之后,加密的块被加入并保留明文块的顺序。
如图7所示的文件名加密过程示意图。文件的明文名称使用标准化形式C中的UTF-8进行编码,以获得唯一的二进制表示。使用SM4-SIV来加密名称。父文件夹的目录ID作为关联数据传递。这可以防止未检测到的文件在目录之间移动。根据节点的类型,加密的名称然后用于创建文件或目录:文件存储为文件,非文件存储为目录。
如图8所示的文件解密过程示意图。文件的密文在打开保管库的同时使用保存在JSON文件中的加密密钥和MAC密钥对文件名和文件内容的密文进行解密。
下面结合具体实施例对本发明的技术方案作进一步描述。
实施例1
本发明提供了一种支持密钥托管个人文件加密保护方法,能够自动的为用户保存在云盘里面的文件提供客户端的加密或解密,以此来防止文件泄密或者没有被未授权的访问,该方法包括:
(1)虚拟文件系统:提供了一个虚拟驱动器。使用任何磁盘驱动器即可添加,编辑和删除文件。文件被透明地加密和解密。硬盘驱动器上没有未加密的副本。每次访问虚拟驱动器中的文件时,都会即时加密和解密这些文件。每当文件管理器通过此虚拟驱动器访问文件时,都会通过以下层处理此请求。
(2)密钥管理:由可信任的国密CA为用户签发独有的密钥交换证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥加密生成用户独有的主密钥KEK,并按照SM4-WRAP使用KEK对加密密钥和MAC主密钥进行Wrap加密。
(3)文件加密:文件内容加密和文件名加密。其中,文件内容加密:使用SM4-CTR加密文件文件头存储的某些元数据用于文件内容加密,由72个字节组成。明文分为多个块,每个块最多32KiB+48字节,使用带有文件内容密钥的SM4-CTR进行加密,然后,将加密的块合并在一起,以保留明文块的顺序。文件名加密:使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称。
(4)目录加密:每个目录都有一个唯一的ID,使用SM4-SIV加密目录ID。
(5)解密操作:加密时使用的加密密钥和MAC密钥是不会更改的,因此再进行解密操作时系统会根据通过主密钥KEK加密生成的加密密钥和MAC密钥按照相对应的解密模式对文件的各个部分进行解密。
(6)文件恢复:将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
虚拟文件系统,提供了一个虚拟驱动器。在创建的保管库中可以使用任何磁盘驱动器添加,编辑和删除个人文件。文件被透明地加密和解密,不存在未加密的副本。每次打开保管库访问虚拟驱动器内的文件时,都会即时加密和解密这些文件,以保证数据的安全性。
随机生成一个加密密钥和一个身份验证的MAC密钥,由可信任的国密CA为用户签发独有的密钥交换证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥加密生成用户独有的主密钥KEK,并按照SM4-WRAP使用KEK对加密密钥和MAC主密钥进行Wrap加密。
所述的文件加密,包括文件内容加密和文件名加密。
文件内容加密:文件头存储文件内容加密所需的某些元数据可用于文件内容加密。它由72个字节组成。在报头有效载荷加密期间使用的16字节随机数;24字节SM4-CTR加密有效载荷,包括:8字节填充1以供将来使用(以前用于文件大小)和16字节的文件内容密钥;32字节的前40字节头部MAC。然后,将明文分解成多个块,每个块最多32KiB+48字节,包括:16字节随机数,使用SM4-CTR和文件内容密钥最多32KiB加密有效负载,以及32字节MAC,包括:文件头随机数(将此块绑定到文件头),块号为8字节大端整数(以防止未检测到的重新排序),随机数,和加密的有效载荷。之后,加密的块被加入并保留明文块的顺序。
文件名加密:文件的明文名称使用标准化形式C中的UTF-8进行编码,以获得唯一的二进制表示。使用SM4-SIV来加密名称。父文件夹的目录ID作为关联数据传递。这可以防止未检测到的文件在目录之间移动。
每个目录都有一个在文件名加密过程中需要的唯一ID,根目录的目录ID是空字符串。对于所有其他目录,它是最多36个ASCII字符的随机序列。遍历目录时,给定子目录的目录ID分四步处理,以确定Vault内的存储路径:
使用SM4-SIV加密目录ID以加密目录层次结构;创建加密目录ID的SM3哈希以获得统一的长度;使用Base32对哈希进行编码以获得一串可打印的字符;根据Base32编码的哈希构造目录路径。
需要进行文件的解密操作,用户使用USBkey进行身份验证,解密时系统会根据通过主密钥KEK加密生成的加密密钥和MAC密钥按照相对应的解密模式对文件的各个部分进行解密。
将密钥交换证书托管至国密CA,当用户USBKey发生故障时,从CA处恢复密钥交换证书,并找回保存至云服务器中的全部文件。
实施例2
本发明提供的支持密钥托管的个人文件加密保护方法,包括:
虚拟文件系统能够提供一个虚拟驱动器,创建的保管库相当于一个U盘或者是计算机中的一个磁盘,用户可以即时地使用保管库中的文件。
密钥管理在用户在创建保管库的时候会随机生成一个文件加密密钥和一个MAC密钥,同时由国密CA签发密钥交换证书,将证书保存至USBkey中,并将证书托管至CA。使用密钥交换证书中的公钥生成一个主密钥KEK,然后用主密钥对文件加密密钥和MAC密钥进行加密。最后使用加密后的密钥对文件进行加密,用户只能通过USBkey才能打开使用保管库,充分保障了密钥体系和文件的安全性。
文件加密会对文件的名称,头文件,文件本身分别进行加密,这样就可以确保文件在本地完成了彻底的加密。文件名称在经过统一编码后获得唯一的二进制表示形式,然后再使用国密SM4算法对其进行加密。头文件在经过字节填充之后使用SM4-CTR进行加密生成密文,然后使用HMAC-SM3生成头部MAC保存用于文件内容的加密。在文件加密过程中,文件的明文将会被分为多个明文块每个块都包括16字节的随机数,32kib的明文,以及头部MAC(包括8个字节的大端整数用于标识块号),然后对每个块进行加密,加密之后保留明文的顺序用于文件的解密。
目录ID中每个目录都有一个在文件名加密过程中需要的唯一ID(字符串),其中根目录的ID是空字符串,其他所有的目录是最多36个ASCII字符的随机序列。在加密时使用SM4加密目录ID以加密目录层次结构,创建加密目录ID的SM3哈希以获得统一的长度,使用Base32对哈希进行编码以获得一串可打印的字符,根据Base32编码的哈希构造目录路径。无论明文路径的层次结构如何,密文目录始终存储在扁平结构中。因此,所有目录都将有效地成为兄弟。
文件解密时密文形式的文件在用户打开保管库的时候会自动的进行解密。解密时将会按照存储的密文生成相应的明文目录,将密文块解密后按顺序生成为原有的明文文件。
文件恢复,由于将密钥交换证书托管至CA,所以当用户的USBkey出现故障时可以从CA出婚服密钥交换证书,用于验证用户的身份,然后可以重新打开云同步网盘中或者本地计算机创建的保管库,找回自己保存的文件。
证明部分(/实验/仿真/能够证明本发明创造性的正面实验数据等)
(1)虚拟文件模块:提供虚拟驱动器,创建保管库之后添加、编辑、删除文件,就像任何磁盘驱动器一样。文件被透明地加密和解密。硬盘驱动器上没有未加密的副本。每次访问虚拟驱动器内的文件时,都会即时加密和解密这些文件,以保障用户文件数据的安全
(2)密钥管理模块:由CA签发的密钥交换证书,将密钥交换证书保存至USBkey中,使用该证书的公钥加密生成主密钥KEK,再由主密钥对文件加密密钥和MAC密钥进行加密,然后将密文形式的密钥信息存储在文件中,充分保障了密钥的安全性,即使文件被窃取也无法获得有效的密钥信息。这解决了用户个人文件进行云同步时的安全问题。
(3)文件加密模块:用户的文件在本地计算机进行加密后再同步到云盘当中,无论是在同步过程中还是云服务其中的文件遭到泄露,恶意攻击者都不能获取到实际的明文数据,这解决了用户个人文件进行云同步时的安全问题。
(4)目录加密模块:对每个目录的唯一ID进行加密,使得攻击者无法获取文件实际的存储位置,保障了用户的文件安全;
(5)文件解密模块:用户的个人文件解密在本地计算机进行解密,避免了明文数据被网络上的攻击者拦截,解决了用户个人文件进行云同步时的安全问题。
(6)文件恢复模块:将密钥交换证书托管至国密CA,当用户的USBKey出现故障时,可以从CA处恢复密钥交换证书,使用新的USBkey重新打开保管库找回自己的文件,保障了用户个人文件的可恢复性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输)。所述计算机可读取存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘SolidState Disk(SSD))等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,都应涵盖在本发明的保护范围之内。

Claims (10)

1.一种支持密钥托管个人文件加密保护方法,其特征在于,所述支持密钥托管个人文件加密保护方法包括以下步骤:
步骤一,虚拟文件:通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
步骤二,密钥管理:CA为用户签发独有的密钥交换证书并保存至USBkey,经过该证书的公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
步骤三,文件加密:将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
步骤四,目录加密:每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
步骤五,文件解密:用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
步骤六,文件恢复:将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
2.如权利要求1所述支持密钥托管个人文件加密保护方法,其特征在于,步骤一中,所述虚拟文件,包括:用户在创建的保管库中使用任何磁盘驱动器添加、编辑和删除个人文件;文件被透明地加密和解密,不存在未加密的副本;每次打开保管库访问虚拟驱动器内的文件时,均即时加密和解密所述文件。
3.如权利要求1所述支持密钥托管个人文件加密保护方法,其特征在于,步骤一中,用户在创建保险库时,随机生成一个加密密钥和一个身份验证的MAC主密钥,同时由可信任的国密CA为用户签发独有的密钥交换证书和数字签名证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥生成主密钥KEK,并按照SM4-WRAP使用KEK对加密密钥和MAC主密钥进行Wrap加密;加密后的密钥记录在Json文件中,该文件即可相当于保险库的密码表;用户需要打开保险库时,提供口令并依照Json文件中的参数实现对加密文件的解密;在具体的加密过程中,对文件的名称、头文件和文件本身分别进行加密。
4.如权利要求1所述支持密钥托管个人文件加密保护方法,其特征在于,步骤二中,所述密钥管理,还包括:
随机生成一个加密密钥和一个身份验证的MAC密钥,由可信任的国密CA为用户签发独有的密钥交换证书,将证书导出并存储至USBkey,并将密钥交换证书托管至CA,使用密钥交换证书中的公钥加密生成用户独有的主密钥KEK,并按照SM4-WRAP算法使用KEK对加密密钥和MAC主密钥进行Wrap加密。
5.如权利要求1所述支持密钥托管个人文件加密保护方法,其特征在于,步骤三中,所述文件加密,包括文件内容加密和文件名加密;
其中,所述文件内容加密,文件头存储文件内容加密所需的某些元数据可用于文件内容加密,由72个字节组成;在报头有效载荷加密期间使用的16字节随机数;24字节SM4-CTR加密有效载荷,包括8字节填充1以供将来使用和16字节的文件内容密钥;32字节的前40字节头部MAC;将明文分解成多个块,每个块最多32KiB+48字节,包括16字节随机数,使用SM4-CTR和文件内容密钥最多32KiB加密有效负载,以及32字节MAC,包括文件头随机数,将此块绑定到文件头;块号为8字节大端整数,随机数和加密的有效载荷;加密的块被加入并保留明文块的顺序;
所述文件名加密,文件的明文名称使用标准化形式C中的UTF-8进行编码,以获得唯一的二进制表示;使用SM4-SIV来加密名称,父文件夹的目录ID作为关联数据传递。
6.如权利要求1所述支持密钥托管个人文件加密保护方法,其特征在于,步骤四中,所述目录加密,包括:
每个目录都有一个在文件名加密过程中需要的唯一ID,根目录的目录ID是空字符串;对于所有其他目录,它是最多36个ASCII字符的随机序列;遍历目录时,给定子目录的目录ID分四步处理,以确定Vault内的存储路径:
使用SM4-SIV加密目录ID以加密目录层次结构;创建加密目录ID的SM3哈希以获得统一的长度;使用Base32对哈希进行编码以获得一串可打印的字符;根据Base32编码的哈希构造目录路径。
7.一种实施权利要求1~6任意一项所述支持密钥托管个人文件加密保护方法的支持密钥托管个人文件加密保护系统,其特征在于,所述支持密钥托管个人文件加密保护系统包括:
虚拟文件模块,用于通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件;
密钥管理模块,用于通过CA为用户签发独有的密钥交换证书并保存至USBkey,经证书公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
文件加密模块,用于将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;
目录加密模块,每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
文件解密模块,用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;
文件恢复模块,用于将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
8.一种计算机设备,其特征在于,所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如下步骤:
通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件,文件被透明地加密和解密;CA为用户签发独有的密钥交换证书并保存至USBkey,经过证书公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
9.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如下步骤:
通过虚拟文件系统提供虚拟驱动器,创建保管库,用户使用任何磁盘驱动器即可在所述保管库中添加、编辑和删除文件,文件被透明地加密和解密;CA为用户签发独有的密钥交换证书并保存至USBkey,经过证书公钥生成主密钥KEK,并由主密钥生成加密密钥和MAC密钥;
将文件内容的明文分为多个块,使用带有文件内容密钥的SM4-CTR进行加密;使用规范化格式C中的UTF-8对文件的明文名称进行编码,以获取唯一的二进制表示形式,使用SM4-SIV加密名称;每个目录都有唯一的ID,使用SM4-SIV加密目录ID;
用户使用USBkey进行身份验证,解密时系统根据主密钥KEK加密生成的加密密钥和MAC密钥使用相应的解密算法对文件进行解密;将密钥交换证书托管至国密CA,当用户USBKey丢失或损坏时,从CA处恢复密钥交换证书,并找回保存至云服务的全部文件。
10.一种信息数据处理终端,其特征在于,所述信息数据处理终端用于实现如权利要求7所述支持密钥托管个人文件加密保护系统。
CN202110845708.7A 2021-07-26 2021-07-26 支持密钥托管个人文件加密保护方法、系统、设备、介质 Active CN113626859B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110845708.7A CN113626859B (zh) 2021-07-26 2021-07-26 支持密钥托管个人文件加密保护方法、系统、设备、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110845708.7A CN113626859B (zh) 2021-07-26 2021-07-26 支持密钥托管个人文件加密保护方法、系统、设备、介质

Publications (2)

Publication Number Publication Date
CN113626859A CN113626859A (zh) 2021-11-09
CN113626859B true CN113626859B (zh) 2024-04-12

Family

ID=78380913

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110845708.7A Active CN113626859B (zh) 2021-07-26 2021-07-26 支持密钥托管个人文件加密保护方法、系统、设备、介质

Country Status (1)

Country Link
CN (1) CN113626859B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114979125B (zh) * 2022-08-02 2023-01-06 天津联想协同科技有限公司 文件快速上传网盘方法、装置、终端及存储介质
CN115268793A (zh) * 2022-08-03 2022-11-01 中国电子科技集团公司信息科学研究院 一种基于数据加密和覆写的数据安全删除方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685148A (zh) * 2012-05-31 2012-09-19 清华大学 一种云存储环境下的安全网盘系统的实现方法
CN109948322A (zh) * 2018-10-25 2019-06-28 贵州财经大学 本地化加密防护的个人云存储数据保险箱装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9165151B2 (en) * 2013-03-13 2015-10-20 Fred Federspiel Systems, methods, and devices for encrypted data management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102685148A (zh) * 2012-05-31 2012-09-19 清华大学 一种云存储环境下的安全网盘系统的实现方法
CN109948322A (zh) * 2018-10-25 2019-06-28 贵州财经大学 本地化加密防护的个人云存储数据保险箱装置及方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
董义维 ; 孟维峰 ; .云存储文件安全性与可靠性研究.网络安全技术与应用.2016,(03),全文. *

Also Published As

Publication number Publication date
CN113626859A (zh) 2021-11-09

Similar Documents

Publication Publication Date Title
US11647007B2 (en) Systems and methods for smartkey information management
US10298555B2 (en) Securing files under the semi-trusted user threat model using per-file key encryption
CN108418796B (zh) 云数据多副本完整性验证及关联删除的方法、云存储系统
US9419797B2 (en) System, processing device, computer program and method, to transparently encrypt and store data objects such that owners of the data object and permitted viewers are able to view decrypted data objects after entering user selected passwords
US20100095118A1 (en) Cryptographic key management system facilitating secure access of data portions to corresponding groups of users
US10013567B2 (en) Private and public sharing of electronic assets
CN109948322B (zh) 本地化加密防护的个人云存储数据保险箱装置及方法
WO2008128212A1 (en) Method and system for identifying and managing encryption keys
CN113626859B (zh) 支持密钥托管个人文件加密保护方法、系统、设备、介质
CN113541935B (zh) 一种支持密钥托管的加密云存储方法、系统、设备、终端
WO2009010985A2 (en) Method and apparatus for securing data and communication
CN110225014B (zh) 基于指纹集中下发式的物联网设备身份认证方法
CN114244508B (zh) 数据加密方法、装置、设备及存储介质
CN107332666A (zh) 终端文件加密方法
CN112702379A (zh) 大数据安全之全密态检索研究
KR20210143846A (ko) 암호화 시스템들
Rani et al. Key insertion and splay tree encryption algorithm for secure data outsourcing in cloud
Rijanandi et al. Implementation of encrypt national ID card in Sinovi application use waterfall methodology
Jacob et al. Secured and reliable file sharing system with de-duplication using erasure correction code
Motegaonkar et al. To develop secure deduplication of data using hybrid cloud methodology
Liu et al. Design and Implementation of a PKI-Based Electronic Documents Protection Management System
Debbarma et al. Encryption With Private KEY for Data Security and Deduplication
Patalbansi et al. Cloud storage system for mobile cloud computing using blockchain
Verma et al. Deduplication in encrypted data: a comprehensive review
Jeyakumar et al. OUTFS+. An Efficient User-Side Encrypted File System Using IBE With Parallel Encryption

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant