TPM芯片LINUX下如何测试

TPM芯片LINUX下如何测试,第1张

应用TPM作linux可信起动的初步实践

首先要有一台带有TPM 1.2芯片,装有linux系统的计算机。

使用下面这条命令可以查看系统内核tpm驱动情况:

$ ls -la /lib/modules/`uname -r`/kernel/drivers/char/tpm

总计 100

drwxr-xr-x 2 root root 4096 02-03 21:47 .

drwxr-xr-x 7 root root 4096 02-03 21:47 ..

-rwxr--r-- 1 root root 9812 01-21 15:27 tpm_atmel.ko

-rwxr--r-- 1 root root 11128 01-21 15:27 tpm_bios.ko

-rwxr--r-- 1 root root 15860 01-21 15:27 tpm_infineon.ko

-rwxr--r-- 1 root root 19184 01-21 15:27 tpm.ko

-rwxr--r-- 1 root root 10796 01-21 15:27 tpm_nsc.ko

-rwxr--r-- 1 root root 16516 01-21 15:27 tpm_tis.ko

tpm_tis模块可以完全使用TPM1.2。需要这个模块,没的话可能需要重新编译新的内核。

接下来可以这几条命令加载TPM驱动:

$ sudo modprobe tpm_bios

$ sudo modprobe tpm

$ sudo modprobe tpm_tis force=1 interrupts=0

$ dmesg

...

[xxx.yyy] tpm_tis tpm_tis: 1.2 TPM (device-id 0x4A10, rev-id 78)

如果显示有类似以上信息,说明设置成功。

需要安装TrouSerst和tpm-tools来管理TPM。

$ sudo /etc/init.d/tcsd start

用上面这条命令来起动这个管理工具

然后检查下tpm是不是可用了。

$ sudo tpm_version

TPM Version:01010000

Manufacturer Info:53544d20

好了。现在让我们来初始化TPM芯片

$ sudo tpm_takeownership

Enter owner password: xxxxxx

Confirm password: xxxxxx

Enter SRK password: yyyyyyyy

Confirm password: yyyyyyyy

记住! 这条命令只能执行一次!之后不能再常识!

如果出现下面这个错误:

Tspi_TPM_GetPubEndorsementKey failed: 0x00000023 - layer=tpm, code=0023 (35), No EK

则说明Endorsement Key不存在,需要下面这条命令创建。

$ sudo tpm_createek

ok! 之后我们就可以得到Public Endorsement Key

$sudo tpm_getpubek

期间需要输入owner password。

接下来需要安装TrustedGRUB,然后对其中一些文件做修改。

还有很重要的一处!

在内核源代码文件中的 drivers/char/tpm/tpm_tis.c

view plaincopy to clipboardprint?

[...]

static struct pnp_device_id tpm_pnp_tbl __devinitdata = {

{"PNP0C31", 0}, /* TPM */

{"ATM1200", 0}, /* Atmel */

{"IFX0102", 0}, /* Infineon */

{"BCM0101", 0}, /* Broadcom */

{"NSC1200", 0}, /* National */

/* Add new here */

{"", 0},/* User Specified */

{"", 0} /* Terminator */

}

[...]

/* User Specified */这里我们可以加入我们自己的TPMUID(如果里面已经有了的话就不用了),这可以让内核支持我们需要的TPM型号。

关于如何得到TPM的具体信息,可以使用 iasl 这个软件来获得,具体的不在这里说明了。

以上是可信起动的bios──>bootloader部分的简单尝试。

其实这个trustedgrub也有不安全的bug,比如没有做从cd引导时的HASH等等,不过是开源,如果需要或想改进,可以自己动手,也不是什么难事。

一般步骤来说:

1、首先要进行全员培训,灌输意识并让大家明白推进TPM的意义,理论测试也是必要的。

2、公司必要时要成立专门的TPM推进室,负责组织策划、制定推进目标、每周定期进行检查评价;并成立TPM推进委员会,每月进行总结会议。

3、生产部门要以内部工序为主各自成立一个TPM小组,并设置一位专门负责推进的TPM联络员,每日负责内部组织策划、目标推进、内部检查评价、小组总结会议。

4、各工序再以班为单位,每班进行推进

5、推进TPM的前提首要推进5S(整理、整顿、清扫、清洁、清心),其次再推进TPM自主保全7阶段(初期清扫、发生源/污染源对策、制定清扫注油基准书、总点检、自主点检、品质保全、自主管理)。分八个大阶段进行推进,每完成一个阶段安排最高领导进行一次验收、并奖励。

6、推进TPM几大利器很重要:重复的小组会议、持续的教育培训、合理化改善提案、各组现场状态板管理、现场定点管理、可视化管理、OPL教育、持续的PDCA循环管理。

最重要的一点:TPM需要各级领导的大力支持、需要全员的共同参与才能获得成功;最终建立一个完善的标准管理模式,有效的考核/奖罚机制才能循序渐进,持续向上发展。

TPM详细内容太多,在此就不一一细说了,有时间多去看看这方面的书籍与网上的资料。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7951622.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存