kgoldman/ibmtss

GitHub: kgoldman/ibmtss

一个简化接口的TPM 2.0用户空间TSS实现,用于替代标准TCG TSS API。

Stars: 33 | Forks: 18

## Linux 特定构建说明 由 Ken Goldman 编写 IBM 托马斯·J·沃森研究中心 $ cd utils $ make -f makefiletpmc $ cd utils12 $ make -f makefiletpmc 这将构建一个 TSS 有关额外的编译器选项,请参阅下面的“高级选项”。 ## Autotools - Linux 在 Linux(可能还有其他 Unix 系统)上,开源项目通常期望 使用标准的 shell 命令 `autoreconf -i && ./configure && make && make install` 来配置和构建软件包。 如果省略 `--prefix`,则使用默认的 `/usr/local`。 `LD_LIBRARY_PATH` 环境变量必须设置为相应的路径 (可以是默认路径或用户指定路径)。例如: `export LD_LIBRARY_PATH=/usr/local/lib` 示例 1:要配置 TSS 库以使用软件 TPM,构建并将软件包安装到 `${HOME}/local/bin` 和 `${HOME}/local/lib` 目录中,请执行以下 shell 命令: $ autoreconf -i $ ./configure --prefix=${HOME}/local --disable-tpm-1.2 $ make clean $ make $ make install 初始定义了一组最常见的 TSS `"./configure"` 选项,用于启用/禁用不同的功能。 示例 2:要配置 TSS 库以使用硬件 TPM,并将软件包构建并安装到默认的 `/usr/local` 目录中,需要 root 权限。执行以下 shell 命令将在默认目录中构建并安装软件包。 $ autoreconf -i $ ./configure $ make clean $ make $ sudo make install 可以通过直接在 `CFLAGS` 中指定选项来修改其他 TSS 功能。 `CFLAGS=''` options: `-O0` - 更改编译器优化级别(默认:02) `-DTPM_DEVICE_DEFAULT="\"/dev/tpmrm0\""` - 更改硬件 TPM(默认:`/dev/tpm0`) `-DTPM_DATA_DIR_DEFAULT="\"\""` - 指定 TSS 状态文件的目录 `-DTPM_TRACE_LEVEL_DEFAULT="\"\""` - 更改跟踪级别(默认:0) `0` - 无跟踪 `1` - 跟踪错误 `2` - 跟踪错误和执行流 示例 3:要将软件包安装到 `${HOME}/local/bin` 和 `${HOME}/local/lib` 目录中,为 gdb 调试器编译,并默认连接到端口 3333 的套接字模拟器 TPM,请执行以下 shell 命令: $ autoreconf -i $ ./configure --prefix=${HOME}/local --enable-debug --disable-hwtpm \ CFLAGS='-DTPM_INTERFACE_TYPE_DEFAULT="\"socsim\"" -DTPM_COMMAND_PORT_DEFAULT="\"3333\""' $ make clean $ make $ make install TPM 工具二进制文件存储在源代码目录的 `utils/.lib` 和 `utils12/.lib` 目录中。[1] 要在源代码树中使用这些二进制文件进行调试,请使用存储在 `.lib` 中的二进制文件或使用 `libtool` 命令。 $ libtool --mode=execute gdb <.lib/utility> [1] 解释请参考 GNU 文档 https://www.gnu.org/software/libtool/manual/libtool.html#Debugging-executables。 ## Mac 构建 - Mac 以下是两组关于 Mac autotools 构建的用户贡献说明。另有一个用户贡献的 `utils/makefile.mac`。 brew install openssl brew install gawk brew install automake brew install autconf brew install libtool brew link libtool brew install pkg-config 1. PATH=/usr/local/Cellar/openssl\@1.1/1.1.1h/bin/:$PATH PATH=/usr/local/Cellar/gawk/5.1.0/bin/:$PATH LD_LIBRARY_PATH=/usr/local/Cellar/openssl\@1.1/1.1.1h autoreconf -i ./configure \ CPPFLAGS="-I/usr/local/Cellar/openssl@1.1/1.1.1h/include -DTPM_POSIX" \ LDFLAGS=-L/usr/local/Cellar/openssl@1.1/1.1.1h/lib \ PKG_CONFIG_PATH=/usr/local/Cellar/openssl@1.1/1.1.1h/lib/pkgconfig make clean make sudo make install 2. autoreconf -i ./configure \ CPPFLAGS="-I/usr/local/opt/openssl/include -DTPM_POSIX" \ LDFLAGS=-L/usr/local/opt/openssl/lib \ PKG_CONFIG_PATH=/usr/local/opt/openssl/lib/pkgconfig make clean make sudo make install ## 高级选项 所有选项和详细信息,请参阅文档 `ibmtss.docx` 或 `ibmtss.html`。 下面列出了一些更常用的选项。 1-3 也可以在环境变量或运行时指定。 4-8 用于减小库大小,必须在编译时指定。 1. 要默认使用硬件 TPM(而不是软件 TPM) 在 CCLFLAGS 中添加: ``` -DTPM_INTERFACE_TYPE_DEFAULT="\"dev\"" ``` 2. 要默认使用 `/dev/tpmrm0`(而不是 `/dev/tpm0`) 在 CCLFLAGS 中添加: ``` -DTPM_DEVICE_DEFAULT="\"/dev/tpm0\"" ``` 3. 要默认为 TSS 状态文件指定不同的目录(而不是当前工作目录) 在 CCLFLAGS 中添加: ``` -DTPM_DATA_DIR_DEFAULT="\"directory\"" ``` 4. 要移除文件系统支持(限制请参阅文档) 从 CCLFLAGS 和 CCAFLAGS 中删除: ``` -DTPM_TPM12 ``` 5. 要移除加密支持(限制请参阅文档) 在 CCFLAGS 中添加: ``` -DTPM_TSS_NOFILE ``` 6. 要移除对称加密支持(限制请参阅文档) 在 CCFLAGS 中添加: ``` -DTPM_TSS_NOCRYPTO ``` 7. 要移除 PCR 依赖项 在 CCFLAGS 中添加: ``` -DTPM_TSS_NO_PRINT ``` 8. 要移除椭圆曲线依赖项 在 CCFLAGS 中添加: ``` -DTPM_TSS_NOECC ```
标签:autotools, ESAPI, make, SAPI, TCTI, TPM 2.0, TSS, YAML, 加密, 可信平台模块, 可信计算, 安全, 安全库, 安全测试工具, 客户端加密, 平台完整性, 接口设计, 漏洞扫描器, 环境变量, 用户空间, 硬件安全, 编译优化, 编译配置, 超时处理, 软件栈