0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

深度解读嵌入式系统功能和用途

贸泽电子 来源:djl 作者:贸泽电子 2019-08-19 12:20 次阅读

当今的嵌入式系统常常处理应用代码(IP)和数据等敏感信息,因此安全是其设计的一个主要关注因素。为了确立一个合理的基础来判断建议的安全系统是否足以御敌或是防卫过当,就必须识别所察觉到的安全威胁。这意味着我们需要弄清对手有哪些,他们有什么样的能力,他们的目标是什么?我们要保护什么,我们要防范谁的威胁或什么威胁?世界上并没有一个包打天下的解决方案,也没有百分之百安全的安全系统。然而,安全系统不必是完美无缺的解决方案,也不需要全然牢不可破以至于失去应用价值。安全系统只要足够安全即可,也就是在它所保护的数据的预期有效时间内,它能够抵御可能的敌人进攻即可。

若没有应用环境,安全就没有意义

嵌入式系统设计师经常误解安全,认为诸如特定的加密算法和安全协议等安全措施只是系统的附加特性。安全是一个过程,而不是永远保持不变的一款产品或一种终极状态。而且,也不能在产品将永远保持安全的假设下,把安全措施简单地加入到一款产品中。当今设计师面临的最棘手难题之一就是明确嵌入式系统的安全要求和目标。有助于解决这一难题的方法很多,本文所讨论的方法涉及威胁建模和风险评估,目的是帮助设计师定义安全策略,然后设计对策来实施安全策略。

安全设计——在设计的初始阶段检测威胁

在设计安全解决方案的时候,首先必须做的就是定义一个威胁模型,然后再创建安全策略。一旦评估完成,就能安心地选择具体的技术来实现安全对策。威胁决定应对策略,策略决定设计。参见图1

深度解读嵌入式系统功能和用途

图1 设计安全方案需要(1)定义一个威胁模型,(2)创建一个安全策略。

许多设计师都会犯同一个错误,在设计安全系统时没有首先明确和了解可能遇到的真正威胁,以及这些威胁会给他们的终端产品带来的重大风险。相反,他们教条地把各类安全技术堆在一起,并希望能获得很高的安全性。这样做代价高昂,没有系统能防御所有的安全威胁,在设计中囊括那些没有必要的技术和防御没有实际威胁的风险毫无意义。

威胁建模——价值意味着风险

对于资源受限的设备,嵌入式系统必须在存储容量、功耗、处理能力、上市时间及成本等参数和安全需求之间获取一种平衡。尽管存在资源不足的挑战,通过仔细考虑威胁模型并设计系统使其工作在能满足该模型的可用计算能力限制之内,仍有可能开发出使产品在开放环境中有效工作的系统。

对系统设计师来说,考虑“威胁建模”的原理非常有用。威胁建模是基于一种假设,即每个系统都有值得保护的固有价值。然而,因为这些系统是有价值的,他们对内部或外部威胁也是开放的,这些威胁能够且经常给终端产品带来损害。设计完成后的安全漏洞常常是无法修正的,且危及投入的资金和开发资源,因此需要在设计周期的初始阶段增强对安全评估的需求,并在整个设计周期进行监测和重复修正。

本质上,我们可以把威胁模型定义为:“识别一组可能的攻击,以便考虑配合一套彻底的风险评估策略。”有了威胁模型,我们就能评估攻击的概率、潜在危害和优先级。

威胁建模很难,但是很有必要。威胁建模需要考虑系统是怎样受到攻击的。若建模成功,它就能解决潜在的系统安全故障隐患,诸如怎样发生故障、以及故障时出现什么情况等问题。通常在市场和成本的压力下,这个评估以一种特别的方式来进行,即通过集思广益征集系统有可能受到的所有攻击(当然,潜在的黑客或许比您更超前一步)。对这个过程来说,一个更加系统化及可重复的方法是使用攻击树,这个概念首先是由Bruce Schneier[1,2]提出来的。攻击树提供一种将攻击系统的不同方式进行系统性分类的方法。大致来说,就是以一种树的结构描述系统所受的攻击,树结构模型中的节点代表攻击。树的根节点是攻击者的总目标,达到该目标的不同路径则是叶节点,如图2所示。

深度解读嵌入式系统功能和用途

图2. 代表任何必须保护知识产权(IP)的嵌入式系统的攻击树,此类系统包括手机、VoIP、视频监控系统等

当正确完成威胁建模时,真正的威胁就被确定下来了。然而,如果弄错了可能存在的威胁的话,其代价将是高昂的。设计师弄错威胁的一个案例是DVD的保护措施。尽管DVD碟片被加密,密钥也放在播放机里,只要播放机里包含抗篡改硬件,这种保护方式是没有问题的。但引入软件播放器时,密钥会曝露出来,通过逆向工程就能恢复密钥,也使任何人都能随便复制和散布任何DVD内容。

在这种情况下,它是有缺陷的威胁模型。虽然有安全措施,但是这无法真正解决问题。

风险评估

仅仅列出一堆威胁是不够的,由于不同威胁的风险不同,因此还需要知道每种威胁的风险。威胁建模的下一个步骤是风险评估,这是在任何安全系统设计中的一个至关重要的部分。风险评估的一些基础问题,即“保护什么”、“为什么要保护”和“防范的对象是谁”,应在设计周期的最初阶段厘清。尽早采取表1所示的措施,将有助于您选择有效、安全的防范技术和防御策略。

深度解读嵌入式系统功能和用途

表1. 风险评估

安全策略

识别出威胁,并权衡风险后,接下来就该建立安全策略了。安全策略是解决方案背后的战略,而技术仅仅是战术手段。安全策略描述“为什么”,而不是“如何做”。

例如,基于FPGA设计的安全策略目标之一也许是“保持配置位流的机密性”,这是一个系统目标。“如何做”或对策的实施可能是采用诸如AES等对称密钥加密的方式,对配置位流进行加密以便实现这个目标。

整体的设计流程总结如下:

了解系统的真正威胁,并评估这些威胁的风险。

评估哪些威胁是最危险的,并且最可能发生。

将系统性防御这些威胁所需的安全策略进行描述并归档。这将是一系列的声明,例如:“只有可信任的代码才允许进入受限制的内存”,或“密码密钥必须保密”。

设计并实施能加强系统安全策略的防范措施。理论上,这些防范措施是保护、检测和回应的混合机制。

防范措施

在确定了潜在的攻击,且已定义好安全目标后,就可以考虑实施防范技术来减轻风险。一套有效的安全防范措施包括三个不同的部分:保护、检测、回应。这些对策必须基于系统已知威胁来合理地共同工作。如果保护机制被攻破,必须依靠检测和回应机制来抵御攻击。如果回应机制不存在或无效,那拥有检测机制也就没有意义。

在嵌入式系统中,保护、检测和回应技术可以采取许多形式(参见表2)。这些技术互相配合,可以阻止潜在的攻击,或者在受到攻击后提供有用的法庭审核信息。

深度解读嵌入式系统功能和用途

表2. 防范技术

结语

安全设计是一个动态的、与具体的系统相关的过程,且往往很复杂。对于本文中谈论的每种安全话题,都有大量研究和专门技术资料供设计师研究和学习。在开始进行设计时,最重要的事情就是尽早开始安全需求评估,定义系统安全目标,并经常性地根据系统用途及市场的变化来确定是否最初的威胁已经改变或扩展。

您什么时候才能知道系统是足够安全的?澳大利亚新南威尔士Country Energy负责安全的Robbie Sinclair曾经说过:“在您感觉不够安全之前,安全措施总是会过量的。”当您开始安全评估时,请给出您对“多大程度的安全才算安全”这个问题的答案。

Philip Giordano是ADI公司高级应用工程师,1998年加入ADI公司,目前负责嵌入式处理器的新产品开发,重点是安全特性。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式系统
    +关注

    关注

    40

    文章

    3428

    浏览量

    128217
  • 安全
    +关注

    关注

    1

    文章

    331

    浏览量

    35466
  • 检测
    +关注

    关注

    5

    文章

    4081

    浏览量

    90745
收藏 人收藏

    评论

    相关推荐

    嵌入式系统嵌入深度应有标准ED(Embedded Deep)

    嵌入式系统嵌入深度应有标准ED(Embedded Deep):嵌入式系统(ES)的
    发表于 08-12 14:43

    嵌入式系统是什么 什么叫嵌入式系统

    系统的概念也有被滥用的嫌疑。在一般的文献中嵌入式系统是这样定义的:嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁减,适用于应用
    发表于 04-20 14:13

    嵌入式系统是什么 什么叫嵌入式系统

    计算机技术为基础,并且软硬件可裁减,适用于应用系统功能、可靠性、成本、体积和功耗有严格要求的计算机系统。但是这种定义较为古板,大家公认的比较有前途的嵌入式
    发表于 06-29 15:55

    嵌入式系统组成和功能特点有哪些

      嵌入式系统首先是个计算机系统,是具有特定功能的计算机系统。和传统计算机系统有着本质的区别,
    发表于 06-30 13:48

    什么是嵌入式系统 嵌入式系统定义

    就是一个具有特定功能用途的计算机软硬件结合体。嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计
    发表于 09-23 15:57

    嵌入式系统难学吗

    还行.但是学的东西得好多!对C语言非dao常熟悉,然后懂Linux内核,然后得对嵌入式系统有了解.最后就是不断地实践了!  嵌入式RTOS理论难度一般都不高,主要都是工程难度。所以,多侧重代码的研读,操作
    发表于 06-22 09:20

    嵌入式系统嵌入式电脑有什么区别?

      嵌入式操作系统(EmbeddedOperatingSystem,简称:EOS)是指用于嵌入式系统的操作系统
    发表于 06-23 11:02

    嵌入式系统有何功能

    嵌入式系统课程大作业设计报告设计题目基于Arm-Linux的嵌入式计数器设计一、需求分析1.根据系统功能,进行
    发表于 10-27 10:11

    嵌入式系统学习笔记相关资料分享

    the operation of equipment, machinery or plants)嵌入式系统的三要素:嵌入、专用、计算机换句话来说:一个嵌入式
    发表于 10-28 08:01

    基于Linux的嵌入式操作系统

    嵌入式操作系统(Embedded Operating System, EOS)是一种用途广泛的系统软件,它主要负责
    发表于 11-08 09:05

    嵌入式系统测试教学实训平台的用途

    型号规格:嵌入式系统测试教学实训平台(ETest_TP)用途:培养能够系统地掌握嵌入式软件测试的相关理论、方法和技能,具备总线通信技术、网络
    发表于 12-21 06:26

    什么是嵌入式系统?深嵌入式系统又是什么

    和Android的系统也可以称为嵌入式系统。但是通常,这些通用操作系统需要应用程序处理器,并具有其他功能,例如动态应用程序加载。这就是为什么
    发表于 12-21 06:48

    嵌入式系统在行业中的应用

    随着物联网和工业物联网的出现,越来越多的行业,产品和服务依赖于嵌入式系统。那么,嵌入式系统主要应用于哪些行业中?下面一起来了解一下:嵌入式
    发表于 12-22 06:35

    嵌入式系统的特点、分类、发展和应用

    与视频4. 嵌入式系统与网络通信嵌入式系统基础1. 嵌入式系统的特点、分类、发展和应用特点专用性
    发表于 12-22 06:36

    什么是嵌入式操作系统嵌入式操作系统有何功能

    什么是嵌入式操作系统?常见的嵌入式操作系统有哪几种?嵌入式操作系统有何
    发表于 12-24 07:07