由Knox保护-三星移动安全机制

如果您有三星手机,则可能在启动屏幕上注意到了短语“由Knox保护”。 那到底是什么意思? 删减部分-大多数三星智能手机和平板电脑上预装的移动安全平台的说明。 这是首次用俄语对Knox解决方案中普遍存在的机制进行的评论。



引言


在2019年,三星电子庆祝成立50周年,今年又是又一轮约会-距离首款Galaxy设备GT-I7500发行已经10年了。 该模型如下所示:



按照今天的标准,该手机具有非常适度的特征:3.2英寸的屏幕和时钟频率仅为528 MHz的处理器运行的是Android OS的第一个版本。 实际上,在2009年,该模型并不是唯一的:市场上ARM平台上的开放Android OS上具有类似硬件特性的设备。 显然,成功需要“亮点”,以使公司与其他公司区分开。

毫无疑问,操作系统的开放性影响了Android OS的成功:根据IDC的估计,到2019年10月,已在87%的智能手机上安装了该操作系统,并且这个数字还在继续增长。 但是从那时起到现在,Android安全问题是经常讨论的主题之一。

三星推出了Knox平台,以应对移动设备信息安全领域的挑战。 Knox的第一版(旧名称为“ SAFE”或“ Samsung for Enterprise”)与Galaxy S3一起于2012年发布。



Galaxy S9于2018年发布了该平台的最新主流版本(3.0)。撰写本文时,当前版本为3.4。 诺克斯这个名字来自诺克斯堡,它是世界上最安全的黄金储备之一。



什么是诺克斯? 现在,以该名称(或更正确的品牌)可以理解三星与移动安全相关的所有内容。 这包括Samsung Pass密码管理器, 安全文件夹Samsung Pay付款服务以及整个企业解决方案系列 ,但这是基于Knox平台的。



三星Knox平台的一个重要功能是它基于硬件机制。 三星作为硬件组件的制造商,可以控制设备的生产,组装和配置的整个过程,因此可以基于硬件功能设计安全机制。

这包括以下原则:

  • 系统安全性建立在信任的硬件根(信任的硬件根)上。
  • 设备安全监视应在引导时开始。
  • 在设备运行期间,安全监控是强制性的和定期的。
  • 该系统必须具有允许第三方系统证明其完整性的机制。
  • 设备的主要价值是用户数据。 保护它们是系统的优先事项。

在Knox平台的开发中,特别注意公司对设备安全性的特定要求。 手机已成为一种工作工具:不仅是每个人的日常办公工作(邮件,信使,办公套件),而且还有更多奇特的选择:手机作为收银机,仓库中的扫描仪甚至是博物馆的导游。 对于公司而言,管理这些移动作业的能力很重要。

Knox平台也解决了这个问题:

  • 设备上的公司数据应方便管理。
  • 公司设备必须具有集中的监视和控制机制。
  • 不应实施上述各项,以免损害最终用户的隐私。

有关设备平台Samsung Knox的更多详细信息。

建立可信赖的环境


在深入讨论各个机制之前,应该先说几句关于保护Knox平台的所有硬件机制(基于TrustZone的完整性度量架构(TIMA))的基础。 它基于ARM TrustZone框架。

TrustZone范例中有2个“世界”(区域):

  • 安全的
  • 正常或不安全(“正常”或“不安全”世界)

它们的分离是在硬件级别进行的,并由称为Monitor的单独组件控制。 看起来像这样:


资料来源: www.arm.com

手机的功能在这两个区域之间划分如下:

安全世界:
  • 敏感计算(例如加密)。
  • 保护关键信息。
  • 监视在“正常世界”中运行的操作系统内核的状态。
  • 访问标记为安全的内存和设备(只能从Secure World访问)。

正常世界:
  • 运行主操作系统和所有用户应用程序。
  • 在Secure World上运行的应用程序具有最高特权,并且可以访问两种环境(Secure World和Normal World)的资源。 在正常情况下,来自Normal World的应用程序无法直接访问Secure World资源。

从基础开始,让我们继续研究Knox平台中的保护机制本身。

硬件信任根


在工厂生产时,已经在软件(软件)的安装过程中在移动设备上创建了加密密钥。 考虑2个主键:

  • 设备唯一硬件密钥(DUHK)或设备唯一硬件密钥。 每个设备唯一的对称密钥,可以使用硬件随机数生成器直接在设备上创建对称密钥。 用此密钥加密的信息只能在同一设备上解密。 DUHK仅适用于硬件加密模块,不适用于设备上的任何软件。 使用DUHK,设备上剩余的加密密钥被加密。 当我们说组件绑定到设备时,通常是使用此密钥。
  • 设备根密钥(DRK)或设备根密钥。 对于每台设备,唯一的是一对非对称密钥(RSA),由根证书(X.509)Samsung签名。 DRK受DUHK的保护,只能从Secure World获得。 它可以唯一标识该设备并确认它是由三星制造的。

使用上述方法,密钥很难被破解或伪造,加密的数据已牢固地绑定到硬件,无法在其他设备上传输和读取。


韩国龟尾三星电子的设备制造

下载装置


安全启动


设备引导过程由一系列引导程序组成,每个引导程序都检查下一个组件的签名,然后启动它。 如果验证失败,下载过程将中断。 该机制称为安全启动,在工作中使用了三星安全启动密钥(SSBK),这是硬件存储中的非对称密钥对。
安全启动可确保仅使用受信任的Samsung引导程序引导设备。 如果引导加载程序之一遭到破坏,则设备将开始停止,从而防止设备受到潜在危害。

受信任的引导


通过验证签名进行安全启动可以解决第三方启动加载程序的问题,但不能解决旧的无关版本(可能带有许多已知漏洞)的问题。 因此,在安全启动的基础上,已经开发了可信启动机制。 它检查引导加载程序版本的相关性。 测试结果将写入TrustZone Secure World中受保护的内存中,并可用于将来的检查。

诺克斯认证靴(KVB)


当操作系统开始加载时,称为Knox验证启动的另一种机制被激活。 KVB是Android验证启动(AVB)引擎的扩展。 除了由AVB控制的标准指标外,KVB还考虑了Trusted Boot和Secure Boot获得的结果(即Bootloader完整性和相关性)。 由于在引导加载程序中执行了所有KVB操作,因此该检查是可靠且安全的(该过程在被检查对象之外执行)。

Knox验证启动组件是一个相当新的组件,由运行Android P或更高版本的Samsung S10开始的设备支持。

用图形表示,受Knox机制保护的设备的启动过程可以表示如下:



诺克斯保修位硬件标志


Knox保修位是一项安全功能,可让您记录在设备上安装非官方版本的系统软件的事实。 激活了保修位的设备不能使用某些功能,例如,Knox Workspace。 该标志不能返回其原始状态。 它可以确保三星设备以前仅使用受信任的操作系统启动。


左侧的自定义固件,KNOX WARRANTY VOID 0x1

硬件锁定回旧软件版本(防回滚)


可引导组件的旧版本可能包含漏洞。 回滚预防-阻止返回旧版本操作系统的功能。 固件可能的最低引导程序版本存储在受保护的区域中。 操作系统内核的最小可能版本存储在引导加载程序本身中。 通过常规系统更新,增加了引导加载程序和OS的最低允许版本。 无法返回到先前版本或早期版本。



从Android P返回到Android O是不可能的。

可信环境完整性


启动后,必须定期检查系统的完整性。 在Knox中有几种机制可以做到这一点。

定期内核测量组件(PKM)


从启动之时起,PKM会定期监视操作系统是否对其组件进行了修改。 作为验证的一部分,将跟踪内核校验和和Android子系统SE的状态(我们稍后再讨论)。 PKM适用于Secure World。 因此,将检测到OS内核的任何异常修改。

实时内核保护(RKP)组件


Trusted Boot可以防止加载修改后的内核,但是在设备运行时可能会攻击内核。 需要对代码完整性和关键数据进行持续监控。 RKP是位于独立环境中的安全监视程序-在ARM TrustZone安全世界中,或在受虚拟化硬件扩展保护的“瘦”虚拟机管理程序中。

RKP使用特殊方法来监视Normal World中的内存管理,拦截关键请求并在执行之前评估它们的影响。 实时内核保护机制是对定期内核完整性检查(PKM)的补充。



因此,实时内核保护是针对OS内核级别的恶意代码执行提供保护的保证。

可信环境完整性检查


移动设备并不是孤立运行的,通常它们是某些大型系统的一部分,例如,它们是服务器客户端,计算节点等。为使系统稳定,安全地运行,必须确保其所有组件都“健康”,并且他们就是他们所说的。 这是一项相当艰巨的任务;在Knox平台的框架内,可以使用远程认证机制解决该问题。

远程设备认证(Knox认证)


远程认证允许第三方系统对终端设备的状态做出结论。 特别检查以下参数:
  • 在Trusted Boot引导过程中收集的度量;
  • 自上次重新启动以来,来自PKM和RKP机制的安全漏洞日志;
  • 诺克斯保修位状态
  • 各种设备标识符,例如IMEI。



认证消息在ARM TrustZone安全世界中生成。 即使“正常世界”中的操作系统受到威胁,这也是正确的。

除了检查各个参数外,认证还评估整个系统的状态。 仅当Trusted Boot收集的测量值与参考值相对应且Knox保修位值未更改时,才认为认证已通过。

认证消息无法伪造,因为它是使用从三星根密钥派生的三星证明密钥(SAK)签名的。 远程服务器可以使用Samsung根密钥验证消息的完整性。 签名包含在服务器端生成的加密“添加剂”(仅使用一次的随机数),以防止攻击者在已经受到威胁的设备上使用旧的验证消息。

第三方系统可以根据安全策略,根据认证结果决定采取进一步的措施。 例如,您可以断开与设备的连接,擦除安全工作区中的内容,请求设备的位置,然后执行许多其他操作。

资料保护


数据是移动设备的核心价值,需要单独的保护机制。

内部存储加密


内部存储器的完全加密是基于版本7的所有基于Android OS的设备的先决条件。Knox通过将密钥存储在安全的硬件密钥存储中来开发此概念。



Android的安全性增强(SE)


Samsung Knox使用适用于Android的安全增强功能(适用于Android的安全增强功能,适用于Android的SE),可在操作系统中添加强制访问控制(MAC)。

SE for Android提供了两种级别的MAC保护:

  1. 内核保护
  2. Android中间件保护

Android的SE目标包括隔离数据和应用程序,限制系统进程(包括代表超级用户执行的进程)的权限。


诺克斯集装箱化


Android引擎SE的一种特殊用例是Knox容器。
容器将应用程序和数据划分为两个独立的空间:常规区域和保护区域。 保护区的数据以加密形式存储在内部存储器中。 加密密钥依次使用DUHK密钥进行加密,即 它们绑定到特定设备。 如果设备受到威胁(“诺克斯保修位”,“受信任的引导”等),则会阻止对容器的访问。

重要的是要注意,实际上,容器中安装的应用程序可以在正常环境中运行。 结果,为Android编写的应用程序可以在容器中运行,而无需对源代码进行任何修改或更改。

容器化技术已用于多种三星产品中,例如安全文件夹和Knox Workspace。



商业机会


在公司环境中使用移动设备时,上述所有机制特别重要。 这个问题值得单独考虑,因此在这里我们将自己局限于图片:



关于该主题的其他资源:



发言者:弗拉基米尔·卡拉恰洛夫(Vladimir Karacharov),
B2B售前/售后经理
业务发展团队
俄罗斯三星研发中心

Source: https://habr.com/ru/post/zh-CN479376/


All Articles