论文阅读:Efficient isolation of trusted subsystems in embedded systems

许多嵌入式设备有着很强的安全要求,因为他们需要处理机密性的数据或者支持安全事务。一个原型实例是付款终端,为了确保敏感数据,比如说加密密码不被泄漏,系统的安全部分当成一个隔离的芯片进行实现,从而与系统的其他部分进行隔离。
但是隔离也能通过软件进行实现,高端的计算平台有一些硬件来指出实现虚拟内存与VMM,然而,许多的嵌入式系统缺少这些硬件特征。
本文设计了一个普遍的、轻量级的硬件机制,能够支持共享同一个处理器与内存空间的多个子系统之间进行隔离。一个原型就是支持保护密钥的加密系统的软件实现。

贡献:

  • 一个新的内存访问控制模型,访问内存依赖于程序计数器的值
  • 基于这个内存访问控制模型的自我保护模块的设计:一个软件模块能够为模块处理的数据、如何被其他模块所调用提供很强的安全保证
  • 对这个设计的一个粗略证明
  • 几个应用场景的讨论

威胁模型:
攻击者能够向系统的内存空间注入代码,不能进行物理攻击。

安全属性:

  • entry point的约束:软件模块能够安全地约束他们如何被调用。也就是说,软件模块的entry point是由模块提供者定义的,攻击者不能够随便跳转到模块的任意位置。
  • 模块数据的安全:模块的敏感信息仅能够被这个模块读写
  • 模块认证:模块能够认证其他模块的内存
  • 模块之间的安全通信:模块能够有效的与他们认证的其他模块交互。消息的完整性与机密性必须能够保证。
  • 最小化TCB

忽略程序本身的逻辑错误引起的攻击、忽略拒绝服务攻击

自我保护模块SPM:

  • 三个段:SEntry(可以调用SPM的入口点)、SPulic(其他模块可读)、SSecret(敏感数据,不可信模块不可访问)
  • 内存访问控制策略

SPM的创建与销毁如下图所示。创建:OS加载SPublic与Sentry;一个新的硬件指令setProtected创建SPM,定义三个段的边界,开启内存访问控制策略,清空SSecret;一个称为vault的模块初始化SSecret。Vault在boot后安装,并且不允许卸载。
这里写图片描述

内存访问控制矩阵如表一所示:
这里写图片描述

硬件上的修改:

  • setProtected
  • isProtected:返回SPM的layout
  • resetProtected

安全报告:

  • Hash(SEntry || SPublic)
  • SPM的layout
  • CA的签名

验证过程:验证安全报告的签名,验证Sentry与SPublic的hash,使用isProteced验证SPM的layout
这里写图片描述

两个模块之间的认证协议:

  • 单向
    这里写图片描述
  • 双向
    这里写图片描述
  • 双向,事件通信
    这里写图片描述

缺陷:

  • 中断
  • 交换
  • DMA
  • 分页
  • 并发执行
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值