CN115795432A - 一种适用于只读文件系统的程序完整性验证系统及方法 - Google Patents
一种适用于只读文件系统的程序完整性验证系统及方法 Download PDFInfo
- Publication number
- CN115795432A CN115795432A CN202211505731.2A CN202211505731A CN115795432A CN 115795432 A CN115795432 A CN 115795432A CN 202211505731 A CN202211505731 A CN 202211505731A CN 115795432 A CN115795432 A CN 115795432A
- Authority
- CN
- China
- Prior art keywords
- program
- file
- hash
- hash tree
- signature
- 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
Landscapes
- Storage Device Security (AREA)
Abstract
本发明提供一种适用于只读文件系统的程序完整性验证系统及方法,涉及只读文件系统的保护技术领域,包括:在制作只读文件系统镜像时,对只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成哈希树的唯一标识记录于可信程序文件的元数据中,并对哈希树进行签名后保存;在加载程序文件时,根据唯一标识判断程序文件为可信程序文件时,根据唯一标识调取对应的哈希树进行签名认证,以及对程序页进行完整性验证,并在签名认证和完整性认证均通过时允许加载和运行程序页。有益效果是保护只读文件系统运行的安全和程序可信,使恶意程序即使利用系统漏洞攻入到计算中也无法在只读文件系统中运行,更大程度上保障只读文件系统的安全可靠。
Description
技术领域
本发明涉及只读文件系统的保护技术领域,尤其涉及一种适用于只读文件系统的程序完整性验证系统及方法。
背景技术
在嵌入式操作系统中,文件系统的安全对操作系统至关重要。通常对文件系统的保护多针对于可读写文件系统,而忽略了对只读文件系统的保护,而在一些领域和项目中,尤其是在一些存储容量有限的嵌入式设备上,在使用过程中往往没有数据写入的需求,经常会采用只读文件系统,如squashfs、cramfs等。一旦攻击者通过漏洞等手段攻入到这些只读文件系统中,就有可能可以下载和执行违法程序,在系统中植入木马等窃取系统信息,破坏系统运行环境,严重威胁了操作系统的安全。
现有的对文件系统的保护技术包括基于块设备的完整性校验技术和基于文件的认证保护技术,但基于块设备的完整性校验技术虽然能够保护只读文件系统,但是其主要基于块对块设备进行完整性检测,无法针对具体文件进行更细粒度的安全防范,防护手段过于单一死板;而基于文件的认证保护技术虽然能够基于文件类型对系统程序文件进行完整性校验和认证,保障被篡改的进程无法运行,但是基于文件的认证保护技术需要依赖可读写文件系统的支持,将认证信息写入到文件系统中,无法对只读文件系统程序进行有效安全防范。
发明内容
针对现有技术中存在的问题,本发明提供一种适用于只读文件系统的程序完整性验证系统,包括:
预配置模块,用于在制作只读文件系统镜像时,对所述只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成所述哈希树的唯一标识记录于所述可信程序文件的元数据中,并对所述哈希树进行签名后保存;
完整性验证模块,连接所述预配置模块,用于在所述只读文件系统加载程序文件时,根据所述唯一标识判断所述程序文件为所述可信程序文件时,根据所述唯一标识调取对应的所述哈希树进行签名认证,以及对所述程序页进行完整性验证,并在所述签名认证和所述完整性认证均通过时允许加载和运行所述程序页。
优选的,所述预配置模块包括:
第一存储单元,用于保存预先配置的签名密钥;
哈希树建立单元,用于以程序页为单位对所述只读文件系统的所述可信程序文件进行完整性度量,根据完整性度量结果构建所述哈希树,并生成所述哈希树的所述唯一标识;
签名单元,分别连接所述第一存储单元、所述哈希树建立单元和第二存储单元,用于根据所述签名密钥对所述哈希树的根哈希进行签名得到对应的签名结果,并将所述哈希树和对应的所述签名结果存储至所述第二存储单元;
映射表生成单元,分别连接所述哈希树建立单元和所述第二存储单元,用于获取所述哈希树和对应的所述签名结果于所述第二存储单元中的存储地址,并建立所述唯一标识与所述存储地址之间的关联关系形成哈希树映射表;
所述完整性验证模块根据所述唯一标识于哈希树映射表中匹配得到相应的所述存储地址,并根据所述存储地址由所述第二存储单元中调取所述哈希树和对应的所述签名结果。
优选的,所述签名单元通过向所述第一存储单元发送包含所述可信程序文件的类型和所述根哈希的签名请求得到所述签名结果;则所述第一存储单元包括:
存储子单元,用于保存所述签名密钥;
服务提供子单元,连接所述存储子单元,用于接收所述签名请求中包含的所述类型调用所述签名密钥对所述根哈希进行签名得到所述签名结果并发送至所述签名单元。
优选的,所述完整性验证模块包括:
可信判断单元,用于在所述只读文件系统加载所述程序文件时,于所述程序文件的所述元数据中进行检索,并在检索到所述唯一标识时生成表示所述程序文件为所述可信程序文件的可信信号;
签名认证单元,连接所述可信判断单元,用于根据所述可信信号通过所述唯一标识调取对应的所述哈希树并对所述哈希树的所述根哈希进行签名认证,并在签名认证通过后生成第一通过信号;
第一验证单元,连接所述签名认证单元,用于根据所述第一通过信号对加载的所述程序文件的程序页进行完整性度量得到相应的第一验证哈希,并在判断所述第一验证哈希与所述哈希树中对应的所述程序页的哈希一致时生成第二通过信号;
运行控制单元,连接所述第一验证单元,用于根据所述第二通过信号允许对应的所述程序页加载和运行。
优选的,所述完整性验证模块还包括第二验证单元,连接所述运行控制单元,用于在所述只读文件系统采用页面置换方式运行所述程序文件的所述程序页时,对每次置换入的所述程序页进行完整性度量得到相应的第二验证哈希,并在判断所述第二验证哈希与所述哈希树中对应的所述程序页的哈希一致时生成所述第二通过信号。
本发明还提供一种适用于只读文件系统的程序完整性验证方法,其特征在于,应用上述的程序完整性验证系统,所述程序完整性验证方法包括:
步骤S1,所述程序完整性验证系统在制作只读文件系统镜像时,对所述只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成所述哈希树的唯一标识记录于所述可信程序文件的元数据中,并对所述哈希树进行签名后保存;
步骤S2,所述程序完整性验证系统在所述只读文件系统加载程序文件时,根据所述唯一标识判断所述程序文件是否为所述可信程序文件:
若否,则退出;
若是,则转向步骤S3;
步骤S3,所述程序完整性验证系统根据所述唯一标识调取对应的所述哈希树进行签名认证,以及对所述程序页进行完整性验证,并在所述签名认证和所述完整性认证是否均通过:
若是,则允许加载和运行所述程序页;
若否,则禁止加载和运行所述程序页。
优选的,所述程序完整性验证系统中保存有预先配置的签名密钥;
则所述步骤S1包括:
步骤S11,所述程序完整性验证系统以程序页为单位对所述只读文件系统的所述可信程序文件进行完整性度量,根据完整性度量结果构建所述哈希树,并生成所述哈希树的所述唯一标识;
步骤S12,所述程序完整性验证系统根据所述签名密钥对所述哈希树的根哈希进行签名得到对应的签名结果,并将所述哈希树和对应的所述签名结果进行存储;
步骤S13,所述程序完整性验证系统获取所述哈希树和对应的所述签名结果的存储地址,并建立所述唯一标识与所述存储地址之间的关联关系形成哈希树映射表;
所述步骤S2中,所述程序完整性验证系统根据所述唯一标识于哈希树映射表中匹配得到相应的所述存储地址,并根据所述存储地址调取所述哈希树和对应的所述签名结果。
优选的,所述程序完整性验证系统中提供有第一存储单元用于保存预先配置的签名密钥;
则所述步骤S12中,所述程序完整性验证系统向所述第一存储单元发送包含所述可信程序文件的类型和所述根哈希的签名请求,并接收所述第一存储单元根据所述签名请求中包含的所述类型调用所述签名密钥对所述根哈希进行签名得到的所述签名结果。
优选的,所述步骤S2包括:
步骤S12,所述程序完整性验证系统在所述只读文件系统加载所述程序文件时,于所述程序文件的所述元数据中进行检索,并判断是否检索到所述唯一标识:
若是,则生成表示所述程序文件为所述可信程序文件的可信信号,随后转向步骤S13;
若否,则退出;
步骤S13,所述程序完整性验证系统根据所述可信信号通过所述唯一标识调取对应的所述哈希树并对所述哈希树的所述根哈希进行签名认证,并判断所述签名认证是否通过:
若是,则转向步骤S14;
若否,则禁止加载和运行所述程序页,随后退出;
步骤S14,所述程序完整性验证系统对加载的所述程序文件的程序页进行完整性度量得到相应的第一验证哈希,并判断所述第一验证哈希与所述哈希树中对应的所述程序页的哈希是否一致:
若是,则允许对应的所述程序页加载和运行;
若否,则禁止加载和运行所述程序页。
优选的,所述步骤S14中还包括:
所述程序完整性验证系统在所述只读文件系统采用页面置换方式运行所述程序文件的所述程序页时,对每次置换入的所述程序页进行完整性度量得到相应的第二验证哈希,并判断所述第二验证哈希与所述哈希树中对应的所述程序页的哈希是否一致:
若是,则允许置换入的所述程序页加载和运行;
若否,则禁止置换入的所述程序页加载和运行。
上述技术方案具有如下优点或有益效果:
1)在程序文件启动前和执行中对程序文件按程序页进行完整性校验和签名认证,只有经过合法签名和未被篡改过的程序才能正常运行,从而保护只读文件系统运行的安全和程序可信,使恶意程序即使利用系统漏洞攻入到计算中也无法在只读文件系统中运行,更大程度上保障只读文件系统的安全可靠;
2)在只读文件系统中的可信程序文件进行完整性度量,并在可信程序文件的元数据中配置对应的哈希树的唯一标识,实现在只读文件系统上,能够对程序文件进行分类,划分为可信程序文件和非可信程序文件,从而能够针对可信程序文件的运行进行校验和拦截,而不控制非可信程序文件的运行;
3)在可信程序文件加载时,以程序页为单位进行完整性度量,而无需对整个可信程序文件进行校验,大大加快了检测速度,也能在程序页内容被篡改时及时发现问题;
4)通过对哈希树的根哈希进行签名,防止了用户对哈希树的伪造,保障了程序文件身份的可信。
附图说明
图1为本发明的较佳的实施例中,一种适用于只读文件系统的程序完整性验证系统的结构示意图;
图2为本发明的较佳的实施例中,一种适用于只读文件系统的程序完整性验证方法的流程示意图;
图3为本发明的较佳的实施例中,步骤S1的子流程示意图;
图4为本发明的较佳的实施例中,步骤S2的子流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明进行详细说明。本发明并不限定于该实施方式,只要符合本发明的主旨,则其他实施方式也可以属于本发明的范畴。
本发明的较佳的实施例中,基于现有技术中存在的上述问题,现提供一种适用于只读文件系统的程序完整性验证系统,如图1所示,包括:
预配置模块1,用于在制作只读文件系统镜像时,对只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成哈希树的唯一标识记录于可信程序文件的元数据中,并对哈希树进行签名后保存;
完整性验证模块2,连接预配置模块1,用于在只读文件系统加载程序文件时,根据唯一标识判断程序文件为可信程序文件时,根据唯一标识调取对应的哈希树进行签名认证,以及对程序页进行完整性验证,并在签名认证和完整性认证均通过时允许加载和运行程序页。
具体地,本实施例中,在程序文件启动前,通过对需要进行校验和拦截的可信程序文件进行完整性度量,进而基于完整性度量结果构建哈希树,作为后续程序文件执行时的校验标准。由于并非需要对只读文件系统中的所有程序文件均进行校验和拦截保护,为方便区分哪些程序文件为需要进行校验和拦截保护的可信程序文件,本实施例中,在构建哈希树后,还需要对应生成该哈希树的唯一标识,并记录于可信程序文件的元数据中,实现在程序文件加载时,能够基于检索其元数据中是否记录有唯一标识判定其为可信程序文件还是非可信程序文件,进而确定是否需要对其进行校验和拦截保护。
进一步地,若仅构建哈希树作为后续程序文件执行时的校验标准,可能出现哈希树伪造使得无法进行有效校验和拦截保护的情况,基于此,本实施例中,在构建哈希树后还需要对其进行签名,以防止用户对哈希树的伪造,保障了程序文件身份的可信。
更进一步地,在程序文件执行中,首先基于唯一标识判定其是否为可信程序文件,若是可信程序文件,则需要先基于该唯一标识调取关联的哈希树,在对哈希树进行签名认证通过后,再针对加载的程序页进行完整性验证,只有在签名认证和完整性验证均通过时,才允许该程序页的加载和运行。
综上,可以看出,本技术方案在程序文件启动前和执行中对程序文件按程序页进行完整性校验和签名认证,只有经过合法签名和未被篡改过的程序才能正常运行,从而保护只读文件系统运行的安全和程序可信,使恶意程序即使利用系统漏洞攻入到计算中也无法在只读文件系统中运行,更大程度上保障只读文件系统的安全可靠。
本发明的较佳的实施例中,预配置模块1包括:
第一存储单元11,用于保存预先配置的签名密钥;
哈希树建立单元12,用于以程序页为单位对只读文件系统的可信程序文件进行完整性度量,根据完整性度量结果构建哈希树,并生成哈希树的唯一标识;
签名单元13,分别连接第一存储单元11、哈希树建立单元12和第二存储单元14,用于根据签名密钥对哈希树的根哈希进行签名得到对应的签名结果,并将哈希树和对应的签名结果存储至第二存储单元14;
映射表生成单元15,分别连接哈希树建立单元12和第二存储单元14,用于获取哈希树和对应的签名结果于第二存储单元14中的存储地址,并建立唯一标识与存储地址之间的关联关系形成哈希树映射表;
完整性验证模块2根据唯一标识于哈希树映射表中匹配得到相应的存储地址,并根据存储地址由第二存储单元14中调取哈希树和对应的签名结果。
具体地,本实施例中,上述程序页的大小可以根据需求进行配置,优选为4K。其中,哈希树的第一层包括可信程序文件的各程序页分别进行完整性度量得到的完整性度量结果,即每个程序页计算得到的哈希,哈希树的第二层包括第一层的各哈希以程序页为单位计算出的哈希,依次类推,直至到达根哈希。由上述哈希树的构建过程可以看出,若可信程序文件的任意一个程序页被篡改,则其对应的哈希也会出现变化,进而根哈希也会发生改变,基于此,仅对根哈希进行签名即可实现防止哈希树的伪造。
进一步地,通过将签名密钥存储至第一存储单元11,将待签名的哈希树存储至第二存储单元14,实现了将签名密钥与待签名的哈希树之间的物理隔离,进而实现了对签名密钥的存储保护。更进一步地,签名单元13通过向第一存储单元11发送包含可信程序文件的类型和根哈希的签名请求得到签名结果;则第一存储单元11包括:
存储子单元111,用于保存签名密钥;
服务提供子单元112,连接存储子单元111,用于接收签名请求中包含的类型调用签名密钥对根哈希进行签名得到签名结果并发送至签名单元13。
具体地,本实施例中,在需要进行签名时,第一存储单元11只允许作为待签名数据的请求方的签名单元13通过服务提供子单元112访问签名密钥并由服务提供子单元112对待签名的根哈希进行签名,服务提供子单元112根据指定的类型对根哈希进行签名,并将签名结果发送至签名单元13,实现签名过程对外不可见,实现了对签名密钥的存储保护。
本发明的较佳的实施例中,完整性验证模块2包括:
可信判断单元21,用于在只读文件系统加载程序文件时,于程序文件的元数据中进行检索,并在检索到唯一标识时生成表示程序文件为可信程序文件的可信信号;
签名认证单元22,连接可信判断单元21,用于根据可信信号通过唯一标识调取对应的哈希树并对哈希树的根哈希进行签名认证,并在签名认证通过后生成第一通过信号;
第一验证单元23,连接签名认证单元22,用于根据第一通过信号对加载的程序文件的程序页进行完整性度量得到相应的第一验证哈希,并在判断第一验证哈希与哈希树中对应的程序页的哈希一致时生成第二通过信号;
运行控制单元24,连接第一验证单元23,用于根据第二通过信号允许对应的程序页加载和运行。
具体地,本实施例中,通过唯一标识的配置实现对只读文件系统提供可信程序支持,即元数据中记录有唯一标识的程序文件为可信程序文件,否则为非可信程序文件,本技术方案不控制非可信程序文件的运行,而对于可信程序文件需要依次进行签名认证和完整性验证,仅在签名认证和完整性验证均通过时允许程序页加载和运行,否则禁止该程序页的加载和运行,实现对该程序页进行拦截,从而保护系统运行的安全和程序可信,使恶意程序即使利用系统漏洞攻入到计算中也无法在系统中运行,更大程度上保障只读文件系统的安全可靠。
本发明的较佳的实施例中,完整性验证模块2还包括第二验证单元25,连接运行控制单元24,用于在只读文件系统采用页面置换方式运行程序文件的程序页时,对每次置换入的程序页进行完整性度量得到相应的第二验证哈希,并在判断第二验证哈希与哈希树中对应的程序页的哈希一致时生成第二通过信号。
具体地,本实施例中,通过在每次进行页面置换时,对置换入的程序页进行完整性校验,能够保障当前程序页没有被篡改。
本发明还提供一种适用于只读文件系统的程序完整性验证方法,其特征在于,应用上述的程序完整性验证系统,如图2所示,程序完整性验证方法包括:
步骤S1,程序完整性验证系统在制作只读文件系统镜像时,对只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成哈希树的唯一标识记录于可信程序文件的元数据中,并对哈希树进行签名后保存;
步骤S2,程序完整性验证系统在只读文件系统加载程序文件时,根据唯一标识判断程序文件是否为可信程序文件:
若否,则退出;
若是,则转向步骤S3;
步骤S3,程序完整性验证系统根据唯一标识调取对应的哈希树进行签名认证,以及对程序页进行完整性验证,并在签名认证和完整性认证是否均通过:
若是,则允许加载和运行程序页;
若否,则禁止加载和运行程序页。
本发明的较佳的实施例中,程序完整性验证系统中保存有预先配置的签名密钥;
如图3所示,则步骤S1包括:
步骤S11,程序完整性验证系统以程序页为单位对只读文件系统的可信程序文件进行完整性度量,根据完整性度量结果构建哈希树,并生成哈希树的唯一标识;
步骤S12,程序完整性验证系统根据签名密钥对哈希树的根哈希进行签名得到对应的签名结果,并将哈希树和对应的签名结果进行存储;
步骤S13,程序完整性验证系统获取哈希树和对应的签名结果的存储地址,并建立唯一标识与存储地址之间的关联关系形成哈希树映射表;
步骤S2中,程序完整性验证系统根据唯一标识于哈希树映射表中匹配得到相应的存储地址,并根据存储地址调取哈希树和对应的签名结果。
本发明的较佳的实施例中,程序完整性验证系统中提供有第一存储单元用于保存预先配置的签名密钥;
则步骤S12中,程序完整性验证系统向第一存储单元发送包含可信程序文件的类型和根哈希的签名请求,并接收第一存储单元根据签名请求中包含的类型调用签名密钥对根哈希进行签名得到的签名结果。
本发明的较佳的实施例中,如图4所示,步骤S2包括:
步骤S21,程序完整性验证系统在只读文件系统加载程序文件时,于程序文件的元数据中进行检索,并判断是否检索到唯一标识:
若是,则生成表示程序文件为可信程序文件的可信信号,随后转向步骤S22;
若否,则退出;
步骤S22,程序完整性验证系统根据可信信号通过唯一标识调取对应的哈希树并对哈希树的根哈希进行签名认证,并判断签名认证是否通过:
若是,则转向步骤S23;
若否,则禁止加载和运行程序页,随后退出;
步骤S23,程序完整性验证系统对加载的程序文件的程序页进行完整性度量得到相应的第一验证哈希,并判断第一验证哈希与哈希树中对应的程序页的哈希是否一致:
若是,则允许对应的程序页加载和运行;
若否,则禁止加载和运行程序页。
本发明的较佳的实施例中,步骤S23中还包括:
程序完整性验证系统在只读文件系统采用页面置换方式运行程序文件的程序页时,对每次置换入的程序页进行完整性度量得到相应的第二验证哈希,并判断第二验证哈希与哈希树中对应的程序页的哈希是否一致:
若是,则允许置换入的程序页加载和运行;
若否,则禁止置换入的程序页加载和运行。
以上所述仅为本发明较佳的实施例,并非因此限制本发明的实施方式及保护范围,对于本领域技术人员而言,应当能够意识到凡运用本说明书及图示内容所作出的等同替换和显而易见的变化所得到的方案,均应当包含在本发明的保护范围内。
Claims (10)
1.一种适用于只读文件系统的程序完整性验证系统,其特征在于,包括:
预配置模块,用于在制作只读文件系统镜像时,对所述只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成所述哈希树的唯一标识记录于所述可信程序文件的元数据中,并对所述哈希树进行签名后保存;
完整性验证模块,连接所述预配置模块,用于在所述只读文件系统加载程序文件时,根据所述唯一标识判断所述程序文件为所述可信程序文件时,根据所述唯一标识调取对应的所述哈希树进行签名认证,以及对所述程序页进行完整性验证,并在所述签名认证和所述完整性认证均通过时允许加载和运行所述程序页。
2.根据权利要求1所述的程序完整性验证系统,其特征在于,所述预配置模块包括:
第一存储单元,用于保存预先配置的签名密钥;
哈希树建立单元,用于以程序页为单位对所述只读文件系统的所述可信程序文件进行完整性度量,根据完整性度量结果构建所述哈希树,并生成所述哈希树的所述唯一标识;
签名单元,分别连接所述第一存储单元、所述哈希树建立单元和第二存储单元,用于根据所述签名密钥对所述哈希树的根哈希进行签名得到对应的签名结果,并将所述哈希树和对应的所述签名结果存储至所述第二存储单元;
映射表生成单元,分别连接所述哈希树建立单元和所述第二存储单元,用于获取所述哈希树和对应的所述签名结果于所述第二存储单元中的存储地址,并建立所述唯一标识与所述存储地址之间的关联关系形成哈希树映射表;
所述完整性验证模块根据所述唯一标识于哈希树映射表中匹配得到相应的所述存储地址,并根据所述存储地址由所述第二存储单元中调取所述哈希树和对应的所述签名结果。
3.根据权利要求2所述的程序完整性验证系统,其特征在于,所述签名单元通过向所述第一存储单元发送包含所述可信程序文件的类型和所述根哈希的签名请求得到所述签名结果;则所述第一存储单元包括:
存储子单元,用于保存所述签名密钥;
服务提供子单元,连接所述存储子单元,用于接收所述签名请求中包含的所述类型调用所述签名密钥对所述根哈希进行签名得到所述签名结果并发送至所述签名单元。
4.根据权利要求2所述的程序完整性验证系统,其特征在于,所述完整性验证模块包括:
可信判断单元,用于在所述只读文件系统加载所述程序文件时,于所述程序文件的所述元数据中进行检索,并在检索到所述唯一标识时生成表示所述程序文件为所述可信程序文件的可信信号;
签名认证单元,连接所述可信判断单元,用于根据所述可信信号通过所述唯一标识调取对应的所述哈希树并对所述哈希树的所述根哈希进行签名认证,并在签名认证通过后生成第一通过信号;
第一验证单元,连接所述签名认证单元,用于根据所述第一通过信号对加载的所述程序文件的程序页进行完整性度量得到相应的第一验证哈希,并在判断所述第一验证哈希与所述哈希树中对应的所述程序页的哈希一致时生成第二通过信号;
运行控制单元,连接所述第一验证单元,用于根据所述第二通过信号允许对应的所述程序页加载和运行。
5.根据权利要求4所述的程序完整性验证系统,其特征在于,所述完整性验证模块还包括第二验证单元,连接所述运行控制单元,用于在所述只读文件系统采用页面置换方式运行所述程序文件的所述程序页时,对每次置换入的所述程序页进行完整性度量得到相应的第二验证哈希,并在判断所述第二验证哈希与所述哈希树中对应的所述程序页的哈希一致时生成所述第二通过信号。
6.一种适用于只读文件系统的程序完整性验证方法,其特征在于,应用于如权利要求1-6中任意一项所述的程序完整性验证系统,所述程序完整性验证方法包括:
步骤S1,所述程序完整性验证系统在制作只读文件系统镜像时,对所述只读文件系统的可信程序文件进行完整性度量以构建哈希树,随后生成所述哈希树的唯一标识记录于所述可信程序文件的元数据中,并对所述哈希树进行签名后保存;
步骤S2,所述程序完整性验证系统在所述只读文件系统加载程序文件时,根据所述唯一标识判断所述程序文件是否为所述可信程序文件:
若否,则退出;
若是,则转向步骤S3;
步骤S3,所述程序完整性验证系统根据所述唯一标识调取对应的所述哈希树进行签名认证,以及对所述程序页进行完整性验证,并在所述签名认证和所述完整性认证是否均通过:
若是,则允许加载和运行所述程序页;
若否,则禁止加载和运行所述程序页。
7.根据权利要求6所述的程序完整性验证方法,其特征在于,所述程序完整性验证系统中保存有预先配置的签名密钥;
则所述步骤S1包括:
步骤S11,所述程序完整性验证系统以程序页为单位对所述只读文件系统的所述可信程序文件进行完整性度量,根据完整性度量结果构建所述哈希树,并生成所述哈希树的所述唯一标识;
步骤S12,所述程序完整性验证系统根据所述签名密钥对所述哈希树的根哈希进行签名得到对应的签名结果,并将所述哈希树和对应的所述签名结果进行存储;
步骤S13,所述程序完整性验证系统获取所述哈希树和对应的所述签名结果的存储地址,并建立所述唯一标识与所述存储地址之间的关联关系形成哈希树映射表;
所述步骤S2中,所述程序完整性验证系统根据所述唯一标识于哈希树映射表中匹配得到相应的所述存储地址,并根据所述存储地址调取所述哈希树和对应的所述签名结果。
8.根据权利要求7所述的程序完整性验证方法,其特征在于,所述程序完整性验证系统中提供有第一存储单元用于保存预先配置的签名密钥;
则所述步骤S12中,所述程序完整性验证系统向所述第一存储单元发送包含所述可信程序文件的类型和所述根哈希的签名请求,并接收所述第一存储单元根据所述签名请求中包含的所述类型调用所述签名密钥对所述根哈希进行签名得到的所述签名结果。
9.根据权利要求7所述的程序完整性验证方法,其特征在于,所述步骤S2包括:
步骤S12,所述程序完整性验证系统在所述只读文件系统加载所述程序文件时,于所述程序文件的所述元数据中进行检索,并判断是否检索到所述唯一标识:
若是,则生成表示所述程序文件为所述可信程序文件的可信信号,随后转向步骤S13;
若否,则退出;
步骤S13,所述程序完整性验证系统根据所述可信信号通过所述唯一标识调取对应的所述哈希树并对所述哈希树的所述根哈希进行签名认证,并判断所述签名认证是否通过:
若是,则转向步骤S14;
若否,则禁止加载和运行所述程序页,随后退出;
步骤S14,所述程序完整性验证系统对加载的所述程序文件的程序页进行完整性度量得到相应的第一验证哈希,并判断所述第一验证哈希与所述哈希树中对应的所述程序页的哈希是否一致:
若是,则允许对应的所述程序页加载和运行;
若否,则禁止加载和运行所述程序页。
10.根据权利要求9所述的程序完整性验证方法,其特征在于,所述步骤S14中还包括:
所述程序完整性验证系统在所述只读文件系统采用页面置换方式运行所述程序文件的所述程序页时,对每次置换入的所述程序页进行完整性度量得到相应的第二验证哈希,并判断所述第二验证哈希与所述哈希树中对应的所述程序页的哈希是否一致:
若是,则允许置换入的所述程序页加载和运行;
若否,则禁止置换入的所述程序页加载和运行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211505731.2A CN115795432A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于只读文件系统的程序完整性验证系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211505731.2A CN115795432A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于只读文件系统的程序完整性验证系统及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115795432A true CN115795432A (zh) | 2023-03-14 |
Family
ID=85442620
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211505731.2A Pending CN115795432A (zh) | 2022-11-29 | 2022-11-29 | 一种适用于只读文件系统的程序完整性验证系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115795432A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743008A (zh) * | 2023-12-13 | 2024-03-22 | 国家电网有限公司直流技术中心 | 多核处理器故障诊断与异常处理方法、主控板卡及设备 |
-
2022
- 2022-11-29 CN CN202211505731.2A patent/CN115795432A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117743008A (zh) * | 2023-12-13 | 2024-03-22 | 国家电网有限公司直流技术中心 | 多核处理器故障诊断与异常处理方法、主控板卡及设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9305159B2 (en) | Secure system for allowing the execution of authorized computer program code | |
US8099789B2 (en) | Apparatus and method for enabling applications on a security processor | |
US20040255145A1 (en) | Memory protection systems and methods for writable memory | |
US20210167960A1 (en) | Certifying Authenticity of Stored Code and Code Updates | |
JP7537661B2 (ja) | 高度なランサムウェア検出 | |
WO2007074565A1 (ja) | プログラム実行制御方法および装置ならびに実行制御プログラム | |
US9262631B2 (en) | Embedded device and control method thereof | |
US11531769B2 (en) | Information processing apparatus, information processing method, and computer program product | |
CN115795432A (zh) | 一种适用于只读文件系统的程序完整性验证系统及方法 | |
CN117610083A (zh) | 文件校验方法、装置、电子设备及计算机存储介质 | |
CN117272286A (zh) | 基于tee的进程动态完整性度量方法及系统 | |
US20240163264A1 (en) | Real-time data encryption/decryption security system and method for network-based storage | |
US8392714B2 (en) | Secure overlay manager protection | |
CN113868628B (zh) | 一种签名验证方法、装置、计算机设备和存储介质 | |
CN113836542B (zh) | 可信白名单匹配方法、系统和装置 | |
CN117668822B (zh) | 应用程序的启动控制方法、装置及电子设备 | |
US11841970B1 (en) | Systems and methods for preventing information leakage | |
US11954333B2 (en) | Secured firmware with anti-malware | |
CN117786658A (zh) | 非授权应用判定方法、电子设备、计算机可读介质 | |
CN113553231A (zh) | 一种基于安全芯片的嵌入式操作系统运行环境监控方法 | |
CN117786683A (zh) | 应用程序防勒索系统、方法、设备和存储介质 | |
CN115982699A (zh) | 基于安全内存的恶意攻击防御方法、装置、设备及介质 | |
CN115033854A (zh) | 一种数据处理方法、装置、电子设备及存储介质 | |
JP2022190970A (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN116166277A (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 |