基于嵌入式ARM平台的可信计算的实现

基于嵌入式ARM平台的可信计算的实现,第1张

目前市场上的TPM芯片主要应用在PC终端上,但是随着嵌入式系统的不断发展,TPM在嵌入式系统上的应用也越来越广,程序员在编写可信计算应用程序的时候,其切入点应该是TSS,本文就TPM和TSS的概念、TSS在ARM平台上的移植、调用TSS的API编写应用程序以及如何与TPM进行交互做了详细的介绍,最终实现了在嵌入式ARM平台上的可信计算。
TPM芯片结构和TSS体系结构概述

基于嵌入式ARM平台的可信计算的实现,第2张
图1 TPM芯片结构
TPM芯片里的资源是有限的,它仅仅对外提供了一些基本的功能接口。为了充分应用TPM的内部功能,需要在TPM外部套接一个可信计算软件栈TSS,TSS作为可信计算平台上TPM的支持软件,其规范定义了一种能够让访问TPM变得简单和直接的体系结构。本文构建的嵌入式平台为三星的ARM9TDMI-S3C2410处理器,TPM芯片为Atmel公司的AT97SC3204T。
由图2可知,TSS的运行模式分为两种:用户模式和内核模式。用户模式下,通常根据用户的要求来加载和执行用户应用程序和服务,有时候这些用户应用程序和服务也可以作为启动服务被载入。在内核模式下,通常运行设备驱动和 *** 作系统的核心组件。
基于嵌入式ARM平台的可信计算的实现,第3张
图2 TSS体系结构
TSS由三个逻辑组件构成:TCG设备驱动程序库(TCG Device Driver Library,TDDL)、TSS核心服务(TSS Core Services,TCS)、TCG服务提供者(TCG Service Provider,TSP)。
TDDL提供了一个与TPM设备驱动程序进行交互的API的库,用来打开和关闭TPM设备驱动程序(TPM Device Driver)、发送和接收数据块、查询设备驱动程序的属性、取消已经提交的TPM命令。TCS层主要用来管理TPM的资源,提供了一个TPM命令数据块产生器和一个全局的密钥存储设备。TSP层通过共享对象或动态链接库直接被应用程序调用。
TSS的工作流程如下:应用程序的命令参数通过接口TSPl发送到TSP,TSP通过处理后传送给TCS,TCS将接收到的请求转化为TPM能够识别的字节流,通过TDDL和TDD传给TPM,然后反向经TDDL、TDD、TCS、TSP传回应用程序。
TSS在ARM上的移植
本文所使用的宿主机 *** 作系统为Fedora,交叉编译工具arm-linux-gcc。
TSS在ARM上的移植分为3部分:交叉编译OpenSSL、交叉编译TSS、制作包含TSS的文件系统。在交叉编译TSS之前,先交叉编译安装OpenSSL,因为交叉编译TSS的时候需要用到其中的libcrypto库文件,其流程如图3所示:
基于嵌入式ARM平台的可信计算的实现,第4张
图3 TSS在ARM上的移植过程
交叉编译OpenSSL
本文所使用的OpenSSL具体版本为1.0.0,在交叉编译之前需要进行如下 *** 作:
(1)配置:在对OpenSSL1.0.0进行配置时需要指定其安装路径,在后面配置TSS时需要调用OpenSSL安装路径里的库文件,并且需要指定交叉编译工具,具体命令如下:
$/config--prefix=/usr/local/openssl os/compiler:arm-linux-gcc
其中--prefix=/usr/local/openssl指定安装的路径,
os/compiler:arm-linux-gcc指定编译器arm-linux-gcc;
(2)修改Makefile,里面对应的部分需要修改为:
CC=arm-linux-gcc
EX_LIBS=-ldl
AR=arm-linux-ar $(ARFLAGS) r
RANLIB=arm-linux-ranlib
交叉编译TSS

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

原文地址: http://outofmemory.cn/dianzi/2713979.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-08-17
下一篇 2022-08-17

发表评论

登录后才能评论

评论列表(0条)

保存