【ARM】Linaro Security module

本文概述了Linaro在开发开源可信执行环境OP-TEE中的工作,强调了它在保护知识产权、内容安全(如Widevine DRM)和PKCS#11、Keymaster等安全解决方案中的作用,以及与Arm Firmware Framework for Armv8-A和相关行业标准的合作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Linaro Security官网:https://www.linaro.org/security/

安全不再是一种选择,它是保护知识产权、通信、银行账户、个人数字财产等一个重要因素。

OP-TEE(Open Portable Trusted Execution Environment)

OP-TEE是一个开源的可信执行环境(TEE),实施了Arm TrustZone technology。OP-TEE已经被移植到许多 Arm 设备和平台 上。最初,它是由圣爱立信公司开发的一种专利TEE解决方案,后来被转移到STMicroelectronics公司。

早在2013年,Linaro就成立了安全工作组(SWG: Security Working Group):SWG最初的关键任务之一是开发一个开源TEE项目。在与不同的TEE供应商交谈之后,Linaro开始与STMicroelectronics合作,将他们的TEE解决方案从一个专有的TEE转变为一个开源的TEE。经过几个月的重构和重写,代码的主要部分与BSD 2条款许可证兼容,它于2014年夏天向公众发布。

2015年,OP-TEE项目的所有全从意法半导体公司转移至Linaro。在2015年至2019年期间,Linaro是该项目的所有者,维护工作是与Linaro成员一起进行的。2019年末,Linaro将OP-TEE项目移交给 trustedfirmware.org ,从那时起,它一直管理OP-TEE。Linaro仍然负责安排发布时间,处理安全事件等,但是在开发和特性方面有很多公司参与了这个项目。

Widevine

工作室和内容创作者希望保护他们的内容,这通常是通过使用 DRM 解决方案来实现的。Google创建了 Widevine ,它由一个规范和库组成,用于实现DRM解决方案。这也被称为 OEMCrypto 。Linaro及其员工已经实现了一个 OEMCrypto 受信任的应用程序和支持库,以便能够使用 OP-TEE 运行 Widevine。该解决方案已经部署在成员设备,此外,还可以在QEMU(Armv7-A和Armv8-A)中运行该解决方案,从而实现一个良好而高效的开发环境。开发和测试周转时间很短,像GDB这样的调试器非常稳定。

Widevine 附带 Widevine 许可协议(WLA),该协议禁止组件的开源。如果您的设备需要 Widevine 和 OEMCrypto,Linaro拥有实现这一目标的专用技能。

PKCS#11

PKCS#11(也称为Cryptoki)源于RSA实验室,是一个用于处理加密密钥和令牌的成熟标准。PKCS#11 通过在应用程序和加密设备之间建立连接来实现这一点。加密设备有多种形式,可以是 HSMTPM基于TEE 的设备等。在应用程序方面,我们每天使用许多应用程序都持 PKCS#11 。Linaro正在为运行 OP-TEE 的设备创建 PKCS#11 ,即,在运行 OP-TEE 的 Arm 设备上。在使用 PKCS#11 时,可以使用OP-TEE作为加密设备。

Keymaster

每次你在 Android 设备上解锁手机时,不管是PIN码、指纹还是按特定模式滑动手指,都在使用一种叫 Keymaster 的东西。Keymaster 解决方案是Google在Android设备上安全存储和使用密钥的解决方案。Keymaster是在一个规范和一组需要在目标设备实现的API中定义的。与许多其他安全框架一样,它是一个在Linux和安全环境中运行的代码解决方案。在AOSP树中,你可以找到Google自己的TEE(Trusty)上运行Keymaster的源代码。但是您正在运行任何其他TEE,则需要针对该特定TEE的Keymaster解决方案。Linaro为运行OP-TEE的设备创建并维护了Keymaster(和Gatekeeper)解决方案。如果您需要在设备上运行Keymaster解决方案的帮助,请与Linaro联系,我们拥有专用知识。

Arm® Firmware Framework for Armv8-A

也称为 “FFA” 。这是最新的 Armv8-A 体系结构的新规范,定义了通信协议、接口、内存共享概念和安全环境。这是一项庞大而复杂的任务。从早期的alpha和beta版本开始,Linaro就直接与Arm合作。我们已经帮助审查了规范等,但更重要的是,我们已经并仍在参与设计和实现,为FF-A支持OP-TEE做准备。

GlobalPlatform

GlobalPlatform组织为各种设备和环境编写规范。OP-TEE解决方案是基于GlobalPlatform内部API和GlobalPlatform客户端API的TEE。因此,跟踪新规范和现有规范的更新是很重要的。除了上面提到的两个规范之外,Linaro还在OP-TEE中实现了对Socket API的支持,我们将GlobalPlatform TEE管理框架规范中的一些细节引入了OP-TEE。简言之,Linaro在这方面投入了时间和精力,以确保OP-TEE按照GlobalPlatform TEE相关规范工作。这对整个社区都是有益的。

除此之外,Linaro现在还在发送到OP-TEE项目的每个补丁上运行GlobalPlatform一致性测试套件。我们直接在GitHub的pull请求中发布结果。

Morello project

Arm正在领导一个名为 Morello 的研究项目,该项目将从根本上改变我们未来设计和编程处理器的方式,以实现更好的内置安全性。这是由英国政府的工业战略挑战基金(ISCF)数字安全设计(DSbD)计划资助的,其改革目标是从根本上更新支撑整个经济的数字计算基础设施的安全基础。DSbD的主要输出将是一个名为Morello板的技术平台原型。

Morello专注于设计CPU架构的新方法,这将使处理器在未来更加健壮,并能够阻止某些类型的安全漏洞。由英国研究与创新组织(UKRI)资助的一个为期五年的研究项目,Morello将生产和测试一种原型技术,如果成功,可以在未来的硬件中实现。

Mbed TLS

在密码学方面,Mbed-TLS是一种成熟而流行的密码学库,在许多应用和产品中都有应用。OP-TEE项目将其用作受信任应用程序的扩展,使其能够补充GlobalPlatform cryptographic APIs。OP-TEE项目不久前还取代了Big Number库,开始使用Mbed TLS的Big Number实现。Linaro团队有一名工程师,是Mbed TLS维护团队的一部分。该团队正在积极开发新功能、改进、维护和漏洞缓解。

TPM and Firmware TPM

作为Trusted Substrate项目的一部分,Linaro从Microsoft获得了fTPM实现,我们在2019年创建了一个概念验证原型。从那时起,支持fTPM的Linux内核驱动程序就被合并到了上游(这是微软的贡献),我们重新设计了已经集成的原型。例如,LEDGE参考构建是一个设备无关的参考构建,它包括fTPM支持。fTPM是Linaro正在进行的TPM相关工作的基础。我们正在与合作伙伴和维护人员合作,以实现可测量的引导,包括TrustedFirmware-A、OP-TEE、U-boot、Grub和Linux内核等组件。一些U-Boot补丁已经登陆上游,添加了 EFI_TCG2_PROTOCOL support 协议支持。虽然没有直接的关系,但测量的引导工作与EBBR有关。目前EBBR本身在安全方面没有任何要求,但我们正在与Arm和其他合作伙伴合作,探索EBBR未来版本中可能使用和必要的东西。

Zephyr and MCUBoot

Linaro正在与 Zephyr 项目合作开发各种技术,但安全方面一直是Linaro在创建安全体系结构方面发挥关键作用的一个重要领域。我们在安全架构方面的工作范围从系统和通信协议使用的加密算法支持,到密钥管理和篡改/入侵检测系统。此外,它还考虑了与ARMv8-M体系结构相关的安全扩展,使用Cortex-M的可信固件和Arm的平台安全体系结构(PSA)。2019年10月,我们使用Zephyr构建并认证了PSA 1级硬件和软件平台。Zephyr安全架构师是Linaro的一名员工,负责安全体系结构讨论,并领导团队为项目创建各种安全流程。这包括与MITRE合作,将Zephyr引入CVE编号机构,并开发处理漏洞的过程。除了是Zephyr安全架构师之外,这个Linaro员工还是MCUboot项目的维护人员。这是用作Zephyr主引导加载程序的安全引导加载程序。开发与Zephyr安全相关的若干标准(RFC)的过程也需要与IETF合作。

EFI enablement on U-Boot

StandAloneMM(StMM)是负责存储变量的EDK2应用程序。由于U-Boot在最近几年已经意识到EFI,因此需要能够安全地存储变量。在第一次迭代中,U-Boot将变量存储在其环境中,这对于最初的实现很好。然而,这并没有提供任何安全保障。因此,开始讨论是否有可能利用运行在Arm设备安全端的现有技术,例如TEE和secure分区。由于当前平台的限制,简而言之,只能在安全端(S-EL1)运行单个有效负载,因此必须做出决定。作为未来架构的垫脚石,Linaro与Arm合作决定在OP-TEE中添加支持,这样就可以在未修改的情况下使用StMM。

结合OP-TEE访问RPMB分区的能力,现在可以将EFI变量存储在安全世界或RPMB分区(在嵌入式设备上更常见)的闪存中。这一贡献为在当前Arm体系结构上存储EFI变量提供了一种安全的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值