增强SoC总线访问安全的防火墙架构方案【基于AXI总线】

控制/MCU

1878人已加入

描述

为了增强SoC的总线访问安全,阻止非法地址的访问行为,提出了基于AXI总线的分布式安全总线防火墙架构。针对不同的任务制定了多级可动态更新的安全策略,设计了具有较低延时的高速总线防火墙接口,增加了安全更新模块来保证策略配置与更新安全,结合系统的任务管理机制实现了面向多任务处理的任务隔离机制。实验结果表明,该防火墙的传输延时小、资源消耗少,可实现任务隔离。

0 引言

随着SoC(System-on-Chip)的发展与广泛应用,SoC面临的安全威胁与攻击手段[1-2]也更为复杂,嵌入式系统安全已成为不容忽视的重要问题。由于传统的嵌入式软件防护能力较弱,具有较大的延迟,易对系统造成性能损失,因此单纯依靠软件层面的安全机制已很难有效应对层出不穷的攻击手段。

目前,已有众多学者在不修改处理器结构的基础上,提出了基于总线的硬件安全增强机制。Fiorin提出一种基于NoC(Network-on-Chip)总线的安全探针和安全管理单元的保护机制,通过安全探针监控总线数据进出信息,安全管理单元收集探针信息来检测冲突与错误。Coburn J基于AHB总线提出了SECA的安全总线结构,在各个IP模块总线接口配置了安全增强接口(Security-Enhanced Interface,SEI),同时设计了安全增强模块(Security-Enhanced Module,SEM)作为中央管控模块协调各SEI模块工作。Cotret P、Crenne J等人在Coburn研究的基础上,引入基于总线的分布式防护结构,在各IP总线接口设置局部防火墙,实现地址的访问控制,并在片外存储器接口设计了局部密码防火墙,保护重要数据的机密性和完整性。但是该方案只是对地址进行监控,在多任务处理下,单独的地址访问操作可能属于不同的任务行为,因此不能实现任务的隔离。

本文借鉴了网络防火墙的安全隔离思想与Cotret P的分布式架构,提出了基于AXI总线的分布式安全总线防火墙架构,制定了多级可动态更新的安全策略,设计了具有较低延时的高速总线防火墙接口,实现了面向多任务处理的任务隔离机制。 

1 总线防火墙架构设计

1.1 防火墙总体架构

总线防火墙部署于SoC通信链路上,介于总线与IP之间,是嵌入式系统的硬件底层安全防线。为减轻总线防火墙负载,并利用AXI总线的点对点突发传输特性,本文采用分布式的总线防火墙架构,即在每个IP接口与总线之间增加防火墙模块,如图1所示。

soc

安全总线防火墙的架构由软件层和SoC硬件架构组成。软件层运行多任务处理的嵌入式操作系统,包括安全任务与非安全任务,各个任务之间有不同的资源访问权限。

硬件层由CPU、DMA、Memory、各个IP模块组成,模块之间通过AXI总线互连。安全防火墙位于总线与IP模块之间,由防火墙接口与片上 BRAM(Block RAM)组成。防火墙接口根据BRAM的安全策略实施访问控制,其基本特征就是阻止非法地址访问,目的是实现安全任务与非安全任务的隔离。防火墙的安全性由安全策略保证,安全策略只可由安全更新模块配置与更新。

1.2 防火墙安全策略设计

安全策略存储在片上BRAM,一条策略占用一个字空间,由一个地址标识。每条策略为每个给定的物理地址空间(带下边界与上边界)设定访问权限。

安全策略根据任务分组,同一任务的策略称之为一个策略组,由任务ID寻址标识。安全策略组在上电时由安全更新模块配置,运行过程中只可由安全更新模块更新,是一个可信区域。

面对复杂的SoC系统,安全策略数量众多,策略存储会占用大量的存储空间。为减少策略存储空间,本文提出策略组间白名单、组内黑名单的混合存储策略。策略组存储采取白名单策略,只有在白名单之列的任务可以访问该模块,否则直接拒绝访问,具有更高的安全性。安全策略组内采用黑名单存储策略,不在黑名单中的访问行为默认可读可写,直接允许。

为了增加安全策略的安全性与灵活性,本文设计了多级可动态更新的安全策略。安全策略设定3个安全等级:正常级别、警告级别、错误级别。正常级别为系统初始化后的各模块的安全级别,表示系统任务处于正常状态。警告级别表示系统出现了非法访问行为,并禁止该危险任务对该模块的所有访问权限。错误级别表示出现了较为严重的安全威胁,系统所有任务的访问都将禁止,只有关机重启有效。安全级别的更新是发生访问违规后作出的反应行为。当非关键任务出现访问违规时,则将其安全级别由正常级别提升为警告级别;当关键任务出现访问违规时,则将正常级别直接跳跃提升为错误级别,强制终止系统运行。

安全策略的参数包括策略组参数与策略参数,如图2所示。策略组参数由任务ID、策略数量组成;策略参数由读写权限、安全级别、策略域值组成。读写权限采用黑名单存储策略,包括禁读、禁写、禁读写。策略域值表示策略监控的地址空间,包括基地址偏移量和长度。

soc

1.3 防火墙接口设计

AXI总线采用突发传输,因此防火墙只需在握手过程中分析其首地址、握手信号、突发传输SIZE等总线信号来实现访问控制。根据安全策略规则,其设计原理如图3所示。 

soc

行为分析模块是判断当前访问的读或写行为。时钟同步模块,用于延迟握手信号,满足AXI总线的传输时序。读模块读取安全策略内容,需要消耗一个时钟周期。校验模块则根据读取到的安全策略与访问的地址进行比对。校验成功,决策模块则允许访问行为,否则终止行为并将数据端置0。

快速查找单元则是一个类似于TCAM(Ternary Content Addressable Memory)容器的列表,自身存储每个任务安全策略监控的地址空间和长度,如图4所示,在防火墙监控状态下,根据TaskID选择安全策略组,通过访问地址addr、突发SIZE长度,可快速定位到其安全策略的地址。根据黑白名单存储策略规则,若noID=1,直接拒绝;若noSP=1则直接允许。

soc

防火墙有3种工作状态,包括空闲状态、监控状态、更新状态,其状态转换图如图5所示。

soc

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

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分