CN109657497A - 安全文件系统及其方法 - Google Patents
安全文件系统及其方法 Download PDFInfo
- Publication number
- CN109657497A CN109657497A CN201811575068.7A CN201811575068A CN109657497A CN 109657497 A CN109657497 A CN 109657497A CN 201811575068 A CN201811575068 A CN 201811575068A CN 109657497 A CN109657497 A CN 109657497A
- Authority
- CN
- China
- Prior art keywords
- node
- file
- file system
- hash
- data
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种安全文件系统及方法,其中包括至少一个根节点;所述根节点下设至少一级文件夹节点和/或文件节点,高级文件夹节点作为父节点下设低级文件夹节点和文件节点,作为所述高级文件夹节点的子节点;相同父节点下设的子节点具有顺序依赖,组成链式结构。
Description
技术领域
本发明涉及本发明涉及计算机技术领域,特别涉及一种安全文件系统及方法。
背景技术
目前的安全文件系统采用的是全盘透明加密或android/iOS的keystore对密钥等机密信息的存储,其缺乏可定制性和扩展性,难以在app生态下被高效复用;区块链技术兴起后,区块链的各种钱包技术是以加密文件的形式保护私钥,但缺乏一种安全文件系统进行高强度保护和统一管理。
发明内容
有鉴于此,本发明提供了一种安全文件系统,包括:
至少一个根节点;所述根节点下设至少一级文件夹节点和/或文件节点,高级文件夹节点作为父节点下设低级文件夹节点和文件节点,作为所述高级文件夹节点的子节点;相同父节点下设的子节点具有顺序依赖,形成链式结构。
优选的,所述文件夹节点结构包括:
节点信息区,用于存储所述文件夹节点的标识及其父节点、紧邻上一级节点及紧邻下一级节点的标识;
节点加密区,用于存储所述文件夹节点及以其为父节点下设的各子节点的 hash值;
其中,文件夹节点的hash值基于其所有子节点结构包括的所有内容的值进行哈希计算获得;文件节点的hash值基于其自身结构包括的所有内容的值进行哈希计算获得。
优选的,所述文件节点结构包括,
节点信息区,用于存储所述文件节点的标识及其父节点、紧邻上一级节点及紧邻下一级节点的标识;
节点数据区,用于存储文件数据;
节点加密区,用于存储所述文件节点的hash值以及消息认证码;其中,所述文件节点的消息认证码基于所述文件节点及与其具有相同父节点的所有上级文件节点的节点数据区的数据内容计算获得。
优选的,所述消息认证码的计算步骤如下:
记所述文件节点及与其具有相同父节点的所有上级文件节点的节点数据区的内容为P;
记其它参数及值的拼接作为附加消息A,其中加密区中消息认证码相关数据(dataMac)不参与运算;
用户ID预设值(UUID)作为临时量N;
随机生成256bits随机数,记为R,作为所述文件节点的随机密钥key;
采用AE-AD类算法,传入所述参数P、A、N、R,生成所述文件节点的消息认证码,存放在所述文件节点加密区dataMac内,消息认证码补充随机量扩充至32字节。
优选的,所述根节点的标识为用户ID预设值;
所述文件夹节点或文件节点的标识均随机产生。
优选的,所述文件节点加密区还用于存储数据的加密模式。
优选的,所述节点数据区的数据包括明文数据或加密数据。
优选的,所述文件系统进一步包括内部头文件,用于存储安全文件系统所在存储设备的设备HASH签名值和根节点及其下设的所有子节点的hash值;
所述设备HASH签名值为用户私钥对设备HASH签名后获得。
优选的,所述内部头文件进一步包括内部头文件标识、数据混淆参数、安全文件系统的版本;所述内部头文件标识为用户ID预设值。
优选的,所述文件系统进一步包括外部头文件,用于存储安全文件系统的公共信息。
优选的,所述公共信息包括:外部头文件标识、文件系统的目录层级、创建时间、文件系统的版本号、文件系统的描述、文件系统的整体校验码;
所述外部头文件标识为用户ID预设值。
优选的,所述文件系统被导出时,除外部头文件外,其余内容采用用户口令整体加密。
本发明还提供了一种创建安全文件系统的方法,包括:
初始化存储设备;
创建根节点;以及
根据用户指令在所述根节点下创建下级节点,相同父节点下设的子节点具有顺序依赖,形成链式结构。
优选的,所述创建下级节点的步骤包括,
判断创建的节点类型;
如为文件夹节点,则在其节点信息区,存储所述节点的标识及其父节点、紧邻上一级节点标识;在节点加密区,计算并存储该节点的hash值;
如为文件节点,则在其节点信息区,存储所述节点的标识及其父节点、紧邻上一级节点标识;在节点加密区,计算并存储该节点的hash值及消息认证码;以及在节点数据区,存储文件数据;
并且,每次创建新节点时,对其紧邻的上一级节点的节点信息区、及其父节点的节点加密区相应更新。若其父节点非根节点,则其父节点的父节点的节点加密区也相应更新,并层层传递,直至根节点的节点加密区相应更新。
优选的,所述初始化存储设备,包括,
编译生成可编辑程序,以生成所述安全文件系统;
生成用户ID预设值、用户公私钥对;
基于所述存储设备参数根据预设哈希算法计算设备HASH。
优选的,所述用户公钥作为明文数据进行存储;所述用户私钥作为加密数据进行存储。
优选的,所述创建安全文件系统的方法还包括生成内部头文件的步骤,包括,
以所述用户私钥对所述设备HASH签名,存储在所述内部头文件中;
将根节点以及以根节点为父节点的全部子节点的hash值填入所述内部头文件。
优选的,所述生成内部头文件的步骤还包括,随机定义数据混淆参数存入所述内部头文件,用于对内部头文件下的所有节点内容进行循环移位混淆,以得到随机的二进制数据流;
根据所述数据混淆参数计算此时根节点的偏移位存储到所述内部头文件。
优选的,将用户口令以预设算法生成加密密钥,所述安全文件系统采用所述加密密钥进行整体加密,使其处于机密安全文件状态并保存。
优选的,所述安全文件系统以所述机密安全文件状态导出时生成外部头文件;
所述外部头文件包括外部头文件标识、文件系统的目录层级、创建时间、文件系统的版本号、文件系统的描述、文件系统的整体校验码;所述外部头文件标识为所述用户ID预设值。
本发明还提供了一种多端设备上恢复安全文件系统的方法,包括:
步骤1,将用户口令以预设算法生成加密密钥,所述安全文件系统采用所述加密密钥进行整体加密,生成机密安全文件;
步骤2,将所述机密安全文件导出备份到其他存储设备;
步骤3,在所述其他存储设备上输入用户口令以预设算法生成加密密钥,并采用所述加密密钥对所述机密安全文件进行解密,生成普通安全文件;
步骤4,以所述其他存储设备参数根据预设哈希算法计算新的设备HASH,并以用户私钥签名生成新的设备HASH签名值,存入所述普通安全文件的内部头文件,并删除原有设备HASH签名值,构成新的普通安全文件。
优选的,所述多端设备上恢复安全文件系统的方法还包括:
步骤5,将用户口令以预设算法生成加密密钥,并对所述新的普通安全文件加密,生成新的机密安全文件并进行存储。
本发明的安全文件系统具有如下有益效果:
1、本发明的安全文件系统与存储设备进行绑定,并可以方便地在多端设备上进行备份恢复;
2、普通安全文件以随机密钥进行加密,直接拷贝文件也无法使用;每个节点的随机密钥不同,增强了文件系统的安全性;
3、本发明的安全文件系统使用新型的节点链式结构,可对文件系统进行自动的完整性校验;
4、本发明的安全文件系统可对任意指定格式的机密内容进行透明加解密, 且支持明文存储;
5、本发明的安全文件系统使用用户口令对文件系统进行二次加密,从而保证了文件的高度保密性。
附图说明
图1是根据本发明的实施例的安全文件系统的结构;
图2是根据本发明的实施例的安全文件系统的结构;
图3是根据本发明的实施例的安全文件系统的结构;
图4是根据本发明的实施例的安全文件系统的文件节点结构;
图5是根据本发明实施例的安全文件系统的文件夹节点结构;
图6是创建本发明的实施例的安全文件系统的方法流程图。
具体实施方式
以下结合具体实施方式进一步详细说明本发明的技术方案。应当理解,此处描述的具体实施方式仅仅用以解释本发明,并不用于限定本发明。
实施例1
本发明提供了一种安全文件系统,如图1-3所示。其由树形结构组成,其中最上级节点为根节点(根目录)1;根节点下设至少一级文件夹节点和/或文件节点,例如可以包括两个文件节点11、13和文件夹节点12、14;其中,文件夹节点12进一步包括两个文件节点121、122,文件夹节点14进一步包括一个文件节点141。
其中,本领域技术人员可以理解,本发明的安全文件系统可以根据需要创建多个文件夹和文件,而并不限于图1中所示的文件夹和文件的结构。
为了实现本发明的目的,本发明的文件系统将根目录及其下的所有文件夹和文件均以一种统一规则的数据结构进行存储,本说明书中我们将该统一规则的数据结构称为“节点”,通过该节点结构,能够达到安全存储文件的效果。
根据本发明的文件系统,各节点包括文件夹节点和文件节点两种类型;根节点下设至少一级文件夹节点和文件节点,高级文件夹节点作为父节点下设低级文件夹节点和文件节点,作为所述高级文件夹节点的子节点;相同父节点下设的子节点具有顺序依赖,组成链式结构;
具体的,以图1为例,根节点1下设子文件夹节点12和14以及子文件节点11和13;文件夹节点12下设子文件节点121和122;以根节点作为父节点的四个下一级子节点11-14具有顺序依赖,组成链式结构,如文件夹节点12的紧邻上一级节点(即兄节点)是文件节点11,其紧邻下一级节点(即弟节点) 是文件节点13;同样,以文件夹节点12作为父节点的子节点121和122具有顺序依赖,文件节点122的紧邻上一级节点是文件节点121;依此类推。
其中,文件节点只能是子节点;例如,如图1中的节点11、13、121、122、 141,其均为文件节点,因此其不能作为其他节点的父节点而仅能作为子节点存储。
其中,各节点支持更新、销毁、新建,文件节点支持公开、保密两种模式。
进一步地,如图4所示,所述文件节点结构包括:
1、节点信息区N1,用于存储:该节点标识id;其父节点、紧邻的上一级和下一级的节点标识,例如,其父节点标识parentId、其紧邻的上一级节点标识bId、其紧邻的下一级节点标识dId;该节点类型(例如:文件节点类型表示为1,文件夹节点类型表示为0)、节点名称;
其中,文件节点的标识id均随机产生;
其中,相同父节点下首个子节点创建时,其紧邻上一级节点标识bId为0;同理,在未创建相同父节点下下个子节点时,其紧邻下一级节点标识dId为0, 但可以在创建下个子节点时动态更新;
节点名称可自由设定,用于对节点的识别;
2、节点数据区N2,用于存储文件数据,每个文件节点可存储任意指定格式的文件在节点数据区,例如.txt文件、.exe文件、word文件、excel文件等。
3、节点加密区N3,用于存储所述文件节点的hash值、所述节点的消息认证码(mac);其中,所述文件节点的hash值基于其自身结构包括的所有内容的值进行哈希计算获得;所述文件节点的消息认证码基于所述文件节点及与其具有相同父节点的所有上级文件节点的节点数据区的数据内容计算获得。
其中,所述哈希计算可以使用本领域常用的MD5、SHA3-256等哈希算法;以图1所示的文件结构为例,节点141的hash值基于其节点信息区、节点数据区、加密区的值,通过哈希函数,如SHA3-256,计算获得;
其中,所述该节点的mac基于该节点及与其具有相同父节点的所有上级文件节点的节点数据区的数据内容计算获得;
具体的,
以计算节点122的消息认证码为例,记该节点及与其具有相同父节点的所有上级文件节点的节点数据区的内容为P,即记节点122和121的节点数据区的内容为P;记其它参数及值的拼接作为附加消息A,其中加密区中消息认证码相关数据(dataMac)不参与运算,即记节点122和121信息区所有内容及加密区除dataMac之外的内容的拼接作为附加消息A;用户ID预设值(UUID)作为临时量N;
随机生成256bits随机数,记为R,作为该文件节点122的随机密钥key;
采用AE-AD类算法,例如AES-CCM算法,传入上述参数P、A、N、R,生成该节点122数据区的密文及消息认证码(mac);其中,密文存放在该节点数据区内,消息认证码(mac)存放在dataMac内,mac需补充随机量扩充至32字节;
取设备HASH记为B;
计算F=mac^B^R^SHA256(UUID),dataMac=mac||F;
其中,设备HASH根据预设哈希算法计算,例如SHA3-256,计算公式举例如下:
定义android设备HASH=SHA3-256(设备物理地址/IMEI/机器型号/CPU型号/是否越狱/是否支持指纹/是否支持NFC/系统初始化时产生的唯一标识符);
定义iOS设备HASH=SHA3-256(操作系统对设备的唯一ID标识/是否越狱 /系统初始化时产生的唯一标识符);
定义win/mac-pc端设备HASH=SHA3-256(设备物理地址/CPU型号/核数 /GPU型号/屏幕分辨率/系统初始化时产生的唯一标识符)。
此外,文件节点加密区还用于存储数据的加密模式;所述数据区域使用的加密模式可以根据需要设置,例如在文件密级较高的情况下,可以随机生成的加密密钥使用预设加密算法例如AES-CCM对文件进行加密;文件密级不高时,可以不进行加密,而仅以明文方式存放。对于明文存储的文件节点,其 mac值可采用现有技术计算,例如HMAC或CMAC函数,在此不做特别限定。
与上述文件节点不同的是,文件夹节点的节点加密区中不包括消息认证码, 而只存储其hash值及以其为父节点下设的各子节点的hash值;并且,所述文件夹节点结构也不包括节点数据区。
具体的,如图5所示,所述文件夹节点结构包括:
节点信息区M1,用于存储:该节点标识id、其父节点、紧邻的上一级及下一级节点标识、该节点类型(例如:文件夹节点类型表示为0)、节点名称;
节点加密区M2,用于存储所述文件夹节点及以其为父节点下设的各子节点的hash值;
其中,文件夹节点的hash值基于其所有子节点结构包括的所有内容的值进行哈希计算获得;文件节点的hash值基于其自身结构包括的所有内容的值进行哈希计算获得。哈希计算可采用MD5、SHA3-256等常规哈希函数进行。
通过如上所述的节点数据结构,每个子节点信息区除了存储该子节点的id,还存储了其父节点、紧邻上一级、紧邻下一级节点的标识;并且,在文件夹节点中还记录了基于其所有子节点结构包括的所有内容的值进行哈希计算获得 hash值,在文件节点中还记录了所述文件节点及其具有相同父节点的所有上级文件节点的节点数据区的数据内容计算获得的消息认证码;因此每一个文件节点的破坏,会被其下级文件节点感知;当最后一个文件节点被破坏时,通过其父节点的hash能够感知到。从而该文件系统保证了文件数据不被破坏的极高的安全性。
进一步的,本发明的实施例的安全文件系统进一步包括内部头文件,如图2 所示,用于存储安全文件系统所在存储设备的设备HASH签名值和根节点及以根节点为父节点下设的所有子节点的hash值;所述设备HASH签名值为用户私钥对设备HASH签名后获得;内部头文件可以感知整个文件系统的hash变化。
具体地,所述内部头文件可以进一步包括:内部头文件标识,为用户ID预设值;数据混淆参数,例如循环左移位数swapBits,用于对内部头文件下的所有节点包含的内容的值的编码混淆;设备HASH以用户私钥签名的签名值(记入 fingerData);根节点及其下设的所有子节点的hash值(记入signedData);安全文件系统的版本;根节点偏移量;
其中,用户私钥为初始化创建文件时生成的用户公私钥对中的用户私钥;签名函数可采用现有技术中任一种签名函数,如ECDSA,签名公式如下:
fingerData=ECDSA(私钥,设备HASH);
根节点偏移量为根据所述数据混淆参数计算的根节点的偏移位。
设置好内部头文件格式后,对安全文件系统整体增加文件标识,例如,为一预设的字符串,前8个字节固定为:FF CD FE CD 74 73 66 73,用以对整体解密后的安全文件系统进行校验。
进一步的,本发明的实施例的安全文件系统进一步包括外部头文件,如图 3所示,用于存储安全文件系统的公共信息。在一些实施例中,外部头文件可以包括例如:内部头文件的标识、文件系统的目录层级、创建时间、文件系统的版本号、此文件系统的描述、文件系统的整体校验码等。其中,所述外部头文件标识为用户ID预设值。外部头文件的内容可以直接被用户解码成明文读取。外部头文件在安全文件系统需要导出时生成。
进一步地,安全文件系统整体以用户口令加密保护为机密安全文件状态,以备导出。此状态下,除外部头文件下,其余内容全部被用户口令加密保护。加密方式为用户口令经过例如PBKDF2算法转成用户密钥后,使用对称加密算法进行整体加密,使其处于机密安全文件状态并保存。本领域技术人员可以理解,还可以通过其他加密算法计算用户密钥,可采用任一对称加密算法对安全文件系统整体加密。
实施例2
如图6所示,本发明进一步提供了创建所述文件系统的方法如下:
步骤100,初始化存储设备;具体地,可以包括如下步骤,
编译生成可编辑程序,用以生成安全文件系统;
例如,可以在一个动态链接库(例如,so编程环境)内初始化安全文件系统区域为全0;
生成用户ID预设值、用户公私钥对;
基于所述存储设备参数根据预设哈希算法计算设备HASH。所述设备HASH的计算如前所述,在此不再赘述。
步骤101,创建根节点1;
根节点的结构如文件夹节点的结构。如图1所示,首先在节点1信息区内分别填入该节点标识id(用户ID预设值)、父节点标识(0)、紧邻上一级节点标识(0)、紧邻下一级节点标识(0)、该节点类型(0)、节点名称;
然后在节点1加密区,填入根节点及其下设所有子节点的hash值;初始化时,根节点的hash值基于根节点结构包括的所有内容的值进行哈希计算获得,哈希计算采用预设哈希算法进行,例如可以是现有技术中任意一种哈希算法,优选SHA3-265;根节点下设子节点后,根节点的hash值基于其所有子节点结构包括的所有内容的值进行哈希计算获得;子节点的hash值按照前述文件夹节点和文件节点hash值的计算方法获得,在此不再赘述。
由于节点1为文件夹节点,因此其无节点数据区;
在一些实施例中,根节点1下可以预设4个子文件节点(附图中未示出),用于存储用户私钥;用户私钥可以被拆分成4份分别在上述4个文件节点进行加密存储,保证了用户私钥的安全性。用户公钥可以明文形式存储于任意非加密节点,在此不做特别限定。
然后,在步骤102,根据用户指令在初始化后的文件系统下创建文件夹节点或文件节点,相同父节点下设的子节点具有顺序依赖,组成链式结构;
具体地,以图1为例进行说明,包括步骤:
首先在根节点1下创建文件节点11;
具体的,根据用户指令创建文件节点11;判断节点类型,由于是文件节点,因此进入步骤106;
在步骤106,节点11的节点信息区内分别填入该节点标识id(随机生成)、其父节点标识parentId(即节点1的标识)、其紧邻的上一级节点标识bId(0)、其紧邻下一级节点标识dId(0)、
在本发明的一些实施例中,节点11的节点信息区还可以包括该节点类型 (1)、节点名称;
节点11的加密区填入该节点11的hash值、消息认证码mac、数据区域使用的加密模式(例如,明文存储);其中,该节点11的hash值基于其包括的所有内容的值进行哈希计算获得;mac值可采用现有技术中任意一种mac值计算方法,例如HMAC或CMAC函数,在此不再赘述;
节点11的数据区存储明文文件数据;
至此,节点11已经创建完成;
由于创建了新的节点,因此在步骤105对节点11的紧邻的上一级节点的节点信息区、及其父节点加密区相应更新:
具体的,节点11为根节点1下设的第一个子节点,其没有紧邻的上一级节点,因此,仅对其父节点,即根节点1的节点加密区进行更新:在节点1的节点加密区填入子节点11的hash值,同时更新根节点1的hash值。
然后,在步骤102,根据用户指令创建文件夹节点12;
根据节点类型(节点12为文件夹节点),执行步骤104:
在步骤104,节点12的节点信息区内分别填入该节点标识id(随机生成)、其父节点标识parentId(即节点1的标识)、其紧邻的上一级节点标识bId(即节点11的标识)、其紧邻的下一级节点标识dId(0)、该节点类型(0)、节点名称;
节点12的节点加密区存储该节点的hash值;
至此,文件夹节点12已经创建完成;
同样,由于创建了新的节点,因此在步骤105对节点12的紧邻的上一级节点即节点11的节点信息区、及其父节点即根节点1的加密区相应更新:
具体的,在节点11的节点信息区内更新其中的紧邻的下一级节点标识dId,即节点12的标识;在节点1的节点加密区增加节点12的hash值,同时更新节点1的hash值。
然后,回到步骤102,根据用户指令创建文件夹节点12的子文件节点121;根据节点类型,执行步骤106;
在步骤106,节点121的节点信息区内分别填入该节点标识id(随机生成)、其父节点标识parentId(即节点12的标识)、其紧邻的上一级节点标识bId(0)、其紧邻的下一级节点标识dId(0)、该节点类型(1)、节点名称;
节点121的节点加密区填入该节点的hash值、消息认证码mac;
在一些实施例中,节点加密区还用于存储数据区域使用的加密模式(例如,加密存储);
节点121的节点数据区存储加密文件数据;mac值及密文的获取方法如前所述,在此不再赘述。
同样,步骤105,对节点121的紧邻的上一级节点的节点信息区、及其父节点加密区相应更新:节点121为其父节点12下设的第一个子节点,其没有紧邻的上一级节点,因此,对其父节点12的加密区进行更新,填入子节点121的hash 值,同时更新父节点12的hash值;并且,父节点12非根节点,则需更新父节点12的父节点的加密区,即在根节点1的加密区更新节点1和节点12的hash 值。
依上述方法,根据用户指令分别创建节点13、14、121、141,在此不再赘述。
进一步的,创建安全文件系统的方法还包括生成内部头文件的过程,具体包括步骤:
以所述用户私钥对所述设备HASH签名,存储在所述内部头文件中;
将根节点以及以根节点为父节点的全部子节点的hash值填入所述内部头文件;
随机定义数据混淆参数swapBits(例如,取值1-7)存入内部头文件,对内部头文件下的所有节点内容进行循环移位混淆,得到随机的二进制数据流;
并根据所述数据混淆参数计算此时根节点的偏移位存储到内部头文件。
并且,安全文件系统中各节点更新时,不仅各节点的hash值自动更新,对于文件节点,其mac值同时更新,而且,各节点的父节点、根节点、内部头文件存储的hash值也相应自动更新。具体的,子节点更新,子节点及其父节点的 hash值更新,层层传递,根节点的hash值更新,内部头文件存储的hash值也将自动更新。
所述内部头文件进一步包括内部头文件标识、安全文件系统的版本;所述内部头文件标识为用户ID预设值。
设置好内部头文件格式后,对安全文件系统整体增加文件标识,例如,为一预设的字符串,前8个字节固定为:FF CD FE CD 74 73 66 73,用以对整体解密后的安全文件系统进行校验。
进一步的,将用户口令以预设算法,例如PBKDF2生成加密密钥,使用对称加密算法,如AES算法,对安全文件系统进行整体加密,使其处于机密安全文件状态并存储,例如存储为.so文件;
当需要导出文件系统时,需对机密安全文件进一步附加外部头文件,拼接机密安全文件状态的数据导出,可进行离线备份。所述外部头文件包括外部头文件标识、文件系统的目录层级、创建时间、文件系统的版本号、文件系统的描述、文件系统的整体校验码;所述外部头文件标识为所述用户ID预设值。
本发明相应地提供了一种解密本发明的安全文件系统的方法,包括:
使用用户口令按PBKDF2生成加密密钥对机密安全文件进行解密,使得安全文件系统处于普通安全文件状态,此时将普通安全文件状态的数据加载到内存长期使用;
读取内部头文件:内部头文件标识、设备HASH签名值,所述设备HASH签名值为用户私钥对设备HASH签名后获得;
计算设备HASH为B;
采用用户公钥对设备HASH签名验签,如果正确说明设备HASH可用;
如果预读取加密节点的数据,则进一步包括步骤202,读取加密文件节点,已知密文C、附加消息A(除密文及dataMac外的其它参数及值的拼接)、临时量N(用户ID预设值UUID)、该加密节点的mac、F;
计算R=F^B^mac^SHA256(UUID),R即为AES-CCM的随机密钥key;
采用AES-CCM可以对此节点的mac值进行完整性校验,并解密数据区的数据,获得明文数据。
每节点的随机密钥key都不同,且随机生成,当更新数据区内容时,将生成新的随机密钥key按上述方式进行加解密。
本领域技术人员可以理解,由于本发明的文件系统使用多重加密的链式结构,因此算法比较复杂,每次更新节点均需要重新计算其自身及其父节点的 hash,对于文件节点的更新,还需要更新其自身及其下级节点mac值,因此应尽量避免更新节点的数据,如有必要,可重新生成节点,并删除旧的节点;并且,所有节点的父子结构,应该控制最多不要超过四层目录结构,需要增加文件时,可横向扩展节点;各节点的父子兄弟关系依赖节点id号进行记录,相同父节点下设的子节点具有顺序依赖,形成链式结构。
实施例3
本发明进一步提供了一种多端设备上恢复如前所述的安全文件系统的方法,可以将前述的安全文件系统从本地存储设备上导出备份到其他存储设备上;所述本地存储设备及其他存储设备可以为任何一种类型的计算机、笔记本电脑、平板电脑、移动终端等;
其中,所述方法包括:
步骤1,将用户口令以预设算法生成加密密钥,所述安全文件系统采用所述加密密钥进行整体加密,生成机密安全文件;
步骤2,将所述机密安全文件导出备份到其他存储设备;
步骤3,在所述其他存储设备上输入用户口令以预设算法生成加密密钥,并采用所述加密密钥对所述机密安全文件进行解密,生成普通安全文件;
步骤4,以所述其他存储设备参数根据预设哈希算法计算新的设备HASH,并以用户私钥签名生成新的设备HASH签名值,存入所述普通安全文件的内部头文件,并删除原有设备HASH签名值,构成新的普通安全文件;
步骤5,将用户口令以预设算法生成加密密钥,并对所述新的普通安全文件加密,生成新的机密安全文件并进行存储。
以上的实施方式均为本发明的优选实施方式,并非因此限制本发明的专利保护范围。任何本发明所属的技术领域的技术人员,在不脱离本发明所公开的精神和范围的前提下,对本发明的内容所做的等效结构与等效步骤的变换均落入本发明要求保护的专利范围之内。
Claims (22)
1.一种安全文件系统,包括:
至少一个根节点;所述根节点下设至少一级文件夹节点和/或文件节点,高级文件夹节点作为父节点下设低级文件夹节点和文件节点,作为所述高级文件夹节点的子节点;相同父节点下设的子节点具有顺序依赖,形成链式结构。
2.根据权利要求1所述的文件系统,其特征在于:
所述文件夹节点结构包括:
节点信息区,用于存储所述文件夹节点的标识及其父节点、紧邻上一级节点及紧邻下一级节点的标识;
节点加密区,用于存储所述文件夹节点及以其为父节点下设的各子节点的hash值;
其中,文件夹节点的hash值基于其所有子节点结构包括的所有内容的值进行哈希计算获得;文件节点的hash值基于其自身结构包括的所有内容的值进行哈希计算获得。
3.根据权利要求2所述的文件系统,其特征在于:
所述文件节点结构包括,
节点信息区,用于存储所述文件节点的标识及其父节点、紧邻上一级节点及紧邻下一级节点的标识;
节点数据区,用于存储文件数据;
节点加密区,用于存储所述文件节点的hash值以及消息认证码;其中,所述文件节点的消息认证码基于所述文件节点及与其具有相同父节点的所有上级文件节点的节点数据区的数据内容计算获得。
4.根据权利要求3所述的文件系统,其特征在于:
所述消息认证码的计算步骤如下:
记所述文件节点及与其具有相同父节点的所有上级文件节点的节点数据区的内容为P;
记其它参数及值的拼接作为附加消息A,其中加密区中消息认证码相关数据(dataMac)不参与运算;
用户ID预设值(UUID)作为临时量N;
随机生成256bits随机数,记为R,作为所述文件节点的随机密钥key;
采用AE-AD类算法,传入所述参数P、A、N、R,生成所述文件节点的消息认证码,存放在所述文件节点加密区dataMac内,消息认证码补充随机量扩充至32字节。
5.根据权利要求3所述的文件系统,其特征在于:
所述根节点的标识为用户ID预设值;
所述文件夹节点或文件节点的标识均随机产生。
6.根据权利要求3所述的文件系统,其特征在于:
所述文件节点加密区还用于存储数据的加密模式。
7.根据权利要求6所述的文件系统,其特征在于:
所述节点数据区的数据包括明文数据或加密数据。
8.根据权利要求3所述的文件系统,其特征在于:
所述文件系统进一步包括内部头文件,用于存储安全文件系统所在存储设备的设备HASH签名值和根节点及其下设的所有子节点的hash值;所述设备HASH签名值为用户私钥对设备HASH签名后获得。
9.根据权利要求8所述的文件系统,其特征在于:
所述内部头文件进一步包括内部头文件标识、数据混淆参数、安全文件系统的版本;所述内部头文件标识为用户ID预设值。
10.根据权利要求9所述的文件系统,其特征在于:
所述文件系统进一步包括外部头文件,用于存储安全文件系统的公共信息。
11.根据权利要求10所述的文件系统,其特征在于:
所述公共信息包括:外部头文件标识、文件系统的目录层级、创建时间、文件系统的版本号、文件系统的描述、文件系统的整体校验码;所述外部头文件标识为用户ID预设值。
12.根据权利要求11所述的文件系统,其特征在于:
所述文件系统被导出时,除外部头文件外,其余内容采用用户口令整体加密。
13.一种创建如权利要求1的安全文件系统的方法,包括:
初始化存储设备;
创建根节点;以及
根据用户指令在所述根节点下创建下级节点,相同父节点下设的子节点具有顺序依赖,形成链式结构。
14.根据权利要求13所述的方法,其特征在于:
所述创建下级节点的步骤包括,
判断创建的节点类型;
如为文件夹节点,则在其节点信息区,存储所述节点的标识及其父节点、紧邻上一级节点标识;在节点加密区,计算并存储该节点的hash值;
如为文件节点,则在其节点信息区,存储所述节点的标识及其父节点、紧邻上一级节点标识;在节点加密区,计算并存储该节点的hash值及消息认证码;以及在节点数据区,存储文件数据;
并且,每次创建新节点时,对其紧邻的上一级节点的节点信息区、及其父节点的节点加密区相应更新。
15.根据权利要求13的方法,其特征在于:
所述初始化存储设备,包括,
编译生成可编辑程序,以生成所述安全文件系统;
生成用户ID预设值、用户公私钥对;
基于所述存储设备参数根据预设哈希算法计算设备HASH。
16.根据权利要求13的方法,其特征在于:
所述用户公钥作为明文数据进行存储;所述用户私钥作为加密数据进行存储。
17.根据权利要求13的方法,其特征在于:
还包括生成内部头文件的步骤,包括,
以所述用户私钥对所述设备HASH签名,存储在所述内部头文件中;
将根节点以及以根节点为父节点的全部子节点的hash值填入所述内部头文件。
18.根据权利要求17的方法,其特征在于:
所述生成内部头文件的步骤还包括,随机定义数据混淆参数存入所述内部头文件,用于对内部头文件下的所有节点内容进行循环移位混淆,以得到随机的二进制数据流;
根据所述数据混淆参数计算此时根节点的偏移位存储到所述内部头文件。
19.根据权利要求18的方法,其特征在于:
将用户口令以预设算法生成加密密钥,所述安全文件系统采用所述加密密钥进行整体加密,使其处于机密安全文件状态并保存。
20.根据权利要求19所述的方法,其特征在于:
所述安全文件系统以所述机密安全文件状态导出时生成外部头文件;
所述外部头文件包括外部头文件标识、文件系统的目录层级、创建时间、文件系统的版本号、文件系统的描述、文件系统的整体校验码;所述外部头文件标识为所述用户ID预设值。
21.一种多端设备上恢复权利要求1所述的安全文件系统的方法,包括:
步骤1,将用户口令以预设算法生成加密密钥,所述安全文件系统采用所述加密密钥进行整体加密,生成机密安全文件;
步骤2,将所述机密安全文件导出备份到其他存储设备;
步骤3,在所述其他存储设备上输入用户口令以预设算法生成加密密钥,并采用所述加密密钥对所述机密安全文件进行解密,生成普通安全文件;
步骤4,以所述其他存储设备参数根据预设哈希算法计算新的设备HASH,并以用户私钥签名生成新的设备HASH签名值,存入所述普通安全文件的内部头文件,并删除原有设备HASH签名值,构成新的普通安全文件。
22.根据权利要求21所述的多端设备上恢复安全文件系统的方法,其特征在于,还包括:
步骤5,将用户口令以预设算法生成加密密钥,并对所述新的普通安全文件加密,生成新的机密安全文件并进行存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811575068.7A CN109657497B (zh) | 2018-12-21 | 2018-12-21 | 安全文件系统及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811575068.7A CN109657497B (zh) | 2018-12-21 | 2018-12-21 | 安全文件系统及其方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109657497A true CN109657497A (zh) | 2019-04-19 |
CN109657497B CN109657497B (zh) | 2023-06-13 |
Family
ID=66115746
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811575068.7A Active CN109657497B (zh) | 2018-12-21 | 2018-12-21 | 安全文件系统及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109657497B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968895A (zh) * | 2019-11-29 | 2020-04-07 | 北京百度网讯科技有限公司 | 一种数据的处理方法、装置、电子设备及存储介质 |
CN111079187A (zh) * | 2019-12-23 | 2020-04-28 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其文件管理方法 |
US20230185940A1 (en) * | 2021-12-13 | 2023-06-15 | Docusign, Inc. | Batch processing of audit records |
CN117422281A (zh) * | 2023-12-18 | 2024-01-19 | 深圳赛桥生物创新技术有限公司 | 工艺文件测试方法、装置、计算机设备及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
US20070276807A1 (en) * | 2006-03-30 | 2007-11-29 | Wei Zhu Chen | Search Ranking Method for File System and Related Search Engine |
CN102567507A (zh) * | 2011-12-26 | 2012-07-11 | 深圳市万兴软件有限公司 | 一种在mac下创建树的方法及系统 |
CN102819541A (zh) * | 2011-11-15 | 2012-12-12 | 常言说 | 一种文件管理系统用户界面的设计方法 |
CN103067170A (zh) * | 2012-12-14 | 2013-04-24 | 深圳国微技术有限公司 | 一种基于ext2文件系统的加密文件系统、加密方法及解密方法 |
CN103226593A (zh) * | 2013-04-17 | 2013-07-31 | 富泰华工业(深圳)有限公司 | 一种文件系统的管理方法及其文件存储终端 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和系统 |
CN103745164A (zh) * | 2013-12-20 | 2014-04-23 | 中国科学院计算技术研究所 | 一种基于环境认证的文件安全存储方法与系统 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN105279254A (zh) * | 2015-10-12 | 2016-01-27 | 江苏中威科技软件系统有限公司 | 版式数据流文件系统及其操作装置和其操作装置的实现方法 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN108182367A (zh) * | 2017-12-15 | 2018-06-19 | 西安电子科技大学 | 一种支持数据更新的加密数据块客户端去重方法 |
-
2018
- 2018-12-21 CN CN201811575068.7A patent/CN109657497B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1567255A (zh) * | 2003-09-02 | 2005-01-19 | 四川大学 | 一种安全文件系统的存储及访问控制方法 |
US20070276807A1 (en) * | 2006-03-30 | 2007-11-29 | Wei Zhu Chen | Search Ranking Method for File System and Related Search Engine |
CN102819541A (zh) * | 2011-11-15 | 2012-12-12 | 常言说 | 一种文件管理系统用户界面的设计方法 |
CN102567507A (zh) * | 2011-12-26 | 2012-07-11 | 深圳市万兴软件有限公司 | 一种在mac下创建树的方法及系统 |
CN103067170A (zh) * | 2012-12-14 | 2013-04-24 | 深圳国微技术有限公司 | 一种基于ext2文件系统的加密文件系统、加密方法及解密方法 |
CN103226593A (zh) * | 2013-04-17 | 2013-07-31 | 富泰华工业(深圳)有限公司 | 一种文件系统的管理方法及其文件存储终端 |
CN103595730A (zh) * | 2013-11-28 | 2014-02-19 | 中国科学院信息工程研究所 | 一种密文云存储方法和系统 |
CN103745164A (zh) * | 2013-12-20 | 2014-04-23 | 中国科学院计算技术研究所 | 一种基于环境认证的文件安全存储方法与系统 |
CN104156278A (zh) * | 2014-08-01 | 2014-11-19 | 江苏大学 | 一种文件版本控制系统及其方法 |
CN105279254A (zh) * | 2015-10-12 | 2016-01-27 | 江苏中威科技软件系统有限公司 | 版式数据流文件系统及其操作装置和其操作装置的实现方法 |
CN106657174A (zh) * | 2015-10-28 | 2017-05-10 | 阿里巴巴集团控股有限公司 | 一种数据同步方法、更新方法及装置 |
CN108182367A (zh) * | 2017-12-15 | 2018-06-19 | 西安电子科技大学 | 一种支持数据更新的加密数据块客户端去重方法 |
Non-Patent Citations (2)
Title |
---|
秦晓磊: "基于云存储的Web访问控制研究与实践", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
高丽萍 等: "实时云办公系统下文件管理的一致性维护研究", 《小型微型计算机系统》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110968895A (zh) * | 2019-11-29 | 2020-04-07 | 北京百度网讯科技有限公司 | 一种数据的处理方法、装置、电子设备及存储介质 |
CN110968895B (zh) * | 2019-11-29 | 2022-04-05 | 北京百度网讯科技有限公司 | 一种数据的处理方法、装置、电子设备及存储介质 |
CN111079187A (zh) * | 2019-12-23 | 2020-04-28 | 江苏恒宝智能系统技术有限公司 | 一种智能卡及其文件管理方法 |
CN111079187B (zh) * | 2019-12-23 | 2022-04-01 | 恒宝股份有限公司 | 一种智能卡及其文件管理方法 |
US20230185940A1 (en) * | 2021-12-13 | 2023-06-15 | Docusign, Inc. | Batch processing of audit records |
CN117422281A (zh) * | 2023-12-18 | 2024-01-19 | 深圳赛桥生物创新技术有限公司 | 工艺文件测试方法、装置、计算机设备及存储介质 |
CN117422281B (zh) * | 2023-12-18 | 2024-03-22 | 深圳赛桥生物创新技术有限公司 | 工艺文件测试方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109657497B (zh) | 2023-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101999188B1 (ko) | 비밀 공유를 위한 타원 곡선 암호를 사용하는 개인용 장치 보안 | |
CN109657497A (zh) | 安全文件系统及其方法 | |
US9537657B1 (en) | Multipart authenticated encryption | |
US11184164B2 (en) | Secure crypto system attributes | |
CN104363215B (zh) | 一种基于属性的加密方法和系统 | |
CN106878013B (zh) | 一种文件的加密、解密方法和装置 | |
CN102567688B (zh) | 一种安卓操作系统上的文件保密系统及其保密方法 | |
US20100005318A1 (en) | Process for securing data in a storage unit | |
US11212082B2 (en) | Ciphertext based quorum cryptosystem | |
CN106776904A (zh) | 一种不可信云计算环境中支持动态验证的模糊查询加密方法 | |
US10630474B2 (en) | Method and system for encrypted data synchronization for secure data management | |
CN100401309C (zh) | 税控设备软件版本智能升级加密验证方法 | |
CN105184181B (zh) | 文件的加密方法、解密方法及装置 | |
CN105100083A (zh) | 一种隐私保护且支持用户撤销的基于属性加密方法和系统 | |
KR20080025121A (ko) | 비대칭 개인키로부터 비밀키 생성 | |
CN110351297B (zh) | 一种应用于区块链的验证方法及装置 | |
CN109478214A (zh) | 用于证书注册的装置和方法 | |
US9288061B2 (en) | Safe communication method with card | |
KR20110067417A (ko) | 데이터 암호화 방법 및 장치와 데이터 복호화 방법 및 장치 | |
CN114978525A (zh) | 基于bim的数据安全认证方法及系统 | |
CN114267100A (zh) | 开锁认证方法、装置、安全芯片及电子钥匙管理系统 | |
CN110166458B (zh) | 一种三级秘钥加密方法 | |
JP2007527561A (ja) | コンピュータ・デバイス上でのソフトウェアの利用を制御するためのシステム及び方法 | |
Veeraragavan et al. | Enhanced encryption algorithm (EEA) for protecting users' credentials in public cloud | |
CN114448794B (zh) | 一种基于芯片可信根对固件进行安全升级的方法及装置 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20191113 Address after: 102300 no.6-1-21, office building, building 20, Pudong, Mentougou District, Beijing Applicant after: Beijing Siyuan ideal Holding Group Co.,Ltd. Address before: 100102 No. 301, No. 316 building, Nanhu garden, Chaoyang District, Beijing 18 Applicant before: BEIJING SYSWIN INTERCONNECTED TECHNOLOGY CO.,LTD. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |