可信计算理论与技术

本章为阅读《可信计算理论与技术》的阅读笔记。

可信计算技术

可信计算概论

初识可信计算

可信计算的核心就是要建立一种信任机制,用户信任计算机,计算机信任用户,用户在操作计算机时需要证明自己的身份,计算机在为用户服务时也要验证用户的身份。这样一种理念来自于人们所处的社会生活。

近年来,体现整体安全的可信计算技术越来越受到人们的关注,这正是因为它有别于传统的安全技术,试图从根本上解决安全问题。

可信计算定义与关键技术

可信计算的一些基本概念:

  1. 可信计算基

    可信计算基(TCB,Trusted Computing Base)是计算机系统内保护装置的总体,包括硬件、固件、软件和负责执行安全策略的组合体。通常所指的TCB是构成安全计算机信息系统的所有安全保护装置的组合体(通常称为安全子系统),以防止不可信主体的干扰和篡改。

  2. 可信计算平台

    平台是一种能向用户发布信息或从用户那里接收信息的实体。可信计算平台基于TPM,以密码技术为支持、安全操作系统为核心。安全操作系统是可信计算平台的核心和基础,没有安全的操作系统,就没有安全的应用,也不能使TPM发挥应有的作用。

  3. 可信根和可信链

    可信根和信任链是可信计算平台的核心关键技术。一个可信计算机系统由可信根、可信硬件平台、可信操作系统和可信应用组成。信任链是通过构建一个可信根,从可信根开始到硬件平台、到操作系统、再到应用,一级认证一级,一级信任一级,从而把这种信任扩展到整个计算机系统,可信根的可信性由物理安全和管理安全确保。

    image-20241126211348243

可信计算的定义与原理

  • 可信计算的定义:

    可信计算学术界对可信的统一认识为:可信计算是指计算的同时进行安全防护,使计算结果总是与预期一样,计算全程可测可控,不被干扰。

  • 可信计算的原理

    可信计算的原理是通过硬件可信根对系统的启动和运行状态进行度量和验证,形成一条完整的信任链,以确保系统处于可验证的可信状态。

    image-20241126204237201

可信计算技术体系

image-20241126211726702

  • 可信根(Root of Trust,RoT)是最基础的可信部件,是系统可信的源头,既具备安全功能又具备可信功能,且不需要其他机制提供安全支撑的底层机制。在除可信3.0外的可信框架中,可信根以可信平台模块(Trusted Platform Module,TPM)为基础。

  • 可信平台(Trusted Platform,TP)是实现可信计算功能的设备或系统。

  • 可信软件栈(Trusted Software Stack, TSS)是可信计算体系中的一组软件接口和工具,它将可信硬件(如TPM)的功能暴露给操作系统和应用程序,以便它们能够调用和管理这些功能。

  • 可信网络连接(Trusted Network Connection, TNC)是一种网络安全框架,旨在确保只有经过可信验证的设备和系统才能接入网络,防止不受信任或被攻陷的设备威胁网络安全。

嵌有TPM的平台被称作可信计算平台。

可信平台模块(TPM

TPM通过可信软件栈(TSS)为可信计算平台上的应用程序提供完整性度量、存储和报告,远程证明,数据保护和密钥管理4大核心功能。

可信平台模块(TPM)

概述

可信计算工程初步

本章为阅读《可信计算3.0工程初步(第二版)》的阅读笔记。

概述

什么是可信计算

可信计算发展过程

可信3.0的应用模式

可信机制

可信策略

可信保障

可信计算基本概念

可信根和可信链

可信根

可信链

可信密码服务

可信存储

可信度量

可信报告和可信认证

可信部件

可信密码模块(TCM)

可信平台控制芯片(TPCM)

可信主板

可信软件基

可信网络连接

可信体系架构

可信软件基框架原型Cube

Cube介绍

开发流程

Cube实例

Linux环境准备

Ubuntu16.04

调试工具gbd

gcc、make等工具包

Cube基本环境编辑

下载Cube

1
git clone https://github.com/biparadox/cube-1.3

这个指令无法成功下载,原因暂未知,直接从官网下压缩文件然后解压吧

1
2
3
unzip cube-1.3-master.zip -d cube
mv cube/cube-1.3-master cube-1.3
rm -rf cube

查看文件夹内部

1
2
cd cube-1.3/
ls

image-20241121150949203

其中set_env.sh和env_build.sh为环境变量设置和编译脚本,
cubelib为cube架构内部库的源码目录,
proc目录下为cube架构的主程序和一组通用模块的源码,
include为模块开发时可使用的库函数列表,
example目录下则是示例实例。

环境变量配置

1
vi set_env.sh

此处改成set_env.sh所在位置,注意需要去掉引号

image-20241123193206034

随后执行source set_env.sh命令,完成编译环境设置。

image-20241123194329813

使用命令查看系统中Cube环境相关变量的配置情况

1
env| grep CUBE

image-20241123195730480

系统每次进入开发环境都需要执行本脚本,可以在用户目录的.bashrc文件最后添加如下命令,以使其每次都能自动完成设置。

1
source /home/syz/cube-1.3/set_env.sh

image-20241123195415284

编译Cube的基本库函数

进入cube-1.3目录下的cubelib目录,执行ls查看,并在该目录下执行make。

1
2
3
cd cubelib
ls
make

image-20241123200030913

image-20241123200130468

编译成功后,进入proc目录下。proc 目录包含Cube 的主程序、系统子块、一些示例子模块与常用的功能子模块。执行ls命令查看,可看到如下结果。

image-20241123200853407

image-20241123200918741

image-20241123201021009

image-20241123201108286

image-20241123201156318

image-20241123201628927

image-20241123201713814

1
sudo dmidecode | grep UUID

image-20241123201258216

image-20241123201447471

image-20241123201833053

image-20241123201914784

1
cat cube_audit.log

image-20241123202056503

最简单的Cube实例