基于分级安全的OpenHarmony架构设计 精华
本文转载自 OpenHarmony TSC 官方微信公众号《峰会回顾第1期 | 基于分级安全的OpenHarmony架构设计》
演讲嘉宾 | 付天福
回顾整理 | 廖 涛
排版校对 | 李萍萍
嘉宾简介
付天福,OpenHarmony技术指导委员会安全及机密计算TSG负责人,华为公司科学家委员会副首席科学家,终端BG/车BU首席安全架构师,安全SEG Leader。主要负责HarmonyOS/OpenHarmony操作系统安全架构设计、终端芯片安全架构、安全芯片、可信计算、移动应用生态治理架构、数据防泄漏技术、基于大数据的网络安全和应用安全检测技术等研究和产品设计。
文章内容来源
第一届开放原子开源基金会OpenHarmony技术峰会——安全及机密计算分论坛
视频回顾
查看视频
正 文 内 容
OpenHarmony是一个使能千行百业的操作系统,它是如何在数据的全生命周期里,基于分类分级的方式保护消费者的个人隐私和企业的核心数据资产不泄漏?又是如何在分布式互联的泛在系统里,避免一个子系统被攻陷后导致整体沦陷的问题?华为可信领域副首席科学家付天福在第一届OpenHarmony技术峰会上,从系统的体系架构层面给出了他的思路。
01►分级安全的架构
付天福首先介绍了OpenHarmony分级安全架构设计的初衷和相关概念。为什么选择分级安全系统理论作为OpenHarmony安全架构的核心?OpenHarmony从使能一个灯泡、一个插座,到手机、平板,以及其他智能家居设备,如智慧屏、路由器、存储等;再到赋能工业互联网,如为煤矿里面的采煤机,交通里面的码头、港口等控制设备提供基础的操作系统软件。如果要把上述差异巨大的各类设备组合形成各自的超级终端,从追求极致安全的角度来看当然可以要求所有设备使用最可靠的安全芯片和算法,但所需成本是无法接受的。因此,对于一个由安全能力差异巨大多个设备组成的分布式系统来说,存在两个大的风险:一是机密的数据在分布式系统中处理可能会泄露,分布式系统中的弱安全设备很容易被攻陷成为肉鸡跳板来窃取数据,机密数据在超级终端中流转时也很可能会从保护妥善的强安全设备不慎流入弱安全设备从而造成泄密;二是控制指令的劫持仿冒,在工业互联网分布式互联的场景下,当一个很弱的设备被劫持后,可能会被用于伪造身份发出控制指令,或者对控制指令进行篡改,从而对整体控制网络造成不可预期的结果。
为了应对以上的两种典型的数据泄密和控制失控的风险,OpenHarmony选择了分级安全的架构设计。分级安全架构要解决两个最核心的问题:一是数据防泄露,必须从加密、隔离、身份认证以及访问控制上,加强对机密数据的访问主体进行严格控制;二是控制流可信,必须解决控制流的仿冒、劫持、篡改等风险,确保低安全等级的设备无法向高安全等级设备发出高危指令,从而避免系统失控。
OpenHarmony的两个核心的架构,抽象成信息安全领域的访问控制模型,就是为了防范数据泄密的Bell Lapadula模型(简称BLP模型)和防止系统完整性破坏的Biba模型(控制流指令不可信造成失控也是一种系统功能完整性的破坏)。
BLP模型核心规则
Biba模型核心规则
主体访问客体的访问控制模型,用通俗的语言可以理解成,正确的人(主体,包括自然人、应用程序、发起控制的设备等),在正确的设备(执行访问控制的环境)上,正确的使用数据(客体,包括文件、数据、资源、被控系统等)。
1.1►►正确的人(主体)
如何保证在操作系统里提供便捷的对于人、程序以及设备等的认证是可信的呢?这就需要建立一套分类分级的机制。基于分级的理论,对单因子、多因子以及多种不同的认证形态,例如人、程序、设备等进行分级认证,认证后的可信等级越高,信任度越高,则对其做授信时就可以让其有权做更多更危险的操作。
从身份认证理论来说,单一因子的安全性不如多个因子,同一个因子在不同等级的安全环境认证,安全等级也不同,OpenHarmony制定了一套严格的多因子分级认证信任等级评估规范,来决策对主体的身份认证等级。
1.2►►正确的设备(环境)
如何保证在全场景中每一台设备的身份以及能力是可信的呢?基于分级要求,将设备安全架构分为完整性保护、漏-洞防利用、隔离与访问控制、可信执行环境等几大部分,再分别对各部分进行可信分级。例如:一台设备的完整性越强,则其可信程度越高;设备的隔离机制、软件和硬件等漏-洞防利用技术不同,其可信程度也不同。当一台设备完成了身份认证和可信等级认证后,就可以在特定系统里承担相应的职责,操作系统也可以根据每一台设备的身份认证和可信等级,来拒绝其承担超越能力范围的操作,例如限制其发布某敏感程度的指令和数据。
1.3►►正确的数据(客体)
如何保证数据是合法、合规的,且是按照数据主权拥有者所期望的方式被处理的呢?需要在数据的全生命周期中,由操作系统底层为应用程序赋能。例如在数据的生产阶段,如果让应用程序去自主实现数据分级是很困难的。尽管可以通过程序去设定每个数据的级别是多少,加密程度是什么,其密钥要保存在何处,密钥的访问控制机制如何设计等,但可能导致在生态环境下不可控:缺乏经验的设计人员在设计实现时可能存在巨大的安全隐患,且工作量是巨大的。
OpenHarmony提供了从数据的生产、存储、传输、使用、销毁的整个端到端流程的通用机制。例如,在数据产生时,通过设定数据等级,底层就可以基于不同的等级,自动化完成加密,开发者无需考虑其加密环境、算法、策略、密钥管理等繁琐的事情;在数据使用阶段,只要提前设定数据的使用策略,操作系统就可以帮助完成策略的执行,例如设定该数据不能打印、不能传输、不能拷贝等。这样就极大降低了数据在端到端使用过程中的泄露风险。
02►OpenHarmony系统权限及访问控制架构
操作系统的分级安全架构,落实到对程序的分级管控,如何缩小TCB可信基的规模,如何实现应用程序的权限最小化?付天福介绍了OpenHarmony系统权限及访问控制架构相关的原理。对人的认证,例如支持多模态、多因子的认证在前面的版本都已经实现了,但是作为一个自然人在处理数据时,最终还是要通过应用程序进行,即必须是一段应用程序逻辑才能处理数据。如果程序的权限等级不严格区分,这个处理数据的主体就不可信,很可能一个本来应该低级别权限的应用程序处理数据,但是因为不恰当的被高权限的应用访问,导致数据泄露。因此,应用程序也需要进行分级管理。OpenHarmony将会在最新的版本发布时开源这部分的设计。
2.1►►分级策略
在Linux系统中,若一个进程被设置为uid=0(即赋予root权限),则该进程就获得了系统最高特权,可以畅通无阻地进行各种危险操作。在安卓系统中,不仅仅有Root权限的最高特权进程,还存在其他拥有特权的System进程(uid=1000)。比如无需用户授权就可以任意调取麦克风、摄像头、地理位置等权限,这就导致了许多攻-击者会花费大量心思将其恶意代码注入到System进程中,或修改自身uid伪装成System进程。这就形成了在安卓体系里的两个相对脆弱的可信基(TCB, Trusted Computing Base),对系统造成巨大的安全风险。
另外,对于签名的不当使用也存在同类问题。当一个应用程序拥有系统平台签名后,它就拥有了类似于安卓System进程的许多特权,变相成为了操作系统可信基的一部分。众所周知,操作系统的可信基要求越小越好,TCB越小,系统缺陷就越少,攻-击面也越少。
高安全的操作系统一般都会尽可能缩小自己的TCB,并且基于分级安全架构,来限制特权应用程序的规模。在现代操作系统鼻祖MULTICS在1965年设计的时候,安全架构的设计初衷是“即使它被间谍渗-透控制了,仍然能够保证操作系统的数据等都是安全的”, MULTICS划时代引入了MLS的安全模型,并基于这一模型来实施系统的分级安全体系架构。分级安全的架构也是做高端操作系统的基本共识。而我们经常看到的高安全操作系统如QNX、L4等基于微内核架构的设计,也是采取了无特权Rootless设计架构。
OpenHarmony也借鉴了这些历史上典型的高安全架构的操作系统体系架构,来设计自身的分级安全架构模型,解决系统架构的Rootless无特权设计。
2.2►►实现逻辑
在OpenHarmony操作系统中,应用程序分3级,如下图所示。其中,System Core层包含了操作系统最核心的基础功能,如资源的管理和程序的调度、管控等;System Basic层包含了操作系统对外提供的基础服务;而所有消费者可下载安装的三方应用程序只有Normal权限,即都包含在Normal层中。如此一来,OpenHarmony成倍的缩减了操作系统的可信基规模,一切应用程序都只能运行在最低等级的Normal级上,如果需要访问System Basic或者System Core的API,只需要对应用程序API权限进行授权管控。因此,只要保证OpenHarmony的Basic和Core内核的安全,应用程序就几乎不能继续恶意行为。
OpenHarmony分级权限架构模型
基于上述分级策略,在OpenHarmony生态中,所有的应用程序都可以按照预期去实现其应做的功能。例如天气类型的软件可以专注做好天气相关功能,由于它的权限极为有限,因此它就无法窃取用户隐私,出售用户数据牟利。如果能够保证操作系统的纯净和安全,在风险管控上就容易很多,从根本上就保证了OpenHarmony生态的纯净安全。
2.3►►数据防泄漏
数据泄露风险是当前数据安全领域最痛点的问题,因此, OpenHarmony提供了一个重要的基础能力:数据防泄漏。OpenHarmony为数据提供了全套的生命周期管理机制,除了在本机上创建、存储、使用、传输和销毁数据进行严格的策略管控,OpenHarmony还可以确保在数据被发送到另一台设备后,数据仍然严格按照发送数据的主权拥有者制定的安全策略来管控数据的使用。OpenHarmony具备这样的能力,无论是个人场景,还是企业场景,都能够保证数据发送后的可控。
OpenHarmony数据防泄漏解决方案能在哪些场景下应用呢?数字版权保护是一个很好的应用场景:比如说,OpenHarmony可以助力国家数字图书馆的落地和发展,在确保图书版权不泄露的前提下,在一台OpenHarmony的设备上,可以任意浏览图书馆的图书文献而不必担心这些宝贵的资产被恶意分发失控。如果能够获得普及,有利于提高国民素质,保障数据在可控的前提下进行分享从而保障版权人的权益,让国民只需通过一台OpenHarmony的平板或者电脑就可以随时随地接入,从而浏览感兴趣的内容。另一个可能的典型应用是,在自媒体领域,OpenHarmony体系可以保护自媒体创作者的高质量作品的所有权和产权,保障其合法权益,同时也可以促进高质量作品的产出。
此外,数据防泄漏也是维护企业核心数据资产不泄露的关键一环。为了防止数据资产泄密,我们看到在当前移动互联网已经极度普及的情况下,还有很多保密单位还是通过光盘刻录的方式进行数据共享,其流程相当繁琐,需要通过登记、领导签字、刻光盘、实物转移、光盘销毁、责任人再签字等手续,很不利于协同合作和效率提升。如果在操作系统底层提供分类分级保护的能力,同时又能够保证数据发送出去后仍然可以严格受控,我们就将一些机密文档实施一个文档一个密钥加密,这个文件加密密钥的保存、使用、加解密、访问控制等都在一个独立的安全芯片中进行,通常安全芯片都具备硬件三防能力,这样即使面临设备丢失等情况下,如果被暴力破-解,也能够保证数据不泄密,安全性就大大增加了,也提升了数据共享的效率。
从上面可以看出,由于数据加密后,传递的是密文,因此数据传输可以保证不会泄密。而加密密钥和文件的权限,则封装在基于加密机公钥加密的数字信封中,由DLP服务器和OpenHarmony共同完成认证鉴权、解密、权限管控,确保了数据在离开数据主体后,依然完整受控。
03►总结
付天福最后提到,OpenHarmony基于分级的安全架构能够在使能千行百业时,基于严格的数据防泄漏BLP模型和控制流指令保障的Biba模型,使能移动互联网、企业办公等场景,确保数据不泄露,且在数据被发送后仍然能够严格受控不泄密;在使能产业互联网时,能够严格保障控制流的安全可信,确保只有高安全设备才能控制低安全设备,低安全设备不能反向控制高安全设备,为产业互联网的可靠、可控、稳定运行提供了最基础的保障。在未来的新版本中,OpenHarmony会逐渐发布新功能和新特性,欢迎所有对设计和实现一套高安全操作系统有兴趣的学者、工程师和我们一起,把OpenHarmony的安全能力底座做得更强,把各种应用的场景变得更丰富,去赋能万物互联,为国家数字经济保驾护航,为中国的系统软件提供最基础的根底座。
学习下安全方面知识
很专业