首页> 中国专利> 一种基于国产Linux系统的TPM仿真器的测试方法

一种基于国产Linux系统的TPM仿真器的测试方法

摘要

本发明提供一种基于国产Linux系统的TPM仿真器的测试方法,该测试方法包括构建TPM仿真环境和在TPM仿真环境下测试实现对文件的加密解密功能。本发明通过在国产Linux系统中嵌装gmp‑devel包和cmake工具中的rpm包构建TPM仿真环境,不需要在服务器中安装TPM芯片也能通过常用的密码学算法,实现对系统文件加密解密功能。

著录项

  • 公开/公告号CN112948199A

    专利类型发明专利

  • 公开/公告日2021-06-11

    原文格式PDF

  • 申请/专利权人 中标软件有限公司;

    申请/专利号CN202110210780.2

  • 发明设计人 陈敏;

    申请日2021-02-25

  • 分类号G06F11/26(20060101);G06F21/60(20130101);G06F21/64(20130101);G06F21/78(20130101);

  • 代理机构11301 北京汇智英财专利代理事务所(普通合伙);

  • 代理人何佳

  • 地址 200030 上海市徐汇区番禺路1028号1006-1010室

  • 入库时间 2023-06-19 11:22:42

说明书

技术领域

本发明涉及服务器中的软件测试技术领域,具体来说是一种基于国产Linux系统中模拟TPM芯片环境的测试方法。

背景技术

可信计算技术是由国际TCG组织提出和推广,可以加强各种计算设备的安全和可信。在TCG的可信计算架构中,关键硬件是TPM模块,而TPM模块中,TPM芯片可以对存储在芯片内的数据进行高可靠性的加密处理,使这些数据很难被非法窃取。在实际应用时,往往需要先验证TPM模块的功能,以确保TPM芯片能够正常使用,保证计算机在使用过程中的安全性。

现有技术中,在测试TPM芯片时一般是使用厂商驱动程序自带的无线访问接电进行自身检测,通过人为点选工具条中的TPM AP图标,选择自测进行测试,测试完毕后会显示结果:PASS或FAIL。

中国专利申请CN201610937045.0中提供了一种Linux下测试TPM模块功能的方法,该方法是使用tpm2tool工具,将需要测试的TPM模块安装到服务器主板的对应接口,在服务器上安装Linux OS,并将tpm2tool工具安装到服务器上,执行tpm2tool工具打开需测试的TPM模块,并对需要测试的TPM模块进行自测,验证Linux OS下TPM模块的基本功能,对操作系统和用户数据的安全性进行保护。

但是,上述的测试方法都是只能在具备TPM芯片的服务器上进行使用,无法兼顾服务器无法安装硬件TPM芯片时的情况。

发明内容

为解决上述问题,本发明的目的是提供一种基于国产Linux系统的TPM仿真器的测试方法,通过构建TPM仿真环境模拟硬件TPM芯片的功能,不需要在服务器中安装TPM芯片也能实现对文件的加密和解密操作,保证数据安全。

为达上述目的,本发明所采用的技术手段是:

一种基于国产Linux系统的TPM仿真器的测试方法,该测试方法包括构建TPM仿真环境和在TPM仿真环境下测试对文件的加密和解密功能。

其中,在开发环境状态中,通过在装载国产Linux系统的服务器中嵌装gmp和Cmake构建TPM仿真环境。

进一步来说,构建TPM仿真环境的步骤包括:

S11启动服务器运行国产Linux系统,在国产Linux系统界面下导入tpm-emulator工具,模拟形成TPM仿真器;

S12运行tpm-emulator工具中的tpmd并加载tpmd_dev,之后初始化TPM仿真器;

S13运行TPM仿真器;

S14根据TSS协议栈分别安装trousers包和tpm-tools包。

其中,在步骤S11中,导入tpm-emulator工具前,首先在服务器中运行宏处理器m4,基于宏处理器m4配置gmp。

具体来说,嵌装Cmake包括在服务器中导入Cmake的rpm包,于Cmake下导入tpm-emulator工具。

其中,步骤S12中,初始化TPM仿真器的步骤包括:

T21停止运行tpmd;

T22调整TPM仿真器使其默认处于fail-stop的模式;

T23重新开始运行tpmd。

其中,步骤S13中,运行TPM仿真器的步骤包括运行tpmd和加载tpmd_dev。

进一步来说,在TPM仿真环境下测试对文件的加密和解密功能的步骤包括:

S21在TPM仿真环境下,调用TPM-Take Ownership()函数,设定密码;

S22选定需要处理的文件;

S23分别依序导入tpm_sealdata函数和tpm_unsealdata函数,对该文件分别执行加密操作和解密操作;

S24解密操作完成后,根据界面显示判断测试是否成功。

当界面显示该文件的内容,解密操作成功,测试成功。

本发明的有益效果是:

使用本发明的测试方法,通过在国产Linux系统中嵌装gmp和Cmake来模拟构建TPM仿真环境,服务器不需要装载硬件TPM芯片等硬件设备,依然可以实现在可信计算架构下完成文件的加密和解密功能,保证国产Linux系统中存储数据的安全。

附图说明

图1为本发明的测试方法的流程框图;

图2为TMP仿真器中的依赖关系图。

具体实施方式

本发明所述的一种基于国产Linux系统的TPM仿真器的测试方法,该测试方法包括构建TPM仿真环境和在TPM仿真环境下测试对文件的加密和解密功能。通过在国产Linux系统中嵌装gmp和cmake构建TPM仿真环境,即使服务器中不安装TPM芯片等硬件,也能通过常用的密码学算法,实现对文件加密和解密操作。

本发明所述的测试方法的步骤流程如图1所示,主要包括下面两个步骤:

S10构建TPM仿真环境;

S20在TPM仿真环境下测试对文件的加密和解密功能。

其中,当构建TPM仿真环境时,服务器的国产Linux系统处于开发环境状态中,此时通过在服务器中嵌装gmp和Cmake来完成TPM仿真环境的构建。具体来说构建步骤包括:

S11启动服务器运行国产Linux系统,将国产Linux系统设定为开发环境状态,在国产Linux系统界面下导入tpm-emulator工具,模拟形成TPM仿真器。在导入tpm-emulator工具前,首先在服务器中运行宏处理器m4,基于宏处理器m4配置gmp。同时,在服务器中嵌装Cmake,即导入Cmake的rpm包,于Cmake下导入tpm-emulator工具。本发明中,在服务器中嵌装Cmake和配置gmp的步骤没有顺序要求,分别完成即可。

本发明中,TPM仿真器模拟TPM芯片,构建TPM仿真环境。所构建的TPM仿真平台,使用TPM-emulator作为TPM仿真器,使用Cmake组织源代码,模拟TPM芯片的功能,实现了常用的密码学算法,生成RSA密钥、随机数产生、密钥存储、数字签名和验证等。

其中,TMP仿真器的结构和关系如图2,包括m4、gmp、cmake、tpm_emulator、trousers和tpm-tools。构建TPM仿真环境时,服务器按图2中的箭头方向依序安装。

TMP仿真器中,

m4:一种宏处理器,扫描用户输入的文本并将其输出,期间如果遇到宏就将其展开后输出。

gmp:GNU MP Bignum Library的简称,是一个开源的数学运算库,用于任意精度的数学运算。

CMake:一个跨平台的自动化建构系统,使用一个名为CMakeLists.txt的文件描述构建过程,能够产生标准的构建文件,如Unix的Makefile或Windows Visual C++的projects/workspaces。在国产linux系统中使用CMake生成Makefile并编译的流程包括:

(1)编写CmakeLists.txt;

(2)执行命令“cmake PATH”或者“ccmake PATH”生成Makefile;

(3)使用make命令进行编译。

tpm-emulator工具:主要包括tpmd、tpmd_dev和tddl。其中,

tpmd:TPM仿真器的守护程序,实现TPM仿真器的用户空间应用程序,通过Unix域套接字或命名管道进行访问。

tpmd_dev:TPM仿真器的设备转发模块,提供设备/dev/tpm以实现向后兼容,并将收到的命令转发给tpmd。

tddl:TPM仿真器的TSS符合设备驱动程序库。

TSS:开源协议栈,全称TrouSerS。TSS协议栈包括:trousers,TSS API testsuite,tpm-tools,Grub-IMA,OpenSSL TPM Engine,TPM Keyring。其中,

tpm-tools是一组管理和利用可信计算组织的TPM硬件的工具。TPM硬件可以安全地创建、存储和使用RSA密钥。服务器通过运行tpm-tools包中的程序管理和诊断TPM硬件。

具体操作时,在国产Linux系统选择开发环境,导入gmp和Cmake的rpm包,即调用install函数,分别完成操作命令:

[root@localhost rpm-install]#rpm-ivh gmp-devel-6.0.0-15.el7.x86_64.rpm;

[root@localhost rpm-install]#rpm-ivh cmake-2.8.12.2-2.el7.x86_64.rpm。

之后,基于Cmake组织输入源代码,导入tpm-emulator工具。导入tpm-emulator工具包括:

T11在国产Linux系统界面中添加tpm-emulator工具:首先复制tpm-emulator工具的安装包tpm-emulator-0.7.5.tar.gz到国产Linux系统图形化桌面;之后解压tpm-emulator工具,完成操作命令[root@localhost桌面]#tar-vxf tpm-emulator-0.7.5.tar.gz;

T12静待服务器运行完成上一操作命令后,依次完成下面的操作命令:

[root@localhost tpm-emulator-0.7.5]#./build.sh

[root@localhost tpm-emulator-0.7.5]#cd build

[root@localhost build]#make

[root@localhost build]#make install

tpm-emulator工具导入完成。

上述过程的界面显示如下:

S12运行tpm-emulator工具中的tpmd并加载tpmd_dev,之后初始化TPM仿真器,具体步骤包括:

T21先停止运行tpmd,即完成操作命令

[root@localhost build]#tpmd deactivated

此时界面显示如下

T22调整TPM仿真器使其默认处于fail-stop的模式,即完成操作命令

[root@localhost build]#killall tpmd

此时界面显示如下

T23重新开始运行tpmd,即完成操作命令

[root@localhost build]#tpmd clear

此时界面显示如下

S13运行TPM仿真器,包括下面步骤:

T31运行TPM仿真器的守护程序tpmd,即完成操作命令

[root@localhost build]#modprobe tpmd_dev

T32加载TPM设备转发模块tpmd_dev,即完成操作命令

[root@localhost build]#tpmd-f-d clear

此时界面显示如下:

加载完成后界面还可能出现下面的两种显示内容;

1)界面显示

module tpmd_dev not found

即系统提示没有找到tpmd_dev,这时服务器需要执行depmod指令,根据相依关系,确定要载入tpmd_dev的模块,并在模块中产生依赖的映射文件。即完成操作命令

[root@localhost build]#depmod–a

2)界面显示

/var/run/tpm/tpmd_socket:0failed:already address in use

即系统提示tpmd的接口已被占用,这时服务器执行rm命令删除tpmd接口。即完成操作命令:

[root@localhost build]#rm/var/run/tpm/tpmd_socket:0

S14根据TSS协议栈分别安装trousers包和tpm-tools包,即分别完成操作命令:

[root@localhost rpm-install]#rpm-ivh trousers-0.3.14-2.el7.x86_64.rpm

[root@localhost rpm-install]#rpm-ivh tpm-tools-1.3.9-2.el7.x86_64.rpm。

至此,TPM仿真环境构建完成。

接下来,执行步骤S20,在TPM仿真环境下测试对文件的加密和解密功能的步骤包括:

S21在TPM仿真环境下,调用TPM-Take Ownership()函数,设定并输入密码,其中,密码包括所有者密码和SRK密码。即完成操作命令:

[root@localhost下载]#tpm takeownership

界面显示如下:

S22选定需要处理的文件,本实施例中选定文件为“hello word!”:在选定文件前先查看TPM仿真器版本,完成下面的操作命令

[root@localhost下载]#tpm_version

界面显示如下:

S23分别依序导入tpm_sealdata函数和tpm_unsealdata函数,对该文件进行加密操作和解密操作。

(1)服务器对文件进行加密操作时,其界面显示如下:

文件加密前,界面显示为

(2)文件加密完成后,界面显示为

(3)服务器对加密后的文件进行解密操作,界面显示为

[root@localhost test]#tpm_unsealdata-i/home/test/1_key-o 2.txt

Enter SRK password:

[root@localhost test]#

S24解密操作完成后,根据界面显示判断测试是否成功。当解密操作成功时,界面显示该文件的内容,本实施例中,界面显示为

当解密操作失败时,界面显示返回至导入tpm_sealdata函数后文件加密完成时的界面,本实施例中,显示为

此时,需要重复加密和解密操作。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号