【技术实现步骤摘要】
内核运行时的完整性校验方法及计算机可读存储介质
本专利技术涉及数据安全
,尤其涉及一种内核运行时的完整性校验方法及计算机可读存储介质。
技术介绍
现在一般的方案都可以提供内核的静态完整性校验,比如可信启动技术,即在启动过程中每一阶段被加载的模块(比如内核)在加载运行之前都进行了安全校验,如果校验通过则运行,否则拒绝执行。但是对内核运行之后却没有进一步进行防护。例如,在公开号为CN106250760A的中国专利公开文件中,提出了一种基于TPM2.0芯片的U-Boot可信启动方法,所述方法利用TPM2.0芯片的硬件特性,收集U-Boot加载驱动程序的完整性信息,并在内核加载运行前校验驱动程序及内核文件的完整性,为可信嵌入式设备的内核文件及驱动程序完整性校验过程提供保护和隔离,嵌入式系统在启动过程中将核心驱动文件的度量值扩展至TPM2.0芯片中的PCR中,在嵌入式设备内核加载时刻,校验驱动程序及内核文件的完整性,保证只有在驱动程序及内核文件未遭受篡改的情况下才可正常启动系统。该方案只是在启动加载内核之前对内核数据进行完整性校验,确保运行之前内核数据是没有被篡改过的,内核运行后却无法确保安全性。
技术实现思路
本专利技术所要解决的技术问题是:提供一种内核运行时的完整性校验方法及计算机可读存储介质,可对运行后的内核代码段和可读数据段进行完整性校验,确保安全性。为了解决上述技术问题,本专利技术采用的技术方案为:一种基于trustzone的内核运行时的完整性校验方法,包括:获取内核文件中的第一字段的数据和第二字段的数据,所述第一字段为.text字段,所述第二字段为.r ...
【技术保护点】
1.一种基于trustzone的内核运行时的完整性校验方法,其特征在于,包括:获取内核文件中的第一字段的数据和第二字段的数据,所述第一字段为.text字段,所述第二字段为.rodata字段;分别对所述第一字段的数据和第二字段的数据进行单向散列计算,得到第一散列值和第二散列值;安全操作系统运行后,将第一散列值和第二散列值分别存储至安全内存区域;普通操作系统将内核文件解压到普通内存区域,并将第一字段的数据和第二字段的数据在普通内存区域中的起始地址以及对应的长度发送至安全操作系统;安全操作系统根据所述起始地址和对应的长度,定时从普通内存区域获取第一字段的数据和第二字段的数据,并根据安全内存区域中的第一散列值和第二散列值,分别对所获取的第一字段的数据和第二字段的数据进行完整性校验。
【技术特征摘要】
1.一种基于trustzone的内核运行时的完整性校验方法,其特征在于,包括:获取内核文件中的第一字段的数据和第二字段的数据,所述第一字段为.text字段,所述第二字段为.rodata字段;分别对所述第一字段的数据和第二字段的数据进行单向散列计算,得到第一散列值和第二散列值;安全操作系统运行后,将第一散列值和第二散列值分别存储至安全内存区域;普通操作系统将内核文件解压到普通内存区域,并将第一字段的数据和第二字段的数据在普通内存区域中的起始地址以及对应的长度发送至安全操作系统;安全操作系统根据所述起始地址和对应的长度,定时从普通内存区域获取第一字段的数据和第二字段的数据,并根据安全内存区域中的第一散列值和第二散列值,分别对所获取的第一字段的数据和第二字段的数据进行完整性校验。2.根据权利要求1所述的基于trustzone的内核运行时的完整性校验方法,其特征在于,所述“安全操作系统运行后,将第一散列值和第二散列值分别存储至安全内存区域”之前,进一步包括:使用可信启动私钥对所述第一散列值和第二散列值进行签名,并将签名得到的数字签名与所述第一散列值和第二散列值进行组合,得到组合数据。3.根据权利要求2所述的基于trustzone的内核运行时的完整性校验方法,其特征在于,所述“安全操作系统运行后,将第一散列值和第二散列值分别存储至安全内存区域”具体为:安全操作系统运行后,将所述组合数据存储至安全内存区域;使用可信启动公钥对所述组合数据进行签名验证;若验证通过,则将第一散列值和第二散列值分别存储至安全内存区域。4.根据权利要求1所述的基于trustzone的内核运行时的完整性校验方法,其特征在于,对所述第一字段的数据进行单向散列计算,得到第一散列值的步骤具体为:根据预设的块大小,将第一字段的数据划分为多个数据块;计算得到第一个数据块的散列值;对当前数据块和上一个数据块的散列值进行单向散列计算,得到当前数据块的散列值;根据最后一个数据块的散列值,得到第一散列值。5.根据权利要求4所述的基于trustzone的内核运行时的完整性校验方法,其特征在于,根据安全内存区域中的第一散列值,对所获取的第一字段的数据进行完整性校验的步骤具体为:根据预设的块大小,将所获取的第一字段的数据划分为多个数据块;计算得到第一个数据块的散列值;对当前数据块和上一个数据块的散列值进行单向散列计算,得到当前数据块的散列值;根据最后一个数据的散列值,得到第三散列值;将所述第三散列值与安全存储区域中的第一散列值进行对比;若一致,则判定普通内存区域中...
【专利技术属性】
技术研发人员:赵国开,涂岩恺,刘炯钟,池炜宾,
申请(专利权)人:厦门雅迅网络股份有限公司,
类型:发明
国别省市:福建,35
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。