[终端安全]-4 移动终端之硬件架构安全

1 移动终端硬件架构

上图图展示了典型移动终端硬件架构,包括应用处理器(AP)、基带处理器(BP)以及各类共享组件和外设,所有组件通过AXI总线(和APB桥)连接在一起。以下分别介绍基于整个硬件架构采取的核心安全技术。

2 安全可信根SE

详细介绍可参考笔者之前文章:[终端安全]-2 移动终端之硬件安全(SE)

安全元件(Secure Element, SE)是移动设备中高度安全的硬件模块,用于存储和处理敏感信息,如支付信息、加密密钥和身份认证数据;SE被认为是移动设备的安全可信根。

- 独立的处理能力:SE具有独立的处理器和存储器,能够执行加密运算和安全协议。

- 硬件隔离:SE与主处理器(AP)和基带处理器(BP)隔离,提供强大的物理安全保护。

- 安全启动:SE内置安全启动机制,确保其自身代码的完整性和真实性。

- 防篡改设计:SE设计中包含多种防篡改技术,如物理防护、检测传感器和自毁机制,以防止物理攻击。

基于SE的应用,主要围绕手机钱包服务场景展开:

- 移动支付:通过NFC(近场通信)技术,SE可以安全地进行支付交易。

- 公交卡:通过NFC,SE可以安全地提供公交或地铁刷卡支付服务。

- 数字钥匙:通过NFC/BLE/UWB,SE可以安全地与汽车、智能门锁安全认证提供控制服务。

- 加密密钥管理:SE安全存储加密密钥,用于加密和解密敏感数据。

3 AP和BP的TEE

详细介绍可参考笔者之前文章:[终端安全]-3 移动终端之硬件安全(TEE)

可信执行环境(Trusted Execution Environment, TEE)是一个独立的执行环境,提供比普通操作系统更高的安全性,通过硬件和软件相结合的方式保护敏感数据和代码。常见的实现方式包括Arm TrustZone技术,AP和BP一般都具备TEE:AP应用处理器使用TEE来保护应用层的敏感数据和代码,如支付应用和生物特征认证;BP基带处理器使用TEE来保护通信相关的敏感信息,如加密密钥和网络认证数据。

1)安全隔离

Arm TrustZone通过硬件机制(如MMU和页表等)创建安全和非安全两个世界来实现隔离。

- 安全世界:用于执行敏感操作和处理机密数据。

- 非安全世界:用于运行普通应用程序和操作系统。

2)安全启动

TEE从设备启动时就开始执行,确保启动过程的完整性和真实性。

3)安全服务

TEE提供安全服务,如加密运算、密钥管理和安全存储。备注:移动支付、生物信息鉴权(指纹、虹膜、人脸)等服务可能依托于TEE或者SE实现,取决于各家设备厂商不同的安全机制和策略。

4 安全启动技术

安全启动(Secure Boot)是一种防止恶意软件在设备启动时加载的技术,通过一系列验证步骤确保启动代码的完整性和真实性。

1)工作流程

- ROM代码启动:设备上电后首先执行ROM中引导代码,该代码是预先烧录且不可更改的。

- 验证引导加载程序:ROM代码验证引导加载程序Bootloader数字签名,确保其未被篡改。

- 加载和验证操作系统:引导加载程序加载操作系统,并验证其完整性。

- 启动操作系统:如果所有验证步骤都通过,操作系统开始启动并执行。

2)关键技术

- 数字签名:使用公钥加密技术对启动代码进行签名和验证,目前多用ECDSA算法。

- 硬件根密钥:设备中存储的不可更改的硬件密钥,用于验证启动代码的签名。

- 防篡改机制:保护引导加载程序和操作系统免受物理和软件攻击。

5 SIM卡安全联网

SIM卡(Subscriber Identity Module)是移动设备中用于身份认证和网络接入的安全模块,在网络接入和通信过程中使用多种安全技术来保护用户数据和通信内容。

1)安全功能

- 身份认证:SIM卡存储用户的身份信息(如IMSI)和认证密钥(如Ki),用于与移动网络的身份认证。

- 加密通信:SIM卡支持语音和数据通信的加密,使用加密算法(如A5/1、A5/2)保护通信内容。

- 密钥管理:SIM卡内置密钥生成和管理功能,用于生成和存储加密密钥。

2)安全技术

- 加密算法:SIM卡使用多种加密算法(如3DES、AES)保护存储和传输的数据。

- 防克隆技术:采用SE通过物理防护和防篡改设计,SIM卡能够抵御克隆和复制攻击。

- 认证协议:SIM卡与移动网络之间使用安全认证协议(如AKA协议)进行身份认证和密钥协商。

6 无线接口安全

1)蓝牙接口安全

- 配对和认证:使用安全配对机制,如PIN码或安全简单配对(Secure Simple Pairing, SSP),确保设备间连接的合法性。

- 加密通信:使用AES加密算法对蓝牙通信进行加密,保护数据传输的安全。

2)WiFi接口安全

- 加密协议:使用WPA2或WPA3协议进行通信加密,确保无线数据传输的安全性。

- 认证机制:使用802.1X认证机制,通过RADIUS服务器进行用户身份验证,确保只有合法用户能接入网络。

7 安全存储

安全存储是指加密存储在移动终端设备上的数据,以保护数据不被未经授权访问。此外,在移动终端硬件中,有许多种密钥和唯一ID需要安全存储,这些数据的存储方式和机制依赖于设备厂商的安全机制和策略可以各有不同。

1)硬件唯一密钥(Hardware Unique Key, HUK)

HUK用于设备唯一标识和加密密钥生成,通常存储在SE中,或在AP芯片的TEE中,或通过OTP熔丝机制实现。

2)设备根密钥(Device Root Key, DRK)

DRK用于设备管理和安全操作的根密钥,通常存储在SE中,以确保其高安全性。

3)身份验证密钥(Authentication Keys)

用于用户身份验证,如PIN码、指纹、面部识别等,一般存储在SE中,以确保身份验证过程的安全性。

4)加密密钥

用于数据加密和解密,保护存储数据和传输数据的安全,可以存储在AP芯片的TEE中或SE中。

5)签名密钥

用于数字签名和数据完整性验证,通常存储在SE中。

6)无线接口密钥(Wireless Interface Keys)

用于蓝牙、WiFi等无线通信的加密和认证,通常存储在AP芯片的TEE中或SE中。

7)SIM卡密钥

用于网络认证和加密通信,存储在SIM卡的SE中。

8)唯一设备标识(Unique Device Identifier, UDID)

UDID用于唯一标识设备,可以通过OTP熔丝机制实现,或存储在SE中。

小结如下:

SE:存储高度敏感的密钥和数据,如HUK、DRK、身份验证密钥和签名密钥。

AP芯片的TEE:存储需要高安全性但不如SE敏感的数据,如某些加密密钥和无线接口密钥。

OTP熔丝机制:存储不可变的设备标识和密钥,如UDID和HUK。

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

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

相关文章

HTML+CSS+JavaScript入门学习

目录 1. 前言2. HTML2.1 HTML简介2.2 HTML标签 3. CSS3.1 CSS知识整理及总结3.2 CSS之flex布局 4. JavaScript4.1 JavaScript知识整理及总结1-基础篇4.2 JavaScript知识整理及总结2-进阶篇 1. 前言 本文主要采用转载的形式,偶尔发现了一个比较不错的博客站点&#…

WPS+Python爬取百度之星排名

运行效果 手动拉取 https://www.matiji.net/exam/contest/contestdetail/146 如果手动查找,那么只能通过翻页的方式,每页10行(外加一行自己)。 爬取效果预览 本脚本爬取了个人排名和高校排名,可以借助WPS或MS Offi…

华为OSPF配置DR和BDR与指定DR

基础配置 <Huawei>sys #进入配置模式 Enter system view, return user view with CtrlZ. [Huawei]un in en #关闭报文弹窗 Info: Information center is disabled. [Huawei]sys R1 #设备名更改为R1 [R1]int g0/0/0 …

调度系统揭秘(下):调度算法与架构设计

文章目录 一、调度算法1.1、广度优先:1.2、深度优先1.3、总结广度优先搜索&#xff08;BFS&#xff09;深度优先搜索&#xff08;DFS&#xff09; 二、架构设计2.1、Master/Slave架构优劣分析 2.2、Leader架构优劣分析 2.3、总结 一、调度算法 在调度系统中&#xff0c;调度算…

.hmallox勒索病毒:全面防御策略

引言 近年来&#xff0c;随着网络技术的飞速发展&#xff0c;勒索病毒成为网络安全领域的一大威胁&#xff0c;其中.hmallox勒索病毒以其高度的隐蔽性和破坏性&#xff0c;尤为引人注目。这种病毒通过加密用户计算机中的重要文件&#xff0c;并以支付赎金作为解密条件&#xff…

MyBatis中二级缓存的配置与实现原理

大家好&#xff0c;我是王有志&#xff0c;一个分享硬核 Java 技术的金融摸鱼侠&#xff0c;欢迎大家加入 Java 人自己的交流群“共同富裕的 Java 人”。 上一篇文章《MyBatis中一级缓存的配置与实现原理》中&#xff0c;我们已经掌握了 MyBatis 一级缓存的配置&#xff08;虽然…

vue3实现echarts——小demo

版本&#xff1a; 效果&#xff1a; 代码&#xff1a; <template><div class"middle-box"><div class"box-title">检验排名TOP10</div><div class"box-echart" id"chart1" :loading"loading1"&…

配置管理工具 Puppet:安装、配置和编写简单的 Puppet Manifest

配置管理工具 Puppet&#xff1a;安装、配置和编写简单的 Puppet Manifest Puppet 是一种流行的开源配置管理工具&#xff0c;它允许你自动化和管理服务器配置。通过 Puppet&#xff0c;你可以确保服务器以一致和可重复的方式配置&#xff0c;从而提高效率、减少错误并降低管理…

CDGA考试真题(二)

1. 文件和内容管理是针对存储在关系型数据库之外的数据和信息的采集、存储、访问和使用过程的管理。重点在于保持文件和其他非结构化或半结构化信息的完整性,并使这些信息能够被访问。以下哪项不属于此目标:(D) A、确保能够高效地采集和使用非结构化的数据和信息B、确保结构…

VSCode常用快捷键和功能

格式化代码&#xff1a; ShiftAltF JS中自动输入console.log()的方法&#xff1a; 先在vscode中&#xff0c;找到文件 > 首选项 > 配置用户代码片段&#xff0c;在弹出的下拉框处方输入javascript.json&#xff0c;复制下面的代码&#xff0c;覆盖原来的代码&#xff0…

Linux操作系统中逻辑卷的缩减

流程&#xff1a;第一步先是要缩减逻辑卷的文件系统。 第二步就是要去缩减逻辑卷的物理边界。 注意事项&#xff1a; 1.逻辑卷要处于卸载状态&#xff0c; 2.建议先备份数据 3.在缩减逻辑卷的时候&#xff0c;要注意xfs文件系统的逻辑卷是不支持直接进行缩减的。 4.在缩减…

选择结构作业题(五.2)

阿尔法编程第五章(31--50) 31.有 3 个整数 a,b,c,由键盘输入,输出其中最大的数。 // 请在此处编写 C 程序 #include<stdio.h>int max(int a,int b) {if(a>b)return a;else if(a<b)return b; } int main(){int a,b,c;scanf("%d %d %d",&a,&am…

Linux:DHCP服务配置

目录 一、DHCP概述以及DHCP的好处 1.1、概述 1.2、DHCP的好处 二、DHCP的模式与分配方式 2.1、模式 2.2、DHCP的分配方式 三、DHCP工作原理 四、安装DHCP服务 五、DHCP局部配置并且测试 5.1、subnet 网段声明 5.2、客户机预留指定的固定ip地址 一、DHCP概述以及DHCP…

下载nvm 管理多个node版本并切换

nvm管理多个node版本并切换 安装nvm时不能安装任何node版本&#xff08;先删除node再安装nvm&#xff09;&#xff0c;保证系统无任何node.js残留 1. 卸载node 控制面板中卸载nodejs 删除以下文件夹&#xff1a; C:\Program Files (x86)\Nodejs C:\Program Files\Nodejs C…

MybatisX插件的简单使用教程

搜索mybatis 开始生成 module path&#xff1a;当前项目 base package:生成的包名&#xff0c;建议先独立生成一个&#xff0c;和你原本的项目分开 encoding&#xff1a;编码&#xff0c;建议UTF-8 class name strategy&#xff1a;命名选择 推荐选择camel&#xff1a;驼峰命…

Go:hello world

开启转职->Go开发工程师 下面是我的第一个go的程序 在上面的程序介绍&#xff1a; 1、package main 第一行代码package main定义了包名。必须在源文件中非注释的第一行指明这个文件属于哪个包&#xff0c;如&#xff1a;package main。package main表示一个可独立执行的程…

spRAG框架学习小结

spRAG是什么 spRAG是一个针对非结构化数据的检索引擎。它特别擅长处理对密集文本的复杂查询&#xff0c;比如财务报告、法律文件和学术论文。有两种关键方法用于提高性能&#xff0c;超越了普通的RAG系统&#xff1a; 自动上下文&#xff08;AutoContext&#xff09;&#xff…

µCOS-III 任务同步机制-任务信号量

1. 什么是任务信号量 任务信号量是一种用于任务间同步和通信的计数器&#xff0c;通常用于解决任务间的竞争条件和资源共享问题。在C/OS-III中&#xff0c;任务信号量提供了二进制信号量和计数信号量两种类型&#xff1a; 二进制信号量&#xff1a;只能取值0或1&#xff0c;适…

Debezium报错处理系列之第109篇:解决升级日志解析jar包重启集群出现的字段类型和值不匹配的错误

Debezium报错处理系列之第109篇:解决升级日志解析jar包重启集群出现的字段类型和值不匹配的错误 一、完整报错二、错误原因三、解决方法Debezium从入门到精通系列之:研究Debezium技术遇到的各种错误解决方法汇总: Debezium从入门到精通系列之:百篇系列文章汇总之研究Debezi…

函数式接口的定义及常见类型

文章目录 什么是函数式接口函数式接口的语法基本函数式接口定制化函数接口参考资料 什么是函数式接口 函数式接口是一个具有且仅有一个抽象方法&#xff08;Abstract Method&#xff09;的接口。在Java中&#xff0c;函数式接口被用于支持函数式编程的特性&#xff0c;允许将函…