技术领域
本发明涉及服务器中的软件测试技术领域,具体来说是一种基于国产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函数后文件加密完成时的界面,本实施例中,显示为
此时,需要重复加密和解密操作。
机译: 一种方法和学习设备,用于使用用于硬件优化的1x1卷积的基于CNN的对象检测器,以及使用该测试方法和测试设备,使用1×1卷积的CNN基于CNN的对象检测器的学习方法和学习设备用于硬件优化,以及使用Samem的测试方法和测试设备}
机译: 一种基于CNN的监视对象检测器的学习方法和学习设备,可以根据对象的比例改变模式,以及使用此测试方法和测试设备。
机译: 一种使用用于硬件优化的1xH卷积的基于CNN的对象检测器的方法和学习设备,以及使用它的测试方法和测试设备。