[终端安全]-1 总体介绍
有朋友一直在和笔者研讨智驾安全这个热门话题,笔者十多年工作从不离终端安全这个核心话题(芯片安全、操作系统安全、应用安全),近来也一直在梳理终端安全体系;手机、汽车皆是我们生活中应用最普遍的智能终端,如何系统考量终端安全架构,从芯片-OS-应用-数据分层设计安全防护方案,全方位保护终端安全?
接下来,笔者将从移动端、汽车安全介绍延伸到智驾安全。
1 终端安全架构
构建终端设备的安全架构需要考虑从硬件到数据的多层次防护措施,包括硬件芯片、操作系统、应用程序和数据,每一层次都需要采用相应的安全技术和策略。
1)硬件芯片层
可信执行环境(TEE):提供隔离的安全区域,运行敏感代码和处理敏感数据。
安全元件(SE):如SIM卡、eSIM、TPM等,提供加密密钥的存储和管理。
关键技术:
- 硬件加密:支持硬件级加密和解密操作,提高性能和安全性。
- 防篡改设计:确保物理防护,防止设备被拆解和篡改。
- 安全启动:从根部信任开始,每一层加载和执行前都要验证前一层的签名。
- OTP(One-Time Programmable)存储:存储设备唯一的信任根公钥。
2)操作系统层
2.1)安全内核
- 访问控制:
SELinux(Security-Enhanced Linux):Android 使用 SELinux 作为强制访问控制的基础,提供细粒度的权限管理和系统资源访问。
沙箱机制:IOS主要通过独特的沙盒和权限管理机制提供访问控制,每个应用在独立的沙箱中运行,限制对系统资源的访问。
- 内核模块签名:确保内核模块在加载前必须经过签名验证。
2.2)权限管理
- 应用权限模型:应用程序在安装时必须声明所需权限,用户决定是否授予。
- 动态权限管理:应用在运行时请求特定权限,用户可实时决定是否授予。
2.3)更新机制
- 安全更新:定期发布安全补丁,修复漏洞和安全缺陷。
- 原子更新:确保系统更新过程中的一致性和完整性,防止中途失败导致系统不可用。
3)应用程序层
3.1)应用隔离
- 独立进程和虚拟内存空间:每个应用在独立的进程中运行,使用独立的虚拟内存空间。
- 应用签名:每个应用在发布前必须经过开发者签名,操作系统在安装和更新时验证签名。
3.2)应用防护
- 代码混淆和加壳:增加应用代码的复杂性,防止逆向工程和破解。
- 防篡改检测:应用在运行时检测自身是否被篡改,防止恶意修改。
- 数据加密:应用处理和存储敏感数据时使用加密技术。
3.3)应用审核
- 应用商店审核:发布前进行安全审核,检测潜在的恶意行为和漏洞。
- 动态分析:运行时监控应用行为,检测和阻止异常和恶意行为。
4)数据层
4.1)数据加密
- 静态数据加密:存储在设备上的数据使用加密技术进行保护,如AES加密。
- 动态数据加密:在数据传输过程中使用加密技术,如TLS/SSL。
4.2)数据隔离
- 用户数据隔离:不同用户的数据隔离存储,防止越权访问。
- 敏感数据保护:敏感数据(如支付信息、个人隐私数据)存储在受保护的区域,如TEE或SE中。
4.3)访问控制
- 多因素认证(MFA):增加访问安全性,如使用密码、指纹、人脸识别等多种验证方式。
- 细粒度访问控制:基于用户角色和权限,控制对数据的访问。
5)综合安全策略
- 入侵检测和防御系统(IDS/IPS):实时监控系统和网络活动,检测和防御潜在的攻击。
- 日志记录和分析:记录系统和应用的安全事件,定期分析以发现潜在的安全威胁。
- 用户教育和意识提升:通过培训和教育,提高用户的安全意识和防护能力。
2 攻击技术
移动端设备因其普及性和大量存储敏感信息的特点,成为各种攻击的主要目标。
1)恶意软件
病毒
- 工作原理:通过感染合法应用或利用漏洞传播,可能窃取数据、破坏系统或执行恶意操作。
- 防护措施:安装防病毒软件、保持系统和应用更新、从官方应用商店下载应用。
间谍软件(Spyware)
- 工作原理:隐秘地监视用户活动,窃取敏感信息如位置、通话记录、短信等。
- 防护措施:权限管理、定期扫描设备、避免下载可疑应用。
勒索软件(Ransomware)
- 工作原理:加密用户数据,要求支付赎金才能解锁。
- 防护措施:定期备份数据、安装防恶意软件、保持系统更新。
2)网络攻击
中间人攻击(MITM)
- 工作原理:攻击者拦截和修改设备与服务器之间的通信,窃取或篡改数据。
- 防护措施:使用 HTTPS、VPN,双向鉴权。
网络钓鱼(Phishing)
- 工作原理:通过伪造的电子邮件、短信或网站诱骗用户泄露敏感信息。
- 防护措施:提高用户安全意识、使用反钓鱼软件、双因素认证。
3)应用漏洞攻击
代码注入
- 工作原理:通过漏洞注入恶意代码,执行未授权的操作,如 SQL 注入、脚本注入等。
- 防护措施:安全编码实践、输入验证、使用最新的开发库和框架。
缓冲区溢出
- 工作原理:通过超出预期长度的数据覆盖内存区域,执行恶意代码。
- 防护措施:使用安全编程技术、防止使用不安全的函数、进行代码审计。
4)系统级攻击
越狱和 Rooting
- 工作原理:利用系统漏洞获取设备的根权限,绕过安全限制,安装未授权软件。
- 防护措施:定期更新系统、防止安装不明来源的应用、监控设备状态。
提权攻击(Privilege Escalation)
- 工作原理:通过系统漏洞获取更高的权限,进行未授权的操作。
- 防护措施:及时打补丁、使用 SELinux 等强制访问控制技术。
5)硬件攻击
硬件篡改
- 工作原理:物理访问设备,通过硬件手段篡改或窃取数据。
- 防护措施:物理防护措施、设备防篡改设计、安全引导机制。
侧信道攻击
- 工作原理:通过分析设备的物理泄露信息(如电磁辐射、功耗变化)获取敏感数据。
- 防护措施:物理隔离、随机化操作、使用抗侧信道攻击的硬件设计。
3 前沿安全技术
1)后量子密码
后量子密码学(Post-Quantum Cryptography, PQC)是指能够抵抗量子计算机攻击的密码学算法。随着量子计算技术的进步,传统的公钥密码算法如RSA和ECC可能被量子计算机轻松破解,因此研究和开发后量子密码算法成为密码学领域的重点。美国国家标准与技术研究院(NIST)自2016年启动了后量子密码标准化项目,经过三轮严格评选后公布了首批4种后量子密码算法:一般加密,CRYSTALS-Kyber算法;数字签名用于身份验证,CRYSTALS-Dilithium、Falcon、SPHINCS+,这四种算法将于2024年即今年开始投入应用。以下是几种主流的后量子密码算法介绍:
1.1)基于格的密码学(Lattice-based Cryptography)
- Kyber:用于公钥加密。
- Dilithium:用于数字签名。
- 优点:高效、简单且具有良好的安全性,适用于多种应用场景。
1.2)基于代码的密码学
- Classic McEliece:基于错误纠正码的公钥加密算法。
- 优点:经过多年的研究和分析,被认为具有极高的安全性。
1.3)基于多变量多项式的密码学
- Rainbow:用于数字签名。
- 优点:提供多样的安全性选择,适用于资源受限设备。
1.4)基于散列的密码学
- SPHINCS+:无状态的数字签名算法。
- 优点:安全性强,基于成熟的密码学原理(散列函数)。
1.5)基于同源理论的密码学(Isogeny-based Cryptography)
- SIKE(Supersingular Isogeny Key Encapsulation):用于密钥交换。
- 优点:密钥尺寸小,适用于带宽受限的通信。
2)零信任架构
零信任架构是一种基于“永不信任,总是验证”原则的安全框架。其核心理念是,任何网络上的实体都不应被默认信任,无论是内部还是外部,所有访问请求都必须经过严格的验证。
2.1)主要组件
身份验证:使用多因素认证 (MFA) 确保用户身份的真实性。
设备验证:确保设备的安全状态,确保其未被感染或篡改。
网络分段:将网络分为多个安全区域,限制不同区域之间的访问。
持续监控:实时监控和分析用户行为,识别异常活动。
细粒度访问控制:基于身份、设备和环境因素,动态决定访问权限。
2.2)实现方法
强身份验证:每次访问资源时都需要验证身份,使用 MFA 增强安全性。
最小权限原则:仅授予用户和设备最低限度的访问权限,减少潜在攻击面。
加密通信:确保所有通信通道都是加密的,防止数据在传输过程中被窃取或篡改。
监控和分析:使用高级监控工具和行为分析技术,持续检测和响应潜在威胁。
3)行为分析
行为分析是一种通过监控和分析用户和系统行为来检测和预防安全威胁的技术,目标是识别异常行为模式,从而发现潜在的攻击和安全漏洞。
3.1)主要组件
数据收集:收集用户和系统的活动数据,包括登录记录、文件访问、网络流量等。
基线建立:通过历史数据建立正常行为的基线。
实时监控:持续监控用户和系统行为,识别异常模式。
异常检测:使用机器学习和数据分析技术,检测偏离基线的行为。
响应机制:对检测到的异常行为进行响应,包括告警、阻断和调查。
3.2)实现方法
日志分析:通过分析系统日志,识别异常登录、文件访问和网络活动。
用户行为分析 (UBA):建立每个用户的行为基线,检测偏离基线的活动。
网络流量分析:监控和分析网络流量,识别异常的通信模式和数据传输。
机器学习:使用机器学习算法,自动识别复杂的行为模式和潜在威胁。
4)区块链技术
区块链是一种分布式账本技术,通过加密技术和共识机制实现去中心化和数据不可篡改性,广泛应用于加密货币、智能合约和供应链管理等领域。
4.1)主要组件
分布式账本:所有节点共享一个账本,记录所有交易和数据。
共识机制:通过共识算法(如 PoW、PoS 等),确保所有节点对账本数据的一致性。
加密技术:使用公钥和私钥加密技术,确保交易的安全性和不可否认性。
智能合约:自动执行的合约代码,嵌入区块链中,实现去中心化的应用程序。
4.2)实现方法
节点验证:每个节点独立验证交易,确保数据的真实性和一致性。
哈希链:每个区块包含前一个区块的哈希值,确保数据不可篡改。
分布式存储:数据存储在多个节点上,提高系统的可靠性和抗攻击能力。
智能合约执行:通过智能合约,实现自动化和可信赖的交易和应用程序。
5)SOAR
SOAR (Security Orchestration, Automation, and Response)是一种集成了安全编排、自动化和响应的技术框架,旨在提高安全运营中心 (SOC) 的效率和响应能力,它通过自动化任务和协调安全工具,减少手动操作和响应时间。
5.1)主要组件
编排:集成和协调多个安全工具和技术,统一管理安全事件和响应流程。
自动化:自动化常见的安全任务,如事件分类、告警处理和威胁情报分析。
响应:制定和执行响应策略,快速应对安全事件,减轻潜在损害。
5.2)实现方法
事件管理:收集和整理安全事件,优先处理关键事件。
自动化脚本:使用预定义的脚本和工作流,自动执行常见的安全任务。
威胁情报集成:实时获取和分析威胁情报,提高事件响应的准确性和速度。
协作平台:提供安全团队协作的平台,分享信息和协调响应行动
相关文章:

[终端安全]-1 总体介绍
有朋友一直在和笔者研讨智驾安全这个热门话题,笔者十多年工作从不离终端安全这个核心话题(芯片安全、操作系统安全、应用安全),近来也一直在梳理终端安全体系;手机、汽车皆是我们生活中应用最普遍的智能终端࿰…...

Mysql5.7并发插入死锁问题
死锁的产生条件 互斥、请求和保持、不可剥夺、循环等待 MySQL锁类型 死锁复现 环境:Mysql 5.7版本,Innodb引擎,可重复度隔离级别 并发场景下使用duplicate key update插入或更新数据可能会造成死锁,下面就产生死锁的条件进行模…...

网络“ping不通”,如何排查和解决呢?
网络问题往往复杂且难以预测,其中“ping不通”是常见的网络故障之一。 1. 确认问题现象 首先,明确问题是完全无法ping通(无响应)还是ping通但有高延迟或丢包。这有助于缩小问题范围。 2. 本地检查 网络接口状态:使用ifconfig(Linux)或ipc…...

日常学习--20240706
1、udp协议的特点有哪些? a、无连接,发送和接收数据不需要建立连接,开销小,实时性好 b、不可靠传输,不保证数据包能够到达目的地,也不保证数据包的顺序 c、面向数据报的,以数据报形式发送数据…...

入门PHP就来我这(高级)12 ~ 获取数据
有胆量你就来跟着路老师卷起来! -- 纯干货,技术知识分享 路老师给大家分享PHP语言的知识了,旨在想让大家入门PHP,并深入了解PHP语言。 1 从结果集中获取一行作为对象 表中数据行如下: 利用mysqli_fetch_array()函数获…...

AIGC专栏12——EasyAnimateV3发布详解 支持图文生视频 最大支持960x960x144帧视频生成
AIGC专栏12——EasyAnimateV3发布详解 支持图&文生视频 最大支持960x960x144帧视频生成 学习前言项目特点生成效果相关地址汇总项目主页Huggingface体验地址Modelscope体验地址源码下载地址 EasyAnimate V3详解技术储备Diffusion Transformer (DiT)Hybrid Motion ModuleU-V…...

【python】python猫眼电影数据抓取分析可视化(源码+数据集+论文)【独一无二】
👉博__主👈:米码收割机 👉技__能👈:C/Python语言 👉公众号👈:测试开发自动化【获取源码商业合作】 👉荣__誉👈:阿里云博客专家博主、5…...

Android 四大组件
1. Activity 应用程序中,一个Activity通常是一个单独的屏幕,它上面可以显示一些控件,也可以监听并对用户的事件做出响应。 Activity之间通过Intent进行通信,在Intent 的描述结构中,有两个最重要的部分:动…...

【Python】已解决:ModuleNotFoundError: No module named ‘nltk’
文章目录 一、分析问题背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决:ModuleNotFoundError: No module named ‘nltk’ 一、分析问题背景 在使用Python进行自然语言处理或文本分析时,我们经常会用到各种库来辅助我们的工…...

【Docker系列】Docker 命令行输出格式化指南
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

使用Netty构建高性能的网络应用
使用Netty构建高性能的网络应用 大家好,我是微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Netty是一个基于Java NIO的异步事件驱动的网络应用框架,专为快速开发高性能、高可靠性的网络服务器和客户…...

C++11新特性【下】{lambda表达式、可变模板参数、包装器}
一、lambda表达式 在C98中,如果想要对一个数据集合中的元素进行排序,可以使用std::sort方法。如果待排序元素为自定义类型,需要用户定义排序时的比较规则,随着C语法的发展,人们开始觉得上面的写法太复杂了,…...

SpringBoot使用手册
SpringBoot使用手册 1、自动装配 1.1、创建spring Boot项目 在之前的文章中已经专门写过,这里不做赘述。 1.2、pom.xml 1.2.1、版本管理 在学习完maven项目后,我们学习框架时首先阅读的就是pom.xml文件,这里是管理自己该项目中所用到的…...

HTML CSS 基础复习笔记 - 列表使用
用于自己复习 自定义列表 示例代码 <!DOCTYPE html> <html> <head><title>Definition List Example</title> </head> <body><h1>古诗</h1><dl><dt>静夜思</dt><dd>床前明月光,疑…...

017-GeoGebra基础篇-微积分函数求解圆弧面积问题
基础篇慢慢的走进尾声,今天给大家带来一个小项目,是关于高中数学微积分部分的展示,这个项目主要包含了函数的介绍、函数与图形绘制的区别、区域函数图像的绘制、积分函数的应用、动态文本的调用、嵌套滑动条的应用等等,以及其他常…...

Element中的选择器组件Select (一级选择组件el-select)
简述:在 Element UI 中,ElSelect(或简称为 Select)是一个非常常用的选择器组件,它提供了丰富的功能来帮助用户从一组预定义的选项中选择一个或多个值。这里来简单记录一下 一. 组件和属性配置 <el-selectv-model&q…...

数值分析笔记(五)线性方程组解法
三角分解法 A的杜利特分解公式如下: u 1 j a 1 j ( j 1 , 2 , ⋯ , n ) , l i 1 a i 1 / u 11 ( i 2 , 3 , ⋯ , n ) , u k j a k j − ∑ m 1 k − 1 l b m u m j ⇒ a k j ( j k , k 1 , ⋯ , n ) , l i k ( a i k − ∑ m 1 k − 1 l i n u m k ) /…...

IDEA中Maven的配置
目录 1. 安装maven 2. 配置环境变量 3. IDEA中配置Maven 4. 配置仓库目录 1. 安装maven 官网下载地址:Maven – Download Apache Maven 下载后,将zip压缩包解压到某个目录即可。 2. 配置环境变量 变量名称随意,通常为M2_HOMEÿ…...

成人高考本科何时报名-深职训学校帮您规划学习之路
你有想过继续深造自己的学历吗?也许你已经工作多年,但总觉得学历是一块心病,想要通过成人高考本科来提升自己。不用着急,今天我们来聊一聊成人高考本科的报名时间,以及深职训学校如何帮助你顺利完成报名。 深圳成人高…...

C++ STL 协程(Coroutines)
一:什么是协程(Coroutines): 协程是轻量级线程,可以暂停和恢复执行,协程拥有自己的暂停点状态,协程暂停时,将当前状态保存起来,在恢复执行时会恢复之前保存的状态。 二:例子: #include <coroutine> #include <iostream>void doTheWork() {std::cout <…...

虚拟机下基于海思移植QT(一)——虚拟机下安装QT
0.参考资料 1.海思Hi3516DV300 移植Qt 运行并在HDMI显示器上显示 2.搭建海思3559A-Qt4.8.7Openssl开发环境 1.报错解决 通过下面命令查询 strings /lib/x86_64-linux-gnu/libc.so.6 | grep GLIBC_通过命令行没有解决: sudo apt install libc6-dev libc6参考解决…...

计算机网络部分知识点整理
停止等待协议的窗口尺寸为 1。 √以太网标准是IEEE802.3TCP/IP四层,OSI模型有7层,地址解析协议 ARP 在 OSI 参考七层协议属于数据链路层,在TCP/IP 协议属于网络层,ARP作用:将 IP 地址映射到第二层地址,交换…...

【Qt】Qt概述
目录 一. 什么是Qt 二. Qt的优势 三. Qt的应用场景 四. Qt行业发展方向 一. 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架,为应用程序开发者提供了建立艺术级图形界面所需的所有功能。 Qt是完全面向对象的,很容易扩展,同时Qt为开发…...

读书笔记-《魔鬼经济学》
这是一本非常有意思的经济学启蒙书,作者探讨了许多问题,并通过数据找到答案。 我们先来看看作者眼中的“魔鬼经济学”是什么,再选一个贴近我们生活的例子进行阐述。 01 魔鬼经济学 中心思想:假如道德代表人类对世界运转方式的期…...

2024.7.7总结
今天是惊心动魄的一天,记录一下吧! 昨天晚上害怕早上闹铃响了听不到,担心有意外出现,错过回家的车票,于是便在晚上设置了3个闹铃,6:50,7:00,7:05然后也关了静音。没想到,早上按照正…...

uniapp做小程序内打开地图展示位置信息
使用场景:项目中需要通过位置信息打开地图查看当前位置信息在地图那个位置,每个酒店有自己的经纬度和详细地址,点击地图按钮打开内置地图如图 方法如下: <view class"dttu" click"openMap(info.locationY,info.…...

leetcode 283.移动零
leetcode 283.移动零 自己刷题并且进行记录一下 题解 c class Solution { public:void moveZeroes(vector<int>& nums) {int count 0;for (int i 0; i < nums.size(); i) {if(nums[i] ! 0) {nums[count] nums[i];if (count !i) {nums[i] 0;}count;}}} };...

Unity | Shader基础知识(第十七集:学习Stencil并做出透视效果)
目录 一、前言 二、了解unity预制的材质 三、什么是Stencil 四、UGUI如何使用Stencil(无代码) 1.Canvas中Image使用Stencil制作透视效果 2.学习Stencil 3.分析透视效果的需求 五、模型如何使用Stencil 1.shader准备 2.渲染顺序 3.Stencil代码语…...

【3D->2D转换(1)】LSS(提升,投放,捕捉)
Lift, Splat, Shoot 这是一个端到端架构,直接从任意数量的摄像头数据提取给定图像场景的鸟瞰图表示。将每个图像分别“提升(lift)”到每个摄像头的视锥(frustum),然后将所有视锥“投放(splat&a…...

MyBatis 框架核心及面试知识要点
1、什么是 MyBatis? MyBatis 是一款优秀的支持自定义 SQL 查询、存储过程和高级映射的持久层框架,消除了 几乎所有的 JDBC 代码和参数的手动设置以及结果集的检索 。 MyBatis 可以使用 XML,或注解进 行配置和映射,MyBatis 通过将参数映射到配置的 SOL,形…...