今日看点

HarmonyOS 2.0安全框架分析

发表于话题:HarmonyOS 2
发布时间:2021-06-02

HarmonyOS 2.0终于在几天前正式开源了面向物联网的部分(基于原有的LiteOS),并且引发了大家的关注和激烈讨论。物联网安全是我所在的课题组的一个重要的大方向,所以在这里我会简单分析一下当前HarmonyOS 2.0已开源的安全部分相关的东西,以及提出一些可以改进、扩展的地方。

安全的含义非常广,概括性地说就是保证数据的机密性完整性可用性,在此基础上又可以分为多个大方向。以我所在的专业方向为例,可以分为四个部分:

密码学:主要涉及的是密码算法、协议的设计与实现,可以说是信息安全的一大基石;系统安全:主要涉及软件安全、操作系统安全等,大家常听说的软件漏洞、系统漏洞就是在这个范畴内;网络安全:网络安全主要涉及信道安全、web系统安全等,也是大家常听到的一个方向;内容安全:内容安全的重要性主要是近几年才被重视,主要涉及大数据安全、隐私保护、人工智能安全等。

当然这个是培养方案划分的大方向,实际上每一个方向都或多或少涉及其他方向的东西。例如我的方向其实是密码学,但是系统安全、网络安全也是我学习的重点。

而如果以CTF比赛的类型来分类的话,大致有如下的几类:

MISC(Miscellaneous)类型:安全杂项,涉及数据隐写、流量分析、电子取证、人肉搜索、数据分析等等;CRYPTO(Cryptography)类型:即密码学,涉及各种加解密技术,包括信安数学基础、古典加密技术、现代加密技术等;PWN类型:PWN在黑客俚语中代表着攻破、取得权限,例如对Windows、Linux或者浏览器的漏洞利用;REVERSE类型:即逆向工程,涉及软件逆向、程序脱壳、破解等;WEB类型:即常见的Web漏洞,诸如SQL注入、XSS、任意代码执行等漏洞。

在官网的文档里,对于安全的定义如下图:

下面我会根据我的兴趣分析其中的几个部分。

1. 浅谈HarmonyOS安全框架

先说一下看完之后的总体感受:中规中矩

不是说HarmonyOS不安全,相反,基本上每一个地方都有相应的安全措施,只是采取的方案都比较中规中矩,刚好够用,没有用到什么黑科技或者前沿的密码学。当然这也不能责怪华为,密码学走得太超前了,量子计算机还没看到影,后量子密码已经被研究了十多年了。

1.1 硬件安全

硬件安全方面,主要有三个部分:硬件密钥引擎、启动可信根、硬件隔离可信环境。

硬件密钥引擎指的是安全芯片SE(Secure Element),可进行密码运算、密钥的安全储存、物理真随机数发生等等,计算能力和功耗比较低,并且可以抵抗功耗、电磁辐射等侧信道攻击方式。安全芯片里一般也会有一个操作系统COS(Chip Operating System),也可以进行一些简单的安全运算。例如华为的高端手机和一些中端手机,里面就会内置一颗安全芯片,以达到金融支付级别。做这块比较厉害的是恩智浦、英飞凌,不过国内也有华大信安、复旦微电子等有相关技术积累,而且因为安全的需求,安全芯片涉及的工艺不会很高(40nm顶天了),所以这一块应该不会受到制裁影响。

启动可信根这个很常见了,例如大家现在用的PC里的一般都会有TPM(Trusted Platform Module),用于Secure Boot。它的作用主要是保证操作系统启动时的安全(例如保证操作系统启动时没有被病毒修改数据),一般通过内置一个安全模块(例如上面的安全芯片)或者直接写在ROM里,里面保存证书、签名、哈希校验值,验证启动时的完整性。

硬件隔离可信环境,也就是TEE(Trusted Execution Environment),有很多例子,例如ARM的TrustZone,Intel的SGX等等,一般是在芯片上划出一块单独的区域,与其他地方隔离,只留下安全通信的接口。安全性没有安全芯片高,但是也可提供安全性较高的隔离环境。HarmonyOS据说其实一开始就是用在TEE中的,所以做形式化验证啥的也无可厚非。

硬件安全采用的方案都很成熟,而且这个是其他的安全的基石。手机可以有安全芯片、TEE,PC可以有SGX和TPM,而对于资源受限的物联网设备,则有一些问题:

物联网芯片一般没有TEE;增加一块安全芯片,会增加成本和功耗;将证书、公钥、哈希值等烧录在不可写区域,后续又无法更新,存在风险;并且不能存储私钥信息,密钥管理复杂。

不过官网文档也提到了:

并非所有OpenHarmony设备都强制要求支持可信执行环境,部分运行低敏感业务的瘦资源设备可不做强制要求;可根据实际业务场景选择是否支持可信执行环境,以及实现怎样的可信执行环境。

1.2 系统安全

这部分感觉没有什么好说的。

进程隔离、DAC都比较常规,DAC类似Linux/UNIX,是一种RBAC(Role Based Access Control)。比较有意思的文档中提到的Capability机制,是对Root权限的进一步的细粒度划分,这个感觉挺关键的。

我觉得可能有一些问题的地方:

进程隔离依赖于MMU,而其实挺多嵌入式芯片是没有MMU的,例如ARM Cortex-M的一些芯片。这个或许可以参考uClinux的实现,或者干脆直接放弃这类芯片的支持?Capability机制是一个较大的攻击面,需要注意实现的正确性。

1.3 数据安全

提供了HUKS这个软算法库用于密钥管理和存储服务,提供了证书管理、密钥管理、安全存储和密钥认证服务。

安全存储依赖于安全介质,例如安全芯片,对于物联网芯片有上面硬件安全部分提到的问题。

支持的算法有:

认证加密:AES-128/192/256-GCM

签名验签:ED25519

密钥协商:X25519

消息认证:HMAC-SHA256/512

数据摘要:SHA256/512

可以看出,没有对于国密算法(SM1/SM2/SM3/SM4/SM9/ZUC等)的支持,AES、SHA256等都是国际算法,而根据刚颁布的《密码法》,可能需要增加国密的支持。

X25519和ED25519都是基于Curve25519(或者等价的Twisted Edwards Curves),是已知最快的ECC曲线,可以利用浮点运算进行加速,并且密钥大小比传统ECC小很多(因为其数学结构的特点,只用到了X轴),非常适合物联网环境。可以看出,华为在算法选型时,确实做了挺多调研的(毕竟华为里面还是有一堆密码学大佬的)。

题外话:Curve25519论文提出后的几年内,都没有被受到重视,直到斯诺登事件之后,从爆料中得知NSA在其推荐的椭圆曲线中可能加入了后门,人们寻找替代曲线时,curve25519因其安全性、高效性被人们所知。

1.4 设备互联安全

这个是我非常关注的一个地方。

这是官网文档的架构图:

绑定的流程是:

设备分别生成Ed25519密钥对;利用PIN码和PAKE(Password authenticated key exchange)进行密钥协商,生成会话密钥;通过会话密钥加密彼此的公钥(其实也可以不用加密,算个MAC就行,只要能验证公钥确实来自对方即可);这里的身份标识公钥指的应该是(设备标识, 公钥)的二元组。

通信的流程是:

通过公钥协商会话密钥;文档没细说会话密钥应该会怎么用,不过一般来说,会将初步协商的密钥进行密钥分散,分为加密密钥、MAC密钥等;使用会话密钥加密通信数据。

从文档描述的密码协议来看,没有明显的问题。通过手动输入PIN、扫描二维码、NFC触碰使得两个设备有了共同的密钥因子,这其实是一种offline的方式。

存在的一个问题是,PIN和二维码必须要是可变的,不能打印贴在设备上,不然就没有意义了,因为每次用的密钥因子是相同的。

个人的一个改进或者扩展建议:增加IBC(Identity Based Cryptography)的支持。这样可以省去交换公钥、会话密钥协商等过程,减少交互流程和通信量。不过这个带来的问题可能是运算成本的增加、密钥size的增大,需要视情况取舍。

1.5 应用安全

这部分没有什么好说的,主要分为两部分:

应用签名管控:PKI体系下的证书体系,经典一套。不过不知道华为有没有CA?应用权限控制:分为动态权限和静态权限,目前分布式应用支持的权限似乎不多,感觉划分的粒度也不够细(例如ohos.permission.DISTRIBUTED_VIRTUALDEVICE这个权限,为“允许应用使用分布式虚拟能力”,这个太粗粒度了)。

2. 代码实现

从代码上可以看出HarmonyOS是比较模块化的,接口定义和实现是分开的。

主要涉及的仓库有:

2.1 security_interfaces_innerkits_app_verify

提供对HAP包签名的验签能力,只有接口定义。

2.2 security_services_app_verify

这个仓库提供对HAP包签名的验签能力。

密码运算基于mbedtls,并且在代码中写死了根证书(有两个根证书,一个用于测试,另一个应该是正式环境的)。这种方式可能不太好,不支持证书的更新、安装、删除等操作,不过考虑到物联网环境的受限,加一个证书管理服务确实有点奢侈。

2.3 security_interfaces_innerkits_huks_lite

Internal interfaces of the key management service,密钥管理服务功能内部接口,只有接口定义。

2.4 security_services_huks_lite

上面提到的HUKS的实现。

接口设计了几种不同类型的密码原语以及对应的数据格式:

enum hks_cmd_type { HKS_GENERATE_KEY = 0, HKS_GENERATE_KEY_EX, HKS_SIGN, HKS_VERIFY, HKS_ENCRYPT, HKS_DECRYPT, HKS_IMPORT_KEY, HKS_EXPORT_KEY, HKS_GENERATE_RANDOM, HKS_KEY_AGREEMENT, HKS_KEY_DERIVATION, HKS_HMAC, HKS_HASH, HKS_BN_EXP_MOD, HKS_NMI_GENERATE_SYMMETRIC_KEY, HKS_SYMMETRIC_ENCRYPT_DECRYPT, HKS_CMD_MAX, /* new cmd type must be added before HKS_CMD_MAX */ };

比较意外的是,居然有大整数模幂运算的类型(HKS_BN_EXP_MOD)。

以上几种类型基本涵盖了密码学里的基本原语(primitives),不过,因为现代密码学已经发展到非常复杂了,如何进行扩展是需要仔细考虑的。

2.5 security_interfaces_innerkits_secure_os

libteec库函数接口定义,提供标准TEE Client接口,实现与TEE的交互。

2.6 security_frameworks_secure_os

libteec库函数实现libteec库函数实现,提供标准TEE Client接口,实现与TEE的交互。

2.7 security_services_secure_os

TEE的代理服务,感觉没啥好说的。

2.8 security_interfaces_kits_iam_lite

应用权限管理的接口定义。

2.9 security_interfaces_innerkits_iam_lite

IPC通信鉴权的内部接口。

2.10 security_services_iam_lite

Application permission management and IPC authentication,提供应用权限管理及IPC通信鉴权能力。

提供JS的binding,整体感觉应该借鉴了Android的权限管理。

enum GrantTime { INUSE, ALWAYS }; enum GrantType { USER_GRANT = 0, SYSTEM_GRANT = 1, }; enum IsUpdate { FIRST_INSTALL = 0, UPDATE = 1, }; enum IsRestricted { RESTRICTED = 0, NOT_RESTRICTED = 1, };

2.11 security_interfaces_innerkits_hichainsdk_lite

提供设备互连安全认证能力内部接口定义,也就是所谓的HiChain。

2.12 security_services_hichainsdk_lite

提供设备互连安全认证能力的实现。

比较复杂,不过流程基本就是文档中图所描述的。

2.13 security_interfaces_innerkits_crypto_lite)

数据加解密的内部接口,不知道为啥是空的。

2.14 security_frameworks_crypto_lite

数据加解密的能力模块,目前只看到有AES和RSA的实现;也有JS的binding。

3. 扩展

将IBC(国密SM9)结合进HarmonyOS的安全框架中,简化一些流程;分布式场景可以结合群签名、门限签名签名、代理签名等密码协议,保证数据的安全性,并且可以扩展到非信任、匿名环境;

4. 总结

目前HarmonyOS采用的安全框架、密码协议等,有针对物联网环境进行了调研、优化;HarmonyOS的安全框架没有明显的协议漏洞;有一些可以针对性扩展的地方。

标签组:[芯片] [信息安全] [网络安全] [密钥管理] [密码学

本文来源:https://www.kandian5.com/articles/23886.html

相关阅读

汤唯晒与秀智宋慧乔合影 亲密贴贴笑容灿烂

5月7日,汤唯晒出2023年在韩国百想典礼现场与裴秀智、朴宝剑、宋慧乔的合影。图中汤唯与宋慧乔秀智亲昵贴贴,笑容灿烂,看起来关系非常要好。...

2024-05-07

小谢尔顿第八季不续订了吗

  1、《小谢尔顿》第八季不续订了,第七季就是该系列的最终季了,《小谢尔顿》系列故事在2024年5月份正式画上句点。2、第八季不续订也是考虑到了多方面因素,《小谢尔顿》讲的是谢尔顿小时候的故事,随着时...

2024-05-07

Faouzia现身长沙机场 网传参加《歌手4》坐实?

近日,Faouzia被拍现身长沙机场,她身穿白色卫衣套装,工作人员正在为她佩戴麦克风,疑似录制节目,网传她将参加歌手2024,但目前仍未有官方消息。 ...

2024-05-07

三星Galaxy Z Fold6渲染图出炉:整机更方正硬朗

快科技5月7日消息,三星Galaxy Z Fold6的渲染图今日在外网流出。从图中可以看到,三星Galaxy Z Fold6整机延续了前代的设计语言,整机的造型相比前代更加方正,手机的四边更加圆润,不...

2024-05-07

小谢尔顿有几季

  1、《小谢尔顿》一共有七季,第七季在2024年5月份迎来大结局,这是该系列的最后一季了。2、随着小谢尔顿演员渐渐长大,这个系列也不得不跟我们告别了。3、《小谢尔顿》于2017年首播至今,小谢尔顿的...

2024-05-07

56岁伊能静谈不拍戏真实原因

近日,56岁伊能静在直播中谈到自己不拍戏,并且重新开始做直播一事,伊能静表示:“因为我已经不太想出去拍戏了,不是我不喜欢演戏,就是因为我太喜欢演戏,我也拿不到什么太好的角色,毕竟年龄也在这了,(我的...

2024-05-07

小谢尔顿第七季成年谢耳朵客串是第几集

  1、《小谢尔顿》第七季中成年谢尔顿客串在第14集中,在这一集中《生活大爆炸》的谢耳朵和艾米重聚了。2、成年谢尔顿的扮演者吉姆·帕森斯和艾米扮演者马伊姆·拜力克客串出演《...

2024-05-07

全球十大手机品牌最新排名出炉!中国占八个 小米国产第一

快科技5月7日消息,根据TechInsights的最新研究,2024年Q1全球智能手机出货量同比增长9.7%,达到2.95亿部。 TechInsights表示,全球十大手机品牌中,有八个是中国品牌。 ...

2024-05-07

小孩要不要尽早接种乙肝疫苗呢?

你家宝贝出生后,打的第一针疫苗是什么?没错,就是乙肝疫苗,它被称为宝宝的“人生第一针”!从时间上就可以看出来,它的作用之大。乙肝疫苗能有效保护宝宝不受乙肝病毒的侵害,如果宝妈本...

2024-05-07

【娱乐看点】山下智久新剧《蓝色时刻》获好评 女主角是中国人?

杰尼斯事务所在经历过前社长喜多川性侵事件之后,人气下滑,口碑受到巨大的影响,甚至还被电视台封杀,旗下艺人不再合作。经过一年多的调整之后,杰尼斯更该社名,调整了管理和经营制度,并且最终解除了封杀,但...

2024-05-07