当前位置:首页 期刊杂志

Open Harmony与Android框架安全机制分析

时间:2024-05-04

徐仙伟,钱珺

(南京森林警察学院信息技术学院,江苏南京 210023)

0 引言

Open Harmony 是开放原子开源基金会(Open Atom Foundation)的一款运营项目,采用开源方式,目的是构建一款智能化终端设备操作系统框架和平台,实现全场景、全连接、全智能化的设备应用,真正实现万物互联的社会发展需求。华为Harmony OS 正是基于Open Harmony开发,借助分布式技术,将使用人、智能设备以及应用场景有机结合,使人在各种场景中应用的多种智能终端设备实现极速发现与连接,达到设备间硬件资源互助,系统资源共享等体验效果,真正实现万物互联[1-2]。

安卓(Android)是基于Linux 内核(不包含GNU 组件)的开源操作系统框架。当前主要用于一些移动智能终端,如智能手机和平板电脑等。该框架由美国谷歌公司和开放手机联盟共同管理和开发,因其开放性特点使得众多开发者参与其中,从而出现许多移动终端厂商加入安卓联盟。

本文将对上述两种系统开发框架进行阐述,着重从信息安全角度对其安全机制进行分析,对比分析各自的优势和不足,为信息安全人员从事相关研究和实践提供理论依据。

1 系统体系架构分析

1.1 Open Harmony

Open Harmony采用分层设计思想,包括:内核层、系统服务层、框架层、应用层。系统功能上主要按照系统→子系统→功能/模块的方式进行逐级展开,能够在多设备应用场景下,根据实际需求进行功能/模块裁剪[3],实现设备互通、应用服务需求满足的同时降低系统资源消耗。

在内核上该架构主要采用多内核设计,支持针对不同资源受限设备选用适合的OS 内核。其中,系统服务层是系统的核心能力集合,包含了多种服务子系统集,并根据不同设备形态进行环境部署。同时,该层通过框架层向应用层中应用程序提供服务。框架层主要为系统应用开发提供Java/C/C++/JS 等多语言的用户程序框架、Ability 框架等。应用层主要包括系统应用和第三方非系统应用。

1.2 Android

Android 架构主要分为四层,从上到下依次为应用程序层、应用程序框架层、系统运行库层以及内核层。其中,应用程序层主要提供应用程序,常用Java语言编写开发,因其简单易学可被开发人员及时更新与替换,因此具有较高的灵活性和个性化特点。应用程序框架层提供了Android 应用开发的基础功能,许多核心应用程序功能需要通过该层来实现。同时,该层中简化了组件的重用,一方面,使得开发人员可直接使用现有的组件进行快速开发,另一方面,也可以通过继承方式实现功能的个性化拓展。系统运行库层主要包括系统库和Android 运行时两部分,其主要作用是连接应用程序框架层与Linux内核层。最底层为Linux 内核层,其核心系统服务如系统安全性、内存和进程管理以及网路协议等均由该层提供[4]。

1.3 架构对比分析

尽管两种框架都是基于Linux 内核开发,但构架仍有许多区别。

安卓系统是基于Linux的宏内核设计。宏内核中包含了操作系统的大多数的功能和模块,而这些功能和模块必须都具有最高权限,只要一个模块出错,整个系统就会崩溃。此外由于Android是用Java语言编写的,系统开发难度低[5],由此导致的缺点是不能与系统底层直接进行通信活动,必须通过虚拟机来运行,当虚拟机出现问题整个系统就会卡住,这也是安卓系统容易崩溃的原因。

Open Harmony 主要采用微内核设计。微内核中主要包括操作系统必要的一些功能模块(如任务管理、内存分配等),处在核心地位,具有最高权限。当其他模块出现问题,对于整个系统的运行是无碍的。因此,微内核开发难度大,但是系统稳定性高[6]。并且该系统采用加编译器取代虚拟机,直接编译为二进制机器码,无须中转,执行速度快,但同时需要的内存空间也高。

2 安全机制分析

2.1 Android系统安全机制

Android 系统在其架构的各个层面都进行了安全设计,主要包括系统内核、虚拟机、应用程序框架层以及应用层等。其主要目的在于实现开放的同时,也能全面地保护用户数据、应用程序以及设备的安全性。其安全模型提供的安全机制如下。

2.1.1 访问控制

访问控制是保证操作系统安全性的核心方法。在Android 系统中,任何有可能危害到操作系统的操作和程序都应无法正常执行,这些非法操作包括读、写用户隐私数据以及其他应用程序的文件等。该机制可及时限制有害于系统和用户使用的程序运行,从而进一步保证用户数据不被非法程序访问。

2.1.2 应用程序签名

安卓系统要求其所有的应用程序都必须通过证书签名机制才可安装。只有签名后的apk(应用安装包)才可发布。一方面,该机制可保证应用安装包的完整性,使用恶意代码无法插入和修改apk包;另一方面,对apk包的应用更新也能起到规范管理。

2.1.3 进程防护

在进程管理中为了保障应用程序及其数据、文件的完整性和机密性,Android 一般采用进程隔离以及基于共享内存的Binder 策略加以实现,并且能达到轻量级的远程进程调用效果。在进程间通信数据安全方面,主要通过接口描述语言定义接口与交换数据的类型,使得数据不会溢出。

2.1.4 权限命名

继承Linux 权限管理方法,系统中每个权限包括3项信息,分别是:权限的名称、各个权限所属的组以及权限的保护等级。权限组是指把权限按照不同的功能要求分成不同集合。每个权限组中包含若干个具体权限,组中的每个权限均具有该组提供的权限等级,不同组中的权限具有不同的权限等级,保护级别使用应用程序访问时要使用此权限时的认证方式。

2.1.5 内存管理

Android 系统采用Linux 的低内存管理机制,将进程按重要性进行分级、分组。当系统内存不足时,采用独特的低内存清理方法,自动清理最低级别进程的内存空间。在共享内存空间管理方面主要采用Ashmem机制进行清理。

2.1.6 “沙箱”机制

在Android 系统中,所有的应用程序和系统进程都会被分配一个固定的用户ID(UID) 进行唯一性标识,该UID 必须与内核层进程的UID保持一致。该方法可保证每个应用程序可以在自己独立的DVM(Dalvik 虚拟机)中运行,拥有独立的地址空间和系统资源,这种隔离机制称为沙箱机制。该方法主要采用重定向技术,实现系统的安全防护。

2.2 Open Harmony安全机制

Open Harmony 是一款面向未来的、全场景的、分布式操作系统框架,在手机、电脑以及更加丰富的物联网(IoT)设备上具备通用性。数据的跨设备调用和流转在Harmony OS 设备间非常普遍。在提供优质服务与用户体验的同时,保证系统安全与隐私保护[7]。其安全机制如图1所示。

图1 Open Harmony安全机制

2.2.1 硬件安全

1) 启动可信根。Open Harmony 设备采用PKI 体系保护软件完整性,确保设备运行来源合法、软件未被篡改。在设备启动流程中,逐级进行软件签名校验形成安全启动链,任何一个环节的签名校验不通过即终止设备启动。安全启动链中最初执行签名校验的软硬件实体,即为设备的启动可信根。

2)硬件隔离可信环境。遵循可信计算系统的设计理念,使可信与不可信之间存在清晰而明确的隔离边界。Open Harmony设备在可信环境中实现核心敏感数据的保护机制,可确保即使不可信的操作系统存在漏洞且被利用也能保证可信环境中敏感数据的安全,该可信环境主要采用基于硬件的安全隔离机制构建。

3)硬件密钥引擎。利用计算机硬件辅助软件来处理数据的加解密,由硬件实现加解密处理,将使部分专用硬件资源用于处理加解密计算任务,当加解密引擎工作时,CPU 可并发地继续执行其他计算任务,可以极大地提升性能,降低CPU 负载。此外,硬件密钥引擎还可对抗电磁、辐射等物理侧信道攻击。

2.2.2 系统安全

1)进程隔离。进程隔离一般采用虚拟地址空间映射方式,通过MMU配置,将不同进程的虚拟地址映射成各自不同的实际的物理地址段,当进程通过虚拟地址访问实际内存数据时,在非共享内存条件下,该存储空间只属于某一进程,其他进程无法访问。对于用户态进程均拥有独立的VMM空间,相互不可见。

2) 自主访问控制DAC(Discretionary Access Control)。规定文件权限由文件拥有者来决定其他角色的访问权限。权限管控粒度分为三类:user(自身)、group(组员)、other(其他人),即UGO。将任意用户分类为UGO中三者之一,采取相应管控策略,完成DAC权限校验流程。

3)Capability机制。在多用户计算机系统中,一般系统管理员(root)会拥有系统的所有权限。Open Harmony将系统中的特权访问进行管控,系统需要对用户层访问内核的特权级系统调用进行限制,仅允许部分高权限应用进行特权操作。

4)安全启动。通过采用数字签名和完整性校验机制,从芯片内部固化的可信启动根开始,逐级校验每一层软件的完整性和合法性,确保最终启动的操作系统软件是厂家提供的正确合法的软件,防止攻击者对系统软件进行恶意的篡改和植入,为整个系统提供初始安全的基础运行环境。

2.2.3 数据安全

HUKS(Open Harmony Universal Keystore Service),提供了密钥管理、证书管理服务,用于支撑HiChain(设备身份认证平台)的基础设备认证。

2.2.4 设备互联安全

为了实现用户数据在设备互联场景下各个设备之间安全流转,需要保证设备之间相互正确可信,即设备和设备之间建立信任关系,并能够在验证信任关系后,搭建安全的连接通道,实现用户数据的安全传输。设备之间的信任关系将涉及IoT(物联网)主控设备和IoT设备之间的可信关系。

2.2.5 应用安全

1)应用签名管控。Open Harmony 应用安装首先需要对包的完整性进行校验。当安装应用时首先计算包的Hash 值,然后使用hash 值和服务器上的签名信息以及预置公钥进行验签,只有验签通过的应用才能安装。

2)应用权限控制。Open Harmony 系统允许安装第三方应用,需要对第三方应用的敏感权限调用进行管控,具体实现是应用在开发阶段就需要在profile.json中指明此应用在运行过程中可能会调用哪些敏感权限,这些权限包括静态权限和动态权限,当需要运行时让用户确认才可调用。

3 结论

当前,全球智能移动终端市场蓬勃发展,Android仍是主流开发环境,其开放性、不受到运营商制约、丰富的硬件选择、不受任何限制的开发商等优势给消费者提供了极大便利,拉近了人与互联网间距离,改变了人们的生活方式。但同时也出现了许多问题,特别在安全和隐私方面,越来越多的安全漏洞在Android应用程序框架中被发现。一些已知的漏洞可能导致大规模的网络攻击并严重损害用户的安全和隐私,例如恶意APP 可以利用它们来窃取用户密码,在后台拍照,启动UI 欺骗攻击,并篡改用户数据。

随着物联网技术的需求应用,Open Harmony体现显著优势。其以其分布式特点实现业务程序数据和用户数据的分布式管理,使得业务逻辑与数据存储分离。通过构建统一的分布式服务管理,达到分布式任务调度目的。利用分布式虚拟化平台实现不同设备的资源融合、设备管理以及数据处理,并将周边设备作为能力的延伸,共同形成一个超级虚拟终端。此外,Open Harmony 通过组件化和组件弹性化等设计方法,做到硬件资源的在多种终端设备间,按需弹性部署。同时根据设备的可用资源和主要业务方向进行灵活增减,从而实时地满足不同形态下的多终端设备对于操作系统的服务需求。在安全性方面,因Harmony 微内核的代码很少,受攻击的可能性大大降低,而且无需Root,细粒度权限控制从源头提升系统安全,通过分布式多端协同身份认证来保证人、设备和数据的正确性。在数据使用中围绕数据的生成、存储、使用、传输以及销毁过程进行全生命周期的保护,从而保证个人数据与隐私以及系统的机密数据的安全性。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!