TEE-OS 入门前置篇:密码学基础核心
2026/6/12 21:19:53 网站建设 项目流程

TEE-OS 入门前置篇:密码学基础核心

承接上一篇的安全基础概念,本篇我们来讲解所有安全技术的核心工具——密码学。如果说隔离是安全的城墙,那么密码学就是城墙上的锁和卫兵。TEE的所有安全能力,从安全启动到安全存储,从支付签名到生物识别,本质上都是密码学技术的具体应用。
作为一名工程师,你不需要成为密码学家,不需要精通每一个算法的数学原理,但你必须准确理解每个算法的特性、适用场景和常见陷阱。90%的安全漏洞不是因为算法本身被破解,而是因为开发者用错了算法。

一、密码学的核心目标

所有密码学算法最终都是为了实现上一篇讲到的安全三要素:
  • 机密性:加密算法保证信息不被未授权读取
  • 完整性:哈希算法和数字签名保证信息不被未授权篡改
  • 不可否认性:数字签名保证行为主体无法否认自己的操作

二、对称加密:大数据量加密的首选

1. 核心原理

对称加密使用同一把密钥进行加密和解密。
明文 + 密钥 → 加密算法 → 密文
密文 + 同一把密钥 → 解密算法 → 明文

2. 核心特性

  • 速度极快:比非对称加密快1000倍以上
  • 适合加密大数据量:文件、视频、固件等
  • 密钥分发困难:通信双方必须通过安全通道交换密钥
  • 无法提供身份认证和不可否认性

3. 主流算法详解

(1)AES(Advanced Encryption Standard)
  • 地位:全球通用的对称加密标准,被所有国家和行业认可
  • 密钥长度:128位(AES-128)、192位(AES-192)、256位(AES-256)
  • 安全强度:AES-128足以抵御目前所有已知的攻击,AES-256用于最高安全级别场景
  • TEE应用:安全存储、OTA升级包加密、DRM内容解密、硬盘加密
(2)SM4
  • 地位:中国国家密码管理局发布的国密对称加密标准
  • 密钥长度:128位
  • 安全强度:与AES-128相当
  • 应用场景:国内金融、政务、军工等必须使用国密算法的领域
  • MTK平台支持:所有联发科芯片都内置了SM4硬件加速引擎

4. 关键概念:分组加密工作模式

对称加密算法只能加密固定长度的数据块(AES和SM4都是128位)。要加密任意长度的数据,需要使用工作模式
工作模式
特点
安全性
推荐程度
ECB
最简单,每个块独立加密
极差,相同明文块生成相同密文块
绝对禁止使用
CBC
每个块与前一个密文块异或后再加密
中等,需要IV向量
不推荐用于新系统
GCM
认证加密模式,同时提供加密和完整性校验
极高
强烈推荐,所有新系统的首选
重要警告:永远不要在生产环境中使用ECB模式。它会泄露明文的统计特征,即使不知道密钥也能破解部分信息。

5. TEE中的最佳实践

  • 所有大数据量加密统一使用AES-256-GCMSM4-GCM
  • IV向量必须是随机生成的,且每个加密操作使用不同的IV
  • 永远不要自己实现加密算法,使用TEE内核提供的硬件加速接口

三、非对称加密:解决密钥分发问题

1. 核心原理

非对称加密使用一对密钥:公钥和私钥。
  • 公钥可以公开给任何人
  • 私钥必须严格保密,永远不能泄露
  • 公钥加密的内容只能用对应的私钥解密
  • 私钥签名的内容只能用对应的公钥验签

2. 核心特性

  • 解决密钥分发问题:不需要安全通道交换密钥
  • 提供身份认证和不可否认性
  • 速度极慢:比对称加密慢1000倍以上
  • 不适合加密大数据量

3. 主流算法详解

(1)RSA
  • 地位:最经典、应用最广泛的非对称加密算法
  • 密钥长度:2048位(最低安全要求)、3072位(推荐)、4096位(最高安全)
  • 缺点:密钥太长,计算量大,速度慢
  • 现状:正在被ECC逐步取代,但在很多老系统中仍在使用
(2)ECC(Elliptic Curve Cryptography,椭圆曲线加密)
  • 地位:现代非对称加密的主流标准
  • 核心优势:在相同安全强度下,密钥长度比RSA短得多
  • 安全强度对比
ECC密钥长度
RSA等效密钥长度
256位
3072位
384位
7680位
  • 常用曲线
    • secp256r1(NIST P-256):全球通用标准
    • secp256k1:比特币使用的曲线
  • TEE应用:密钥交换、数字签名、身份认证
(3)SM2
  • 地位:中国国密非对称加密标准
  • 基于椭圆曲线:安全强度与ECC secp256r1相当
  • 应用场景:国内金融、政务、军工领域
  • MTK平台支持:所有联发科芯片都内置了SM2硬件加速引擎

4. 最常见的使用误区

绝对不要用非对称加密直接加密大数据。非对称加密的正确用法是:
  1. 生成一个随机的对称密钥(会话密钥)
  2. 用对称密钥加密大数据
  3. 用对方的公钥加密会话密钥
  4. 将加密后的会话密钥和密文一起发送给对方
  5. 对方用自己的私钥解密会话密钥,再用会话密钥解密大数据

5. TEE中的最佳实践

  • 所有新系统优先使用ECC secp256r1SM2
  • RSA只用于兼容老系统,且密钥长度至少2048位
  • 私钥永远不要离开TEE,所有私钥操作都在TEE内部完成

四、哈希算法:完整性校验的基石

1. 核心原理

哈希算法将任意长度的输入数据转换为固定长度的输出(哈希值)。

2. 三个核心特性

  1. 单向性:无法从哈希值反推出原始数据
  2. 抗碰撞性:无法找到两个不同的输入数据,生成相同的哈希值
  3. 确定性:相同的输入永远生成相同的输出

3. 主流算法详解

(1)SHA-256
  • 地位:全球通用的哈希算法标准
  • 输出长度:256位(32字节)
  • 安全强度:极高,目前没有有效的破解方法
  • TEE应用:数据完整性校验、密码存储、数字签名、OTA升级包校验
(2)SM3
  • 地位:中国国密哈希算法标准
  • 输出长度:256位
  • 安全强度:与SHA-256相当
  • 应用场景:国内金融、政务、军工领域

4. 绝对禁止使用的算法

  • MD5:已被完全破解,碰撞攻击非常容易
  • SHA-1:已被破解,2017年谷歌发布了SHA-1碰撞攻击
  • 这两个算法只能用于校验非安全相关的数据,绝对不能用于任何安全场景

5. 典型应用场景

(1)数据完整性校验
发送方:计算文件的SHA-256哈希值 → 发送文件和哈希值 接收方:计算收到文件的SHA-256哈希值 → 与发送的哈希值对比 如果相同,说明文件没有被篡改;如果不同,说明文件被篡改
(2)密码存储
永远不要明文存储密码,也不要用加密的方式存储密码。正确的做法是: 存储:密码 + 随机盐 → SHA-256哈希 → 存储哈希值和盐 验证:用户输入密码 + 存储的盐 → SHA-256哈希 → 与存储的哈希值对比

五、数字签名:身份认证与不可否认性

1. 核心原理

数字签名是非对称加密哈希算法的结合。

2. 完整签名与验签流程

签名流程(发送方):
  1. 计算原始数据的SHA-256哈希值
  2. 用自己的私钥对哈希值进行加密,生成签名
  3. 将原始数据和签名一起发送给接收方
验签流程(接收方):
  1. 计算收到的原始数据的SHA-256哈希值
  2. 用发送方的公钥对签名进行解密,得到发送方计算的哈希值
  3. 对比两个哈希值,如果相同,说明:
  • 数据确实是由持有对应私钥的发送方发送的(身份认证)
  • 数据在传输过程中没有被篡改(完整性)
  • 发送方无法否认自己发送了这个数据(不可否认性)

3. 为什么要先哈希再签名?

  • 非对称加密速度慢,只加密哈希值(32字节)比加密整个原始数据快得多
  • 大多数非对称加密算法只能加密固定长度的数据,无法加密任意长度的原始数据

4. TEE中的核心应用

数字签名是TEE中最重要的安全机制之一:
  1. 安全启动:每一级固件在加载前都会验证签名
  2. OTA升级:升级包在安装前会验证签名
  3. TA验证:每个TA在加载前都会验证厂商签名
  4. 支付签名:交易信息在TEE中用支付私钥签名

六、密钥管理与安全存储:TEE的核心价值

密码学算法本身是公开的,系统的安全最终取决于密钥的安全。如果密钥被泄露,再强的算法也毫无意义。这正是TEE存在的核心价值——保护密钥的安全。

1. 密钥分级体系

现代安全系统采用分层密钥管理体系,不同级别的密钥有不同的安全要求:
最高安全级别 ↑ 根密钥(HUK) ↑ 设备加密密钥(DEK) ↑ 用户密钥(UK) ↑ 会话密钥(SK) ↑ 最低安全级别
(1)根密钥(Hardware Unique Key, HUK)
  • 存储位置:烧录在芯片的efuse中,一次性可编程
  • 特性:每个设备唯一,永远无法读取,永远无法修改
  • 作用:整个系统的信任根,用于派生所有其他密钥
  • 安全级别:最高,只有TEE内核可以访问
(2)设备加密密钥(Device Encryption Key, DEK)
  • 生成方式:由HUK派生而来
  • 存储位置:加密存储在RPMB分区中
  • 作用:用于加密所有用户密钥和安全存储数据
  • 安全级别:高,只有TEE内核可以访问
(3)用户密钥(User Key, UK)
  • 生成方式:用户创建或导入的密钥,如支付密钥、加密密钥
  • 存储位置:用DEK加密后存储在普通文件系统中
  • 作用:用于加密用户数据和执行安全操作
  • 安全级别:中,只有对应的TA可以访问
(4)会话密钥(Session Key, SK)
  • 生成方式:每次会话随机生成
  • 存储位置:TEE内部内存中
  • 作用:用于单次会话的加密
  • 安全级别:低,会话结束后立即销毁

2. TEE安全存储的实现原理

这是TEE最核心的功能,也是很多人最困惑的地方:为什么即使root了Android系统,也无法读取TEE中的安全存储数据?
答案很简单:加密密钥永远不会出现在非安全世界
完整的安全存储流程:
  1. 用户需要存储一个敏感数据
  2. TA将数据发送给TEE内核
  3. TEE内核用HUK派生的DEK加密数据
  4. TEE内核将加密后的数据返回给TA
  5. TA将加密后的数据存储在普通的文件系统中(如/data/tee/)
读取流程:
  1. TA从文件系统读取加密后的数据
  2. TA将加密数据发送给TEE内核
  3. TEE内核用DEK解密数据
  4. TEE内核将解密后的明文数据返回给TA
  5. TA使用明文数据,使用完成后立即从内存中清除
关键点:DEK永远不会离开TEE内核,非安全世界只能看到加密后的数据。即使攻击者获得了Android系统的root权限,也无法获取DEK,也就无法解密安全存储的数据。

3. 密钥管理的铁律

  1. 密钥永远不要出现在非安全世界:所有密钥操作都必须在TEE内部完成
  2. 永远不要硬编码密钥:任何密钥都不能写在代码或配置文件中
  3. 最小权限原则:每个TA只能访问自己的密钥,不能访问其他TA的密钥
  4. 密钥生命周期管理:密钥必须有明确的生成、使用、更新、销毁流程
  5. 永远不要备份私钥:私钥一旦泄露,整个系统的安全就不复存在

七、本篇总结与下一篇预告

本篇核心要点

  1. 对称加密速度快,适合加密大数据;非对称加密解决密钥分发问题,提供身份认证
  2. 哈希算法提供数据完整性校验,是数字签名的基础
  3. 数字签名同时提供身份认证、完整性和不可否认性
  4. 系统的安全最终取决于密钥的安全,TEE的核心价值就是保护密钥
  5. 永远不要自己实现密码学算法,使用经过验证的标准实现

三个密码学素养

  1. 不要发明密码学算法:即使是最优秀的密码学家也很难设计出安全的算法
  2. 不要修改密码学算法的参数:任何对标准算法的修改都可能引入安全漏洞
  3. 永远怀疑密钥的安全性:假设密钥总有一天会泄露,设计相应的应急方案

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询