37 北工大胡俊老师讲可信计算3.0,附链接

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
本文共分4部分内容可信计算3.0的基本概念和学习思路、重塑网络安全观、理解可信体系架构、在实际环境中应用可信3.0技术。

可信3.0是我国在网络空间安全架构上的原始创新是实现我国网络空间安全可信的有效手段其内涵非常丰富。而理解可信3.0也需要从网络安全的基本概念或者说从网络安全观来入手才能够真正抓住其精髓。关于可信3.0的内涵沈昌祥院士有专文介绍也做过很多次报告。本文主要谈一下在学习、理解可信3.0和在可信3.0环境下开发的一些体会。

本文共分4部分内容可信计算3.0的基本概念和学习思路、重塑网络安全观、理解可信体系架构、在实际环境中应用可信3.0技术。

一、可信3.0基本概念和学习思路

1、安全可信、可信计算和可信3.0主动免疫可信三个概念之间的关系

我国网络安全法、国家网络空间安全基本战略中都提出了安全可信的要求网络安全等级保护标准中则以安全可信作为其核心理念现在安全可信的概念比较火可信计算和可信3.0也是频繁出现的概念。但是目前网络上安全可信、可信计算和可信3.0的理解是比较混乱的。一些IT新闻里宣传的“安全可信”其实并非真正的安全可信。在这一节中我们梳理一下这三个概念的关系。

我国现在非常重视网络安全问题网络安全已经被提到国家安全的高度。而我国网络安全的基本要求是安全可信。它并非一个抽象的概念在我国的等级保护制度中对安全可信有比较明确的定义。

在我国的等级保护制度中对重要信息系统安全可信的要求是构造一个安全管理中心支持的三重安全计算环境、安全区域边界和安全通信网络防御框架从技术和管理两个方面进行设计做到系统的 “可信、可控可管”。更具体一点说可信是指针对可信计算资源构造保护环境从可信计算基TCB开始层层扩充对计算资源进行保护确保系统服务安全可控则是针对信息资源数据和应用构建业务流程控制链以访问控制为核心实现主体用户按策略规则访问客体信息资源确保业务信息安全可管则是保证资源安全必须实行科学管理强调最小权限管理高等级系统实行三权分离管理体制禁止设不受控的超级用户。

可信3.0也就是主动免疫可信则是我国在网络安全领域长期研究之后提出的一种系统化的实现安全可信的方法这一方法其核心特点为构造计算部件和安全部件分离的双系统体系架构安全部件构建完整的信任链条以保证其自身可信通过安全部件对计算部件的主动监控实现系统流程的可控通过主动运作的安全部件来支撑对系统安全的管理。这一方法具有通用性可以有效地实现系统的安全可信。我国的可信计算系列标准对这一方法的组成和各核心部件进行了描述。

简而言之我国网络空间安全要求安全可信其具体含义是通过安全管理中心支持的三重防御框架实现“可信可控可管”这个在我国等级保护标准中已明确。可信3.0则是实现安全可信的有效方法其核心特点为双系统体系架构下的主动免疫可信我国等级保护系列国家标准对其作出了规范。可信3.0技术具有通用性、先进性可为我国网络空间安全提供有效支持。下图给出了三个概念之间关系的说明。

2、可信计算的时代划分和可信3.0的先进性

在计算机领域“可信“在上世纪70年代已经作为系统可靠性的概念而提出。而后又发展到网络安全领域目前在软件可靠性领域可信这个概念仍旧有广泛的应用。但是,可信概念应用于网络安全时其含义和其原始含义已经有了很大的区别。软件可靠性领域的“可信“和安全可信不是一回事。

我们可以把软件可靠性领域的“可信“看做可信1.0它主要关注的是主机可靠性通过增加冗余备份、容错算法等技术实现在非安全领域可信1.0还有很广泛的应用。但安全领域冗余是解决不了主动的恶意攻击问题的因此国外TCG组织提出基于可信的硬件构造可信软件栈基于密码学和硬件安全技术实现调用过程中可信部件的行为可信通过这些可信行为来支撑阶段的可信。这里可信部件是被计算部件调用的在可信机制中是被动的一方。我们把它叫做可信2.0也叫被动可信。被动可信能够增强节点的可信但它存在着很多局限性并且其可信的实现严重依赖于计算部件如操作系统和应用自身的可信。我国从网络安全的基本理论出发总结信息安全和可信计算的理论经长期研发后提出了可信3.0的理论。这一理论面向网络安全提出计算部件和可信部件分别构成逻辑上独立的系统可信部件主动监控计算部件以实现系统可信。这一理论中可信部件不依赖于操作系统和核心应用可独立发展解决了可信2.0面临的很多问题适合搭建安全管理中心集中管理的三重防御体系是适合我国网络安全要求的可信计算理论。

可信3.0是基于我国网络安全实际情况由我国相关科研人员自行研发面向网络安全的创新体系架构。可信1.0主要考虑通过备份等机制增强系统可靠性它是在系统中添加冗余再通过一个实现容错算法的层来实现可信2.0基于可信平台模块TPM等可信根实现一个软硬件结合的被动组件向系统硬件、操作系统和应用提供可信调用接口系统可以使用这些接口实现特定的可信功能可信3.0则构造一个逻辑上可以独立运行的可信子系统通过这一可信子系统以主动的方式监控宿主信息。从三种可信理论的概要结构图中我们可以看到明显的区别和升级过程这就是我们定义可信1.0、可信2.0和可信3.0的依据。

可信3.0是个新的体系学习可信3.0需要跳出一些传统安全的理念。大家可以分三个阶段来学习可信3.0首先是从更宏观的尺度上重塑网络安全观第二步则是理解我国提出的主动可信体系架构第三步则是结合实际安全需求研究基于可信3.0的解决方案并体会到可信3.0的优势。

二、重塑网络安全观

可信3.0理论的奠基人沈昌祥院士非常重视学生的基础是否扎实包括密码学基础操作系统基础和网络安全理论基础。但是在某次对话中当我试着联系传统安全理论和可信3.0时沈院士的指导则是“忘掉它”。

院士当然不是让我彻底忘掉传统安全理论。我的理解是我们要了解现有的信息安全理论是有局限性的思路要跳出既有的安全技术不要被当前的习惯性结论束缚从更基础、更本源的角度理解安全真正理解之后就可以把传统的信息安全理论再捡起来并且灵活应用了。

重塑网络安全观是因为现有计算机理论体系并没有很好地把“安全”给包容起来从原理和方法论角度来看对网络安全并没有非常清晰的解读。我国网络安全正处于一个比较严峻的形式状态网络安全必须要掌握在自己手里想要做到这一点必须要有科学的方法。另外我国IT产业相对弱势如果想要崛起想要摆脱技术桎梏就更需要采用科学的方法不然网络安全很难发展起来。此外科学的网络安全理论和方法是存在的即使现在找不到完美的答案也要努力保持正确的方向。

沈院士提出网络空间安全极其脆弱根本原因是网络安全有三个基本问题没有解决好。这三个问题是计算科学问题、体系结构问题和计算模式问题。前两个问题理论性比较强我们不展开论述。我们简单讨论下第三个问题。

从软件工程角度一个软件的开发过程要经过需求分析、概要设计、详细设计、然后集中测试、验收、部署经过了完整的开发过程的软件我们用起来是比较放心的因为做了充分的测试。如果项目经理不走正常开发流程要求强行更改功能我们知道这是错误的会对应用稳定性带来负面影响。但是这个开发流程没有为安全留出位置一旦发生了安全问题该怎么办呢常见方法是针对安全问题打个补丁而打补丁这个行为像不像项目经理强行添加功能我们知道这种行为既不能保证安全机制完整也不能保证原应用的稳定可靠运行。那么以安全为名义就能让原本不合理的行为变合理吗打的补丁我们有能力对其进行归零测试吗不能的话又怎么保证补丁的可靠性呢

从“Wannacry病毒”发作的时间线上我们可以看得更清楚些。这个病毒一开始出现时很多人在网络上说这就是你不打补丁的结果。其实这个病毒最早是在2016年8月由“影子经纪人”(Shadow Breakers)的黑客组织泄露的但是他什么时候发现的呢我们不知道。我们只知道是美国NSA公布的所以在很早之前如果NSA用这个漏洞攻击你你是不知道的到16年8月我们知道了这个漏洞可以攻击网络但是你没有任何防护办法到2017年3月微软给出“永恒之蓝”补丁打补丁可以防范基于永恒之蓝的攻击5月份的时候这个病毒发作。也就是说我们打补丁的行为其实只是保证了17年3月之后对wannacry病毒的抵抗能力在此之前打补丁不能抵抗基于“永恒之蓝”漏洞的攻击在此之后我们也不能保证系统对其它漏洞有抵抗能力。更糟糕的是如果补丁因为测试不足而存在新漏洞或者干脆存在后门那么打补丁这个行为反而会带来新的问题。而这已经是现实发生过的事情。大家是否已经感觉WIN10越来越不好用你打一个补丁可能就影响了某些软件无法正常使用。我国等级保护标准已经明确要求工控系统如果需要打补丁在打补丁之前一定要有严格的安全测试。

所以说现有的很多网络安全解决思路像打补丁、防火墙、防病毒、入侵检测等“老三样”解决方法追根溯源来看是有局限性的不能从根本上解决问题。要从根本上解决网络安全问题就需要正本清源这也就是重塑网络安全观的缘由。

可信3.0的网络安全观就是从根源上考虑安全可信解决方法的网络安全观。我们叫它主动免疫机制不是说它从生物免疫机制中借来了什么神奇技术而是它借鉴生物免疫的思想从体系架构上进行了的重构我们考虑免疫系统具体是怎么运作的第一它属于独立运作不受大脑控制第二免疫系统是识别自己与非己并排斥非己部分。这些做法在网络安全架构中是有其合理性的能够为网络信息系统培育“免疫能力”对未知病毒和攻击手段产生抵抗力。可信3.0借鉴这一思想从计算科学理论、体系架构和计算模式上提出了入手构建了自己的安全观。

从计算科学理论上说可信3.0认为网络安全的目标是确保为完成计算任务的逻辑组合不被篡改和破坏实现正确计算。就是说我们不能靠着修修补补或者是积累攻击特征来解决网络安全问题这个不利于整体安全防护我们要根据完成计算任务的逻辑组合自身的特点来区分“自己”和“非己”保障“自己”的正确执行禁止 “非己”。这决定了我们安全机制需要以定制的访问控制为核心这个也符合经典的网络安全理论和网络安全的最新发展趋势。

从体系架构上说它对传统冯诺依曼架构做了大手术构造了独立于传统冯诺依曼架构的可信部件组成的子系统传统架构则成为计算部件。但这样的架构解耦了计算部件和可信部件反而减小了对传统架构的影响让我们可以保持传统架构基本不变同时因为屏蔽了计算部件对可信部件的访问保障可信部件的可信性也变得更容易了。

从计算模式上来说实现双体系架构后我们的安全可信体系就可以从系统中分离出来。我们可以从环境入手具体就是从底层软/硬件、操作系统、网络的控制点入手通过可信部件进行统一的组织管理构造出安全管理中心集中管理的三重防御体系。有这个防御体系为基础我们既可以根据应用安全需求和系统环境定制系统安全可信策略通过可信部件监控应用的行为根据策略允许可信的行为对不可信的行为采取对应措施。这样的安全机制具有通用性和灵活性对应用影响更小部署成本也更低。这就是等级保护中提出的 “一个中心三重防御”的主动免疫防护框架。

可信安全管理中心支持下的主动免疫防护框架。第一要保证计算环境个体有免疫能力第二要有可信边界第三来往的信息人要审查、要控制、要可信安全更重要的是整个社会体系要管理。防护框架可根据实际需求制定安全规则并转化为策略来部署实施和现在防疫措施同样道理。最终我们要达到的效果是攻击者进不去、非授权者重要信息拿不到、窃取保密信息看不懂、系统和信息改不了、系统工作瘫不成、攻击行为赖不掉。将保密性、可控性、完整性、可用性、不可否认性牢牢掌控。

三、理解可信体系架构

上节我们提到可信3.0有先进的理念但我们必须有明确的架构设计才能落实这些理念。好消息是这个架构已经明确并以我国可信计算系列标准的形式明确下来了。我们的可信架构有一系列创新以确保可信计算的功能能够更好地实现下图是我国可信计算架构的大致情况

上面列出的这些可信部件不是简单地堆在一起而是构成了一个有机的整体并且与安全管理中心、系统的访问控制机制和其它节点的可信部件对接形成了分布式的可信子系统实现对主体应用进程的监控和对客体数据资源的验证。其流程图如下所示。这个图是用来跑流程的可以基于这个图来设计基于可信3.0的安全解决方案中的安全策略部署与安全审计流程。

图中所列出的部件由底层向上层层部署但并非任何时候都需要完整部署。在安全要求较高的场合需要构造完整信任链时控制芯片、双融主板、可信软件和可信连接等可信部件一个都不能少但在安全要求不是很高的场合也可考虑不使用双融主板在总线上连接控制芯片甚至于硬件上仅保留可信密码芯片来提供可信密码功能支持通过可信软件来实现可信子系统。这种系统就可以在现有系统基础上增加很低的成本来实现。它的缺点则是没有完整的信任链条遇到真正强力的攻击就不行了。但更靠谱一点的现有系统加固实现国内有一些公司有这类产品它可以保持对现有系统的兼容性还可以建立完整的运营链条但是它达不到结构化要求就是它可以达到三级防护准四级防护但是四级以上达不到。想达到四级以上的结构化安全还是需要扎扎实实的把工作做好基础打好了未来可以持续发展。有追求的我国网络安全公司还是应该向结构化实现的方向努力。

实现结构化安全需要对计算部件中的操作系统深入了解和掌握。深入到什么程度呢沈院士提出了“五可”的理念包括可知、可编、可重构、可信和可用。可知就是对合作方开放全部源代码开放到什么程度呢不是只有一堆代码就完事儿了而是你要能把代码编码成你可知的系统要心里有数不能盲从可编即要基于对源代码的理解能自主改写代码编写一些功能我觉得现在不少做国产操作系统的人还没有达到可编的状态可重构即面向具体的应用场景和安全需求对核心技术要素进行重构形成定制化的新的体系结构可信即通过可信计算技术增强自主系统免疫性防范未知漏洞攻击影响系统安全性使国产化真正落地可用即做好应用程序与操作系统的适配工作确保自主系统能够替代国外产品。

前面讲了可信3.0的理念和架构下面我们在对比一下国外可信计算的一些前沿技术。Intel, AMD, ARM都有自己的可信执行环境概念但是他们的概念其实还是没有做思路上的彻底改变所以有些问题解决的并不好比如可信执行环境里该运行什么内容可信执行环境与原始系统如何互动如何避免侧信道攻击这三个问题归根结底还是体系架构的问题国外也并没有给出具体的解决方法而主动免疫架构针对这三个问题给出了具体的回答。

现在还有一个很火的舶来概念“零信任架构”。零信任架构的核心概念包括统一于身份的授权管理业务安全访问持续信任评估动态访问控制等这些和可信3.0有相通的地方。但这些并不是零信任的原创我国等级保护标准也可以直接间接地推出这些需求。并且零信任也没有在我们第二节所述的三个基本问题上给出回答这使得零信任中的“信任”这个概念也缺少一个坚实的基础。

可信3.0中的可信是从哪里来的呢单从网络系统上看似乎是从信任根开始。但其实质是现实世界中的信任在网络空间的映射这个映射在网络空间有清晰和明确的对应关系。而零信任中的信任则是模糊化了没有说清楚其来源它只是在无法构造完整信任链条情况下的一种妥协措施是可信3.0的子集。我们要看到零信任在计算理论、体系架构和计算模式上的缺失不要迷信尤其是不应该基于零信任来解读网络空间安全这样既缺乏科学依据也与我国等级保护制度不符。但零信任和可信3.0相通的地方我们也不妨学习吸收比如对应用流程的梳理控制机制的实现等等。“零信任架构”的思想与传统安全理念也存在一些冲突之处。我们可以预测零信任发展到后面会遇到一些问题。比如

① 零信任架构自身安全如何保证因为零信任架构整体比较大不符合安全里的“最小独立化”要求。

② 集中可信后各部件如何可信零信任架构的信任如何扩展到每一个节点上

③ 零信任架构到处插防控那用户怎么选择在适宜位置放置这些防控机制零信任架构对应用开发习惯有多大冲击这个在可信2.0TCG中是有教训的TCG搞了一个特别复杂的TSS结构现在打算全部推翻重来那么零信任架构会不会再重蹈覆辙

④ 零信任架构对系统性能是否会带来不可预测的影响如什么都要回到中间去做判断那什么时候去做要花费多少时间不是简单就能搞定的要经过重重验证这些验证对性能影响有多大

做零信任的同志们如果将来遇到这些问题欢迎大家再来和我们交流讨论可信3.0对这些问题有自己的解决思路或许能够提供帮助。

四、结合实际安全需求

前面介绍了可信3.0的网络安全观及基本架构。那么如何基于可信3.0提出实际的安全解决方案呢首先我们还是要遵循网络安全等级保护制度。

网络安全等级保护制度已经是我国法律规定的所以如果做重要信息系统安全的话就应当遵循它。做非网络安全等级保护系统的安全方案时也可以借鉴学习它因为这个制度不仅仅是一个规范也是一个体系化的安全框架有详细的技术指导。国标GB/T 25070-2019《网络安全等级保护安全设计技术要求》其实就给出了一个设计方法的指南。

网络安全等级保护制度所提出的要求看起来很复杂但是只要我们抓住核心就能够理解这些要求。下面这个图是网络安全等级保护制度中各级别的核心要求理解了这些核心要求再去看别的就比较好懂了具体的要求都是为了实现核心要求而设置的而每一级别的可信保障要求又是来支撑我们每一级的访问控制要求的。可信保障一级是自主保护二级则开始按照指导保护保护级别是“审计”就是说如果说有一些违规的操作会把它记录下来比如审计的对象是谁这个能否验证还有审计信息是否会被篡改等保要求的应用程序验证和实际保护就达到目的了所以我们看到可信保障是用来支撑安全审计保护的。三级可信保障是动态度量的要求是用来支持三级的基于安全标记的强制访问控制的。我要做强制访问得确定访问的主体和客体是否被别人冒充了这个是要验证的不验证的话被人冒充了强制访问控制机制就失去意义了。那四级呢实时关联感知我们稍好提一下。五级我们一般接触不到暂时不用考虑。

等保里要求安全可信从“安全可信”这个语境上来讲有一些概念可能在别的地方也见过但不一定是一回事儿。以四级里的“态势感知”为例大家想的“态势感知”可能是一块大屏幕各种PB级感势 但是我们四级里“态势感知”有个前提就是主体和客体的全面标记、全覆盖的访问控制和审计我们还有自己的信任链条这时我们要基于这些审计信息不再估算或者用概率计算而是根据信息实时分析得到态势感知结果应该是根据我的访控规则和审计状况推理出来的这个要完整信任链条严格而全面的访问控制机制以及系统结构化安全作为支撑的。否则要是布个态势感知系统就上四级那么四级也太容易达到了。

可信3.0有一个很大的优点就是可以应用于各种新型信息系统中。每一个新型信息系统都有一个对应的安全可信解决方案。比如云计算-可信云工控系统-可信工控物联网-可信物联网区块链大数据5G等等虽然还没有形成标准但是我们相信以后也会有的。那为什么可信3.0适用于这些系统呢因为其实各式各样的新型信息系统在安全可信角度是类似的再复杂的机制到可信计算这里无非就是拓扑结构、信息流可能性能与安全属性不同但都需要安全可信区域边界、安全可信计算环境和安全可信通信网络依托定制的可信部件提供各具特色而内核又相通的解决方案。

我们举一个国家电网的例子它做到了几点第一、效率很高实时调度第二、不打补丁免疫抗毒第三、不改代码方便实施第四、精炼消肿降低成本。

那么可信3.0是不是看这么大的一个系统有这么多内容是否很难学习掌握其实可信3.0是一个体系架构从0开始什么地方都会有困难毕竟除了学习可信3.0还要将系统知识都学习了。但如果从生态角度看我们只需要结合已有的知识掌握我们需要掌握的部分就可以了由于可信部件和现有部件解耦使得可信架构具备了通用性。所以只需要一小部分内容即可。那可信3.0当然也有多个侧面大家可根据自己的需要了解一下

核心部件TPCM、TSB等需要设计和开发全新、通用的基础软硬件部件

与传统系统的对接深入掌握传统系统基础上为传统系统添加主动监控机制添加

安全可信功能的实现以组件化自动化、智能化可视化方式实现安全可信功能

安全可信策略的制定梳理应用流程明确权限量体裁衣。

可信3.0实现了计算部件与可信部件的解耦这就给我们学习安全可信带来了新的方法。我们可以把复杂的应用抽象为不同安全属性的节点和其间的信息流甚至可以基于可信组件将这个过程模拟出来针对这一模拟的应用流程寻找安全解决方案。而这一方案又可以映射到实际的信息系统中。北京工业大学在网络空间安全教学中已经开始应用这一方法来设计系统安全实训课程和教授可信计算技术。我们还基于这一方法设计了新型的网络安全竞赛题目在一些比赛中试用并得到好评。下面是我们设计的一个访问控制实训题目展示了透明于应用添加标记和实施访问控制的过程。

以上案例是在日常授课中所讲解的我基于自行开发的一个TSB原型搭建的流程抽象让学生在设计角度实现一个透明于应用的可信访问控制机制。我们基于TSB原型cube-1.3,提供了抽象的流程描述和透明安全机制添加方法这个案例整体把一个大的安全系统问题变成了小的局部的安全问题。我们实际授课时还会要求学生在基于可信密码的信任与数据保护、节点安全可信机制、网络连接安全可信、安全管理中心与安全可视化、安全攻防演练等方向进行发挥而我们则会为学生提供多种组件学生不用从头开始开发可以直接用组件来搭建出一个安全的环境。目前我们还是只限于教学场景应用可信3.0但我们的实际体验是可信3.0有着非常大的潜力它不但能够提供安全的解决方案其灵活性也是远超传统的安全解决方案而成本方面可信3.0需要一个积累过程但其安全机制的可重用性极高完成积累过程的可信3.0其成本上将有极大优势。

五、结语

最后作者根据自己在可信3.0上的工作、教学、学习经验来给大家一些建议首先、希望大家要增强自信心对国家网安政策的信心我们研究这么长时间是有成果的然后要对自主创新有信心,同时对自己要求信心要持续不断的投入研究这样恒久的做一件事情是能够成功的。第二、如果想把可信计算做下来就要重视并吃透底层技术比如底层硬件技术、操作系统内核技术、云虚拟化技术不见得完全掌握但至少能够把手伸进来知道做哪些操作。第三、协同共建可信3.0生态可信3.0不同方向、可信3.0与传统安全领域、安全可信与IT产业其它方向都是要协同的一定要加强。第四、重视开源技术的作用。第五、希望人才培养能够社区化多建立一些学校研究单位也多来参与。最后希望大家在招聘时多考虑北工大信息安全系的毕业生他们在安全可信领域学到的内容是比较深入且可以结合实际的。

可信计算初步超级棒

链接https://pan.baidu.com/s/1w6HvUwTW_i8CVunjsCWz7A

提取码wgus

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6