一种基于形式化验证的物联网协议安全性自动分析方法与
系统
技术领域
本发明属于物联网协议安全分析领域,特别涉及一种基于形式化验证的物联网协议安全性自动分析方法与系统。
背景技术
近年来,物联网发展迅速,受到各界的广泛关注。物联网协议被各大物联网厂商平台用于连接海量的设备和用户。与传统协议不同的是,物联网协议往往被设计为适用于低带宽、资源受限、不可靠的设备,这也带来了新的安全和隐私风险。
最近研究人员通过手动分析发现了物联网协议的一些安全问题,并导致了一些严重的后果。如贾岩等人发现了物联网协议中存在隐私泄露、恶意消息注入等问题。但研究人员对物联网消息安全理解仍然有限。当前工业界和学术界都没有较好的方法来对消息协议的部署进行一个系统性的分析。
目前,已有一些采用形式化验证的方式来尝试解决物联网协议的安全问题,如,Karthikeyan Bhargavan等人利用ProVerif和CryptoVerif对TLS 1.3协议规范建模并进行安全分析,Syed Hussain等人设计了基于形式化分析工具NuSMV和ProVerif的LTE协议安全分析工具LTEInspector。上述形式化验证方法都是基于协议规范进行手动的形式化表达,且无法扩展到其他协议中。当前对物联网协议的形式化分析尚未有一个系统化且可扩展的解决方案。
此外,由于物联网协议的参与方较多,交互过程复杂,现有最先进的形式化验证工具仍存在一些验证局限性。Tamarin是目前最先进的工具,但由于协议安全的正确性是无法确定的问题,且物联网协议交互复杂,Tamarin存在无法停止验证的局限性,需要手动帮助证明引理来解决验证问题。
因此,如何设计一个自动化方法与系统来验证不同平台上不同消息协议的安全属性仍是物联网协议安全研究重点之一。
发明内容
针对跨平台自动化的物联网协议安全性分析的技术不足,本发明提供了一种基于形式化验证的物联网协议安全性自动分析方法与系统,能够对不同平台不同协议的状态机及其所需安全属性进行自动化的形式化表达,并应用两种攻击模型进行系统化的分析。
在本发明的方法中,基于形式化验证进行安全属性的协议分析,建模和分析过程完全自动化,可以减少手工负担;通过对协议状态机的建模不局限于平台和协议的种类、实现代码,适用于不同的协议和平台。
为了实现上述目的,本发明采用如下技术方案:
一种基于形式化验证的物联网协议安全性自动分析方法,包括以下步骤:
(1)获取物联网协议的协议状态机,构建物联网协议需满足的安全属性;
(2)对物联网协议的协议状态机进行形式化描述,得到多集重写规则;
对物联网协议需满足的安全属性进行形式化描述为引理,包括安全属性的引理和可达性属性的引理;
采用可达性属性的引理对得到的多集重写规则进行可达性分析,获得最终的多集重写规则;
(3)针对邻居场景和租客场景这两种攻击场景,对攻击者能力进行建模,得到两种攻击模型;
(4)根据步骤(2)中得到的最终的多集重写规则,在步骤(3)所述的两种攻击模型下分别基于动态优先策略对安全属性的引理进行验证,输出违反的安全属性。
进一步的,所述的步骤(1)包括:
(1.1)从物联网协议的规范中提取基本安全属性,所述基本安全属性包括字段的保密属性和交互的验证属性;
(1.2)扩展构建保密属性:
基于协议状态机,对各个平台中自定义的协议字段构建保密属性,实现对基本安全属性中的保密属性的扩展;所述自定义的协议字段涉及用户或设备的身份、属性、密钥;
(1.3)扩展构建验证属性:
基于协议状态机,采用验证目标分类方法对各个平台中自定义的协议交互构建验证属性,其中对每次交互分别构建存活性、弱一致性、非单射一致性和单射一致性四个目标,实现对基本安全属性中的验证属性的扩展。
进一步的,所述的步骤(2)包括:
(2-1)遍历协议状态机,提取每条边的状态转换标签;
(2-2)基于状态转换标签,采用形式化语言将协议状态机抽象为多集重写规则,所述的多集重写规则由前提、行为和结论三个部分组成;其中,将协议状态机中转换之前的状态抽象为前提,将状态转换标签抽象为行为,将转换之后的状态抽象为结论;
(2-3)基于步骤(2-2)中得到的多集重写规则,采用形式化语言将扩展后的保密属性和验证属性表达为引理,所述引理采用一阶逻辑表达式,包括保密属性的引理、验证属性的引理和可达性属性的引理;
(2-4)对生成的多集重写规则进行验证:
基于步骤(2-3)中得到的可达性属性的引理,对步骤(2-2)中得到的多集重写规则进行验证,判断每一条规则是否可达:
若可达,则该规则生成正确;
若不可达,则该规则生成有误,需自动化进行规则调整:根据引理的结果定位不可达的规则,检查该规则的前提和结论中与状态机不一致的参数和逻辑,并自动更正。
进一步的,其特征在于,步骤(2-2)所述协议状态机中的每一次状态转换被抽象为2-3条规则。
进一步的,所述的步骤(4)包括:
(4-1)在最终的多集重写规则上分别应用两种攻击模型:
针对邻居场景,最终的多集重写规则中通信信道的描述采用Dolev-Yao模型;
针对租客场景,最终的多集重写规则中通信信道的描述采用安全信道,添加攻击者知道设备信息的规则;
(4-2)在应用了攻击模型的多集重写规则上,针对每一条待验证的安全属性的引理,根据引理的一阶逻辑表达式利用Tamarin引擎推理得到若干个待验证的目标;
(4-2)优先验证状态相关的目标,所述状态相关的目标所涉及的规则按照协议状态机中达到的状态转换顺序从晚到早进行验证;接着验证密钥相关的目标,所述密钥相关的目标以Tamarin引擎默认的顺序进行验证;最后对剩下的目标以Tamarin引擎默认的顺序进行验证,直至验证完所有的目标数量,该条引理验证结束;
(4-3)重复步骤(4-1)至步骤(4-2),开始下一条引理的验证,直至所有安全属性的引理验证完毕,输出违反的安全属性。
本发明的另一目的在于提供一种基于形式化验证的物联网协议安全性自动分析系统,用于实现上述中的方法,所述的系统包括:
物联网协议数据加载模块,其用于加载各个平台物联网协议的协议状态机、以及物联网协议规范中的基本安全属性;
安全属性扩展模块,其用于根据协议状态机,对物联网协议的基本属性进行自动化扩展;
形式化表达模块,其用于将协议状态机以及安全属性扩展模块得到的所有安全属性自动化转换为Tamarin代码,其中将协议状态机的形式化表达定义为规则,将安全属性的形式化表达定义为引理;
攻击者能力建模模块,其用于将邻居场景和租客场景两种攻击场景进行建模,得到两种攻击模型,进一步应用到物联网协议安全分析中,分别进行形式化验证:
针对邻居场景,最终的多集重写规则中通信信道的描述采用Dolev-Yao模型;
针对租客场景,最终的多集重写规则中通信信道的描述采用安全信道,添加攻击者已知设备信息的规则;
形式化验证模块,其用于获取形式化表达模块输出的规则和引理,应用动态优先策略,根据引理中待验证目标的相关性、在协议状态机中的位置在规则中进行先后验证。
与现有技术相比,本发明的有益效果为:
(1)本发明采用基于形式化验证的物联网协议安全性自动分析技术,使用多集重写规则对协议进行建模,其中一条规则包含前提、行为和结论;使用引理对安全属性进行建模,要求建立在对规则模型中行为标签的跟踪上,该方法适用于不同的物联网协议,只需采集到协议状态机和基本的安全属性即可高效自动地对物联网协议状态机进行形式化建模并扩展协议安全属性,应用攻击者模型,实现形式化验证,从而得到跨平台的安全分析结果。
(2)本发明应用了两种具有现实意义的攻击场景,并对物联网协议进行细粒度的保密属性、验证属性的形式化验证,实现系统性的安全分析。
(3)本发明应用最先进的形式化验证工具Tamarin进行验证,Tamarin通过归纳总结法对引理进行追溯,并判断引理是否在规则上成立。但由于协议安全的正确性是无法确定的问题,Tamarin存在无法停止验证的局限性,通常需要手动帮助证明引理来解决验证问题。Tamarin引擎陷入循环的原因往往是无法追溯某个参数的来源,并不断搜索先前的规则。而该规则又产生了新的参数,需要进行追溯,这样就导致了Tamarin会重复地搜索同一条规则和追溯参数的来源,无法停止。动态优先策略将优先处理复杂的验证目标,例如状态机中路径较长的状态,复杂的加密规则等,将复杂验证目标分解为较简单的目标,使得Tamarin能够搜索更准确的规则,而不是重复搜索复杂的规则。因此本发明中的动态优先策略可以有效解决对实际部署的物联网协议进行形式化验证时Tamarin工具存在无法停止验证的限制,有效缩减验证时间和搜索空间。
附图说明
图1为本发明的整体模块结构图;
图2为本发明的协议状态机及其需满足的安全属性的自动化形式化表达流程图;
图3为本发明的基于动态优先策略的形式化验证流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实施例旨在便于对本发明的理解,而对其不起任何限定作用。
本发明提供了一种基于形式化验证的物联网协议安全性自动分析方法与系统,需要以协议状态机和基本的安全属性为基础进行分析,其中协议状态机可以通过模型学习等方式进行自动化提取,基本安全属性通过研究人员总结协议规范进行提取,每个协议仅需提取一次。该方法和系统能够将多个平台不同协议的状态机进行自动化的形式化表达,并扩展协议安全属性,应用攻击者模型,实现形式化验证,从而得到系统性的安全分析结果。该系统支持对谷歌、亚马逊、阿里巴巴等商业或开源平台上消息协议MQTT、CoAP和AMQP安全性进行自动地形式化分析。
本发明通过五个模块实现,如图1所示,包括物联网消息协议数据加载模块、安全属性扩展模块、形式化表达模块、攻击者能力建模模块和基于动态优先策略的形式化验证模块。
(1)物联网消息协议数据加载模块用于加载物联网协议的协议状态机、以及物联网协议规范中的基本安全属性;
(2)安全属性扩展模块的作用是基于协议状态机对物联网协议的基本安全属性进行自动化扩展,包括:
接受基本安全属性。所述基本安全属性从协议规范中总结提取,包括协议中规定的字段的保密属性(如MQTT协议中的ClientID,Password等)和协议中规定的交互的验证属性。其中保密属性要求协议中的特定字段如连接凭证,加密密钥等没有泄露,无法被攻击者获知,验证属性要求协议的交互过程中满足一定的验证目标。在本发明中,本发明采用了Lowe等人提出的验证目标,即对每次交互分别构建存活性、弱一致性、非单射一致性和单射一致性四个目标。
四个目标的含义如下:协议向发起者A提供存活性认证目标是指A作为发起者认为自己和响应者B完成了一次协议运行,那么B一定在之前运行了该协议;协议向发起者A提供弱一致性目标是指,A作为发起者认为自己和响应者B完成了一次协议运行,则B一定在之前运行了该协议,且B认为自己是和A运行的;协议向发起者A提供非单射一致性的目标是指A认为自己和响应者B完成了一次协议运行,并且协议中数据变量集合为ds,则B一定在之前运行了该协议,且认为自己是响应者,和A运行了协议,其中协议中数据变量集合为ds;协议向发起者A提供单射一致性的目标是指在非单射一致性的目标上,每一次A的运行都对应着一次且仅为一次的B的运行。
扩展构建保密属性。基于协议状态机,进一步对各个平台中自定义的协议字段构建保密属性。所述字段涉及用户或设备的身份、属性、密钥以及其他隐私相关等字段(如部署了MQTT协议的谷歌平台中的Secret Key等)。
从协议标准中提取的基本保密属性仅包括协议标准定义的基本字段。通过对协议状态机中的字段和协议标准定义的基本字段进行对比对保密属性进行扩展。如MQTT协议中要求password字段的保密性,博世物联网平台的状态机中password字段由用户的私钥进行了加密,则保密属性中将添加用户私钥的保密性这一属性。
扩展构建验证属性。基于协议状态机,进一步对协议中自定义的交互构建验证属性。其中验证属性将应用Lowe等人提出的验证目标分类方法,
从协议标准中提取的基本验证属性仅包括协议标注定义的基本交互。通过对协议状态机中的状态变化和基本交互过程进行对比对验证属性进行扩展。如阿里云实现CoAP协议时设计了验证和传递数据的两种交互,对协议标准里描述的交互使用的CON数据包进行了扩展,则验证属性中将添加用于验证的CON数据包的交互和用于传递数据的CON的数据包交互的验证属性。
(3)形式化表达模块的作用是将协议状态机和安全属性扩展模块得到的所有安全属性自动化转换为Tamarin代码,实现形式化表达。
该模块的工作流程如图2所示。
(3-1)遍历协议状态机,提取每条边的状态转换标签;
(3-2)基于状态转换标签,将协议状态机进行形式化表达,抽象为多集重写规则。其中规则是形式化语言Tamarin的基本结构,由前提、行为和结论三个部分组成;其中状态机中先前的状态将抽象为前提,状态转换标签抽象为行为,之后的状态将抽象为结论。在形式化代码中,由于状态机中一次状态转换将涉及到两个协议参与方,也就是包含参与方A发送数据包的状态变化、参与方B收到数据包并回复数据包的变化以及参与方A收到数据包的状态变化,所以一次状态转移将被该模块抽象为两到三条规则。
(3-3)基于步骤(3-2)中得到的规则,将安全属性扩展模块中得到的所有安全属性进一步形式化表达为引理。其中引理为一阶逻辑表达式,分为保密属性、验证属性和可达性属性的形式化表达。其中保密属性的引理用于表示该属性中的保密字段并未被攻击者获知,验证属性的引理用于表示协议交互的认证目标,可达性属性的引理用于表示规则的可达性。可达性引理需要先对协议的目标规则添加行为标签,并构建可达性引理,判断全局搜索时是否存在一条路径使得该行为在某时刻发生。如对MQTT协议中CONNECT的交互过程进行可达性属性验证,则需添加判断语句,是否存在一条路径使得CONNECT交互过程中的行为标签在某个时刻如i时刻发生。
(3-4)对生成的多集重写规则进行验证。基于步骤(3-3)中得到的可达性属性的形式化表达,对步骤(3-2)中得到的规则进行验证,判断每一条规则是否可达。
若可达,则进一步对该多集重写规则进行保密属性和验证属性的引理的验证;
若不可达,则自动化进行规则调整:根据引理的结果可以定位不可达的规则,检查该规则中前提和结论中的参数和逻辑是否和状态机中的一致,如不一致则自动更正。
(4)攻击者能力建模模块的作用是将邻居场景和租客场景两种攻击场景应用到物联网协议安全分析中。
邻居场景指的是攻击者和受害者处于同一局域网中。这在现实生活中十分常见。Airbnb等民宿十分流行,攻击者和受害者可以同时入住一个房子,并共同使用这个房子的局域网。在邻居场景中本发明应用Dolev-Yao攻击模型,并对攻击者做出以下假设:
攻击者和受害者处于同一局域网内;
攻击者可以冒充合法用户并发送消息;
攻击者可以接受消息;
攻击者可以嗅探和操纵受害者的流量。
租客场景指的是攻击者无法截获受害者的流量,但受害者使用攻击者曾经使用过的设备。这在现实生活中十分常见,受害者可以在攻击者之后租用同一间房子并使用相同的物联网设备,也可以购买攻击者使用过的物联网设备。在租客场景中,本发明建立攻击模型,对攻击者的能力做出如下假设:
攻击者和受害者没有处于同一局域网内
攻击者无法截获受害者的流量;
受害者可以使用攻击者曾使用过的设备;
攻击者可以利用之前得到的设备信息进行攻击;
攻击者可以在设备中留下后门。
针对邻居场景,进一步将攻击模型进行形式化表达,在多集重写规则中通信信道的描述采用Dolev-Yao模型;
针对租客场景的应用,进一步将该攻击模型进行形式化表达,在多集重写规则中通信信道的描述采用安全信道,添加攻击者知道设备信息的规则。
(5)基于动态优先策略的形式化验证模块的作用是,采用形式化验证工具Tamarin进行验证,通过归纳总结法对引理进行追溯,并判断引理是否在规则上成立。在验证过程中,应用动态优先策略根据目标的相关性、在协议状态机中的位置进行先后验证,实现协议的自动化验证并解决形式化验证中无限循环的局限性。
其中动态优先策略的流程如图3所示。
当Tamarin在进行验证安全属性的引理时,将进一步追溯和验证一系列不同的目标。每一次进行验证都采用动态优先策略,包括:
如当前没有需要验证的目标,则认为该条引理验证结束。如当前仍存在未解决的引理,将继续完成验证。
在验证时搜索是否存在状态相关的目标,如存在,则进一步在状态机中确定该目标所涉及的状态转换顺序。动态优先策略将按目标所涉及的规则按状态机中的状态转换顺序从晚到早进行验证。如不存在就继续搜索是否存在密钥相关的目标。密钥相关的目标将以Tamarin引擎默认的顺序进行验证。最后对剩下未解决的目标也以Tamarin引擎默认的顺序进行验证。
Tamarin引擎陷入循环的原因往往是无法追溯某个参数的来源,并不断搜索先前的规则。而该规则又产生了新的参数,需要进行追溯,这样就导致了重复地搜索一条规则和追溯参数地来源,无法停止。动态优先策略将优先处理复杂的验证目标,例如状态机中路径较长的状态,复杂的加密规则等,将复杂验证目标分解为较简单的目标,使得Tamarin能够搜索更准确的规则,而不是重复搜索复杂的规则。在实验过程中,该动态优先策略可以有效解决Tamarin存在的无法停止验证的问题。例如,本发明应用该策略来证明亚马逊平台的MQTT协议部署中CONNECT阶段的单射一致性验证目标。使用Tamarin的自动验证模式时该验证过程将永远不会终止,但应用本发明的动态优先策略可以证明此引理是错误的,其产生的证明仅花费13个步骤。
在本发明的一项具体实施中,只需要输入协议状态机和基本的安全属性即可实现自动化分析,其中协议状态机可以通过模型学习等方式进行自动化提取,基本安全属性可以通过研究人员总结协议规范进行提取,每个协议仅需提取一次。可以通过一个物联网协议数据加载模块实现,用于获取各个平台物联网协议的协议状态机、以及物联网协议规范中的基本安全属性。本发明的系统能够将多个平台不同协议的状态机进行自动化的形式化表达,并扩展协议安全属性,应用攻击者模型,实现形式化验证,从而得到系统性的安全分析结果。该系统支持对谷歌、亚马逊、阿里巴巴等商业或开源平台上消息协议MQTT、CoAP和AMQP安全性进行自动地形式化分析。
在本发明的一项具体实施中,所述的安全属性扩展模块包括:
保密属性扩展模块,其用于对协议状态机中自定义的协议字段构建保密属性;
验证属性扩展模块,其用于对协议状态机中自定义的协议交互构建验证属性。
在本发明的一项具体实施中,所述的形式化表达模块包括:
规则构建模块,其用于将协议状态机转换为Tamarin代码,通过形式化表达为规则;
引理构建模块,其用于将安全属性转换为Tamarin代码,通过形式化表达为引理,包括安全属性的引理和可达性属性的引理;
规则验证及修改模块,其用于使用可达性属性的引理对规则构建模块输出的规则进行可达性分析,对无法正确生成并可达的规则进行修改,获得最终的规则。
在本申请所提供的具体实施方式中,应该理解到,以上所描述的系统实施例仅仅是示意性的,例如所述形式化表达模块,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的模块之间的连接可以是通过一些接口进行通信连接,可以是电性或其它的形式。
为了进一步证明本发明的实施效果,本实施例对上述的基于形式化验证的物联网协议安全自动化分析系统进行了仿真实验。本发明对七个物联网平台的协议状态机进行了自动的形式化表达,生成了七个形式化分析代码文件,并在Tamarin引擎上进行验证。为了实现自动化验证,本发明部署了辅助代码,在验证过程中实现本发明的动态优先策略,并保存验证结果。
仿真及实验数据如下表1所示。其中仿真实验涵盖了七个不同的物联网平台以及三种不同的物联网协议,证明该发明可以适用于不同的物联网平台以及不同的物联网协议。仿真实验显示七个平台分别生成了5到6种保密属性、4到13种验证属性,并在邻居场景和租客场景下分别进行自动化的形式化验证。仿真实验显示七个平台在两种场景下至少违反了5种保密属性和2种验证属性。通过尽力而为的攻击实验以及与智能涂鸦公司工程师的安全确认,能够验证所有违反的属性在实际部署中确实违反,并可以被攻击者利用进行攻击。该过程均为自动化实验,端到端的平均花费时间约为20分钟。
因此根据仿真实验,本发明能够基于形式化验证实现对物联网协议安全的自动化分析。
表1本实施的基于形式化验证实现对物联网协议安全的自动化分析结果
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。