TPM Emulator 安装与使用教程

TPM Emulator 安装与使用教程

【免费下载链接】tpm-emulator The famous tpm-emulator by Mario Strasser, previously hosted on BerliOs. It supports TPM1.2 only! 【免费下载链接】tpm-emulator 项目地址: https://gitcode.com/gh_mirrors/tp/tpm-emulator

项目概述

TPM Emulator 是一个软件实现的 Trusted Platform Module (TPM) 和 Mobile Trusted Module (MTM) 模拟器,支持 TPM 1.2 标准。该项目由 Mario Strasser 开发,采用 C 语言编写,使用 CMake 构建系统管理。

项目目录结构

TPM Emulator 项目包含以下主要目录:

  • crypto/ - 加密算法实现

    • bn_openssl.c - OpenSSL 大数运算支持
    • hmac.c - HMAC 算法实现
    • rsa.c - RSA 加密算法
    • sha1.c - SHA1 哈希算法
    • rc4.c - RC4 流密码算法
  • tpm/ - TPM 核心功能模块

    • tpm_crypto.c - TPM 加密操作
    • tpm_management.c - TPM 管理功能
    • tpm_nv_storage.c - 非易失性存储
    • tpm_commands.h - TPM 命令定义
    • tpm_structures.h - TPM 数据结构
  • mtm/ - 移动可信模块支持

    • mtm_cmd_handler.c - MTM 命令处理
    • mtm_structures.h - MTM 数据结构
  • tddl/ - TSS 设备驱动库

    • tddl.c - TDDL 实现
    • test_tddl.c - 测试程序
  • tpmd/ - TPM 守护进程

    • unix/tpmd.c - Unix 平台守护进程
    • windows/tpmd.c - Windows 平台服务
  • tpmd_dev/ - 内核模块支持

    • linux/tpmd_dev.c - Linux 内核模块
    • darwin/tpm_bridge.c - macOS 内核扩展

系统要求

在安装 TPM Emulator 之前,请确保系统满足以下要求:

  • CMake 2.6 或更高版本
  • GNU MP 库 4.0 或更高版本
  • GCC 编译器Make 工具
  • 对于 Windows:需要 MinGW 编译器套件

安装步骤

1. 获取源代码

git clone https://gitcode.com/gh_mirrors/tp/tpm-emulator
cd tpm-emulator

2. 创建构建目录

mkdir build
cd build

3. 配置构建选项

# 基本配置
cmake ../

# 如果需要 MTM 支持
cmake ../ -DMTM_EMULATOR=ON

4. 编译项目

make

5. 安装到系统

sudo make install

6. Windows 额外步骤

在 Windows 上还需要注册服务:

control_tpmd.bat install

启动和使用

Linux 系统启动

# 加载内核模块
sudo modprobe tpmd_dev

# 启动 TPM 守护进程
sudo tpmd

macOS 系统启动

# 加载内核扩展
sudo kextload /System/Library/Extensions/tpm_bridge.kext

# 启动 TPM 守护进程
sudo tpmd

Windows 系统启动

# 设置环境变量
set PATH=%PROGRAMFILES%\TPM_Emulator;%PATH%
set PATH=%PROGRAMFILES%\TPM_Emulator\lib;%PATH%

# 启动服务
control_tpmd.bat start

# 检查状态
control_tpmd.bat status

启动参数说明

TPM Emulator 支持以下启动参数:

tpmd [-d] [-f] [-s storage_file] [-u socket_name] 
     [-o user] [-g group] [-h] [startup_mode]
  • -d:启用调试模式
  • -f:前台运行
  • -s:指定存储文件路径
  • -u:指定 Unix socket 名称
  • -o:指定运行用户
  • -g:指定运行组
  • -h:显示帮助信息
  • startup_mode:启动模式(clear、save、deactivated)

使用示例

测试 TPM 功能

# 启动调试模式的 TPM 守护进程
sudo tpmd -d

# 运行测试程序
cd tddl
./test_tddl

与 TPM/J 集成

# 设置类路径
export CLASSPATH=tpmj.jar:bcprov-jdk15-131.jar:$CLASSPATH

# 运行 TPM 信息工具
java edu.mit.csail.tpmj.tools.TPMInfo

故障排除

首次启动问题

首次启动时必须使用 clear 模式:

# 如果启动失败,先停用
tpmd deactivated

# 然后使用 clear 模式重新启动
tpmd clear

存储文件问题

如果遇到存储文件相关问题,可以删除旧的存储文件:

sudo rm /var/lib/tpm/tpm_emulator-1_2_0_7

开发接口

直接访问 TPM

对于需要直接访问 TPM 的应用程序:

#include <sys/socket.h>
#include <sys/un.h>

struct sockaddr_un addr;
int fh = socket(PF_UNIX, SOCK_STREAM, 0);
addr.sun_family = AF_UNIX;
strncpy(addr.sun_path, "/var/run/tpm/tpmd_socket:0", sizeof(addr.sun_path)-1);
connect(fh, (struct sockaddr*)&addr, sizeof(struct sockaddr_un));

使用 TDDL 库

推荐使用提供的 TDDL 库进行开发,具体接口参考 TCG TSS 规范。

注意事项

  • 不同版本间的存储文件格式可能不兼容
  • 首次启动必须使用 clear 模式
  • Windows 版本需要特定的 DLL 命名(ifxtpm.dll)
  • 确保有足够的权限访问 /dev/tpm 设备

技术支持

如有问题或建议,请联系:

请在邮件主题中包含 "TPM emulator" 关键词。

【免费下载链接】tpm-emulator The famous tpm-emulator by Mario Strasser, previously hosted on BerliOs. It supports TPM1.2 only! 【免费下载链接】tpm-emulator 项目地址: https://gitcode.com/gh_mirrors/tp/tpm-emulator

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值