【ARM】Linaro Security module
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 通过在应用程序和加密设备之间建立连接来实现这一点。加密设备有多种形式,可以是 HSM 、 TPM、基于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变量提供了一种安全的方法。
【ARM】Linaro Security module相关推荐
- 【ARM】ARM接口技术
0开发工具的使用 1安装keil4 2运行MDK411EXE安装 3选择好要安装的目的位置 4安装完成并运行 5安装JLink驱动 6运行测试例程验证开发板是否OK 1自己做一个例子 1新建一个项目 ...
- 【转】modulenotfounderror: no module named ‘matplotlib._path‘问题的解决
[转]modulenotfounderror: no module named 'matplotlib._path'问题的解决 参考文章: (1)[转]modulenotfounderror: no ...
- 【ARM】一步一步移植Linux Kernel 2.6.13到板子
1环境搭建所需材料 2环境搭建所需材料之间的关系 3所使用的开发板 4译内核 1修改makefile 2拷贝配置文件 3编译得到zImage 4把zImage转成uImage 5开发板串口连接 6ub ...
- 【ARM】ARM汇编程序设计(六) stm和ldm
00. 目录 文章目录 00. 目录 01. ldmea指令 02. ldmed指令 03. ldmfa指令 04. ldmfd指令 05. stmea指令 06. stmed指令 07. stmfa ...
- 【ARM】ARM汇编程序设计(五) str和ldr
00. 目录 文章目录 00. 目录 01. ldr伪指令 02. ldr指令 03. adr指令 04. str指令 05. 附录 01. ldr伪指令 ldr示例一: .section .roda ...
- 【ARM】制作Linux 文件系统
文章目录 #1从零开始由busybox 建立文件系统 ##1.1文件系统在LINUX 中的结构图 ##1.2编译好kernel 编译linux kernel的具体操作在之前文章讲过,下面简要提示一下. ...
- 【问题解决】ModuleNotFoundError: No module named ‘pywin32_bootstrap‘
一.错误 运行程序时,出现了如下报错 [问题解决]ModuleNotFoundError: No module named 'pywin32_bootstrap' 二.解决 首先看是否有有这个pywi ...
- 【ARM】使用J-Link下载u-boot到Mini2440开发板
文章目录 附录 #1各种引导系统介绍 ##1.1 bios 1 BIOS是英文"Basic Input Output System"的缩略语,直译过来后中文名称就是"基本 ...
- 【ARM】使用Busybox构建根文件系统
Busybox构建根文件系统 介绍 下载 配置busybox 配置交叉编译器 取消静态库编译 添加vi命令的支持 取消简化模块 支持mdev 中文支持 编译 完善根文件系统 创建必要文件夹 复制库 启 ...
- AS-GCN【复现】ModuleNotFoundError: No module named ‘processor.demo‘问题
[复现]程序报错 程序下载完并安装必要的环境之后,github上的代码需要指令行运行代码 调好安装环境和必要的安装包之后,出现了下面的报错,记录一下解决方法 D:\programProject\AS- ...
最新文章
- 从产品的适用性以及费用方面考虑
- 解题报告:luogu P2341 受欢迎的牛(Tarjan算法,强连通分量判定,缩点,模板)
- 驰骋工作流程底层的API开发接口-重要的
- linux java so 历险
- am5728 是否支持aarch64_am5728开启uart0接口通讯
- 内存首地址为1000h_C++虚继承,菱形继承,内存分布
- python中用函数货币转换代码_python将人民币转换大写的脚本代码
- eclipse中的汉字极小的解决方案(转载)
- [Unity] Animation Blend Tree 中混合值变化时部分骨骼错误旋转 360 度的解决办法:将 Humanoid 改成 Generic
- eclipse下SVN subclipse插件
- 关于NX8.5和VS2010环境配置后,执行DLL文件,报错:未加载图像,详细信息请参见日志文件
- DWM1000的UWB测距改官网例程的调试
- java使用easypoi实现word模板导出
- 简述商业模式、商业模式画布与商业模式个人画布
- 暗黑复制服务器物品,暗黑2战网环境下复制dupe物品装备
- 深度学习中的正则化的应用(最全)
- 读书笔记:打造知识体系
- Python爬虫:盖楼抽奖还手动?自动的她不香吗?
- 什么是BIO | NIO | AIO
- 隐藏程序在任务栏的图标
热门文章
- 服务器托管带宽单线、双线、BGP线路之间区别有哪些
- 介绍ping中的TTL是什么意思
- 亚当·斯密 传奇一生
- 咸鱼Maya笔记—Maya 编辑多边形
- python用海龟画圆的代码_python海龟画圆代码
- 腾讯VS华为:2021“渠道战争”第一枪
- android qq聊天界面键盘与布局,大屏手机单手聊天 QQ输入法浮动键盘做得到
- python自动化webdriver_轻松自动化---selenium-webdriver(python) (六)
- 运用regedit编辑器恢复清空回收站之后的文件
- 巴勒斯坦富有_使会议富有成效