System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于物联网安全,更具体地,涉及一种基于探针的混合远程验证方法及系统。
技术介绍
1、可信执行环境技术可用于保护物联网设备中的应用和数据,可将安全关键应用程序与不可信计算基础隔离。可信执行环境通过隔离软硬件资源提供安全区域,确保其中的程序和数据不受外部干扰。
2、远程证明是可信执行环境的关键组成部分,即可信执行环境向第三方证明其未被泄露且其结果是可信的。远程证明可以在可信执行环境与外部环境之间建立一种互信关系,并提供一种可靠的方式来验证可信执行环境的状态和执行结果。
3、现有的基于静态证据的远程证明方法在验证时精确度较低。现有的基于动态证据的远程证明方法中,检测控制流的证明方法检测能力最强,但是存在路径爆炸问题,即常规程序中存在嵌套的循环和分支会导致控制流路径无限,难以预先计算所有合法控制流的哈希,这会导致检测效率较低且无法验证所有控制流。此外,现有的远程证明方法没有验证关键数据完整性,无法检测到修改关键数据的攻击。
技术实现思路
1、为解决现有技术中存在的不足,本专利技术提供一种基于探针的混合远程验证方法,以解决控制流证明方法中存在的路径爆炸问题与没有验证关键数据完整性的问题。
2、本专利技术提供了一种基于探针的混合远程验证方法及系统,包括以下步骤:
3、步骤1,在安全关键应用中插入探针,用于实时监控和捕获控制相关变量和语义关键变量,专用编译器生成控制流图;
4、步骤2,采用伪随机方法遍历内存地址生成标准静态测量
5、步骤3,基于控制流图和标准测量值生成质询信息,根据验证方的质询生成静态测量值和控制流测量值,证明方通过探针捕获关键变量信息,生成关键数据完整性测量值;
6、步骤4,将生成的静态测量值、控制流测量值和关键数据完整性测量值汇总成在线测量报告加密发送给验证方;
7、步骤5,验证方将在线测量报告中的静态测量值、控制流测量值和关键数据完整性测量值,与离线标准值进行比对,验证应用未被篡改和未遭受攻击。
8、优选地,步骤1中,使用专用编译器在源代码的关键位置插入探针;插入位置包括控制流指令处、关键数据定义和使用处;编译器通过静态分析和数据流分析识别关键位置并进行插入。
9、专用编译器在插入探针的同时,生成程序的控制流图;所述控制流图用于描述程序中各个基本块的执行路径;
10、专用编译器识别控制相关变量和语义关键变量,通过指针分析和数据依赖分析;所述控制相关变量包括条件变量,决定目标程序执行代码路径的变量。
11、优选地,步骤1中,通过专用编译器识别控制流指令和控制相关变量,在程序编写者注释后识别语义关键变量,形成控制相关变量和语义关键变量的初始集合;
12、专用编译器通过扩展初始集合,形成目标关键变量;专用编译器通过分析程序中的所有指针,识别指向目标关键变量及目标关键变量依赖项的指针,全局点到映射记录每个指针及其指向的全局位置,用于追踪和识别目标关键变量及目标关键变量依赖关系;
13、所述扩展初始集合包括所有直接和间接指向初始集合中变量的指针,以及指向初始集合中变量依赖项的所有指针。
14、验证目标关键变量的完整性,包括验证目标关键变量及目标关键变量依赖关系的完整性。
15、优选地,步骤2包括:
16、步骤2.1,使用伪随机方法生成内存地址,遍历整个安全关键应用的内存空间;对于每个伪随机生成的内存地址,读取其内容和状态,使用哈希函数计算该内存地址中内容的散列值,将所有内存地址中内容的散列值合并,生成整个安全关键应用的标准静态测量值;
17、步骤2.2,在程序的控制流图中选择两个检查点,分别用于标识路径的开始和结束;从第一个检查点开始,记录程序在控制流图中移动的每个操作包括函数调用、函数返回、条件分支,序列化为操作列表;使用哈希函数对操作列表进行散列计算,生成安全关键应用的标准控制流测量值。
18、优选地,步骤2.2中,所述的标准控制流测量值包含两个检查点,分别标识路径的起始和终止位置;从第一个检查点移动到第二个检查点时遍历的所有代码块相关联的操作列表的散列值。
19、优选地,步骤3包括:
20、步骤3.1,验证方使用控制流图和预先生成的标准测量值来构建质询信息,控制流图用于提供程序的结构信息,标准测量值用于提供基准数据;验证方基于选定的检查点和操作列表生成质询信息,包括用于生成静态测量值的随机数和密钥、指示证明方执行静态和控制流测量的指令以及需要证明方捕获的关键变量信息;
21、步骤3.2,使用质询信息中的随机数和密钥,基于随机数生成工作随机数,证明方使用工作随机数伪随机遍历内存地址,计算内存内容的散列值,得到静态测量值;
22、步骤3.3,证明方记录程序从一个检查点到下一个检查点的操作列表,计算操作列表的散列值,生成控制流测量值;
23、步骤3.4,专用编译器在关键变量集中的每个变量定义和使用位置插入探针,运行时每个关键变量的定义点处都会捕获到专用编译器为关键变量生成的标签和要分配给变量的值,跳板将信息发送到测量模块,测量模块最终将根据关键变量完整性检查结果生成关键数据完整性测量值。
24、优选地,所述测量模块维护一个散列映射,其中存储包括变量地址与变量值的键值对;
25、测量模块在每个关键变量定义处更新散列映射,并在每个关键变量使用处进行检查;关键变量包括局部变量和全局变量,定义和使用站点都有相匹配的值;值不匹配表示关键变量已损坏。
26、优选地,步骤5.1,将静态测量值与标准静态测量值进行比对,若值相同则代表文件未被篡改,否则验证不通过;
27、步骤5.2,将控制流测量值与存储在测量数据库中的标准值控制流测量值进行比对,检查每个控制流测量值的目的地检查点是否是下一个控制流测量值的源检查点;使用影子栈检查操作列表,查看其中是否存在无法对应的返回边,若检查通过代表未遭受控制流攻击,否则验证不通过;
28、步骤5.3,检查关键数据完整性测量值,若值匹配则代表未遭受仅数据攻击,验证通过,否则验证不通过。
29、优选地,步骤5.2中,所述影子栈用于检查劫持函数返回地址的攻击,通过检查合法返回边关系对劫持函数返回地址的攻击进行检测;
30、检测开始影子栈为空,对动态测量值进行检查将所涉及的函数调用边入栈,检测到涉及函数返回的边时检查该边是否是栈顶边的合法返回边;
31、若涉及函数返回的边与栈顶边匹配,则说明未遭到劫持函数返回地址的攻击,将栈顶的边弹出,表示函数返回正常;若不匹配,则检查不通过,表示存在攻击行为。
32、本专利技术的第二方面提供了一种基于探针的混合远程验证系统,包括:专用编译器模块、质询生成模块、静态测量模块、控制流测量模块以及关键本文档来自技高网...
【技术保护点】
1.一种基于探针的混合远程验证方法及系统,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
3.根据权利要求2所述的一种基于探针的混合远程验证方法,其特征在于:
4.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
5.根据权利要求4所述的一种基于探针的混合远程验证方法,其特征在于:
6.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
7.根据权利要求6所述的一种基于探针的混合远程验证方法,其特征在于:
8.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
9.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
10.一种基于探针的混合远程验证系统,包括:专用编译器模块、质询生成模块、静态测量模块、控制流测量模块以及关键数据完整性测量模块;运行如权利要求1至9中任一项所述的一种基于探针的混合远程验证方法,其特征在于:
【技术特征摘要】
1.一种基于探针的混合远程验证方法及系统,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
3.根据权利要求2所述的一种基于探针的混合远程验证方法,其特征在于:
4.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在于:
5.根据权利要求4所述的一种基于探针的混合远程验证方法,其特征在于:
6.根据权利要求1所述的一种基于探针的混合远程验证方法,其特征在...
【专利技术属性】
技术研发人员:吕卓,刘万大山,李暖暖,陈岑,张伟剑,狄立,杨文,蔡军飞,张铮,李鸣岩,常昊,兰景宏,何梦瑾,李俊娥,
申请(专利权)人:国网河南省电力公司电力科学研究院,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。