嵌入式系统安全的研究与设计
嵌入式系统安全加固技术研究与实现

嵌入式系统安全加固技术研究与实现嵌入式系统,指的是嵌入到其他设备中的计算机系统,包括智能家居、汽车、医疗设备、工业控制等。
这些设备多数都需要涉及大量受保护的机密数据,如个人信息、隐私数据、银行卡信息等,因此安全加固技术的研究和实现对于保护这些数据非常重要。
一、安全加固原则嵌入式设备需要有一些原则来保证其安全性。
首先是独立性原则,即设备需要能够封闭自身,保证不被外界攻击。
其次是可控性原则,即设备需要有一定的控制能力,可以避免不必要的访问;此外还需要有时效性原则,即需要及时更新安全补丁,保证设备的安全性。
二、嵌入式系统安全加固技术1.加密技术加密技术是保护嵌入式设备安全的主要手段之一。
在嵌入式系统中,通常使用对称性加密和非对称性加密两个形式来实现数据的保护。
对称性加密包括了常见的AES(Advanced Encryption Standard)、DES(Data Encryption Standard)等,常用于数据加密和解密。
非对称性加密包括RSA算法、ECC(Elliptic Curve Cryptography)算法等,在数据的加密和解密过程中使用不同的密钥。
2.身份认证身份认证技术可以有效地防止未经授权的访问。
在嵌入式设备中,多数采用的是基于密码的身份认证技术,如用户名加密码、数字证书、智能卡等。
此外,还有生物识别技术,如指纹识别、面部识别等。
3.访问控制访问控制技术可以控制谁、何时、在何处以及以何种方式来访问设备。
嵌入式设备中一般采用Mandatory Access Control(MAC)或Role-based Access Control (RBAC)等方案来实现访问控制。
MAC机制强制所有访问必须遵从安全策略;RBAC机制则是基于用户身份和访问需求来控制用户的权限。
4.代码审计代码审计是通过分析代码,发现潜在的漏洞和安全问题,并进行修复的过程。
常用的方法有静态分析和动态分析,其中静态分析可以在代码编译之前进行检查,而动态分析可以用于检测程序运行时所引发的问题。
嵌入式软件的安全设计分析

嵌入式软件的安全设计分析摘要:目前嵌入式软件涵盖了家庭自动化、医疗设备、交通出行等多个领域,随着嵌入式软件的普及,其安全性也成为了一个不容忽视的问题。
根据2021年的一份报告显示,去年全球嵌入式软件安全漏洞数量已经突破3000个,其中有20%以上被认为是高风险漏洞,这些漏洞可能导致使用者面临数据泄露、物理伤害、网络攻击等安全风险,给用户和企业带来严重损失。
为了确保嵌入式软件的可靠性,软件研发团队应在设计和应用阶段充分考虑如何提高其防护措施和安全等级,包括使用安全性较高的芯片、加密技术、访问控制等措施,并且还需要进行安全性评估和漏洞测试及时修复漏洞。
关键词:嵌入式软件;安全设计;分析随着物联网和人工智能技术的不断发展,嵌入式系统已经成为了现代科技中不可或缺的一部分。
嵌入式软件是指预装在各种嵌入式设备中的软件程序,能够控制设备的各种功能和操作,据统计目前全球每年生产的嵌入式设备数量已经超过了数十亿个,并且随着物联网应用的不断拓展,这个数字还将继续增长。
这些设备的操作系统、网络连接和应用程序都需要高效、安全、可靠的嵌入式软件来支持和驱动。
因此嵌入式软件的实用性和重要性不言而喻。
1.嵌入式软件的安全设计原则随着嵌入式系统和设备不断普及,嵌入式软件的安全性日益受到重视,一旦嵌入式软件遭到攻击或泄露,将会导致严重的安全事故和财产损失。
因此设计安全可靠的嵌入式软件已经成为制造商和用户共同关注的话题。
嵌入式软件的安全设计应该遵循以下基本原则:首先,采用多层次安全防御措施,例如在软件设计过程中,应采用多种加密算法、访问控制和审计机制等措施,确保数据的机密性和完整性[1];遵循最小特权原则,即将用户权限限制在最低限度,只授予用户所需的最小权限,以防止恶意攻击者利用权限攻击系统;第三应该尽可能减少代码复杂度,去除不必要的代码和漏洞,避免系统出现不可预测的行为;最后及时更新和修复漏洞,保持软件系统的安全性和可靠性。
嵌入式软件的实用性在于它们可以控制和支持各种智能设备的功能和操作,比如在自动驾驶汽车、智能工厂和智能家居等领域中,嵌入式软件的应用已经非常普遍,成为这类产品中不可或缺的一部分。
集成电路设计中的嵌入式系统研究

集成电路设计中的嵌入式系统研究随着计算机技术的不断进步,集成电路的应用越来越广泛。
而随着各种智能设备的普及和逐渐复杂化,嵌入式系统的需求也越来越迫切。
嵌入式系统是指在各类电子设备中运行的、针对特定应用领域、应用程序较为固定且可靠性要求较高的计算机系统。
嵌入式系统不仅应用于工业自动化、通信和网络等领域,而且广泛应用于消费电子产品,如智能手机、智能家居、智能手表等。
在这些嵌入式系统中,集成电路设计起着关键的作用。
因此,本篇文章将围绕集成电路设计中的嵌入式系统进行一些探讨。
一、嵌入式系统应用领域的特点1. 通用性差。
嵌入式系统一般针对特定领域开发,因此其应用领域的通用性相对较差。
比如智能手机就是一种典型的嵌入式系统,是针对消费者市场开发的。
而工控领域的嵌入式系统就是针对工业生产环境而开发的。
2. 硬件/软件耦合度高。
嵌入式系统的特点就是硬件和软件之间一般存在较高的耦合度。
为了提高系统的性能和可靠性,一般嵌入式系统的硬件和软件都是针对特定应用领域进行定制化的。
3. 实时性要求高。
嵌入式系统一般需要对一些实时数据进行处理和控制,因此实时性要求比较高。
比如,在工业自动化领域的嵌入式系统需要对传感器的实时数据进行采集和处理,并通过输出端口向执行机构发送实时控制信号。
实时性也对于消费电子领域的嵌入式系统同样重要,比如智能手机需要快速响应用户的操作。
二、嵌入式系统的设计流程嵌入式系统的设计流程主要包括以下几个步骤:1. 系统需求分析系统需求分析阶段是嵌入式系统设计的第一步。
在此阶段,需要明确系统所要完成的功能,并确定系统的性能指标、可靠性指标和实时性指标等参数。
2. 系统架构设计系统架构设计是将系统需求转化为系统设计的具体方案。
在此阶段,需要确定系统的硬件平台、CPU芯片、运行系统、存储系统、输入输出系统和扩展接口系统等硬件和软件构成,以及它们之间的联系和协作。
3. 硬件设计硬件设计阶段是对硬件系统进行具体设计的阶段,涉及到电路设计、PCB布局和布线、硬件组装等内容,要根据架构设计的要求完成硬件板的元器件选择和连接,电源及时序分析等工作,较专业,需要工程师进行。
嵌入式系统安全设计规范

嵌入式系统安全设计规范
背景
嵌入式系统已经广泛应用于各个领域,如智能家居、智能交通、医疗健康等。
但是,随着系统功能和复杂性的增加,嵌入式系统所
面临的安全风险也越来越大,如远程攻击、信息泄露等问题。
为保障嵌入式系统的安全可靠性,需要制定嵌入式系统安全设
计规范。
规范内容
1. 嵌入式系统安全设计应从系统设计开始考虑,包括硬件安全
和软件安全两方面。
2. 在硬件设计方面,需要采用可靠的芯片和电路板,保证系统
硬件的可靠性和稳定性。
同时,需要将芯片上的敏感信息进行加密
保护。
3. 在软件设计方面,需要采用可靠的操作系统和编程语言,避免使用容易受到攻击的软件和算法。
同时,需要对软件进行加密和签名,确保系统不被非法篡改。
4. 在网络安全方面,需要采用加密传输协议和防火墙等措施,以保障系统与外部的安全交互。
5. 在产品生命周期管理方面,需要制定相关的安全维护和升级计划,确保系统在长期的使用过程中安全可靠。
总结
嵌入式系统作为重要的信息技术产品,其安全性和可信性保障已经成为一个紧迫的问题。
本规范从硬件、软件和网络多个方面提出了安全设计要求,为嵌入式系统设计人员提供了一系列可行的安全设计方案。
只有加强嵌入式系统安全设计,才能真正保护用户的信息安全和利益。
嵌入式操作系统的可移植性和安全性研究

嵌入式操作系统的可移植性和安全性研究随着嵌入式设备越来越多,嵌入式操作系统所占据的市场份额也逐渐加大。
嵌入式操作系统是一种高度集成的操作系统,它们旨在为嵌入式设备提供完美的软件环境,以满足各种不同的应用需求。
然而,由于硬件平台,软件驱动程序,应用程序和网络协议等方面的不同,嵌入式操作系统的可移植性变得至关重要。
同时,对于嵌入式设备领域,安全问题也愈加引人关注。
因此,研究嵌入式操作系统的可移植性和安全性对于这个行业至关重要。
一、可移植性可移植性是指嵌入式操作系统在不同硬件平台之间以及不同开发环境之间的能力。
高度可移植的嵌入式操作系统必须在各种硬件平台上得到广泛的测试和验证,包括各种处理器架构和处理器类型,不同类型的存储器,输入/输出设备和网络接口控制器等等。
此外,它们必须能够在不同的开发平台上进行构建和运行,如编译器和调试工具。
为了解决嵌入式操作系统的可移植性问题,人们提出了很多的解决方案。
例如,间接层或虚拟机技术可以将嵌入式操作系统与硬件平台分离,以便更容易地移植到其他硬件平台上。
这种方法可以帮助维护同一代码库,从而使代码简洁,易于维护。
此外,模块化系统和结构化设计也可以帮助提高嵌入式操作系统的可移植性。
另外,也有一些开源的嵌入式操作系统,如FreeRTOS、uC/OS、Linux嵌入式和Contiki,这些操作系统都具有高度的可移植性。
这些操作系统具有强大的社区支持,可以提供广泛的硬件平台支持,同时还提供各种工具和示例代码,方便开发人员在不同的平台上方便地移植代码。
二、安全性安全是嵌入式设备设计中最为关键的问题之一。
因为这些设备往往被用作网络交互,存储及处理重要数据,一旦这些设备被攻击,后果很严重,比如数据泄露、信息黑客等。
同时,高度集成的嵌入式操作系统和硬件架构也使它们更容易受到攻击。
因此,嵌入式操作系统必须有强大的安全机制来防止各种攻击。
一般来说,嵌入式操作系统的安全机制包括几个方面,如数据加密、网络安全、系统审计和访问控制。
嵌入式系统应用技术的研究与开发

嵌入式系统应用技术的研究与开发嵌入式系统是一种电子计算机系统,它是特别设计用于执行特定功能的计算机系统。
这种系统常用于控制和监视系统,如智能手机、数字相机、车载音频系统等。
为了实现嵌入式系统的工作,需要使用一系列技术和工具来进行开发和应用。
本文将探讨嵌入式系统应用技术的研究与开发,包括嵌入式系统基本原理和常用技术,以及嵌入式系统应用开发的方法和工具。
一、嵌入式系统基本原理嵌入式系统本质上是一个计算机系统,它具有计算、存储、控制和通信等功能。
由于嵌入式系统的特殊应用环境,它的体积、功耗、成本和性能等方面都有较高的要求。
嵌入式系统通常由下列组成部分组成:1. 主处理器/控制器主处理器/控制器是嵌入式系统的核心,负责计算、控制和管理系统的硬件和软件资源。
主处理器/控制器的类型和性能直接决定了系统的功能和性能。
常见的主处理器/控制器有ARM Cortex系列、Intel x86系列、MIPS系列等。
2. 存储器存储器用于存储系统程序和数据。
由于嵌入式系统的体积和功耗都有限制,因此存储器通常采用闪存、EEPROM、SRAM等低功耗、小体积的型号。
3. 输入/输出设备输入/输出设备用于与外界进行数据交换,如键盘、鼠标、显示屏、声卡、网卡等。
嵌入式系统通常使用专用的输入/输出设备,以满足应用需求和耗能要求。
4. 网络设备网络设备负责系统与外部网络通信,如以太网卡、无线网卡、蓝牙模块等。
网络设备的选择和配置决定了系统的通信速度和稳定性。
二、嵌入式系统常用技术1. 硬件设计嵌入式系统的硬件设计主要涉及主处理器/控制器的选择、连通性设计、电源管理等方面。
硬件设计的质量和性能直接决定了嵌入式系统的稳定性和能耗水平。
2. 软件开发嵌入式系统的软件开发主要涉及核心程序设计、驱动程序编写、通信协议实现等方面。
软件开发的质量和可靠性直接决定了嵌入式系统功能的实现和应用效果的稳定性。
3. 中间件中间件是嵌入式系统开发中常用的技术。
嵌入式实时系统的安全策略研究

嵌入式实时系统的安全策略研究摘要:嵌入式系统以其结构简单、功能专一、可靠性高、人机交互性好等优点受到越来越广泛的应用。
从嵌入式系统的结构出发,综合考虑嵌入式系统在设计和使用过程中的特点及其安全性和实时性等因素,设计了嵌入式实时系统的安全策略,为嵌入式系统的安全稳定运行提供了保障。
关键词:嵌入式系统;安全服务;安全策略;安全算法0引言由于高效独到的数据处理能力和友好快捷的人机交互,嵌入式系统逐渐引起社会的广泛关注,并带动我国电子信息产业的迅速发展。
工业和信息化部预测表明:在2013年我国对嵌入式设备的市场需求将达到150亿美元。
同时,随着应用要求的不断提高,业内对嵌入式系统性能的要求也在不断提高。
嵌入式系统的性能是一个综合指数,包括运算速度、实时性、安全性、可靠性、能耗等几个方面。
由于独立的嵌入式系统是针对单独的应用要求和产品而设计制造的,所以应用要求直接决定了系统性能优化的目标。
随着应用领域的拓展,嵌入式的应用也体现出了网络化、复杂化和移动化等特点,系统的设计人员也不得不将应用的执行效率、能量消耗特别是系统的安全性纳入主要的考虑范围。
1嵌入式系统从技术的角度来看,嵌入式系统是在计算机技术的基础上通过安装不同的应用模块来实现不同的功能,并具有功能专业性强、可靠性高、体积小等特点的专用计算机系统。
从系统的角度来看,嵌入式系统是设计完成的具有特定功能的、将不同硬件和软件紧密耦合在一起的计算机系统。
1.1嵌入式系统的组成嵌入式系统主要由硬件和软件两部分构成。
嵌入式系统的硬件包括嵌入式处理器、存储器以及通用设备接口和I/O接口等外围设备。
嵌入式处理器作为嵌入式系统的核心部分,是由微控制器、数字信号处理器、微处理器单元等构成的。
嵌入式系统的软件指嵌入式操作系统,是专门针对嵌入式应用的系统软件,其主要功能是分配系统的软、硬件资源,协调调度系统的并发任务,并能够通过装、卸载应用模块来达到系统要求的特定功能并完成特定的任务。
嵌入式操作系统的内核安全研究与设计

关键 词: 全嵌入 式;操 作 系统 ; 内核 安全; 访 问控 制; 策略缓存 安
中图法分类号 :]36 1 1 P
文 献标 识码 : A
o sc r e e n ea c s o to f e e al, d sg l f e ui e e r p sd T ipa o sd rdif e c f e f e ui k m l dt c e s nr l k r l l y t a h c o n c s e inpa o sc rt k r ls o o e . hs lnc n iee l n eo t n y n ip nu h a p iains f c e s o to es bl s la et l, te no lcrc l o r y tm’ e n dte oiy ma igc s in p l t ae c s nrlot a it a l s mey h inee t a we se S ma l - kn u ho c o a c t h t i y we t i h u i p s d h p c me h im t d cd T esc r e e e i iie iitemo i r gd vc , tes ae yb fe, abtaetesre, c a s i i r u e . h e ui k r l sg i dvd dt vst nt i e ie h t tg u r r i t ev r n sn o y t n d n s o h on r r h a la es f u is se , tek re f c esc n o o s u td T eioaino te e e e u i e l e . T es se s wel s ae dt y tm h e l aea c s o t ls n t ce . h lt f r l c rt i rai d h tm t h a n s r ic r s o h kn s y s z y
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统安全的研究与设计郭春霞1,裘雪红 2(西安电子科技大学计算机学院,陕西西安 710071)摘 要 随着嵌入式系统的广泛应用,对系统安全的需求日益迫切。
本文讨论了嵌入式系统安全设计面临的挑战以及受到的攻击方式,探讨了如何弥合安全处理的资源缺陷和抵抗攻击的方法。
从系统的角度阐述高安全性嵌入式系统的开发过程。
安全的嵌入式系统并不简单的等于嵌入式系统功能加上安全模块,系统的安全强度依赖于这个系统中安全性最弱的子模块的安全级别,嵌入式系统的安全设计应该从整个系统的角度来考虑。
关键词 嵌入式系统;安全处理;加密;体系结构中图分类号 TP3091 嵌入式系统安全需求嵌入式系统产品中安全问题所引起的巨大损失(例如,据估计,“I Love You”病毒引起全世界范围内十亿美元的财政损失[1]),使设计者增加了对嵌入式系统安全需求的关注。
在开始设计嵌入式系统时,就明确安全需求(如防止何种攻击等)是十分重要的。
在一个典型的嵌入式系统中,由于可能包括许多不同的实体(如厂商,终端用户等),所以对嵌入式系统的安全需求也不同。
例如,蜂窝电话,制造商关注的是电话中所有固件的保密性,而用户则关注私人信息的安全存储和交流。
一般来说,用户对嵌入式系统基本的安全需求包括:机密性,完整性,可用性等。
机密性防止未授权用户获得存储在系统中的敏感信息;数据的完整性保证在未经允许的情况下,系统中的数据不能被任意地删除和修改,完整性保证病毒、恶意用户等不能随意的修改系统中的程序;可用性保证在需要的时候,嵌入式系统可用,没有不必要的延时。
针对嵌入式系统的安全需求,密钥算法为其实现提供了理论基础,许多已有的安全机制和技术是依赖密码算法(公钥,私钥和Hash函数)设计实现的。
然而,由于各种各样的限制,嵌入式系统的安全实现与桌面计算机系统有很大的不同,更具挑战性。
2 嵌入式系统安全设计面临的挑战由于许多嵌入式系统受限于它所操作的环境和所拥有的资源,使其面临下面的一些挑战,桌面系统的安全实现方式不能直接照搬到嵌入式系统中。
2.1安全处理能力的差距与桌面计算机的处理能力相比,嵌入式系统可用的计算能力是有限的,例如,采用2.6GHzPentium 4 处理器的桌面计算机和采用Intel StrongARM 1100 处理器的PDA(个人数位助理)相比,前者处理2890MI/S条指令(注:MI/S是每秒百万条指令数)而后者以最快的频率206MHz仅仅处理235MI/S条指令。
对于现在已有的一些利用密钥算法(公钥、私钥、Hash函数)实现的安全机制,它们要求的处理能力比较高,例如,以3DES(三重数据加密标准)加密/解密的安全协议,它的安全处理要求为651.3MI/S。
于是,在嵌入式系统中,就产生了安全处理的要求与可用的处理器处理能力之间的不匹配的现象,而且随着数据率的提高和更复杂密钥算法的使用,这种不匹配将更加明显。
2.2 能量的差距由于密钥算法固有的复杂性,利用它实现的安全机制不仅需要很高的计算要求,而且伴随而来的能量消耗也是很高的。
对于许多以电池提供能量的嵌入式系统来说,这直接影响着电池的寿命。
例如,使用Motorola 龙MC68328处理器的传感器节点,以10Kb/s的数据率传送和接收数据,能量消耗分别为21.5mJ/kB和14.3mJ/kB。
然而,当传感器节点操作在安全的模式下,以RSA(公开密钥算法)加密技术作为安全协议的一部分,它需要额外消耗电子科技 2005年第8期(总第191期)49嵌入式系统安全的研究与设计IT Age/ Aug. 15, 200550 42mJ/kB 的能量。
目前每年仅5%-8%速度增长的电池容量很难跟上不断增长的安全处理的能量要求。
2.3 成本影响嵌入式系统安全体系的基本因素之一是成本。
为了节约成本,许多制造商限制了嵌入式系统的资源。
例如许多8位的微控制器,不能存储很长的密码,而这种方法在桌面和企业计算机中是比较适用的。
但是,在嵌入式应用中,因太昂贵是不可行的。
2.4 在不可靠的环境下使用许多嵌入式系统要求即使在不可靠的用户手中,也要保证安全操作。
由于许多嵌入式设备是便携式的,容易引起遗失和丢失,恶意攻击者可能窃取系统本身存储的信息或利用系统的网络功能侵入网络获取信息,安全的嵌入式系统确保恶意实体不能随意的修改安全设备内部。
2.5 复杂的设计过程嵌入式系统的集成性不断提高,实现系统的部件可能来源于不同公司或组织,即使系统的每一个部件本身是安全的,部件间的集成也可能暴露新的问题[2],因此实现系统的安全应该包括不同的实体,嵌入式系统的部件开发者和系统的集成者等。
由于嵌入式系统可能存在的很多弱点,对嵌入式系统的攻击表明,入侵者很少利用设计良好的密钥算法进行攻击,而是利用实现嵌入式系统的硬件和软件的弱点进行攻击。
作个比方,密钥算法就像房子前门上的一把大锁,但窗户却没有安全措施,入侵者只需要破窗而入就能使这把大锁变得毫无意义。
嵌入式系统应用于特定的领域,设计一个超越安全需求的系统将会耗费大量的资源,导致不必要的成本增加。
因此,对开发系统可能受到的攻击方式,必须进行深入研究。
3 对嵌入式系统的攻击方式3.1 逻辑攻击逻辑攻击对嵌入式系统来说是一个主要的威胁,它利用软件、加密算法或安全协议的弱点和漏洞进行攻击[3]。
例如,在操作系统和应用软件中,缓冲区溢出攻击等。
而且由于下面的几个因素,使逻辑攻击更难处理。
(1) 复杂性 软件是复杂的,随着嵌入式系统功能的不断增强,需要增加更多的代码,从而使系统软件变得更复杂。
代码越多,软件的弱点和漏洞暴露的就越多。
另一方面,由于开发嵌入式系统广泛的使用不安全的编程语言(例如 C 或者C ++)它不能防止简单的攻击更加剧软件的复杂性。
(2)扩展性 良好的嵌入式系统是可扩展的,然而,利用软件的弱点,在系统中,可能产生意想不到的扩展。
(3)连通性 现在,越来越多的嵌入式系统连接到Internet ,使更多的软件系统受到威胁。
对付逻辑攻击的方法可以从下面的方面考虑:(1)在系统执行的每个阶段确保敏感指令和数据的机密性和完整性。
(2)确信从一个安全点执行给定程序,在系统启动或代码执行前进行检查,对不可靠的代码提供受限制的执行环境。
(3)去除软件中的安全漏洞。
3.2 入侵攻击通过去除芯片或电路的封装,观察、操纵和干预系统内部的芯片及其芯片和电路之间的通讯来获得信息。
由于需要昂贵的设备,实现入侵攻击相对于其他攻击比较困难。
然而,利用它可以实现非入侵攻击。
对付入侵攻击的方法一般采用一些可行的物理封装和保护电路。
例如,在元器件的封装成分中加入铝粉,在入侵者去除芯片或电路的封装的同时,电路就会被破坏掉。
FIPS [4] 安全等级1-4提供了一些方法来对付这种攻击。
3.3 非入侵攻击它不需要打开设备,是一种廉价的并且可升级的攻击方式包括:(1)能量分析攻击 硬件电路的能量消耗是由于电路中的转换活动引起的。
状态转换越多能量消耗就会越多。
由于转换与数据是紧密相关的,所以通过统计输入数据的能量消耗情况,可推测出密钥。
(2)时间分析攻击 通过观察密码计算的执行时间推断密钥。
(3)错误注入攻击 利用系统外部参数和环境条件,例如,电压、温度、时钟等的不同,使构成系统的部件产生错误。
(4)电磁分析攻击 通过测量一个设备放射的电磁辐射来获得敏感信息。
对付非入侵攻击通常使用加入随机信息,使攻击者难以通过观测和分析系统的能量、电磁等特征获得信息。
嵌入式系统安全的研究与设计电子科技/2005年8月15日51对于上面的挑战和攻击,良好的体系结构、严密的电路设计是必须的。
4 嵌入式系统体系结构的设计4.1 密码算法密码算法在安全功能实现中,具有极其重要的地位。
很多安全机制如机密性、完整性等都以它为基础。
然而,由于密码算法的固有特性,它耗费大量的计算时间和系统资源,因此,嵌入式系统中密码算法应具有以下几个特性: 代码小;可接受的安全性;可接受的执行效率;另外,由于很多嵌入式系统需要连接到其他系统,所以算法的标准性和通用性有时也是需要考虑的。
4.2 安全处理体系结构由于密码算法消耗大量的资源, 使系统产生了安全处理的要求与可用的处理器处理能力之间的不匹配的现象,即安全处理的缺陷。
嵌入式系统设计中弥合安全处理的缺陷可以通过以下两种方式。
4.2.1 降低安全协议和密码算法的复杂性(减轻需求)一方面,优化已有的加密算法,例如文[5]中,对公钥的优化,以及选择优化的软件来实现加密算法,从而来减少安全协议的工作量。
另一方面,利用需要很少计算和存储资源的新密钥算法来实现安全功能。
例如,建立在CA(单元自动控制)基础上的密码算法[6],据对它的研究测试,在代码所占空间上,它只消耗不足3.8kB 的内存空间而AES(高级加密标准)却占64.633kB 的内存空间,并且在执行时间上CA 密码算法优于DES(数据加密标准),部分的优于AES 。
4.2.2 提高嵌入式处理器的安全处理能力(提高供给)虽然新的密钥算法能够减轻处理器的负担,但是新算法的可靠性和是否会带来较多的负面效应需要经过较长时间检验。
因此,提高处理能力也是解决安全处理缺陷的重要的途径。
同样功能的部件选择用软件和硬件实现的主要区别在于软件实现安全功能有较好的灵活性和较快的设计时间、容易升级系统、成本低等优点。
然而,软件容易受到恶意代码的攻击,并且面临着安全处理缺陷和电池缺陷的问题。
与此相反,硬件实现有很好的性能、较少的能量消耗,在一定程度上它弥补了安全处理的不足,然而它的灵活性受限并且有成本问题。
因此,在系统设计时需要根据系统的实际情况在性能、成本、计算时间等方面进行均衡。
由于安全处理的计算要求是嵌入式处理器的主要负担,为了实现有效的安全处理,已经开发了许多技术。
包括(1)密码算法硬件加速器(2)具有密码加速功能的处理器,通过在处理器中加入扩展指令,加快密码算法的处理(3)可编程安全协议引擎, 通过加载不同的安全算法和网络安全协议到DSP 加速各种不同密码算法(RSA, AES 等)和网络安全协议(如SSL,IPSec 等)。
安全处理的体系结构虽然实现了机密性、完整性等基本的安全功能,但不能防止逻辑攻击、入侵攻击、DoS(拒绝服务) 等攻击。
4.3 抵抗攻击的设计安全的嵌入式系统应当具有适当的抵抗攻击的特性。
图1所示为嵌入式系统抵抗攻击的设计技术。
图1 抵抗攻击的设计方法攻击预防使入侵者很难开始对嵌入式系统的攻击。
预防技术包括硬件设计(电路实现为数据相互独立的)和软件设计(在软件执行之前进行认证)的技术等。
攻击检测表明尽管有一些攻击预防的技术,但是还可能有攻击发生,这就要求在发生攻击以后尽可能快地检测出攻击。
攻击恢复保证一旦检测出攻击,做出适当的处理之后,系统重新恢复到安全操作状态。