Skip to the content.

drivers/crypto/ccp/ 源码中包含了什么东西

这个文件(ccp_c_files_concatenated.txt)是 Linux 内核源码中 AMD Cryptographic Coprocessor (CCP) 驱动及相关安全模块的 C 语言源代码拼接而成,内容覆盖了从底层硬件驱动到上层安全功能(如 SEV、TEE、DBC、HSTI 等)的完整实现。其主要内容可分为以下几大模块:

1. CCP 加密驱动核心(drivers/crypto/ccp/

这部分实现了对 AMD CCP 硬件加速器的支持,提供多种加密算法的内核 crypto API 封装。

驱动通过将用户请求转化为 CCP 硬件命令(ccp_cmd),利用 DMA、scatterlist、命令队列、中断/任务队列等机制,实现了异步、高性能的硬件加速。

2. Secure Processor (SP) 抽象层

3. Platform Security Processor (PSP) 与 SEV(Secure Encrypted Virtualization)

4. 底层硬件操作(ccp-dev-v3.c / ccp-dev-v5.c

5. ccp 是 AMD 独有的

从你提供的 ccp_c_files_concatenated.txt 文件内容来看,它完整地实现了 AMD Cryptographic Coprocessor (CCP) 及其扩展功能(如 Secure Processor (SP)Platform Security Processor (PSP)SEV/SEV-ES/SEV-SNPTEEDBCHSTI 等),这些全部是 AMD 平台特有的硬件安全与加密加速功能,具体体现在以下几个方面:

  1. 硬件架构绑定
    • CCP(Cryptographic Coprocessor)是 AMD CPU(特别是 EPYC 系列)中集成的专用硬件加速引擎,用于执行 AES、SHA、RSA、ECC、DES3、XTS、GCM、CMAC 等密码学操作。
    • 代码大量使用 AMD 特定的寄存器布局(如 CMD_REQ0, Q_MASK_REG, IRQ_STATUS_REG 等)和硬件命令格式。
    • 有明确的版本区分(如 CCP_VERSION(3, 0)CCP_VERSION(5, 0)),对应不同代的 AMD CPU(如 Zen、Zen 2/3)。
  2. 机密计算技术(Confidential Computing)
    • SEV(Secure Encrypted Virtualization)SEV-ESSEV-SNP 是 AMD 独有的虚拟机内存加密与完整性保护技术,用于保护虚拟机免受 hypervisor 或物理攻击。
    • 这些功能依赖 PSP(Platform Security Processor)固件,而 PSP 是 AMD Secure Processor 的一部分,Intel 和 ARM 没有等效实现(Intel 有 TDX,ARM 有 CCA,但机制和接口完全不同)。
  3. 驱动模块与 PCI ID 绑定
    • 代码中注册的 PCI 设备 ID(如 0x1537, 0x1456, 0x1486, 0x15DF 等)都是 AMD 官方分配的 Secure Processor / CCP 设备 ID
    • 驱动通过 sp_pci_table 与这些 AMD 特定的硬件匹配。
  4. 与其他厂商对比
    • Intel 使用 QuickAssist (QAT)AES-NI + SGX/TDX 提供类似功能,但驱动和接口完全不同。
    • ARM 平台通常依赖 TrustZone 或 SMMU + 固件实现 TEE,也没有 CCP/PSP 这类模块。
    • 因此,该代码 无法在非 AMD 平台上运行,也 不适用于其他厂商的加密或安全处理器

什么是 hygon tkm

tkm,很可能是 Hygon(海光)平台在国产化或 OpenAnolis 生态中引入的特定可信密钥管理模块,属于海光对 AMD PSP/CCP 技术的扩展或定制, 并未合并到主线 Linux 内核的 CCP/PSP 驱动中。

因此: 在标准 AMD 平台的 Linux 内核驱动(即你上传的代码)中,不存在 tkm。 如果你在 Hygon 平台或特定发行版(如 OpenAnolis)中看到 tkm,那属于厂商定制模块,需查阅其专属代码仓库或文档。

tkm,这很可能是 Hygon 在 Secure Processor 中新增的密钥管理模块,用于:

不在 AMD PSP 标准功能中,属于 Hygon 对 PSP 的 安全扩展

什么是 amd psp

PSP(Platform Security Processor)和 CCP(Cryptographic Coprocessor)是 AMD 安全处理器(AMD Secure Processor)中两个紧密集成但功能不同的硬件组件。它们的关系可以从硬件、软件和功能三个层面来理解:

PSP 和 CCP 在一个芯片中:

组件 主要职责 典型功能
CCP 通用密码加速 - AES(ECB/CBC/CTR/XTS/GCM/CMAC)
- SHA-1/224/256/384/512
- RSA/ECC
- 硬件随机数(TRNG)
PSP 平台安全与可信计算 - 安全启动(Secure Boot)
- SEV/SEV-ES/SEV-SNP(虚拟机内存加密)
- TEE(可信执行环境)
- DBC(动态性能控制)
- HSTI(安全状态报告)

PSP 依赖密钥和加密操作,部分功能(如 SEV、TEE)内部会调用 CCP 引擎执行底层加密,但对用户透明。

虽然代码分开(ccp-*.cpsp/sev/tee/hsti.c),但它们共享:

PSP 和 CCP 共享密钥存储和命令队列

用户场景 暴露接口 依赖组件
使用 AES 加速 opensslAF_ALG/proc/crypto CCP
启动 SEV 虚拟机 QEMU + /dev/sev PSP(内部可能用 CCP 加密密钥)
查询安全状态 sysfs(如 /sys/devices/.../fused_part PSP + HSTI
使用硬件 RNG /dev/hwrng CCP(TRNG 引擎)

总结:

PSP 和 CCP 是 AMD Secure Processor 的两个功能模块

CSV

CSV(China Secure Virtualization)是 Hygon(海光) 在其国产 x86 处理器上实现的 安全虚拟化技术,它与你之前讨论的 AMD PSP/CCP/SEV 技术栈高度的继承与定制关系,但也有 关键的差异化设计。可以将其理解为 Hygon 基于 AMD SEV 技术的自主演进版本

下面从多个维度说明 CSV 与 AMD PSP/CCP/SEV 的关系:

一、架构继承关系:CSV 基于 AMD SEV

Hygon 的处理器(如 Dhyana 系列)是基于 AMD Zen 微架构授权开发的,因此其安全模块(Secure Processor)在硬件和固件层面 最初完全兼容 AMD PSP/SEV

结论:CSV 是 Hygon 在 AMD SEV 技术基础上,结合中国安全需求和自主可控目标,进行深度定制和增强的产物。

二、硬件实现差异

功能 AMD SEV/SEV-SNP Hygon CSV/CSV3
安全处理器 PSP(Platform Security Processor) Hygon Secure Processor(兼容 PSP 接口)
内存加密引擎 集成在 Memory Controller / IF 类似,但可能微调
内存隔离机制 RMP(Restricted Memory Protection) + SNP Page State 专用隔离硬件 + CMA 内存池
安全内存分配 由 Hypervisor 分配,Firmware 标记页状态 必须通过 CMA 预留csv_mem_size
寄存器保护 SEV-ES:VMSA 加密 CSV2:类似,寄存器状态加密
共享内存机制 SNP:通过 PAGE_SHARED 位和 VMGEXIT CSV3:通过 专用 fault page + secure call 触发 NPF

CSV3 的 secure call + nested page fault 机制,是 Hygon 独有的设计,不同于 AMD 的 VMGEXIT

三、软件接口兼容性

🔒 CSV3 的 memory isolation 是其核心安全增强,但这也导致它 无法完全兼容标准 SEV-SNP 软件栈

四、检测与激活方式对比

检测项 AMD SEV Hygon CSV
CPUID 0x8000001f[EAX].bit0(SEV) 0x8000001f[EAX].bit1(CSV)
bit3(CSV2)
bit30(CSV3)
MSR 状态 0xc0010131(SEV/SEV-ES/SNP) 0xc0010131(CSV/CSV2/CSV3),复用相同 MSR
内核配置 CONFIG_AMD_MEM_ENCRYPT, CONFIG_KVM_AMD_SEV CONFIG_HYGON_CSV, CONFIG_CMA
内存预留 sev=on(由 Host 动态分配) 必须静态预留 CMAcsv_mem_size

✅ Hygon 复用了 AMD 的 MSR 和部分 CPUID 布局,但重新定义了位含义。

五、总结:CSV 与 PSP/CCP/SEV 的关系

层面 关系
血缘 CSV 是 AMD SEV/SEV-ES/SEV-SNP 的 Hygon 定制分支
硬件 基于 AMD PSP 架构,但增加了 专用内存隔离硬件
固件 Secure Processor 固件由 Hygon 自主开发,兼容 PSP mailbox 协议,但命令集有扩展(如 tkm、secure call)
驱动 Linux 内核中,CSV 通常作为 AMD SEV 的扩展或替代实现(如 drivers/virt/coco/hygon/
应用场景 面向中国信创/等保/机密计算市场,强调 自主可控 + 强隔离

最终结论

CSV 是 Hygon 基于 AMD PSP/SEV 技术栈,深度定制并增强的安全虚拟化方案

它保留了 AMD 的基础接口(如 MSR、部分 CPUID、mailbox),但在安全机制、内存管理和软件栈上有显著差异化设计,以满足中国市场的合规与安全需求。

SEV SEV-ES 和 SEV-SNP 是什么关系?

SEV、SEV-ES 和 SEV-SNP 是 AMD Secure Encrypted Virtualization(SEV)技术家族中的三个演进层级,它们在功能上层层递进,提供越来越强的机密计算(Confidential Computing)安全保障。三者的关系可以用 “基础 → 增强 → 完整可信” 来概括。

一、SEV(Secure Encrypted Virtualization)

SEV = 内存加密

二、SEV-ES(SEV with Encrypted State)

SEV-ES = SEV + 寄存器状态加密

三、SEV-SNP(SEV with Secure Nested Paging)

SEV-SNP = SEV-ES + 内存完整性 + 硬件强制隔离 + 证明

四、三者关系总结

功能 SEV SEV-ES SEV-SNP
内存加密
寄存器状态加密
内存完整性保护
防 Hypervisor 篡改内存
硬件强制隔离(RMP)
安全启动与证明
安全级别 基础机密性 增强机密性 完整机密计算

🔒 SEV-SNP 是目前 AMD 最高级别的机密虚拟化技术,对标 Intel TDX 和 ARM CCA。


五、兼容性与启用关系


六、Hygon CSV 对应关系(补充)

SEV 提供内存加密,SEV-ES 加密 CPU 状态,SEV-SNP 在此基础上增加硬件强制的内存完整性与隔离,构成完整机密虚拟化方案。

总结 hct tkm 等各种功能

  1. ccp : 加密加速
  2. sev : 可信计算
  3. hct (hygon) : ccp 的 mdev 管理机制
  4. tkm (hygon) : 密钥管理,无需 qemu 参与
  5. csv

然后继续这里的东西

https://openanolis.cn/sig/Hygon-Arch/doc/1110520213566721211?lang=zh

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。