CN116108463A - 文件处理方法、装置、电子设备及存储介质 - Google Patents
文件处理方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116108463A CN116108463A CN202211627416.7A CN202211627416A CN116108463A CN 116108463 A CN116108463 A CN 116108463A CN 202211627416 A CN202211627416 A CN 202211627416A CN 116108463 A CN116108463 A CN 116108463A
- Authority
- CN
- China
- Prior art keywords
- file
- metric
- instruction
- execution
- key
- 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
Images
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及信息安全和可信计算领域,提供一种文件处理方法、装置、电子设备及存储介质,包括:接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。本申请可以使得对文件进行加解密的过程具备对注入攻击、代码篡改等行为的检测和防御能力,提高进行文件加密时的安全性。
Description
技术领域
本申请涉及信息安全和可信计算领域,具体涉及一种文件处理方法、装置、电子设备及存储介质。
背景技术
数据安全已经成为最紧迫、最基础的安全问题,加强数据安全保护能力既是对公民隐私的保障,也是企业、机关、国家的切实需求。当前,数据资产化趋势愈发明显,人们面临的数据安全威胁也日益严峻,各类非法窃取手段甚至网络攻击行为层出不穷。在此背景下,信息安全领域提出多种数据加密方案,包括卷加密、容器加密、文件加密等多个加密级别,使用的加密方案也各不相同。相关技术中,最具代表性的文件级加密工具为微软的EFS(Encrypting File System,加密文件系统)。
当使用EFS加密文件时,Windows系统首先会生成一个伪随机数作为FEK(FileEncryption Key,文件加密密钥),加密后的FEK存储于被加密文件的EFS属性中。而FEK则由一对非对称密钥完成加解密,私钥被主密钥加密后存储于系统分区的固定路径下,然后再通过用户口令派生的密钥对主密钥加密后同样存储于固定路径下。最终形成用户口令、主密钥、私钥、FEK的多级密钥体系,以完成文件级加解密功能。EFS最终由用户口令作为单一要素保护主密钥,且当用户登录后被加密文件会自动解密。此类保护体系极易受到弱口令等行为的影响,需要用户具有足够高的信息安全意识。事实上弱口令行为大量存在,相当数量的网络攻击都是由于弱口令开始的。更重要的是,当前Windows用户口令以LM(LanMan)散列算法或NT散列算法运算后存储于SAM文件的固定位置中,无论是哪种算法都难以抵御掩码攻击、字典攻击或彩虹表攻击,而EFS仅以Windows口令作为认证要求,显然是不安全的,由此导致当前进行文件加密时的安全性低下。
发明内容
本申请实施例提供一种文件处理方法、装置、电子设备及存储介质,用以解决使用EFS加密文件时安全性低下的问题。
第一方面,本申请实施例提供一种文件处理方法,包括:
接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
在一个实施例中,所述第一执行度量包括代码段度量值与映射关系度量值;所述确定与所述文件处理指令对应的第一执行度量,包括:
确定所述文件处理指令对应的进程代码段及所述文件处理指令对应的动态链接库映射关系;
对所述文件处理指令对应的进程代码段进行哈希计算,得到代码段度量值;
对所述文件处理指令对应的动态链接库映射关系进行哈希计算,得到映射关系度量值。
在一个实施例中,所述度量基准值包括代码段度量基准值与映射关系度量基准值;所述将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较,包括:
将所述第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值进行比较;
将所述第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值进行比较。
在一个实施例中,若所述第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值一致,且所述第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值一致,则确定所述第一执行度量与USB Key中度量基准库的第一度量基准值一致。
在一个实施例中,所述对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件,包括:
若所述文件处理指令为文件加密指令,则根据USB Key中的用户密钥对文件存储密钥进行加密,并通过加密后的文件存储密钥对所述文件加密指令对应的文件进行加密处理,得到目标文件;
若所述文件处理指令为文件解密指令,则根据USB Key中的用户密钥对加密后的文件存储密钥进行解密,并通过解密后的文件存储密钥对所述文件解密指令对应的文件进行解密处理,得到目标文件。
在一个实施例中,所述对所述文件处理指令对应的文件进行加密/解密处理之后,还包括:
将对所述文件处理指令对应的文件进行加密/解密处理的过程中产生的缓存数据清除。
在一个实施例中,所述文件处理方法还包括:
接收用户登录指令,确定与所述用户登录指令对应的第二执行度量;
将所述第二执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第二执行度量与所述度量基准值一致,则将所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息进行比较;
若确定所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息一致,则执行所述用户登录指令对应的登录流程。
第二方面,本申请实施例提供一种文件处理装置,包括:
确定模块,用于接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
比较模块,用于将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
处理模块,用于若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
第三方面,本申请实施例提供一种电子设备,包括处理器和存储有计算机程序的存储器,所述处理器执行所述程序时实现第一方面所述的文件处理方法的步骤。
第四方面,本申请实施例提供一种存储介质,所述存储介质为计算机可读存储介质,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的文件处理方法的步骤。
本申请实施例提供的文件处理方法、装置、电子设备及存储介质,通过将文件加密指令对应的第一执行度量与USB Key中度量基准库的度量基准值进行比较,以动态度量进程的可信状态,并在确定第一执行度量与度量基准值一致时,确定进程可信并对文件处理指令对应的文件进行加密/解密处理,得到加密/解密后的文件。由此使得对文件进行加解密的过程具备对注入攻击、代码篡改等行为的检测和防御能力,提高进行文件加密时的安全性。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的文件处理方法的流程示意图之一;
图2是本申请实施例提供的文件处理方法的流程示意图之二;
图3是本申请实施例提供的文件处理方法的流程示意图之三;
图4是本申请实施例提供的文件处理方法的流程示意图之四;
图5是本申请文件处理装置实施例的功能模块示意图;
图6是本申请实施例提供的电子设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合实施例对本发明提供的文件处理方法、装置、电子设备及存储介质进行详细描述。
图1为本申请实施例提供的文件处理方法的流程示意图之一。参照图1,本申请实施例提供一种文件处理方法,可以包括:
步骤S100,接收文件处理指令,确定与文件处理指令对应的第一执行度量;
需要说明的是,本申请实施例提供的文件处理方法的执行主体可以是计算机设备,例如手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personaldigital assistant,PDA)等。
本申请基于办公等环境下可能发生的内部安全威胁,强化对密钥和系统自身的保护,以USB Key为硬件介质,建立更安全的密钥管理体系,并设计一个具有攻击行为检测能力的加解密方案。
其中,USB Key是一种USB(Universal Serial Bus,通用串行总线)接口的硬件设备。其内置单片机或智能卡芯片,有一定的存储空间,可以存储用户的私钥以及数字证书。
本申请中设计了用户态、内核态、USB Key三部分,由用户态、内核态、USB Key三部分形成整体的系统,以兼顾性能和安全性。其中,用户态部分负责加解密运算、用户权限验证以及各类交互功能;内核态部分负责在运行时对进程实施完整性度量,以验证可信性;USB Key存储了用于加解密的用户密钥、用户能力表以及用于完整性度量的基准库,后续可以称为度量基准库。
具体地,对于用户态部分,本申请可以分为5个模块。启动交互模块负责为用户提供操作接口;初始化模块负责完成新用户创建,包括初始化用户口令、生成用户密钥、创建用户能力表、建立度量基准库等;用户能力表管理模块负责在用户完成登录操作后,供用户读写能力表,该表将用于批量加解密操作,并降低用户对非授权文件的误操作风险,以提升使用体验;单文件加解密模块负责在解锁存储密钥后,使用SM4算法完成文件加解密操作,既是最基本的使用模式,也为批量加解密提供函数接口;运算模块主要提供SM(国产密码)系列算法的函数接口。其中,SM4是一种Feistel结构的分组密码算法,其分组长度和密钥长度均为128bits。
对于内核态部分,本申请设计了相对独立的完整性度量模块,该模块基于USB key或其他可信密码模块存储基准库,在程序运行到用户登录、请求用户密钥等特定指令时对进程代码段、动态链接库映射等部分执行度量,确保进程状态可信。其中,USB Key因其便携性特点,更有利于用户随身携带关键数据,以进一步抵御“邪恶女佣”等利用空间便利实施的窃密方式。
为支撑上述功能,并确保足够的安全性。本申请在USB Key中设计了4个部分,分别为度量基准库、用户能力表、用户口令信息、用户密钥。其中,度量基准库分别由代码段和动态链接库映射关系分别计算Hash组成,另外加入软件版本号以适应软件升级对代码段和动态链接库带来的改变;用户能力表由用户ID、文件或目录组成,一方面支撑用户一键加解密功能,同时降低用户“解密”未加密文件等误操作风险;用户口令信息用于USB Key登录功能,用户登陆后获取USB Key数据的读权限;用户密钥为随机生成的非对称密钥信息,本申请中可以使用SM2算法。其中,SM2是国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法。
本申请中文件处理指令可以为文件加密指令或文件解密指令。
其中,文件加密指令还可以进一步分为单文件加密指令、批量文件加密指令以及一键加密指令等;文件解密指令可以分为单文件解密指令、多文件解密指令以及一键解密指令等。
其中,文件加密指令可以用于指示对指定文件进行加密;文件解密指令可以用于指示对指定文件进行解密。
本申请中第一执行度量可以包括代码段度量值与映射关系度量值。
其中,代码段度量值是根据文件加密指令对应的进程代码段计算得到的哈希值;映射关系度量值是根据文件加密指令对应的动态链接库映射关系计算得到的哈希值。
步骤S200,将第一执行度量与USB Key中度量基准库的度量基准值进行比较;
本申请在用户首次初始化时,可以使用SM3算法分别对各代码段和各动态链接库的映射关系计算Hash,根据计算出的哈希值建立度量基准库,同时记录软件版本以应对软件升级所带来的变化。
其中,SM3是中华人民共和国政府采用的一种密码散列函数标准,由国家密码管理局于2010年12月17日发布。
本申请中度量基准值可以包括代码段度量基准值与映射关系度量基准值。
其中,代码段度量基准值与映射关系度量基准值,是在用户首次初始化时,使用SM3算法分别对代码段和动态链接库的映射关系计算Hash得到的。
步骤S300,若确定第一执行度量与度量基准值一致,则对文件处理指令对应的文件进行加密/解密处理,得到目标文件。
本申请中,当第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值一致,且第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值一致,则确定第一执行度量与USB Key中度量基准库的度量基准值一致,并判定进程状态可信。
本申请在确定第一执行度量与度量基准值一致时,可以根据USB Key中的用户密钥以及文件存储密钥,对文件加密指令对应的文件进行加密处理;或根据USB Key中的用户密钥与文件存储密钥,对文件解密指令对应的文件进行解密处理。将加密/解密后的文件确定为目标文件。
本申请实施例提供的文件处理方法,通过将文件加密指令对应的第一执行度量与USB Key中度量基准库的第一度量基准值进行比较,以动态度量进程的可信状态,并在确定第一执行度量与度量基准值一致时,确定进程可信并对文件处理指令对应的文件进行加密/解密处理,得到加密/解密后的文件。由此使得对文件进行加解密的过程具备对注入攻击、代码篡改等行为的检测和防御能力,提高进行文件加密时的安全性。
图2为本申请实施例提供的文件处理方法的流程示意图之二。参照图2,在一个实施例中,文件处理方法还包括:
步骤11,接收用户登录指令,确定与用户登录指令对应的第二执行度量;
本申请中首先进行系统初始化,初始化后可以检测硬件设备,具体可以扫描USBKey设备,当发现多个设备时可以提供交互界面提示用户选择登录。
在需要访问USB Key中与密钥相关的数据(例如用户能力表、用户密钥等)时,需要通过交互界面进行用户登录。用户可以通过在交互界面的弹窗中输入用户口令信息,并选择“登录”按键触发用户登录指令。
在接收到用户登录指令时,可以由完整性度量模块,通过task_struct读取用户登录指令对应进程id等状态信息,依据mm_struct中的start_code和end_code提取进程代码段,再依据maps提取用户登录指令对应的动态链接库映射关系,最后使用SM3分别计算用户登录指令对应的进程代码段的哈希值以及用户登录指令对应的动态链接库映射关系的哈希值,并将计算得到的两哈希值确定为第二执行度量。
步骤12,将第二执行度量与USB Key中度量基准库的度量基准值进行比较;
在得到第二执行度量后,可以获取USB Key中度量基准库的度量基准值,并将第二执行度量中进程代码段的哈希值与度量基准值中的代码段度量基准值比较,以及将第二执行度量中动态链接库映射关系的哈希值与度量基准值中的映射关系度量基准值进行比较。
需要说明的是,若第二执行度量中进程代码段的哈希值与度量基准值中的代码段度量基准值一致,且第二执行度量中动态链接库映射关系的哈希值与度量基准值中的映射关系度量基准值一致,则确定第二执行度量与度量基准值一致;否则,确定第二执行度量与度量基准值不一致。
步骤13,若确定第二执行度量与度量基准值一致,则将用户登录指令中的用户口令信息与USB Key中的用户口令信息进行比较;
在确定第二执行度量与度量基准值一致时,可以确定用户登录指令对应的进程状态可信,可以进一步进行口令信息的校验。
因此,可以获取USB Key中的用户口令信息,并将用户登录指令中的用户口令信息与USB Key中的用户口令信息进行比较,确定用户登录指令中的用户口令信息与USB Key中的用户口令信息是否一致。
步骤14,若确定用户登录指令中的用户口令信息与USB Key中的用户口令信息一致,则执行用户登录指令对应的登录流程。
若确定用户登录指令中的用户口令信息与USB Key中的用户口令信息一致,则确定用户登录指令中的用户口令信息通过校验,则可以执行用户登录指令对应的登录流程,使得用户可以完成登录并得到访问USB Key中与密钥相关的数据的权限。
本实施例在用户登录时通过进行第二执行度量与度量基准值的比较,验证进程的可信状态,对注入攻击、代码篡改等行为的检测和防御能力,可以提高进行文件加密时的安全性。
图3为本申请实施例提供的文件处理方法的流程示意图之三。参照图3,在一个实施例中,确定与文件处理指令对应的第一执行度量,包括:
步骤S101,确定文件处理指令对应的进程代码段及文件处理指令对应的动态链接库映射关系;
本申请在接收到文件处理指令时,可以由完整性度量模块,通过task_struct读取文件处理指令对应进程id等状态信息,依据mm_struct中的start_code和end_code提取进程代码段,再依据maps提取文件处理指令对应的动态链接库映射关系。
步骤S102,对文件处理指令对应的进程代码段进行哈希计算,得到代码段度量值;
在得到文件处理指令对应的进程代码段后,可以使用SM3算法对该进程代码段计算哈希,将计算得到的哈希值确定为代码段度量值。
步骤S103,对文件处理指令对应的动态链接库映射关系进行哈希计算,得到映射关系度量值。
在得到文件处理指令对应的动态链接库映射关系后,可以使用SM3算法对该动态链接库映射关系计算哈希,将计算得到的哈希值确定为映射关系度量值。
由此,得到文件处理指令对应的第一执行度量。
本实施例中通过确定文件处理指令对应的第一执行度量,以便于后续根据USBKey中度量基准库的度量基准值对第一执行度量进行校验,验证进程的可信状态,对注入攻击、代码篡改等行为的检测和防御能力,可以提高进行文件加密时的安全性。
在一个实施例中,将第一执行度量与USB Key中度量基准库的度量基准值进行比较,包括:
步骤S201,将第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值进行比较;
本申请中,在得到第一执行度量中的代码段度量值后,可以从USB Key的度量基准库中获取代码段度量基准值,并将第一执行度量中的代码段度量值与代码段度量基准值进行比较,确定第一执行度量中的代码段度量值与代码段度量基准值是否一致。
步骤S202,将第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值进行比较
本申请中,在得到第一执行度量中的映射关系度量值后,可以从USB Key的度量基准库中获取代码段度量基准值,将第一执行度量中的映射关系度量值与代码段度量基准值进行比较,确定第一执行度量中的映射关系度量值与代码段度量基准值是否一致。
本实施例可以通过USB Key中度量基准库的度量基准值对第一执行度量进行校验,验证进程的可信状态,对注入攻击、代码篡改等行为的检测和防御能力,可以提高进行文件加密时的安全性。
在一个实施例中,对文件处理指令对应的文件进行加密/解密处理,得到目标文件,包括:
步骤S301,若文件处理指令为文件加密指令,则根据USB Key中的用户密钥对文件存储密钥进行加密,并通过加密后的文件存储密钥对文件加密指令对应的文件进行加密处理,得到目标文件;
其中,文件存储密钥可以为通过加密模块随机生成的密钥。
本申请在确定第一执行度量与度量基准值一致后,可以根据文件处理指令的类型对该文件处理指令对应的文件进行加密或解密处理。
具体地,若确定文件处理指令为文件加密指令,则获取USB Key中的用户密钥,并通过用户密钥中的公钥对文件存储密钥进行加密。
进一步地,通过加密后的文件存储密钥,对文件加密指令对应的文件进行加密处理,将加密处理后的文件确定为目标文件。
可以理解地,本申请中的文件加密指令可以为单文件加密指令、批量文件加密指令以及一键加密指令等,因此,本申请中可以对单文件加密指令对应的单个文件进行加密处理,可以对批量文件加密指令对应的批量文件进行加密处理,以及对一键加密指令对应的所有文件进行加密处理。
其中,对单文件加密指令对应的单个文件进行加密处理可以通过单文件加解密模块实现。
对批量文件加密指令对应的批量文件进行加密处理或者对一键加密指令对应的所有文件进行加密处理,可以通过用户能力表管理模块中的用户能力表实现。
步骤S302,若文件处理指令为文件解密指令,则根据USB Key中的用户密钥对加密后的文件存储密钥进行解密,并通过解密后的文件存储密钥对文件解密指令对应的文件进行解密处理,得到目标文件。
另一方面,若确定文件处理指令为文件解密指令,则获取USB Key中的用户密钥,并通过用户密钥中的私钥对加密后的文件存储密钥进行解密。
进一步地,通过解密后的文件存储密钥,对文件解密指令对应的文件进行解密处理,将解密处理后的文件确定为目标文件。
可以理解地,本申请中的文件解密指令可以分为单文件解密指令、多文件解密指令以及一键解密指令等,因此,本申请中可以对单文件解密指令对应的单个文件进行解密处理,可以对批量文件解密指令对应的批量文件进行解密处理,以及对一键解密指令对应的所有文件进行解密处理。
其中,对单文件解密指令对应的单个文件进行解密处理可以通过单文件加解密模块实现。
对批量文件解密指令对应的批量文件进行解密处理或者对一键解密指令对应的所有文件进行解密处理,可以通过用户能力表管理模块中的用户能力表实现。
本实施例可以根据USB Key中的用户密钥结合文件存储密钥,对文件处理指令对应的文件进行加密或解密处理。
图4为本申请实施例提供的文件处理方法的流程示意图之四。参照图4,对文件处理指令对应的文件进行加密/解密处理之后,还包括:
步骤S400,将对文件处理指令对应的文件进行加密/解密处理的过程中产生的缓存数据清除。
本申请中,在对文件处理指令对应的文件进行加密/解密处理之后,可以获取加密/解密过程中所产生的缓存数据,并将获取的缓存数据清除。
本实施例通过对加解密过程产生的缓存数据进行清除,可以防止密钥信息泄露,可以提高进行文件加密时的安全性。
在一些实施例中,本申请基于上述的各功能模块,可以基于如下流程进行文件加密:
步骤1、对系统进行初始化。
步骤2、接收指令;提供交互界面,接收用户指令。
步骤3、检测硬件设备;扫描USB Key设备,当发现多个设备时提示用户选择登录。
步骤4、度量进程状态;包括检测度量模块是否正常运行,依据度量情况决定程序是否继续执行。
步骤5、用户登录;提示用户输入口令,登陆后获取USB Key相关权限。
步骤6、初始化算法;包括随机生成文件存储密钥、iv(information value,信息值)值、设定加解密模式等。
步骤7、文件加解密运算。
步骤8、度量进程状态;包括检测度量模块是否正常运行,依据度量情况决定程序是否继续执行。
步骤9、请求用户证书;获取公钥信息以加密文件存储密钥。
步骤10、制作密文;将加密后的文件存储密钥、iv值、加密标识以及加密后的数据写入文件。
步骤11、清理内存;清理内存中缓存的密钥数据。
步骤12、写入硬盘。
本申请以文件为单位进行加解密流程和密钥管理体系设计,充分利用文件级加解密的灵活性清理内存关键数据,并引入了可信计算机制以动态验证应用运行时的可信状态,对于注入、监听等攻击行为具有更好的防御能力。此外,整个加密方案均基于纯国密算法实现,在当前安可替代的趋势下,具有更好的应用前景。在应用上,本申请设计了三种使用模式,支持用户基于USB Key中存储的能力表实施表内文件的一键加解密操作,解决了文件级加解密在用户操作的复杂性问题。
本申请分析了窃取密钥的关键节点并引入了完整性度量机制;设计了基于USBkey的多级密钥管理体系,强化了密钥在内存中的保护能力;以及基于用户能力表设计了更便捷的文件级加密使用模式。
本申请基于USB Key的存储能力,不再依赖用户口令派生用户密钥,而是将随机生成的用户密钥存储于USB Key的特定位置,以使口令与用户密钥脱钩,进一步抵御字典攻击等基于社会工程学的攻击方式。
本申请的密钥管理体系由用户口令、用户密钥USK、文件存储密钥FEK组成。其中用户口令信息由用户设定,用户口令信息存储于USB Key中,用于验证用户身份并尝试获取USB Key相关权限;USK使用非对称算法,开发中使用SM2,公私钥信息随机生成并存储于USBKey中,用于加解密FEK;FEK使用对称算法,开发demo中使用了SM4,每次加密操作均随机生成新的密钥并使用USB Key加密后存储于密文头部。
此外,本申请在加解密完成后设置了缓存数据清理操作,进一步防止密钥泄露。
本申请基于USB key的存储能力引入了用户能力表,用户可以在登录后增删能力表。在加解密时,加入“一键加密”、“一键解密”功能。在一键加解密功能下,进程首先读取能力表,再依据能力表和用户权限遍历表内记录的目录与文件,校验加密标识后依次完成加解密操作。
本申请基于现有基础,综合分析各类针对加密工具实施的攻击行为,在安全性上进行了改进,具体特点如下:
抗密码攻击能力。本方案采取细粒度的加解密级别,并结合了“一次一密”设计思想,确保每个文件在每次加密时均使用不同的随机密钥,具有极高的抗暴破能力。此外,在本申请的密钥管理体系下,用户设置的密钥信息仅用于获取USB key权限且限定了试错次数,用户密钥同样随机生成。当攻击者仅获取密文时,无法使用字典或掩码等基于社会工程学的密码攻击方式,降低了弱密钥带来的安全风险,也更利于防范内部人员造成的安全威胁。对于文件级加解密的操作复杂性问题,本申请结合用户能力表,设计了批量加解密模式以提升使用体验。
降低了通过内存抓取密钥的机率。本申请充分运用了文件级加密的灵活性,在每次加密前与解密后实施密钥区覆写操作,结合本申请的完整性度量模块,进一步降低攻击者通过内存监听密钥数据的风险。
具有攻击检测能力。本申请引入了动态度量模块,该模块在代码执行至关键节点时,通过对代码段、动态链接库等信息进行Hash校验,以动态度量进程的可信状态。引入该机制后,程序将具备对注入攻击、代码篡改等行为的检测和防御能力,提升了对程序自身的保护能力。
进一步地,本申请还提供一种文件处理装置。
参照图5,图5为本申请文件处理装置实施例的功能模块示意图。
所述文件处理装置包括:
确定模块510,用于接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
比较模块520,用于将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
处理模块530,用于若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
本申请实施例提供的文件处理装置,通过将文件加密指令对应的第一执行度量与USB Key中度量基准库的度量基准值进行比较,以动态度量进程的可信状态,并在确定第一执行度量与度量基准值一致时,确定进程可信并对文件处理指令对应的文件进行加密/解密处理,得到加密/解密后的文件。由此使得对文件进行加解密的过程具备对注入攻击、代码篡改等行为的检测和防御能力,提高进行文件加密时的安全性。
在一个实施例中,确定模块510具体用于:
确定所述文件处理指令对应的进程代码段及所述文件处理指令对应的动态链接库映射关系;
对所述文件处理指令对应的进程代码段进行哈希计算,得到代码段度量值;
对所述文件处理指令对应的动态链接库映射关系进行哈希计算,得到映射关系度量值。
在一个实施例中,比较模块520具体用于:
将所述第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值进行比较;
将所述第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值进行比较。
在一个实施例中,处理模块530用于:
若所述文件处理指令为文件加密指令,则根据USB Key中的用户密钥对文件存储密钥进行加密,并通过加密后的文件存储密钥对所述文件加密指令对应的文件进行加密处理,得到目标文件;
若所述文件处理指令为文件解密指令,则根据USB Key中的用户密钥对加密后的文件存储密钥进行解密,并通过解密后的文件存储密钥对所述文件解密指令对应的文件进行解密处理,得到目标文件。
在一个实施例中,处理模块530包括清除单元,所述清除单元用于:
将对所述文件处理指令对应的文件进行加密/解密处理的过程中产生的缓存数据清除。
所述文件处理装置还包括登录模块,所述登录模块用于:
接收用户登录指令,确定与所述用户登录指令对应的第二执行度量;
将所述第二执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第二执行度量与所述度量基准值一致,则将所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息进行比较;
若确定所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息一致,则执行所述用户登录指令对应的登录流程。
图6示例了一种电子设备的实体结构示意图,如图6所示,该电子设备可以包括:处理器(processor)610、通信接口(Communication Interface)620、存储器(memory)630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。处理器610可以调用存储器630中的计算机程序,以执行文件处理方法的步骤,例如包括:
接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
此外,上述的存储器630中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请实施例还提供一种存储介质,所述存储介质为计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序用于使处理器执行上述各实施例提供的方法的步骤,例如包括:
接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
所述计算机可读存储介质可以是处理器能够存取的任何可用介质或数据存储设备,包括但不限于磁性存储器(例如软盘、硬盘、磁带、磁光盘(MO)等)、光学存储器(例如CD、DVD、BD、HVD等)、以及半导体存储器(例如ROM、EPROM、EEPROM、非易失性存储器(NANDFLASH)、固态硬盘(SSD))等。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种文件处理方法,其特征在于,包括:
接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
2.根据权利要求1所述的文件处理方法,其特征在于,所述第一执行度量包括代码段度量值与映射关系度量值;所述确定与所述文件处理指令对应的第一执行度量,包括:
确定所述文件处理指令对应的进程代码段及所述文件处理指令对应的动态链接库映射关系;
对所述文件处理指令对应的进程代码段进行哈希计算,得到代码段度量值;
对所述文件处理指令对应的动态链接库映射关系进行哈希计算,得到映射关系度量值。
3.根据权利要求2所述的文件处理方法,其特征在于,所述度量基准值包括代码段度量基准值与映射关系度量基准值;所述将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较,包括:
将所述第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值进行比较;
将所述第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值进行比较。
4.根据权利要求3所述的文件处理方法,其特征在于,若所述第一执行度量中的代码段度量值与USB Key中度量基准库的代码段度量基准值一致,且所述第一执行度量中的映射关系度量值与USB Key中度量基准库的映射关系度量基准值一致,则确定所述第一执行度量与USB Key中度量基准库的度量基准值一致。
5.根据权利要求1所述的文件处理方法,其特征在于,所述对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件,包括:
若所述文件处理指令为文件加密指令,则根据USB Key中的用户密钥对文件存储密钥进行加密,并通过加密后的文件存储密钥对所述文件加密指令对应的文件进行加密处理,得到目标文件;
若所述文件处理指令为文件解密指令,则根据USB Key中的用户密钥对加密后的文件存储密钥进行解密,并通过解密后的文件存储密钥对所述文件解密指令对应的文件进行解密处理,得到目标文件。
6.根据权利要求1所述的文件处理方法,其特征在于,所述对所述文件处理指令对应的文件进行加密/解密处理之后,还包括:
将对所述文件处理指令对应的文件进行加密/解密处理的过程中产生的缓存数据清除。
7.根据权利要求1所述的文件处理方法,其特征在于,所述文件处理方法还包括:
接收用户登录指令,确定与所述用户登录指令对应的第二执行度量;
将所述第二执行度量与USB Key中度量基准库的度量基准值进行比较;
若确定所述第二执行度量与所述度量基准值一致,则将所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息进行比较;
若确定所述用户登录指令中的用户口令信息与所述USB Key中的用户口令信息一致,则执行所述用户登录指令对应的登录流程。
8.一种文件处理装置,其特征在于,包括:
确定模块,用于接收文件处理指令,确定与所述文件处理指令对应的第一执行度量;所述文件处理指令为文件加密指令或文件解密指令;
比较模块,用于将所述第一执行度量与USB Key中度量基准库的度量基准值进行比较;
处理模块,用于若确定所述第一执行度量与所述度量基准值一致,则对所述文件处理指令对应的文件进行加密/解密处理,得到目标文件。
9.一种电子设备,包括处理器和存储有计算机程序的存储器,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至7任一项所述的文件处理方法的步骤。
10.一种存储介质,所述存储介质为计算机可读存储介质,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述的文件处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627416.7A CN116108463A (zh) | 2022-12-16 | 2022-12-16 | 文件处理方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211627416.7A CN116108463A (zh) | 2022-12-16 | 2022-12-16 | 文件处理方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116108463A true CN116108463A (zh) | 2023-05-12 |
Family
ID=86262935
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211627416.7A Pending CN116108463A (zh) | 2022-12-16 | 2022-12-16 | 文件处理方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116108463A (zh) |
-
2022
- 2022-12-16 CN CN202211627416.7A patent/CN116108463A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112074836B (zh) | 通过可信执行环境保护数据的设备和方法 | |
Altuwaijri et al. | Android data storage security: A review | |
Bojinov et al. | Kamouflage: Loss-resistant password management | |
Schneier | Cryptographic design vulnerabilities | |
CN111723383B (zh) | 数据存储、验证方法及装置 | |
CN108449178B (zh) | 一种安全可信执行环境中根密钥的生成方法 | |
US8190908B2 (en) | Secure data verification via biometric input | |
CN107908574B (zh) | 固态盘数据存储的安全保护方法 | |
US10771441B2 (en) | Method of securing authentication in electronic communication | |
CN101971186A (zh) | 信息泄露防止装置和方法及其程序 | |
CN102236607B (zh) | 一种数据安全保护方法和数据安全保护装置 | |
US11706022B1 (en) | Method for trusted data decryption based on privacy-preserving computation | |
CN110837634B (zh) | 基于硬件加密机的电子签章方法 | |
CN114942729A (zh) | 一种计算机系统的数据安全存储与读取方法 | |
US9471413B2 (en) | Memory device with secure test mode | |
CN111539042B (zh) | 一种基于核心数据文件可信存储的安全操作方法 | |
CN104751042A (zh) | 基于密码哈希与生物特征识别的可信性检测方法 | |
CN110659522B (zh) | 存储介质安全认证方法、装置、计算机设备和存储介质 | |
CN112636914B (zh) | 一种身份验证方法、身份验证装置及智能卡 | |
CN109871327B (zh) | 可信执行环境安全存储安全性测试方法及装置 | |
CN108345804B (zh) | 一种可信计算环境中的存储方法和装置 | |
CN116108463A (zh) | 文件处理方法、装置、电子设备及存储介质 | |
CN107423627A (zh) | 一种电子设备的保密方法及电子设备 | |
Chen et al. | HiPDS: A Storage Hardware-independent Plausibly Deniable Storage System | |
CN111159760A (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 |