33、嵌入式设备安全的基于配置的方法

嵌入式设备安全的基于配置的方法

1. 引言

从安全角度来看,嵌入式设备通常归属于某个实体,常作为其他实体系统的一部分,且在潜在的敌对环境中运行。开发安全增强型嵌入式设备是一项复杂的任务,这是因为设备面临各种类型的威胁和攻击,而且嵌入式设备的安全通常在开发过程的最后阶段才作为附加功能提供,甚至被忽视。

随着“物联网”设备数量的迅速增加,这些设备通过互联网进行通信并由无线协议远程控制,它们在不受控制且潜在危险的环境中通信,面临特定和通用攻击。因此,构建有效的防御机制以对抗潜在入侵者的攻击至关重要。

嵌入式设备安全领域的关键问题包括用户识别、设备内安全数据存储、安装软件的抗修改性、安全的网络访问和连接等。现代嵌入式系统安全机制主要针对特定威胁进行防御,不同学者提出了不同的威胁和入侵者分类以及威胁预防方法。

为了在嵌入式设备设计过程中预防已发现的威胁,需要提供功能保护属性,并通过安全构建块形式的特定保护机制来实现。然而,仅基于功能保护属性组合特定的构建块是无效的,因为设备资源有限,导致所获得的解决方案在实践中难以部署。

2. 配置模型的核心概念

嵌入式系统设计面临着诸如处理差距、电池差距、防篡改、成本等挑战。通常每个挑战会通过特定方法单独解决,但由于设备资源的显著限制,设计解决方案应综合考虑,以最小化安全功能的总开销。

为了实现“高安全性和高性能”之间的平衡,有学者提出使用基于可重构数据路径的可重构安全原语,根据系统和环境状态动态调整架构。本文则提出了一种设计时方法,通过根据设备的非功能资源需求和优化标准选择安全构建块,来获得高效的解决方案。

所提出的嵌入式设备配置模型基于组件化建模和设计方法,保护由单个软件和软硬件模块(安全构建块)组成,每个模块负责实现一个或多个安全要求。这种方法的优点是设计过程更灵活,能够应对设计过程不同阶段引入的需求变化,还可以分析特定安全构建块之间的冲突和不一致性。

以谷歌安卓移动操作系统为例,它基于可重用组件进行应用开发,每个组件负责执行特定功能。

建模基于设备和安全构建块的属性进行。安全要求通过功能保护属性来表述,而安全构建块所需的设备资源则基于非功能属性来设置。

配置过程包括分析属性和可用的安全构建块,并选择能够以有效、最优方式实现声明要求的构建块。有效性根据特定的优化标准进行评估。

配置过程本质上是目标设备与由一组安全构建块组成的配置之间的交互。如果分配了所需资源,这些构建块将为设备提供功能保护属性。

在概念层面,配置模型的核心元素通过一个基于堆栈的结构展示,从下到上依次为获取配置过程的输入数据、从设备和安全构建块的规范中提取相关输入数据,以及基于下层元素执行配置过程的核心功能。

开发者根据设备的规范和环境特点形成威胁模型,描述潜在入侵者的目标。基于威胁模型构建攻击模型,描述针对每个威胁的可能攻击。为了对抗这些攻击,通过安全要求来制定保护措施,每个要求确定执行一个或多个功能保护属性的必要性。

根据MARTE标准,嵌入式设备的资源类型包括计算、存储、通信、能源等,每种资源由一个或多个数值非功能属性来表征。非功能要求基于最坏情况资源消耗值(WCRC值)形成,这些值可以通过软件建模实验获得。设备的非功能属性约束值根据设备规范、制造商指定的特性以及对设备资源空闲容量的测量来确定。

在设备设计阶段,还需要分析安全构建块之间的不兼容性,以发现系统在特定条件下可能出现的潜在矛盾。

3. 配置模型开发
3.1 通过优化问题求解进行配置

配置过程的核心是解决优化问题。该过程的特点是选择安全构建块时,不仅考虑所需的保护功能,还考虑要部署在设备上的构建块的非功能、与资源相关的属性。

优化问题可以在所有可能的配置中找到最有效的配置。效率通过特定设备资源的最经济消耗或最小化依赖于多个资源的综合指标来衡量。

优化问题包括一个目标函数和一组约束条件。目标函数是一个包含一个或多个非功能属性变量的数学表达式,在可接受的配置集合中进行最小化。

配置的优化标准包括:
- 分配给保护功能的资源最小消耗(例如,配置中构建块使用的最小内存消耗)。
- 基于“属性链”的最优性,即按资源重要性顺序对一系列资源依次应用上述标准。
- 其他综合标准,不仅考虑配置消耗的资源,还考虑设备的约束条件。例如,以下公式定义了一个标准,允许设备开发者检测使所有资源的最小空闲量(以百分比计算)最大化的配置:
[
\max\left{\min\left{\text{percent}(p)\right}, p \in \text{NonFuncProperties}\right}
]
其中,(p) 表示一个数值表征设备某个资源的非功能保护属性;(\text{percent}(p)) 函数根据其约束 (\text{constr}(p)) 返回该属性的归一化值。

目标函数的约束条件可分为三类:
- 功能保护属性约束,二元约束确定特定安全构建块是否涵盖某个保护功能。
- 非功能属性数值约束,以不等式形式表示,使用WCRC值描述构建块对特定资源的需求(例如,配置消耗的内存不应超过特定值)。
- 构建块与设备平台的兼容性约束,即所谓的平台兼容性属性,确定平台是否支持特定类型的操作系统及其版本、嵌入式CPU类型、网络有线和无线接口等。

一般来说,所解决的优化问题是一个具有明确约束集的多目标极值任务,其正式解决方案使用集合论表示:
[
\min/\max \text{Opt_criterion}(\text{configuration}(\text{non_functional_properties})) \to
]
[
\text{subject to } \text{Constr}(\text{configuration}(\text{functional_properties})),
]
[
\text{Constr}(\text{configuration}(\text{non_functional_properties})),
]
[
\text{Constr}(\text{configuration}(\text{platform_compat_properties}))
]

3.2 非功能属性的建模

功能保护属性和平台兼容性属性是二元属性,其值通过从两个预定值中选择来定义,而非功能属性需要更详细的考虑。

本文基于MARTE提出的定义和方法基础,确定了可测量的定量非功能属性。

定量属性由一组样本实现来表征,这些实现在运行时针对某个属性进行确定(测量),实验测量可以在真实系统或软件建模(模拟)基础上进行。对于循环确定性系统,这些值可以单独获取并“外推”到后续时间周期。

非功能属性还由所谓的测量函数表征,该函数允许将某个数值与一组获得的值进行关联。测量函数可以是数学函数,如最大值、最小值、平均值等。

以获取某个安全构建块的“设备消耗内存量”非功能属性值为例,具体步骤如下:
1. 选择软件中的测量时间点。
2. 启动构建块的操作并进行测量。
3. 应用最大化函数以获得所需值。

为了获取非功能属性的值,安全构建块应在调试模式下运行,使用性能分析器或在应用中内置测量程序。在后一种情况下,需要考虑这些程序的副作用并可能对获得的值进行修正。

根据MARTE,硬件资源及其对应的非功能属性包括:
1. 计算资源(HW_Computing包),主要特征是opFrequencies属性,定义了CPU可运行的频率区间,还通过MIPS、FLOPS值来估计特定时间内可执行的操作数。
2. 内存资源(HW_ProcessingMemory),其特征包括内存容量和响应时间。
3. 存储资源(HW_StorageManager),以存储容量为特征。
4. 通信资源(HW_Communication),以信道带宽为特征。
5. 能源资源(HP_Power),用于安全构建块的活动和散热。其特征包括设备活动所需电源的容量(HW_PowerSupply)和电池驱动资源的容量(HW_Battery),后者决定了设备的自主工作时间。

除了资源属性,由设备功能的外部要求规定的“外部”属性(如构建块成本、物理特性等)也可视为非功能属性,并作为配置的基础。

3.3 配置模型的应用

配置场景针对嵌入式设备开发者,旨在在设备资源体积的某些不变约束下搜索最优配置。

配置场景的信息如下表所示:
| 场景 | 角色 | 活动 | 条件 |
| — | — | — | — |
| 选择最优配置 | 嵌入式设备开发者 | 设计和推导所需的安全构建块 | - 大量基本功能保护属性需要覆盖
- 选择构建块实现的大量替代方案
- 给定设备的非功能(资源)限制,不可违反
- 在工程过程中功能保护属性可能发生变化(包括添加新属性) |

3.4 构建块之间的不兼容性分析

安全构建块除了对设备的其他部分有要求外,还可能对其他构建块提出要求。虽然每个构建块单独可以提供必要的功能,但特定构建块之间的要求可能无法满足。

构建块之间的成对不兼容性可以通过一个方阵来确定,如下表所示:
| 块兼容性 | 块1 | 块2 | 块3 |
| — | — | — | — |
| 块1 | + | + | + |
| 块2 | + | + | - |
| 块3 | + | - | + |

设计工程过程通常包括以下操作:
1. 根据设备的预期业务逻辑进行规范制定。
2. 在将安全构建块集成到设备的阶段,检查每个构建块与设备的兼容性。首先,验证设备能够为所选构建块提供所有必要资源;其次,检查每个构建块与设备的软件/硬件平台(操作系统及其版本、套接字等)是否兼容。

不兼容性类型包括:
1. 构建块与设备业务功能之间的不兼容性。例如,设备的业务要求存储的数据量可达1TB,但设备中可用的备份块只能存储较少的数据量,这就是安全构建块与由其他“系统”块代表的设备业务功能之间的冲突。
2. 多个安全构建块功能保护属性之间的不一致性。例如,有两个安全构建块,一个是备份块,另一个是在特定事件发生后实现客户数据安全保证删除的块。后者只有在与前者进行特殊交互时才能正常工作,这种不一致性可以通过特定的集成场景和检查它们在设备中的组合使用正确性来消除。

此外,还需要能够检测“潜在冲突”,即仅在特定条件下才会显现的构建块之间的不一致性。

嵌入式设备安全的基于配置的方法

4. 案例研究

在这部分,我们将进行一个案例研究,探讨案例研究模拟的特点以及评估设备资源消耗的实验,同时展示配置软件原型的可能性。

4.1 案例研究模拟特点

案例研究模拟主要围绕嵌入式设备在实际应用场景中的运行情况展开。模拟环境需要尽可能真实地反映设备所处的潜在敌对环境,包括网络攻击、资源限制等因素。

在模拟过程中,我们需要考虑以下几个方面:
- 攻击场景模拟 :根据之前提到的威胁模型和攻击模型,模拟各种可能的攻击,如数据篡改、非法访问等。
- 资源限制模拟 :按照设备的实际资源限制,如计算资源、存储资源、通信资源等,对模拟环境进行设置。
- 配置动态调整 :模拟在不同的攻击场景和资源状态下,配置模型如何动态调整安全构建块的组合。

4.2 设备资源消耗评估实验

为了评估设备资源消耗,我们进行了一系列实验。实验的主要步骤如下:
1. 选择实验设备 :选择具有代表性的嵌入式设备,确保其资源特性和应用场景与实际情况相符。
2. 设置实验环境 :在实验设备上安装配置软件原型,并设置不同的配置组合。
3. 运行实验任务 :在模拟的攻击场景下,运行各种实验任务,记录设备资源的消耗情况。
4. 数据分析 :对实验数据进行分析,比较不同配置组合下的资源消耗差异,评估配置模型的有效性。

实验结果表明,通过合理选择安全构建块的组合,能够在满足功能保护属性的前提下,有效降低设备资源的消耗。

4.3 配置软件原型的展示

配置软件原型是实现配置模型的具体工具。它能够根据设备的规范、威胁模型和优化标准,自动选择最优的安全构建块组合。

配置软件原型的主要功能包括:
- 输入数据处理 :处理设备的规范、威胁模型、安全构建块的属性等输入数据。
- 优化问题求解 :根据优化标准和约束条件,求解最优的配置组合。
- 兼容性检查 :检查安全构建块与设备平台的兼容性,避免出现不兼容问题。
- 结果展示 :展示最优配置组合的详细信息,包括安全构建块的名称、功能、资源消耗等。

通过配置软件原型的展示,我们可以直观地看到配置模型在实际应用中的效果,为嵌入式设备开发者提供了一个有效的工具。

5. 总结

本文提出了一种基于配置的嵌入式设备安全方法,旨在解决嵌入式设备在开发过程中面临的安全和资源效率问题。

  • 配置模型的优势 :基于组件化的配置模型具有灵活性和可扩展性,能够根据设备的需求和环境动态调整安全构建块的组合。
  • 优化问题的解决 :通过解决优化问题,能够在满足功能保护属性的前提下,最小化设备资源的消耗,实现“高安全性和高性能”的平衡。
  • 非功能属性的建模 :对非功能属性进行详细建模,为配置过程提供了准确的资源消耗信息,提高了配置的准确性和有效性。
  • 不兼容性分析 :通过分析安全构建块之间的不兼容性,能够提前发现潜在的冲突,避免在实际应用中出现问题。

未来,我们可以进一步扩展配置模型的应用范围,考虑更多的因素,如设备的动态变化、多设备协同等,以提高嵌入式设备的安全性和资源效率。同时,我们还可以对配置软件原型进行优化,提高其性能和用户体验。

以下是一个简单的 mermaid 流程图,展示了配置模型的主要流程:

graph LR
    A[设备规范和环境分析] --> B[形成威胁模型和攻击模型]
    B --> C[制定安全要求和功能保护属性]
    C --> D[选择安全构建块]
    D --> E[优化问题求解]
    E --> F[检查兼容性]
    F --> G[确定最优配置]
    G --> H[部署配置到设备]

通过以上的研究和实践,我们相信基于配置的嵌入式设备安全方法将为嵌入式设备的安全开发提供一种有效的解决方案。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值