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

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

3天内不再提示

FPGA安全启动设计防止Linux rootkit威胁

星星科技指导员 来源:嵌入式计算设计 作者:Tim Morin 2022-06-14 09:07 次阅读

无论是用作独立处理元件还是与辅助处理器结合使用,SoC FPGA 都提高了嵌入式处理的安全性。虽然可以构建具有执行监控和静态密钥存储的专用安全设备的嵌入式处理器模块,但在 SoC FPGA 中整合系统关键功能和安全特性可提供更高的安全性、灵活性和性能。

Linux 已成为嵌入式设计中裸机系统的日益流行的替代方案。随着 32 位计算成为一种商品,并且像 Yocto 这样的项目使得为嵌入式应用程序创建、开发和维护基于 Linux 的系统变得更加容易,它的受欢迎程度可能会增长。Linux 使 OEM 变得更像初创公司,其敏捷的硬件开发团队可以通过使用操作系统来抽象底层硬件细节来加快上市时间。尽管有好处,但如果没有适当的方法来启动其嵌入式处理器,Linux 系统可能容易受到 rootkit 的攻击。对于新兴的物联网而言,Rootkit 尤其成问题,它将产生数十亿个新的、可能不安全的端点。

通常,rootkit 会尝试访问特权 (root) 模式,同时躲避系统恶意软件检测工具。恶意软件还可能通过修改系统的启动过程来尝试将自身安装到持久状态。如果成功,感染将是永久性的或通过电源循环持续存在。从那里,恶意软件会做其作者想要做的任何事情,包括记录击键、形成僵尸网络、收集个人信息和启用未经授权的服务。一旦系统被感染,可能需要重新安装完整的操作系统。

问题从嵌入式处理器开始,通常如图 1 所示启动。上电时片上 ROM 将从外部非易失性存储器中获取启动加载程序。引导加载程序是特定于应用程序的,并在其启动期间配置处理器以满足指定的应用程序要求。时钟、缓存、内存控制器和外围设备都已配置。一旦处理器被初始化,应用程序就会从外部非易失性存储器中取出,有时会被解压缩,然后复制到启动应用程序的快速外部易失性存储器中。

图 1:嵌入式启动过程。

poYBAGKn33SAMAYgAABGMA2y-QY906.png

在引导过程中,恶意软件有机会尝试修改嵌入式系统的引导加载程序。图 2 显示了嵌入式 Linux 系统的简化典型框图。UBOOT、Linux 内核和应用层都存储在易于访问的非易失性存储器中。

图 2:嵌入式 Linux 系统。

pYYBAGKn33qAcF_0AADuH8uqfMA017.png

保护启动过程的唯一方法是使用一个可以信任的实体来保护它,该实体始终以预期的方式运行。作为系统元素,此信任根支持系统、软件和数据完整性和机密性的验证,以及将信任扩展到内部和外部实体。它是创建所有进一步安全层的基础,并且它的密钥必须保密并且它遵循的过程是不可变的。在嵌入式系统中,信任根与其他系统元素一起工作,以确保主处理器仅使用授权代码安全启动,从而将信任区域扩展到处理器及其应用程序。使用加密技术,可信区域可以扩展到覆盖手头系统的所有关键元素,

虽然许多较新的处理器具有支持安全启动的特殊功能,但处理器芯片中对安全启动的内在支持远非普遍,并且通常需要多芯片解决方案。更好的解决方案是基于闪存的 FPGA,它提供了多芯片嵌入式系统中最好的信任根设备之一,显着提高了主嵌入式处理器运行的任何代码都是真实的保证水平。

基于闪存的解决方案本质上更安全(一旦它们被编程,关键信息永远不会离开芯片),今天基于闪存的 SoC FPGA 解决方案还提供了许多额外的高级安全功能,包括片上振荡器、加密服务加速器、安全密钥存储、真正的随机数生成器、安全嵌入式闪存 (eNVM) 中的片上启动代码存储以及高速串行外围接口 (SPI) 闪存仿真,以实现外部处理器的高速安全启动。 与早期解决方案相比,这些设备还具有更强的设计安全性,并包括差分功率分析 (DPA) 抗篡改措施。再加上嵌入式 Linux CPU,它们可以有效地防止恶意软件试图修改嵌入式系统的引导加载程序。

图 3 提供了一个可用于安全启动的基于闪存的 SoC 示例。Microsemi 的 SmartFusion2 SoC 中的 eNVM 用于存储 UBOOT,其 FPGA 结构可快速模拟 SPI 闪存。CPU 不知道这个 SoC 在它和 SPI 闪存之间。上电时,SoC 将 UBOOT 的 SPI 读取请求从内部 eNVM 定向到 CPU。然后 CPU 执行正常的 UBOOT 引导过程,然后从外部 SPI 闪存中获取应用程序映像的其余部分,在后一阶段,SoC 充当外部存储器的管道,并将应用程序映像传递给 CPU。SoC 及其内部 eNVM 只能使用经过验证的加密比特流进行编程,该比特流只能由 SoC 的 FPGA 开发环境构建。比特流文件格式是专有的,任何人都无法使用,并且由于 Cryptography Research Incorporated(现为 Rambus)许可的受专利保护的对策,可以抵抗 DPA 侧信道攻击。换句话说,恶意软件尝试写入闪存的唯一方法是拥有一个专为 SoC 设计的比特流,具有适当的加密和用户定义的密钥。

图 3: SmartFusion2 用于存储 UBOOT。

pYYBAGKn34CAQPH1AACxMQfYea0807.png

为确保安全的多阶段启动,在交付和执行之前验证代码至关重要。这确保不会发生可能破坏或损坏每个阶段的引导的妥协,并且可以使用对称或非对称密钥加密技术来完成。优选地,对每个先前阶段的持续反馈用于确认在引导加载期间没有发生篡改。如果所有防篡改 (AT) 监视器都确认环境安全,则每个阶段都可以继续执行。

如果需要,今天的 SoC FPGA 还可以独立提供运行时监控和纠正措施或惩罚。为此,所有应用程序代码都将位于 SPI 闪存中,并且可以选择加密。SoC 将对每个阶段的代码进行真实性检查,解密代码(如果需要),并在通过 MPU 到 FPGA SPI 接口请求时将其提供给主 MPU。为了增加安全性,引导加载程序代码将存储在 SoC FPGA 的 eNVM 中。

上电后,FPGA 将保持主 MPU 处于复位状态,直到它完成自身的完整性自检。准备就绪后,它将释放复位。MPU 将被配置为从接口引导到 FPGA(例如,通过其 SPI 接口)。作为 SPI 从机的 FPGA 将在 MPU 完成复位时将请求的 Phase-0 引导代码传送到 MPU。假设 MPU 本身不支持安全启动,挑战是将一些代码加载到 MPU 中,并高度保证它没有被篡改。

如果一切正常,引导过程将通过跳转到 MPU SRAM 中现在受信任的代码来继续。这将包含启动下一阶段所需的代码,并且可能包括现在受信任的 RSA 或 ECC 公钥。一旦 MPU SRAM 中的代码被信任,就可以采用额外的安全措施,例如使用公钥方法建立共享密钥,并使用该共享密钥加密 FPGA 和 MPU 之间传输的所有后续引导代码。此外,可以将系统的所有硬件组件以密码方式绑定在一起,因此如果没有原始系统的所有确切组件,任何一个都无法工作。

SoC 还可以提供对模块环境条件的实时监控,例如温度、电压、时钟频率和其他因素。FPGA 架构可以安全地配置为为外部篡改传感器和入侵检测器提供 I/O。这些可以被 SoC 感知,以防止受到已知漏洞攻击的漏洞,这些漏洞应用异常条件来提取关键信息。通过适当的设计可以实现更高的安全级别。

审核编辑:郭婷

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

    关注

    2545

    文章

    50439

    浏览量

    750970
  • 处理器
    +关注

    关注

    68

    文章

    19096

    浏览量

    228792
  • 嵌入式
    +关注

    关注

    5059

    文章

    18972

    浏览量

    301920
收藏 人收藏

    评论

    相关推荐

    识别IP地址威胁,构筑安全防线

    IP地址作为网络通信的重要标识,在网络连接和数据传输中起着关键作用。然而,IP地址也面临着各种安全威胁,这些威胁可能导致个人隐私泄露、网络服务中断、数据丢失等严重后果。因此我们要了解与IP地址相关
    的头像 发表于 09-03 16:13 239次阅读

    亚马逊云科技如何追踪并阻止云端的安全威胁

    亚马逊首席信息安全官C.J. Moses 北京2024年8月14日 /美通社/ -- 来自全球各地的企业信任亚马逊云科技存储及处理其最敏感的数据。业界领先的威胁情报是我们确保客户在亚马逊云科技上
    的头像 发表于 08-14 17:18 252次阅读

    工业控制系统面临的网络安全威胁有哪些

    ,随着技术的发展,工业控制系统也面临着越来越多的网络安全威胁。本文将详细介绍工业控制系统面临的网络安全威胁,并提出相应的防护措施。 恶意软件攻击 恶意软件攻击是工业控制系统面临的最常见
    的头像 发表于 06-16 11:43 1288次阅读

    Linux启动流程基本分析

    Linux启动流程总的来说可以分成三个阶段 Linux启动流程图   第一步:上电 Ø在 x86 系统中,将 1M 空间最上面的 0xF0000 到 0xFFFFF 这 64K 映射给
    的头像 发表于 05-11 08:49 581次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>启动</b>流程基本分析

    人为疏忽是对数据安全的最大威胁

    疏忽仍然是对数据安全的最大威胁。 一些“别有用心”的员工可能会为了自己的利益而滥用自身有权访问的数据。这种滥用将直接威胁到企业的数据安全,甚至导致数据泄露。无
    的头像 发表于 04-28 14:41 211次阅读

    3562-Linux系统启动卡制作及系统固化

    ](基于 RK3562_LINUX_SDK_RELEASE_V1.1.0_20231220) 评估板支持通过 Linux 系统启动卡(下文称为“SD 启动卡”)和板载 eMMC 设备
    的头像 发表于 03-05 15:58 264次阅读
    3562-<b class='flag-5'>Linux</b>系统<b class='flag-5'>启动</b>卡制作及系统固化

    知语云智能科技揭秘:无人机威胁如何破解?国家安全新防线!

    随着科技的飞速发展,无人机技术已经深入到各个领域,给我们的生活带来了极大的便利。然而,与此同时,无人机也带来了潜在的安全威胁。知语云智能科技作为国内领先的智能科技公司,一直致力于研究无人机威胁的破解
    发表于 02-27 10:41

    知语云智能科技无人机防御系统:应对新兴威胁的先锋力量

    随着科技的飞速发展,无人机技术在各个领域的应用日益广泛,但随之而来的是无人机威胁的不断升级。为了有效应对这些新兴威胁,知语云智能科技推出了先进的无人机防御系统,为空中安全保驾护航。 无人机防御系统
    发表于 02-26 16:35

    知语云全景监测技术:现代安全防护的全面解决方案

    技术能够精准判断安全威胁的来源和意图,为企业和个人提供及时、准确的安全预警。 主动防御,有效应对:在发现安全威胁后,知语云全景监测技术能够迅
    发表于 02-23 16:40

    Secureworks 威胁评分迎来网络安全 AI 新时代

    ) 于今日宣布,推出其基于 AI 的威胁评分,用于消除警报数量,并将安全分析师的工作量减少 50% 以上。随着勒索软件驻留时间的日益缩短,安全分析师承受着前所未有的压力,因为其需要就待调查的警报做出正确决策。
    的头像 发表于 02-04 10:46 543次阅读

    fpga开发板与linux开发板区别

    FPGA开发板与Linux开发板是两种不同的硬件开发平台,各自具有不同的特点和应用场景。在以下的文章中,我将详细介绍FPGA开发板和Linux开发板的区别。 基本概念和原理
    的头像 发表于 02-01 17:09 2005次阅读

    如何使用PSoC 61进行安全启动

    我们知道所有关于安全启动的文档都是基于 PSoC 62、63 或 64 的。 因为安全启动机制包括 M0+ 和 M4。 我们想知道如何使用 PSoC 61 进行
    发表于 01-30 07:51

    通过JTAG启动Linux的方法和脚本

    存储器(QSPI Flash,eMMC 等)上的镜像,直接启动Linux。但当板子调试时,经常需要通过 JTAG 把 SoC 器件启动Linux。这篇文章将分享通过 JTAG
    的头像 发表于 12-22 10:27 1352次阅读
    通过JTAG<b class='flag-5'>启动</b><b class='flag-5'>Linux</b>的方法和脚本

    linux双系统启动项设置

    在使用双系统的时候,我们需要设置启动项来选择要启动的操作系统。在Linux系统中,设置双系统启动项的方式较为灵活。本文将详细介绍在Linux
    的头像 发表于 11-28 15:05 1460次阅读

    安装Linux后windows在哪启动

    在安装 Linux 后,Windows 的启动位置由原先的默认位置(通常是硬盘的第一个分区)改变为 GRUB 启动加载器。GRUB(GNU GRand Unified Bootloader)是一个多
    的头像 发表于 11-28 15:02 1082次阅读