CN117094016B - 基于国密Linux内核文件系统数据的加密方法及装置 - Google Patents
基于国密Linux内核文件系统数据的加密方法及装置 Download PDFInfo
- Publication number
- CN117094016B CN117094016B CN202311076890.XA CN202311076890A CN117094016B CN 117094016 B CN117094016 B CN 117094016B CN 202311076890 A CN202311076890 A CN 202311076890A CN 117094016 B CN117094016 B CN 117094016B
- Authority
- CN
- China
- Prior art keywords
- encryption
- kernel
- file
- linux
- file system
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 230000004048 modification Effects 0.000 claims description 28
- 238000012986 modification Methods 0.000 claims description 28
- 230000015654 memory Effects 0.000 claims description 26
- 238000004891 communication Methods 0.000 claims description 4
- 230000004807 localization Effects 0.000 abstract description 4
- 230000006870 function Effects 0.000 description 12
- 238000010586 diagram Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 239000000203 mixture Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/172—Caching, prefetching or hoarding of files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及数据加密技术领域,公开了基于国密Linux内核文件系统数据的加密方法及装置,方法包括:基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;编写原生文件系统的加密工具;根据加密文件系统创建指令将可用盘作为加密文件系统挂载至Linux系统目录下,生成加密目录;根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至加密目录,并记录加密文件夹描述符;根据加密工具以及加密文件夹描述符设置加密策略;基于加密策略对写入加密目录的文件数据进行加密。通过引入国产密码算法,填补了Linux原生文件系统在国产算法方面的空白,进而增强了加密文件系统的本土化和安全性。
Description
技术领域
本发明涉及数据加密技术领域,具体涉及基于国密Linux内核文件系统数据的加密方法及装置。
背景技术
国产加密算法的应用生态匮乏主要是由于起步晚以及系统对国产算法不兼容等原因所致,尽管国产密码算法如SM4和SM3已经被纳入Linux系统的内核源码中,但所有主流Linux操作系统的供应商并未将其编译到发布版本中。
在新版Linux系统内核中虽然增加了数据加密功能,但仅支持国际通用的加密算法,并不支持国产加密算法。由于国际通用加密算法的标准制定过程涉及多个国家和组织,因此国际通用加密算法存在潜在的后门,容易使得加密数据受到威胁,此外如果国内Linux系统应用主要依赖于国际通用算法,也容易导致国内密码学技术的发展受限。
发明内容
有鉴于此,本发明提供了一种基于国密Linux内核文件系统数据的加密方法,以解决加密过程中数据安全性不高,加密算法缺乏本土化应用的问题。
第一方面,本发明提供了一种基于国密Linux内核文件系统数据的加密方法,方法包括:基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具;获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录;根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符;根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式;基于所述加密策略对写入加密目录的文件数据进行加密。
本发明实施例通过将国产对称加密算法添加到Linux系统内核中,并根据升级后的内核原生文件系统驱动接口编写原生文件系统的加密工具,同时设置加密策略,包括文件名和数据对应的加密算法和填充模式,可以进一步加强数据加密的安全性,通过加密工具配合Linux原生文件系统完成国密加密功能,相较于目前主流加密文件系统性能更高,由于引入国产密码算法,从而填补了Linux原生文件系统在国产算法方面的空白,进而增强了系统的本土化和安全性。
在一种可选的实施方式中,所述基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级,包括:基于国产对称加密算法对Linux系统内核源码进行设置;基于编译选项对设置后的Linux系统内核源码进行编译;在编译结束后,升级Linux系统内核。
通过修改Linux系统内核源码,整合国产对称加密算法到Linux系统内核中,并通过编译选项对内核进行设置和编译,最后升级Linux系统内核,从而可以提供更高的性能和稳定性。
在一种可选的实施方式中,所述基于国产对称加密算法对Linux系统内核源码进行设置,包括:获取Linux系统内核源码中加密模块的修改位置;获取Linux系统内核源码中原生文件系统的秘钥模块修改位置以及加密策略模块修改位置;基于所述加密模块的修改位置、所述原生文件系统的秘钥模块修改位置以及加密策略模块修改位置设置国产对称加密算法以及国产对称加密算法对应的宏定义。
通过修改加密模块的位置,将国产对称加密算法集成到Linux系统中,同时,通过对原生文件系统的秘钥模块和加密策略模块进行修改,从而可以实现对文件数据的加密保护。
在一种可选的实施方式中,所述基于编译选项对设置后的Linux系统内核源码进行编译,包括:将编译选项中的文件加密选项设置为开启;判断Linux系统内核是否支持国产对称加密算法,若支持,则编译设置后的Linux系统内核源码。
通过编译选项的设置,确保加密模块和文件系统的秘钥模块以及加密策略模块得到正确的编译和配置。从而可以保证在升级后的Linux系统内核中能够正常支持国产对称加密算法。
在一种可选的实施方式中,所述方法,还包括:若不支持,则单独编译国产对称加密算法的驱动程序;将所述驱动程序加载至Linux系统内核。
通过判断Linux系统内核是否支持国产对称加密算法,若不支持则单独编译国产对称加密算法的驱动程序,从而确保系统完全支持该算法,将其完全集成到内核中。
在一种可选的实施方式中,所述根据所述加密工具以及加密文件夹描述符设置加密策略,包括:根据所述加密工具判断是否存在指定加密算法;若不存在,则基于加密工具中默认的加密算法以及加密文件夹描述符设置加密策略;若存在,则将指定加密算法添加至加密策略。
通过判断加密工具是否存在指定的加密算法,可以及时发现是否已经指定某个加密算法作为文件的加密算法。当具有指定加密算法时,根据加密文件夹描述符设置加密策略可以补充该指定的算法,从而可以实现文件名和文件数据采用不同的加密算法。
在一种可选的实施方式中,所述基于所述加密策略对写入加密目录的文件数据进行加密之后,还包括:根据文件锁定指令利用加密工具将存储加密后的文件数据的文件夹进行锁定。
通过文件锁定指令,加密文件数据可以实现对文件的临时或长期锁定,防止被未经授权的用户或恶意软件盗取,进而可以提高数据的安全性。
第二方面,本发明提供了一种基于国密Linux内核文件系统数据的加密装置,所述装置包括:
内核升级模块,用于基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;
加密工具创建模块,用于基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具;
加密文件系统挂载模块,用于获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录;
秘钥注册模块,用于根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符;
加密策略设置模块,用于根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式;
数据加密模块,用于基于所述加密策略对写入加密目录的文件数据进行加密。
第三方面,本发明提供了一种计算机设备,包括:存储器和处理器,存储器和处理器之间互相通信连接,存储器中存储有计算机指令,处理器通过执行计算机指令,从而执行上述第一方面或其对应的任一实施方式的基于国密Linux内核文件系统数据的加密方法。
第四方面,本发明提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机指令,计算机指令用于使计算机执行上述第一方面或其对应的任一实施方式的基于国密Linux内核文件系统数据的加密方法。
附图说明
为了更清楚地说明本发明具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的基于国密Linux内核文件系统数据的加密方法的流程示意图;
图2是根据本发明实施例的另一基于国密Linux内核文件系统数据的加密方法的流程示意图;
图3是根据本发明实施例的另一基于国密Linux内核文件系统数据的加密方法的流程示意图;
图4是根据本发明实施例的另一基于国密Linux内核文件系统数据的加密方法的流程示意图;
图5是根据本发明实施例的另一基于国密Linux内核文件系统数据的加密方法的流程示意图;
图6是根据本发明实施例的基于国密Linux内核文件系统数据的加密装置的模块组成示意图;
图7是本发明实施例的计算机设备的硬件结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
根据本发明实施例,提供了一种基于国密Linux内核文件系统数据的加密方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
在本实施例中提供了一种基于国密Linux内核文件系统数据的加密方法,可用于上述的计算机设备,图1是根据本发明实施例的基于国密Linux内核文件系统数据的加密方法的流程图,如图1所示,该流程包括如下步骤:
步骤S101,基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级。
本发明实施例中,国产对称加密算法指的是由中国自主研发的对称加密算法,本发明以SM4算法作为示例。Linux系统内核编译选项指的是在编译Linux内核时,通过配置各种选项来对内核源码进行自主定制。具体实现中,下载Linux内核源码,并在其中添加SM4算法的相关代码,通过配置内核的编译选项,启用SM4支持后进行编译。
步骤S102,基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具。
本发明实施例中,原生文件系统指的是内核提供的默认文件系统,例如Ext4、NTFS等。原生文件系统的驱动接口指的是与该文件系统交互的接口,通过这些接口可以对文件系统进行读写操作。加密工具指的是一种用于对文件进行加密和解密操作的工具,可以理解的是,由于升级了Linux系统内核,已经包括对原生文件系统的加密相关模块的改进。
示例性的,在编写加密工具(crypto_sm4)后,利用加密工具通过驱动接口可以与系统的文件系统进行交互。当用户使用该工具对待加密文件进行加密时,工具将调用驱动接口与原生文件系统进行通信,将文件进行加密处理,并将加密后的文件存储在磁盘上。
步骤S103,获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录。
本发明实施例中,可用盘指的是在Linux系统中可以被使用的磁盘。加密文件系统创建指令指的是用于创建加密文件系统的命令。可以理解的是,挂载指的是将一个文件系统连接到文件系统树中的指定目录上,使得文件系统中的内容可以被访问和使用。加密目录指的是挂载文件系统后的目标目录。
示例性的,选择系统下的一个可用盘作为加密文件系统,指令为mkfs.ext4–Oencrypt/dev/sdb1,将制作好加密文件系统的盘挂载到系统目录下,加密文件系统创建指令为mkdir/crypto&&mount/dev/sdb1/crypto,‘/crypto’即为加密目录。
步骤S104,根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符。
本发明实施例中,预创建秘钥文件指的是事先创建的包含加密所需秘钥的文件。秘钥注册指的是将预创建的秘钥文件中的秘钥注册至加密目录中,以使可用于加密和解密操作。加密文件夹描述符是指记录了加密文件夹的信息的数据结构。可以理解的是,秘钥文件可以是人为提供,即把16或32位的字符的密码写入一个文件,然后把该文件放入文件系统内;秘钥文件也可以使用机器随机产生,秘钥长度需根据加密算法相匹配。
示例性的,利用本发明编写的加密工具(crypto_sm4)将秘钥文件中的秘钥注册到系统的指定目录下,秘钥注册指令为crypto_sm4 add_key/crypto<‘password-file’同时记录该秘钥生成的加密文件夹描述符,例如‘/root/encrypted_folder’。
步骤S105,根据所述加密工具以及加密文件夹描述符设置加密策略。
本发明实施例中,加密策略包括文件名和数据对应的加密算法和填充模式。
示例性的,利用本发明编写的加密工具(crypto_sm4)设置加密策略,该策略需要设计文件名和文件内容的算法,如果未指定,则加密工具会默认指定SM4算法,指令为crypto_sm4 set_policy‘加密文件夹描述符’/crypto。
步骤S106,基于加密策略对写入加密目录的文件数据进行加密。
本发明实施例中,可以理解的是,在将文件存储到指定的加密目录后,对文件数据进行加密,使其变得无法直接读取和理解。只有拥有相应的解密密钥或权限的用户才能正确解密和访问文件内容。
示例性的,一个名为"config.txt"的文件,该文件将被加密并放置到一个指定的加密目录中,例如"/crypto"。
本发明实施例通过将国产对称加密算法添加到Linux系统内核中,并根据升级后的内核原生文件系统驱动接口编写原生文件系统的加密工具,同时设置加密策略,包括文件名和数据对应的加密算法和填充模式,可以进一步加强数据加密的安全性,通过加密工具配合Linux原生文件系统完成国密加密功能,相较于目前主流加密文件系统性能更高,由于引入国产密码算法,从而填补了Linux原生文件系统在国产算法方面的空白,进而增强了系统的本土化和安全性。
在本实施例中提供了一种基于国密Linux内核文件系统数据的加密方法,可用于上述的计算机等,图2是根据本发明实施例的基于国密Linux内核文件系统数据的加密方法的流程图,如图2所示,该流程包括如下步骤:
步骤S201,基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级。具体地,上述步骤S201包括:
步骤S2011,基于国产对称加密算法对Linux系统内核源码进行设置。
本发明实施例中,将使用国产的对称加密算法(SM4),对Linux系统内核源码进行设置,即为对源码中的涉及加密算法重要部分进行修改处理。
在一些可选的实施方式中,上述步骤S2011包括:
步骤a1,获取Linux系统内核源码中加密模块的修改位置。
步骤a2,获取Linux系统内核源码中原生文件系统的秘钥模块修改位置以及加密策略模块修改位置。
步骤a3,基于所述加密模块的修改位置、所述原生文件系统的秘钥模块修改位置以及加密策略模块修改位置设置国产对称加密算法以及国产对称加密算法对应的宏定义。
示例性的,获取Linux系统内核源码中加密模块的修改位置,可以是文件位置,例如block/blk-crypto.c文件。这个文件是独立的,可以被其他文件系统引用。获取原生文件系统的密钥模块和加密策略模块,即内核中用于管理加密密钥和定义加密策略的部分。基于修改位置、原生文件系统的秘钥模块以及加密策略模块设置国产对称加密算法以及国产对称加密算法对应的宏定义。可以设置一个名为ENCRYPT的宏定义国产对称加密算法,例如#define ENCRYPT"SM4"。
步骤S2012,基于编译选项对设置后的Linux系统内核源码进行编译。
在编译之前,需要注意Linux系统内核(kernel)的编译选项,如果文件加密选项已经开启,则直接编译;如未开启增需要手动使能该选项,开启文件加密选项的目的是为了保护源码的机密性和完整性。
在一些可选的实施方式中,上述步骤S2012包括:
步骤b1,将编译选项中的文件加密选项设置为开启。
步骤b2,判断Linux系统内核是否支持国产对称加密算法,若支持,则编译设置后的Linux系统内核源码。
步骤b3,若不支持,则单独编译国产对称加密算法的驱动程序;将驱动程序加载至Linux系统内核。
示例性的,在将文件加密选项设置为开启后,检查内核源码中是否支持国产对称加密算法,若支持则利用编译工具对源码编译,生成内核映像文件,加载到系统中。若不支持则单独编译驱动程序初始化函数、驱动程序退出函数等,利用加载指令加载驱动程序到Linux系统内核。
步骤S2013,在编译结束后,升级Linux系统内核。
可以理解的是,将编译生成的新的内核替换现有的Linux系统内核,实现内核的升级操作,从而确保系统在运行时具备最新的代码。
步骤S202,基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S203,获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S204,根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符。详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤S205,根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式。详细请参见图1所示实施例的步骤S105,在此不再赘述。
步骤S206,基于加密策略对写入加密目录的文件数据进行加密。详细请参见图1所示实施例的步骤S106,在此不再赘述。
本发明实施例通过修改Linux系统内核源码,整合国产对称加密算法到Linux系统内核中,并通过编译选项对内核进行设置和编译,最后升级Linux系统内核,从而可以提供更高的性能和稳定性。
在本实施例中提供了一种基于国密Linux内核文件系统数据的加密方法,可用于上述的计算机等,图3是根据本发明实施例的基于国密Linux内核文件系统数据的加密方法的流程图,如图3所示,该流程包括如下步骤:
步骤S301,基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S302,基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S303,获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S304,根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符。详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤S305,根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式。
具体地,上述步骤S305包括:
步骤S3051,根据加密工具判断是否存在指定加密算法。
可以理解的是,判断指定的加密算法是否存在是为了确保系统可以支持用户想要使用的加密算法。如果加密工具中不支持指定的加密算法,用户将无法使用该算法进行文件夹的加密。因此,需要在运行时检查加密工具的可用性,以确保系统具备所需的加密算法。
步骤S3052,若不存在,则基于加密工具中默认的加密算法以及加密文件夹描述符设置加密策略;若存在,则将指定加密算法添加至加密策略。
示例性的,假设用户指定的加密算法是AES,加密指令为crypto_sm4remove_key‘加密文件夹描述符’/crypto-AES。若不存在用户指定的加密算法,则根据加密工具中的默认加密算法(国产SM4对称加密算法)设置加密策略,加密指令为crypto_sm4 remove_key‘加密文件夹描述符’/crypto。
步骤S306,基于加密策略对写入加密目录的文件数据进行加密。详细请参见图1所示实施例的步骤S106,在此不再赘述。
本发明实施例通过判断加密工具是否存在指定的加密算法,可以及时发现是否已经指定某个加密算法作为文件的加密算法。当具有指定加密算法时,根据加密文件夹描述符设置加密策略可以补充该指定的算法,从而可以实现文件名和文件数据采用不同的加密算法。
在本实施例中提供了一种基于国密Linux内核文件系统数据的加密方法,可用于上述的计算机等,图4是根据本发明实施例的基于国密Linux内核文件系统数据的加密方法的流程图,如图4所示,该流程包括如下步骤:
步骤S401,基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级。详细请参见图1所示实施例的步骤S101,在此不再赘述。
步骤S402,基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具。详细请参见图1所示实施例的步骤S102,在此不再赘述。
步骤S403,获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录。详细请参见图1所示实施例的步骤S103,在此不再赘述。
步骤S404,根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符。详细请参见图1所示实施例的步骤S104,在此不再赘述。
步骤S405,根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式。详细请参见图1所示实施例的步骤S105,在此不再赘述。
步骤S406,基于加密策略对写入加密目录的文件数据进行加密。详细请参见图1所示实施例的步骤S106,在此不再赘述。
步骤S407,根据文件锁定指令利用加密工具将存储加密后的文件数据的文件夹进行锁定。详细请参见图1所示实施例的步骤S107,在此不再赘述。
本发明实施例中,文件锁定指令指的是一种用于通过加密工具来实现,将加密后的文件数据进行锁定的操作指令。
示例性的,经过加密步骤的处理,文件夹并未被锁定,则需要利用加密工具对该文件夹进行锁定。文件锁定指令为crypto_sm4 remove_key‘加密文件夹描述符’/crypto。
在一具体实施例中,参照图5,将操作系统的加密模式打开或者编译Linux系统内核(kernel)完成升级,升级后编译SM4国密算法驱动,并加载到系统内,指令为insmod sm4generic.ko;制作ext4文件系统,使能加密属性mkfs.ext4-0encrypt/dev/sdb1,将制作好的ext4文件系统,挂载到目标文件夹,指令为mount/dev/sdb1/crypto;使用本发明编写的加密工具,添加国密秘钥文件到文件系统内,并生成descriptor供后续加密操作使用,添加指令为crypto_sm4 add key/crypto_test<key;使用本发明编写的加密工具设置加密策略,包括:文件名加密算法、数据加密算法、填充模式,指令为crypto_sm4 set_policydescriptor/crypto;写入实际数据文件,此时磁盘数据是密文,缓存数据是明文;锁定加密文件夹,完成对数据的安全存储,指令为crypto_sm4 removekey descriptor/crypto。
可以理解的是,经过加密步骤的操作,此时文件系统皆为密文。每次解密查看后重新进行文件锁定操作,即使某个人或程序获取到了文件复制副本,也无法解密其中的数据,有效的防止了文件被未经授权的复制而泄露。
本发明实施例通过文件锁定指令,加密文件数据可以实现对文件的临时或长期锁定,防止被未经授权的用户或恶意软件盗取,进而可以提高数据的安全性。
在本实施例中还提供了一种基于国密Linux内核文件系统数据的加密装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
本实施例提供一种基于国密Linux内核文件系统数据的加密装置,如图6所示,包括:
内核升级模块601,用于基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;
加密工具创建模块602,用于基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具;
加密文件系统挂载模块603,用于获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录;
秘钥注册模块604,用于根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符;
加密策略设置模块605,用于根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式;
数据加密模块606,用于基于所述加密策略对写入加密目录的文件数据进行加密。
在一些可选的实施方式中,所述内核升级模块601,包括:基于国产对称加密算法对Linux系统内核源码进行设置;基于编译选项对设置后的Linux系统内核源码进行编译;在编译结束后,升级Linux系统内核。
在一些可选的实施方式中,所述内核升级模块601,包括:获取Linux系统内核源码中加密模块的修改位置;获取Linux系统内核源码中原生文件系统的秘钥模块修改位置以及加密策略模块修改位置;基于所述加密模块的修改位置、所述原生文件系统的秘钥模块修改位置以及加密策略模块修改位置设置国产对称加密算法以及国产对称加密算法对应的宏定义。
在一些可选的实施方式中,所述内核升级模块601,包括:将编译选项中的文件加密选项设置为开启;判断Linux系统内核是否支持国产对称加密算法,若支持,则编译设置后的Linux系统内核源码。
在一些可选的实施方式中,所述内核升级模块601,包括:若不支持,则单独编译国产对称加密算法的驱动程序;将所述驱动程序加载至Linux系统内核。
在一些可选的实施方式中,所述加密策略设置模块605,包括:根据所述加密工具判断是否存在指定加密算法;若不存在,则基于加密工具中默认的加密算法以及加密文件夹描述符设置加密策略;若存在,则将指定加密算法添加至加密策略。
在一些可选的实施方式中,所述装置还包括文件锁定模块,用于:根据文件锁定指令利用加密工具将存储加密后的文件数据的文件夹进行锁定。
本发明实施例通过将国产对称加密算法添加到Linux系统内核中,并根据升级后的内核原生文件系统驱动接口编写原生文件系统的加密工具,同时设置加密策略,包括文件名和数据对应的加密算法和填充模式,可以进一步加强数据加密的安全性,通过加密工具配合Linux原生文件系统完成国密加密功能,相较于目前主流加密文件系统性能更高,由于引入国产密码算法,从而填补了Linux原生文件系统在国产算法方面的空白,进而增强了系统的本土化和安全性。
本实施例中的基于国密Linux内核文件系统数据的加密装置是以功能单元的形式来呈现,这里的单元是指ASIC(Application Specific Integrated Circuit,专用集成电路)电路,执行一个或多个软件或固定程序的处理器和存储器,和/或其他可以提供上述功能的器件。
本发明实施例还提供一种计算机设备,具有上述图6所示的基于国密Linux内核文件系统数据的加密装置。
请参阅图7,图7是本发明可选实施例提供的一种计算机设备的结构示意图,如图7所示,该计算机设备包括:一个或多个处理器10、存储器20,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相通信连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在计算机设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在一些可选的实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个计算机设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图7中以一个处理器10为例。
处理器10可以是中央处理器,网络处理器或其组合。其中,处理器10还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路,可编程逻辑器件或其组合。上述可编程逻辑器件可以是复杂可编程逻辑器件,现场可编程逻辑门阵列,通用阵列逻辑或其任意组合。
其中,存储器20存储有可由至少一个处理器10执行的指令,以使至少一个处理器10执行实现上述实施例示出的方法。
存储器20可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据计算机设备的使用所创建的数据等。此外,存储器20可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些可选的实施方式中,存储器20可选包括相对于处理器10远程设置的存储器,这些远程存储器可以通过网络连接至该计算机设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
存储器20可以包括易失性存储器,例如,随机存取存储器;存储器也可以包括非易失性存储器,例如,快闪存储器,硬盘或固态硬盘;存储器20还可以包括上述种类的存储器的组合。
该计算机设备还包括通信接口30,用于该计算机设备与其他设备或通信网络通信。
本发明实施例还提供了一种计算机可读存储介质,上述根据本发明实施例的方法可在硬件、固件中实现,或者被实现为可记录在存储介质,或者被实现通过网络下载的原始存储在远程存储介质或非暂时机器可读存储介质中并将被存储在本地存储介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件的存储介质上的这样的软件处理。其中,存储介质可为磁碟、光盘、只读存储记忆体、随机存储记忆体、快闪存储器、硬盘或固态硬盘等;进一步地,存储介质还可以包括上述种类的存储器的组合。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件,当软件或计算机代码被计算机、处理器或硬件访问且执行时,实现上述实施例示出的方法。
虽然结合附图描述了本发明的实施例,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下做出各种修改和变型,这样的修改和变型均落入由所限定的范围之内。
Claims (10)
1.一种基于国密Linux内核文件系统数据的加密方法,其特征在于,所述方法包括:
基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;
基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具;
获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录;
根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符;
根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式;
基于所述加密策略对写入加密目录的文件数据进行加密。
2.根据权利要求1所述的方法,其特征在于,所述基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级,包括:
基于国产对称加密算法对Linux系统内核源码进行设置;
基于编译选项对设置后的Linux系统内核源码进行编译;
在编译结束后,升级Linux系统内核。
3.根据权利要求2所述的方法,其特征在于,所述基于国产对称加密算法对Linux系统内核源码进行设置,包括:
获取Linux系统内核源码中加密模块的修改位置;
获取Linux系统内核源码中原生文件系统的秘钥模块修改位置以及加密策略模块修改位置;
基于所述加密模块的修改位置、所述原生文件系统的秘钥模块修改位置以及加密策略模块修改位置设置国产对称加密算法以及国产对称加密算法对应的宏定义。
4.根据权利要求2所述的方法,其特征在于,所述基于编译选项对设置后的Linux系统内核源码进行编译,包括:
将编译选项中的文件加密选项设置为开启;
判断Linux系统内核是否支持国产对称加密算法,若支持,则编译设置后的Linux系统内核源码。
5.根据权利要求4所述的方法,其特征在于,所述方法,还包括:
若不支持,则单独编译国产对称加密算法的驱动程序;
将所述驱动程序加载至Linux系统内核。
6.根据权利要求1所述的方法,其特征在于,所述根据所述加密工具以及加密文件夹描述符设置加密策略,包括:
根据所述加密工具判断是否存在指定加密算法;
若不存在,则基于加密工具中默认的加密算法以及加密文件夹描述符设置加密策略;若存在,则将指定加密算法添加至加密策略。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述基于所述加密策略对写入加密目录的文件数据进行加密之后,还包括:
根据文件锁定指令利用加密工具将存储加密后的文件数据的文件夹进行锁定。
8.一种基于国密Linux内核文件系统数据的加密装置,其特征在于,所述装置包括:
内核升级模块,用于基于国产对称加密算法以及Linux系统内核编译选项对Linux系统内核源码进行升级;
加密工具创建模块,用于基于升级后Linux系统内核原生文件系统的驱动接口,编写原生文件系统的加密工具;
加密文件系统挂载模块,用于获取Linux系统目录下的可用盘,根据加密文件系统创建指令将所述可用盘作为加密文件系统的存储设备,挂载至Linux系统目录下,生成加密目录;
秘钥注册模块,用于根据秘钥注册指令利用加密工具将预创建秘钥文件中的秘钥注册至所述加密目录,并记录所述秘钥注册后自动返回的加密文件夹描述符;
加密策略设置模块,用于根据所述加密工具以及加密文件夹描述符设置加密策略,所述加密策略包括文件名和数据对应的加密算法和填充模式;
数据加密模块,用于基于所述加密策略对写入加密目录的文件数据进行加密。
9.一种计算机设备,其特征在于,包括:
存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至7中任一项所述的基于国密Linux内核文件系统数据的加密方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至7中任一项所述的基于国密Linux内核文件系统数据的加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311076890.XA CN117094016B (zh) | 2023-08-24 | 2023-08-24 | 基于国密Linux内核文件系统数据的加密方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311076890.XA CN117094016B (zh) | 2023-08-24 | 2023-08-24 | 基于国密Linux内核文件系统数据的加密方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117094016A CN117094016A (zh) | 2023-11-21 |
CN117094016B true CN117094016B (zh) | 2024-02-09 |
Family
ID=88778428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311076890.XA Active CN117094016B (zh) | 2023-08-24 | 2023-08-24 | 基于国密Linux内核文件系统数据的加密方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117094016B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156672A (zh) * | 2014-08-06 | 2014-11-19 | 厦门天锐科技有限公司 | 基于linux的数据加密保护方法及系统 |
CN104361297A (zh) * | 2014-11-19 | 2015-02-18 | 成都卫士通信息安全技术有限公司 | 一种基于Linux操作系统的文件加解密方法 |
CN104866778A (zh) * | 2015-01-30 | 2015-08-26 | 武汉华工安鼎信息技术有限责任公司 | 一种基于Linux内核的文档安全访问控制方法和装置 |
CN106355097A (zh) * | 2016-08-30 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种在Linux操作系统中进行加解密的方法及系统 |
-
2023
- 2023-08-24 CN CN202311076890.XA patent/CN117094016B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104156672A (zh) * | 2014-08-06 | 2014-11-19 | 厦门天锐科技有限公司 | 基于linux的数据加密保护方法及系统 |
CN104361297A (zh) * | 2014-11-19 | 2015-02-18 | 成都卫士通信息安全技术有限公司 | 一种基于Linux操作系统的文件加解密方法 |
CN104866778A (zh) * | 2015-01-30 | 2015-08-26 | 武汉华工安鼎信息技术有限责任公司 | 一种基于Linux内核的文档安全访问控制方法和装置 |
CN106355097A (zh) * | 2016-08-30 | 2017-01-25 | 北京壹人壹本信息科技有限公司 | 一种在Linux操作系统中进行加解密的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN117094016A (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100809977B1 (ko) | 집적 시스템 내에서의 보안 운영의 활성화 방법, 보안 운영의 초기화 방법, 암호화된 데이터의 변환 방법 및 집적 시스템 기능의 복원 방법 | |
US9075957B2 (en) | Backing up digital content that is stored in a secured storage device | |
USRE46023E1 (en) | Memory device upgrade | |
JP4902207B2 (ja) | ファイルの暗号化と復号化のための複数のキーを管理するシステムと方法 | |
US8214630B2 (en) | Method and apparatus for controlling enablement of JTAG interface | |
US11368299B2 (en) | Self-encryption drive (SED) | |
EP2528004A1 (en) | Secure removable media and method for managing the same | |
US20090276829A1 (en) | System for copying protected data from one secured storage device to another via a third party | |
US20090276474A1 (en) | Method for copying protected data from one secured storage device to another via a third party | |
JP2010510574A (ja) | セキュアデバイス・システムにおけるフラッシュメモリ・ブロックの保護と方法 | |
CN111310213A (zh) | 一种业务数据保护方法、装置、设备及可读存储介质 | |
CN105612715A (zh) | 具有可配置访问控制的安全处理单元 | |
CN104361291B (zh) | 数据处理方法和装置 | |
WO2011134207A1 (zh) | 软件保护方法 | |
CN115758420A (zh) | 文件访问控制方法、装置、设备及介质 | |
CN112270002B (zh) | 全盘加密方法、系统运行方法和电子设备 | |
WO2010021975A2 (en) | Memory device upgrade | |
US20090119744A1 (en) | Device component roll back protection scheme | |
CN117094016B (zh) | 基于国密Linux内核文件系统数据的加密方法及装置 | |
KR101711024B1 (ko) | 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치 | |
JP3867451B2 (ja) | 文書セキュリテイ管理装置および文書セキュリティ管理方法 | |
JPH10275115A (ja) | データ暗号化保存方法及びシステム装置 | |
US11784978B2 (en) | Method for establishing remote work environment to ensure security of remote work user terminal and apparatus using the same | |
KR102147315B1 (ko) | 문서 열람 방법 및 이에 적용되는 장치 | |
CN113343265B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |