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, 加密, 可信平台模块, 可信计算, 安全, 安全库, 安全测试工具, 客户端加密, 平台完整性, 接口设计, 漏洞扫描器, 环境变量, 用户空间, 硬件安全, 编译优化, 编译配置, 超时处理, 软件栈