作者:禅与计算机程序设计艺术
1.简介
现代信息技术技术蓬勃发展,使得各行各业都可以利用计算机处理海量的数据,从而实现商业价值的革命性转变。数据的快速生成、存储、传输、分析等过程成为这一新时代产业链中最主要的环节之一。如何保证数据的安全、保密以及正确性,确立起计算平台的可信任基础就成了企业和组织面临的重点难题。
在可信计算发展的历程中,可信计算框架一直处于关注度最高、研究热度最高、应用范围最广的领域。它包括建立可信任计算环境、制定安全技术标准、开展可信业务合作、提升计算资源质量、对数据进行有效控制等多方面的内容。本文将围绕这一主题进行探讨。
首先,本文首先介绍一下什么是可信计算(Trusted Computing)。然后,阐述一下可信计算的定义及其功能特点,并通过图1对其进行直观展示。随后,将介绍可信计算的几大组成部分:计算硬件、应用程序、操作系统、中间件、网络、通信协议、密钥管理体系、管理工具等,并论述这些组成部分的作用及其作用机理。最后,将结合实际案例,详细介绍如何构建可信任的计算环境以及如何进行可信任数据共享。
2.基本概念术语说明
2.1 可信计算(Trusted Computing)
“可信计算”一词由英国信息专家乔治·马库斯·比尔.威尔逊创造。他说:“通过确保计算机系统能够仅信任来自受信任来源的输入数据,来实现对它们进行计算的可信任。”他进一步将可信计算分为三个层次,分别是:
- 基础层:指的是计算机系统本身,包括计算硬件、内存、固态存储器、网络接口卡等;
- 服务层:指的是运行在计算机系统上的各种服务,如操作系统、数据库、Web服务器等;
- 应用层:指的是用户使用的各种应用程序,如电子邮件客户端、图像处理软件等。
基于以上三个层次,可信计算不仅要建立起不同层级之间的信任关系,还需要更深入地进行交互、协作、数据流动等操作。因此,可信计算是一个非常庞大的框架,涉及到很多方面。但一般情况下,可信计算主要包含以下五个方面:
(1)安全(Security):可信计算应保证数据安全、完整性、可用性、真实性。
- 数据安全:包括对系统、设备、服务和个人数据的保密和访问权限控制;
- 完整性保护:可信计算应提供机制或工具,对计算结果和数据进行完整性检查;
- 可用性保障:可信计算应对系统故障和攻击事件发生时的应急响应能力;
- 真实性验证:可信计算应支持真实性验证,防止恶意、伪造或冒牌数据进入系统。
(2)隐私(Privacy):可信计算应遵守数据隐私法律要求,尤其是个人信息保护法规。
- 最小化收集数据:可信计算系统应尽可能减少数据收集,只收集所需的数据,并明示数据使用目的;
- 数据使用限制:可信计算系统应限制个人数据被用于特定用途或特定目的,且收集的数据不可用于任何商业用途;
- 隐私权许可及共享:可信计算系统应根据个人隐私权利获得批准,并持续向所有相关主体提供个人信息。
(3)可审计性(Auditability):可信计算应保持数据完整性,防止数据泄露和篡改。
- 数据完整性:可信计算应对数据的创建、保存、传输、使用和删除进行完整性监控;
- 权限管理:可信计算应提供细粒度的权限管理,以满足不同的用途需求;
- 数据记录和追踪:可信计算应跟踪数据流动和变化,记录所有操作历史,并配合审核人员做出相应调查。
(4)鲁棒性(Robustness):可信计算应具备高度的容错性和抗攻击性。
- 数据容灾:可信计算应具有数据容灾机制,能够在本地和远程数据中心进行数据复制、同步和切换;
- 漏洞修补:可信计算应采用自动更新机制,定期修复系统漏洞、病毒和恶意程序;
- 可恢复性:可信计算应在系统出现故障时,提供恢复功能,确保数据安全、可用性和真实性。
(5)透明度(Transparency):可信计算应向用户提供足够的信息,帮助他们确定计算结果的真实性。
- 对计算结果的验证:可信计算应提供工具或过程,允许用户核实和验证计算结果;
- 流程可视化:可信计算应支持流程可视化,用户可直观看到整个计算过程和结果。
2.2 可信计算的定义及其功能特点
可信计算(Trusted Computing) 是一种赋予计算机系统以信任感的计算模型,旨在建立起对系统的信任,其目的是为了保障用户的个人数据和信息的安全、隐私、可靠、正确的流通。
- 用户信任:通过确保用户对系统产生的计算结果、操作行为以及其他输出信息的可信赖程度,可信计算增强了用户对系统的信心。
- 系统信任:可信计算系统的关键特征就是依赖于不可信实体。该系统应该具有高度的防御性和反抗能力,能够抵御攻击者的入侵、数据流泄、操纵系统执行命令或文件、欺骗用户信息等行为,同时也要具有弹性和容错能力。此外,系统应该能正常工作,并能够有效保护用户的信息和数据。
- 性能信任:可信计算系统的性能表现应该在给定约束条件下达到一个合理的水平,而且这个水平应该能够适应用户对其数据处理速度的需求。这样才能确保用户得到满意的服务。
- 可用性信任:可信计算系统应具有高可用性,即系统的每一个组件都应该经过优化配置,并能够在系统故障、维护和升级时提供帮助。并且,系统应能方便快捷地接入用户,不需要复杂的安装配置。
- 解释性信任:可信计算系统应允许用户通过不同的方式与系统进行交互,例如,通过界面、文本、声音、图像和视频进行交互。这样用户就可以选择自己喜欢的方式获取系统的输出信息。
- 可移植性信任:由于不可信实体可能会限制计算机系统的普及性和应用范围,所以,可信计算系统应具有良好的可移植性,以便适应不同平台和系统。
2.3 可信计算的五大组成部分
2.3.1 计算硬件
计算硬件通常是指计算机的物理硬件,它包括处理器、存储设备、网络接口卡等。它属于基础层,它的作用是负责执行指令,实现数据的运算。
2.3.2 应用程序
应用程序是在计算系统上运行的各种软件,它包括浏览器、文字处理软件、电子邮件客户端等。它属于应用层,它承担着用户与系统之间交互的作用,向用户提供各种服务。
2.3.3 操作系统
操作系统是指计算机系统的内核,它负责管理计算机资源、分配任务、控制程序、管理硬件等。它属于服务层,它支撑着整个计算系统的运行。
2.3.4 中间件
中间件是指计算机系统与外部世界之间的联系渠道,比如网络、数据库等。它属于服务层,它的作用是实现各种服务。
2.3.5 网络
网络是指多个计算机通过计算机网络相互连接形成的一个虚拟系统。它属于基础层,它的作用是让计算机之间可以相互通信。
2.3.6 通信协议
通信协议是指通信双方达成共识、解决争端的方法、规范。它属于基础层,它的作用是确保通信顺畅,不会出现信息错误。
2.3.7 密钥管理体系
密钥管理体系是指在可信计算系统中用于保护用户信息的加密密钥。它属于基础层,它的作用是确保数据安全。
2.3.8 管理工具
管理工具是指辅助管理员进行安全评估、风险管控、产品维护、数据备份等工作的工具。它属于服务层,它的作用是确保系统运营、管理和部署得当。
2.4 可信计算的组成与作用
可信计算的组成与作用主要分为四类:
- 基础层
基础层包含计算硬件、网络、通信协议和密钥管理体系,它的作用是保障数据安全、隐私和可用性。 - 服务层
服务层包含操作系统、中间件、管理工具等,它的作用是提供系统运行所需的各种服务,确保系统的稳定性、可靠性、弹性和安全性。 - 应用层
应用层包含应用程序、Web应用和终端应用等,它的作用是为用户提供各种服务。 - 用户层
用户层包含用户个人信息、数据、应用等,它的作用是保障用户的数据安全、隐私和可用性。
3.可信计算的构建方案
3.1 构建可信计算环境
构建可信计算环境,首先应考虑几个重要因素:
- 数据安全:建立可信计算环境,首要任务是保障用户数据安全。其中包括数据采集、存储、传输、使用过程中以及之后的数据处理。通过设计数据流和工作流,以及设置合理的权限,降低个人信息的泄露风险。
- 网络安全:构建可信计算环境,还应关注网络安全。其中包括数据传输安全、认证授权、密钥管理等方面。网络通信应该采用安全的加密技术,并开启网络层防火墙,以防止恶意请求。
- 应用程序安全:构建可信计算环境,还应关注应用程序安全。其中包括对应用进行代码审计、编译和打包,并加强安全措施,比如输入参数过滤、调用栈检测、堆栈溢出等。同时,应监控应用健康状况,发现异常或恶意行为,做好安全预案。
- 安全技术:构建可信计算环境,还应关注安全技术。其中包括安全开发生命周期、静态分析、动态分析、渗透测试、加密算法、密钥管理等方面。要充分利用安全技术,减小攻击面,提升系统整体安全性。
总的来说,构建可信计算环境,首先要抓住用户数据、网络、应用程序、操作系统、中间件等领域的安全风险,然后通过设计数据流和工作流、设定合理的权限,以及使用安全的加密技术、网络层防火墙,来降低个人信息的泄露风险,提升系统整体安全性。
3.2 可信业务合作
可信计算框架构建完成后,企业和组织可以通过各种形式来进行合作,比如参与到可信计算的项目开发、教育培训、部署、咨询等活动中来。
3.2.1 参与可信计算的项目开发
参与可信计算的项目开发可以促进整个计算环境的建设,包括可信计算原型开发、产品集成、功能开发、系统集成等。通过参与项目开发,企业和组织可以分享可信计算的经验,改善安全和可用性,并落实可信计算项目。
3.2.2 教育培训
作为一名技术人,对于安全、隐私和可用性等核心问题,是应当有所关注的。可信计算框架的引入,让安全、隐私、可用性相关知识成为第一需要了解的内容。教育培训也可以为企业或个人提供良好的安全培训,同时也能提升技术能力。
3.2.3 部署
部署可信计算框架后,企业或组织就可以部署可信计算系统了。部署可信计算系统,还应注意一些常见的问题:
- 硬件配置:对可信计算系统的硬件配置,需做到足够安全、可靠、可用。如使用安全的操作系统、禁止插拔U盘等。
- 应用安全:企业或组织部署可信计算系统,需要考虑应用安全。如限制应用的权限、限制执行的文件类型、设置运行环境等。
- 网络安全:企业或组织部署可信计算系统,还需要关注网络安全。如设置合理的端口白名单、使用安全的加密算法、开启网络层防火墙等。
- 密钥管理:在部署可信计算系统时,应谨慎管理密钥,确保密钥的安全。如保障密钥的生命周期、使用有效期、设置密码策略等。
部署完可信计算系统,还应当密切关注其运行情况,及时发现系统中的安全隐患,并采取相应的预案进行处理。
3.3 提升计算资源质量
提升计算资源质量,则需要通过几种方式来实现。
- 资源优化:提升计算资源质量,首先需要对系统资源进行优化。如根据硬件配置、软件配置进行优化,比如选用最新版本的操作系统、更新驱动程序等。另外,还可以通过调整虚拟化技术、调度策略等方法,提升资源利用率。
- 资源池配置:提升计算资源质量,还需考虑资源池配置。如为不同类型的计算任务配置不同的资源池,为高计算任务配置高性能机器,为短期任务配置弹性机器。
- 节点管理:提升计算资源质量,还需关注节点管理。如设置合理的失效时间、定期维护节点、定期备份节点等。
总的来说,提升计算资源质量,可以通过优化资源配置、配置资源池、节点管理等方法,实现高效、可靠、稳定的计算资源,为最终用户提供优质的服务。
3.4 有效控制数据
有效控制数据,需要借助密钥管理体系,通过密钥管理,可以对数据进行加密、签名、数字摘要、随机数等多种方式进行保护,确保数据完整性、真实性和安全性。
4.可信数据共享
4.1 什么是可信数据共享?
可信数据共享(Trusted Data Sharing)一词由英国计算机科学家安东尼奥·巴拉诺夫、塞缪尔·约翰逊、沃伦·皮尔逊、迈克尔·柯林汉和李昆鹏提出。2006年,巴拉诺夫、约翰逊、皮尔逊、柯林汉、李昆鹏一起编写了一份报告,基于各种可信计算框架、技术以及对可信数据共享的需求,提出了定义如下:
- Trusted Data Sharing is the practice of sharing sensitive data securely across organizations or individuals in a way that ensures the privacy and security of the data while ensuring its accuracy and provenance.
- It involves various mechanisms to establish trust between two or more parties, including trusted computation, authenticity, access control policies, encryption technologies, key management systems, and other tools and techniques for protecting data integrity and availability.
简单而言,可信数据共享就是指两个或多个参与者之间共享敏感数据时,必须做到数据安全、隐私和可用,还需要保证数据的真实性和其产生的地点。为了实现可信数据共享,需要建立可信计算环境,做好相关的数据保护措施,以及使用可信数据共享的合作关系。
4.2 可信数据共享的核心原理
可信数据共享的核心原理是“可信计算”,包括建立可信计算环境、制定安全技术标准、开展可信业务合作、提升计算资源质量、对数据进行有效控制等多方面内容。下面是对可信数据共享的核心原理的说明:
(1)可信计算(Trusted Computing)
对于数据共享过程中的参与者,都必须通过可信计算建立信任。具体包括:
- 数据采集:使用可信计算技术来保障数据的安全采集、存储、传输、使用。
- 数据使用权限管理:通过权限管理策略,实现数据的可信传输和使用。
- 数据使用证明:基于加密、认证、数字签名等方式,提供数据的可信用途证明。
- 数据安全分级:对不同级别的数据,分别使用不同的安全措施。
- 数据有效性确认:对于共享的数据,需要经过有效性确认。
(2)身份认证(Authentication)
数据共享过程中,需要对共享者的身份进行认证。具体包括:
- 使用加密技术:对数据进行加密,确保数据安全传输。
- 使用数字签名:对数据进行数字签名,确保数据来源可信。
(3)数据持久性(Durability)
数据共享过程中,需要考虑数据的持久性。具体包括:
- 使用可靠存储系统:对于重要的数据,可以选择使用可靠的存储系统,如磁盘阵列、SSD等。
- 数据备份:对数据进行定期备份,确保数据安全。
(4)数据可用性(Availability)
数据共享过程中,需要确保数据可用性。具体包括:
- 使用异地冗余存储:对于重要的数据,可以在多个位置进行异地冗余存储。
- 数据容灾:对于数据容灾,需要提供相应的机制。如数据备份、异地冗余存储等。
(5)数据共享后期效果(Post-Sharing Effectiveness)
数据共享后期效果,需要评估数据共享是否有效果。具体包括:
- 数据被盗用、泄露风险评估:通过对数据进行清洗、评估、和监测,确保数据安全。
- 数据泄露、误用后的后果评估:对于数据泄露和误用,需要制定相应的处罚措施。