TEE 背景知识

news2024/11/19 22:47:51

TEE 背景

计算机世界的安全,是保护计算机系统和网络免受攻击者的攻击,这些攻击可能导致未经授权的信息泄露、窃取或损坏硬件、软件或数据,以及它们所提供的服务的中断或误导。更多参考 Computer_security

1 安全是什么

谈安全,我联想到各种概念(网络安全/信息安全/功能安全),我认为都可以归类到安全领域,只是看待的角度不同。然后阅读《现代操作系统:原理与实现》中对操作系统安全的介绍,从数据、应用、系统三个角度来分析安全

  • 数据安全,计算机存储部分用户隐私或者机密数据,这些数据只能被特定的应用所访问。如何设计应用访问数据的权限和数据不被随便访问,需要一种机制来满足这种实现。
  • 应用安全,系统中可能存在一些恶意应用,企图利用操作系统的正常功能(或者时系统的漏洞),窃取用户的数据。因此操作系统需要保护好自己,也需要防御恶意应用的攻击。
  • 系统安全,操作系统体量庞大,不可避免存在各种 BUG ,在系统运行的过程中,存在被攻击者控制的可能。因此操作系统需要在被控制的情况下,依然能为用户数据提供一定程度的保护。

2 安全机制

引入 TCB(Trusted_computing_base) 概念,是安全保护机制(硬件/固件/软件)的集合,某种意义上来说 TCB 出现错误和漏洞会危害整个系统。例如,基于 TCB 的应用只能访问到合法的资源,受限于系统的安全策略,它不能对权限之外的资源进行非法操作。更多参考 Trusted_computing_base
在这里插入图片描述

图参考源《现代操作系统:原理与实现》

  1. 假设操作系统是安全的,系统保证数据等资源只能被有权限的应用访问。具体机制包括两个方面: 控制机制来限制应用对文件的访问; 虚拟内存机制保证数据在内存中是隔离的。
  2. 假设操作系统存在漏洞,恶意应用绕过系统的安全机制来攻击系统或应用,具体机制有: 沙盒机制来运行不信任的应用,提供有限的功能和资源。
  3. 假设操作系统完全沦陷,恶意应用控制了整个操作系统来进而控制应用,需要更底层的安全机制: 例如虚拟化 Hypervisor 提供隔离环境; 例如硬件安全扩展 TEE 保护安全数据。

3 TEE 是什么

可信执行环境(TEE)是系统底层软件和硬件技术实现的一个安全环境。硬件上,例如 ARMv7 架构就引入了 Trustzone 架构,ARM公司实现安全扩展; 软件上,例如开源了的 OPTEE,由社区维护。

可信执行环境(TEE)目前在手机,车载,服务器领域有大量应用。

4 TEE 手机历史

  • 2013年: Apple 公司推出第一款带指纹的手机 iphone
  • 2014年: 国内公司开始陆陆续续的搞指纹,然后开始有些厂家做 TEE
  • 2015年: Google 还没有强制,这时候很多厂商在用指纹了
  • 2016年: Google 推出安全标准,加入 CTS 认证
  • 2017年-2018年: 安全是一个热度很大的话题
  • 2020年: Google 要求的的事情都硬件做的差不多了,此时 TEE 的方案都比较全了
  • 2020年-2021年: 安全技术开始向汽车领域上切入

5 TEE 技术趋势

  • 安全技术标准:
    • GP: GlobalPlatform 定义了 GP Client API 和 GP internal Core API,约束了 CA/TA 程序的开发接口和使用
    • SMCCC: 定义了 smc_abi ,约束 TEE 厂商和 SOC 厂商的接口和使用,约定了关于调用过程中 command id 划分
    • PSCI: 电源状态一致性接口,定义了 psci drvier,约定了关于从核启动/下电功能的执行
    • SDEI: ,定义了 SDEI API,用于注册不可屏蔽中断,它与 Kernel 和 ATF 相关,与 TEE 无关
    • SCMI: PSCI 底层用 SCMI 接口与运行在 Cortex-M 核的上固件交互
    • FF-A: 关于运行时如何切换,如何启动相关标准
  • ARM 架构演进:
    • Trustzone: ARM v7 的软件架构引入 Trustzone 的概念
    • Hypervisor: ARM v8.1 的引入虚拟化扩展,此时系统分四种异常等级
    • S-EL2: ARM v8.4 引入 S-EL2 的支持,之后又引入 FF-A 的概念
    • CCA(RME): ARM v9 引入的软件架构,此时分四个安全等级 root/realm/secure/non-secure
  • 行业解决方案
    • 指纹识别
    • 支付场景
    • 数字版权管理(DRM)
    • 安全图形接口(TUI)

6 References

  1. 《现代操作系统: 原理与实现》
  2. 代码改变世界 arm

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/148870.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

28.0:Combit LIST LABEL Reporting for Delphi Crack

作为 Delphi 开发人员的优势: 将 VCL 组件直接集成到 Embarcadero IDE 中 免版税报表设计器 交互式预览等 使用综合报表对象 Delphi 和所有其他相关语言和开发环境的报告工具。 将列表和标签集成到 Embarcadero RAD Studio List & Label 的 VCL 组件编译并直接…

HTML与CSS基础(八)—— CSS布局(定位、装饰、选择器拓展)

目标能够说出 定位 的常见应用场景 能够说出 不同定位方式 的特点 能够使用 子绝父相 完成元素水平垂直案例 能够写出三种常见的 光标类型(cursor) 能够使用 圆角边框 属性完成 正圆 和 胶囊按钮 效果 能够说出 display 和 visibility 让 元素本身隐藏 的…

【java查漏补缺】File类的使用

File类可以用来处理文件数据,比如使用list()方法可以获得某个文件夹下面的所有文件名。 File类的list()方法有一个含有一个参数的重载,在调用该方法的时候需要传入一个FilenameFilter对象,这样便可以进行文件名过滤。 我们先来看一下list()…

GJB 5000B二级-PP项目策划

一、主要变化情况 合并10项(绿色)、修订3项(蓝色)、删除1项(红色) 新增的主要内容 基于A版标准“项目策划”、“集成项目管理”、“定量项目管理”三个过程域中有关项目策划实践的内容来识别,没有新增实践,只增加了以下两个要求: 1、增加软件项目和设备/系统生存周…

Java线程之中断方法

interrupt()方法介绍interrupt() 给目标线程发送一个中断信号,同时将目标线程的中断标志设置为true。至于目标线程是否做出响应,需要看目标线程是否有对应的中断业务逻辑。场景1:假设,你是一个工厂的老板(main线程&…

C++类和对象(下)

目录 初始化列表 explicit关键字 Static成员 友元 友元函数 友元类 匿名对象 内部类 初始化列表 初始化列表是以冒号开始,以逗号分割的成员列表,每一个成员变量后面跟一个放在括号中的初始值或表达式。(代码演示以日期类为例&#xff…

【实现QQ登录界面 Objective-C语言】

一、实现QQ登录界面 1.实现这样的QQ登录界面 1.实现这样的QQ登录界面 2.首先,分析一下,这个界面里,都有哪些控件 是不是两个Label,两个TextField文本框,1个Button吧 3.先拖1个Label上来 再拖1个TextField文本框上来,在这个Label右边, 然后选中这两个控件, 按住o…

Altium Designer 超详细学习教程——印制电路板基础知识

在介绍Altium Designer软件使用办法之前先介绍下印制电路板的基础知识,不管是画图还是绘制PCB最终目的都是为了制作电路板,因此了解PCB的基础知识很有必要。 1.1印制电路板概述 1.1.1印制电路板结构 在进行PCB设计时,需要先对印制电路板的…

【Linux】对于make/Makefile的使用

本文目录 背景简介 细说关于make命令和makefile文件: 使用方法 为什么执行的指令是make和make clean呢? gcc如何判断文件是否需要重新执行? 背景简介 一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中&…

064-Tcp/IP通讯使用ServerSocket及Server实现多人在线聊天项目实训

【上一讲】063-Tcp/IP通讯使用ServerSocket及Server实现多人在线聊天_CSDN专家-赖老师(软件之家)的博客-CSDN博客 本文主要讲解使用ServerSocket,Socket类实现多人同时在线聊天的网络通讯程序,主要功能及技术如下: 1.使用ServerSocket,Socket类实现网络通讯功能; 2.使用…

【go语言之websocket】

go语言之websocket写在前面服务端msggetConnUpgradeNewWsConnectionNextWriterwriteread客户端抓包表现总结写在前面 之前的文章都是介绍的是http的使用,这里主要介绍的是websocket,主要是解决长连接场景下的使用。这里概念不多说,网上很多,…

Ajax篇-前后端交互, 接口文档, ajax, axios, fetch,Postman工具

前后端交互接口文档请求方法区分方式GETPOST从语义上区分偏向于查询(获取数据....)偏向于提交数据(注册,修改,删除...)安全性显示的携带参数,参数是直接拼接在请求地址之后,安全性较差,隐私性差隐式的携带参数,不会在请求地址上显示,安全性好,以JSON格式…

网络虚拟化基本架构

文章目录架构概述架构图核心组件OpenFlow SwitchPipelineFlow Table EntryInstructionOpenFlow Switch Protocol测试验证Pipeline流表项间流程流表间流程Flow Table EntryInstructionsSwitch ProtocolFaucet架构概述 我们知道网络虚拟化的主要目标就是让报文可以在虚拟机之间进…

Windows Anaconda YOLOv3环境部署--2023年1月8日

时效性: 2023年1月8日 目录摘要1 使用 Anaconda 创建虚拟环境2 安装官方要求的依赖库3 验证安装 | 执行 detect.py 示例代码Key already registered with the same priority摘要 网好的可以直接参考官方文档安装,遇到安装报错和网络问题可以参考本文 本地…

网络安全等级保护定级指南 范围

声明 本文是学习github5.com 网站的报告而整理的学习笔记,分享出来希望更多人受益,如果存在侵权请及时联系我们 网络安全等级保护 为了配合《中华人民共和国网络安全法》的实施,适应云计算、移动互联、物联网、工业控制和大数据等新技术、新应用情况下网络安全等…

Spring Cloud OpenFeign入门示例

简介 Feign Feign是一个声明性web服务客户端。让编写Web服务客户端变得非常容易,只需创建一个接口并在接口上添加注解即可。让http远程调用就像接口调用一样简单。(远程http调用的工具有很多,HttpClient、OKHttp、Spring Boot中的RestTempl…

2023新年红包,兔年HTML红包页面代码【2023新年快乐_附源码】

文章目录一.新年红包,兔年HTML红包页面1.1 资源获取和效果预览二.代码讲解(Html文件)三.Html文件代码展示(需要全部源码请到文章开头链接处下载)一.新年红包,兔年HTML红包页面 1.1 资源获取和效果预览 1.…

【Nacos】- Mac-M1下Nacos安装及Nacos启动报错“have ‘x86_64’,need ‘arm64e‘”

Nacos安装及Nacos启动报错“have ‘x86_64’,need arm64e”nacos下载启动nacos问题描述解决方案1、下载安装x86架构的jdk2、更换nacos版本:我这是更换为1.4.2的nacos下载 下载地址:https://github.com/alibaba/nacos/releases 根据自己的工具及需要版本…

LINUX 动态库的版本控制

Linux库文件名的描述版本信息library filename lib <libaray name> .so <libarary version information>库版本信息通常使用以下格式&#xff1a;dynamic libarary version information <M>.<m>.<p>其中&#xff0c;M用一位或多位数字表示库…

(九)汇编语言——转义指令的原理

&#xff08;九&#xff09;汇编语言——转移指令的原理 文章目录&#xff08;九&#xff09;汇编语言——转移指令的原理转移指令作用分类转移行为转移距离转移指令操作符offsetjmp指令功能原理段间转移段内转移短转移原理长转移原理位移越界转移地址寄存器内存段内转移段间转…