无极安卓网

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

来源:无极安卓网

金立手机安全密码是什么,金立手机作为国内知名的手机品牌之一,在手机安全领域不断投入研发,旨在提供更加安全的手机使用体验。金立手机安全密码是指通过数字密码、图形密码等方式来保护用户的手机数据不被非法获取的一种安全方式。而金立M6采用了TrustZone加密技术,它通过硬件和软件相结合的方式,分离了手机的安全环境和非安全环境,保障了用户的隐私和数据安全,同时也有效防范了黑客攻击。以上措施使得金立手机在保障用户隐私和数据安全方面处于领先地位,同时也为用户提供可靠的使用保障。

金立M6的TrustZone加密技术是如何保障手机安全的?

去年7月份,国外媒体福布斯在介绍金立M6手机(Forbes Welcome)的时候提到,“深圳的这家公司宣传这款手机是‘全球最安全的手机’,由于其采用128位加密芯片所以相当安全”。很多国外媒体也都跟随用了这个“safest”最安全一词。其实我们去追本溯源的时候,并没有发现金立官方做过这样的宣传。不过国内还是有不少媒体下标题,类似于“这可能是当前最安全的手机 金立M6评测”,“iOS还真不是最安全的 金立M6对比iPhone7”…无论如何,这款手机都是以安全为卖点的。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

实际情况可能并不像厂商或者许多媒体宣传得那么简单。手机安全本身是个极为庞大的话题,对任何一款手机而言,安全都贯穿于每个环节,从末端的移动App安全,到系统安全(Android和iOS)、网络通讯安全,再到手机厂商自己提供的互联网服务安全,还有底层的芯片安全…

究竟是怎样一颗芯片?

按照金立的说法,这颗“安全芯片”是位于M6手机主芯片旁边的一颗独立芯片:“M6采用的是硬件加密方式,为此M6专门内置了一颗安全加密芯片,加解密过程、密钥存储均在此芯片中完成”。金立官方只解释了这颗芯片采用“与商业银行同样的加密算法。通过这颗芯片,金立M6可以实现私密空间、专线通话以及支付保护等多种功能。”

针对这颗芯片能够挖到的料也就只有国内媒体手机报提到的(揭秘金立M6“安全芯片”的幕后大腕和指纹供应链_手机报_手机报在线),这颗安全芯片由苏州国芯设计,信大捷安提供整体解决方案。据说金立先前通过了国家密码管理局的审批,获得了“商用密码产品生产定点单位证书”以及“商用密码产品销售许可证”。这颗芯片“使用SM4(国家商用密码管理办公室指定的分组密码算法)加密算法,安全级别与AES一致”。在加密算法方面大致推断为国密无疑。

另一方面,从媒体对金立M6手机的拆解来看,这款手机的主芯片(联发科P10)旁边的确有一颗标注了VEB A3的芯片,这可能就是传说中金立M6的安全加密芯片了。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

这颗VEB A3应该就是金立M6的“安全加密芯片”

不过如果你去百度VEB A3关键词就不难发现,早前就有一家“VEB”品牌的手机制造商,2014年推出过一款VEB V3手机,资料注明了采用VEB A3加密芯片(VEB第三代加密芯片)——同样主打安全加密。这款手机目前依然在京东有售,价格是惊人的28000元,宣传页面提到了“军工级加密运算”…这就更让人搞不清楚VEB在其中扮演的角色了,以及这两款手机的VEB V3是不是同一个。这样一来,M6安全加密芯片的技术细节也就很难了解到了。

但这些都不重要,只要能提供出色的安全表现和体验,何必在意供应商是谁。关键是这颗芯片对用户而言,究竟有什么价值?从金立的宣传来看,M6加密芯片主要负责“私密空间2.0”、“专线通话”和“支付保护”三项功能。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

金立M6的“私密空间”

所谓的私密空间,是指用户可以将联系人、短信、通话记录、图片、文件和应用放入到一个加密的空间内,操作界面直接表现为有一个专门的“私密空间”,可对私密空间进行密码设置,输入密码才能进入——金立曾经提到过M6的加密芯片内置有独立的RAM、ROM和闪存。我们猜测这里的私密空间就是指,将资料以加密的方式保存在专门的加密芯片内(既然涉及到独立于主系统之外的Memory存储,果然还是需要成本投入的)。所以金立也说,即便手机被盗,将芯片取出来也无法获取其中的数据。

专线通话则是对通话过程进行加密防止窃听,但我们并不清楚通话过程是如何通过这颗芯片实现加密解密的。

支付保护则是系统对金融应用做安全认证、扫描支付环境、对支付验证码(也就是与支付相关的短信)单独加密保护。我们猜测,对金融应用做安全认证、扫描支付环境理应还是在系统层面以软件方式实现的,对支付验证码的加密保护或许是借用了加密芯片。至于用户指纹或密码之类的信息,可能需要打个问号,因为ARM的TrustZone原本是负责这部分工作的——这一点在下面还会做进一步的探讨。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

金立M6的安全功能不止上述三个,不过其他安全特性如伪基站防护、虚拟位置等主体上都是从系统层面着手的了,并不在本文的讨论范畴内。

总的来说,虽然我们不清楚金立M6加密芯片的工作流程(及其与主CPU的协作方式),但这种设计属于典型的在SoC之外增加硬件安全模块的方案。想一想,普通智能设备在Memory层面原本只包含了一般闪存、RAM内存、SoC的高速缓存(另外也包含底层ROM),要在这个流程中增加一个外来的“加密芯片”环节,对金立或者上一级解决方案提供商而言,是需要对设计流程做不少工作投入的,还需要在寸土寸金的手机内部,对手机空间、功耗和性能做多方权衡。所以这种设计理论上成本不低,不光是加块芯片这么简单。

这也不难理解为什么金立M6售价约在2300左右——金立M6所用的主芯片联发科P10在国产手机市场是定位于千元机级别的。想必金立的确在这款手机上花了些本钱,安全附加价值令这款手机比其他同配产品贵了一倍多(不知是否有VEB的前期经验…)。

这种安全设计真的好吗?

实际上金立M6安全加密芯片属于比较常规的设计思路,就是将普通世界和安全世界进行隔离,在安全世界中存储更有价值的信息。运用这种思路做安全设计的典范就是ARM芯片内部的TrustZone了——对半导体行业有了解的同人都知道,ARM是一家提供芯片设计IP的公司,现如今这个星球上超过九成的手机都采用ARM设计的CPU和芯片。高通、联发科、苹果、华为这样的厂商从ARM公司购买芯片设计授权,再做二次开发,推出自家的芯片产品应用到手机上。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

早在多年以前,ARM就考虑到了芯片层面的安全问题,所以将专门解决安全问题的TrustZone融入到了此后几乎所有的芯片设计中。在谈ARM的TrustZone之前,有必要先聊聊苹果和iPhone。既然有媒体将金立M6的安全性与iPhone对比,那么提iPhone是如何做安全的就很有必要了。

苹果2013年推出了iPhone 5s,这款手机的一大变化就是加入了TouchID指纹识别传感器。很多人可能不知道的是,指纹识别传感器的采用并不只是关乎指纹识别技术,身份认证一旦涉及到生命体征(比如指纹),其安全性要求就会高出一截。就像许多人常说的,指纹识别这样的生命体征一旦被盗,就是永久被盗,无法像密码那样——泄露了大不了改掉就是。

所以iPhone 5s采用的A7主芯片(同样是ARM架构)内部有个叫做Secure Enclave的区域(苹果在自家的安全拍皮书中将之称作coprocessor-协处理器)。这个区域包含有硬件随机数生成器,并采用加密存储(高速缓存),用户的指纹数据就加密存储在这个位置,另外此处还针对数据防护密钥管理提供加密操作、生成唯一UID等等。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

Secure Enclave其实还有很多数据加密方面的特性,下面的章节中会详细探讨。

总之指纹、密钥、加密操作一类的相关安全的部分就隔离在CPU的这块Secure Enclave中。它就像一个黑匣子,与CPU其它区域的通讯也是被严格限制的,即便是系统级别的进程也无法获取Secure Enclave中像指纹这样的数据。针对指纹数据做解密的密钥只在Secure Enclave中使用,外界是拿不到的。

这里我们可以简单谈一谈指纹的加密存储。TouchID指纹识别传感器本身通过一个串行界面总线与处理器连接,数据是直接转往Secure Enclave的。双方针对指纹数据的加密和通讯方式是这样的:设备专为Touch ID指纹识别传感器和Secure Enclave准备了一个共享密钥,利用该共享密钥协商出一个会话密钥对指纹进行加密存储。会话密钥的交换又会采用双方“包装”的AES密钥,用提供的随机密钥生成该会话密钥,并采用AES-CCM传输加密。

这段话其实没有必要去深究。在你进行指纹识别的时候,指纹识别传感器首先对你的指纹做光栅扫描,将之临时存储到Secure Enclave中,分析过后就会丢弃。我们平常所见的任何应用(即便是系统级应用)要求用户按压指纹,无论是支付还是购买确认操作,它们实际上并没有机会拿到指纹数据——不仅指纹加密存储在Secure Enclave中,而且指纹只是客户端和服务器交互过程中本地加密解密的一个环节,而不会参与身份认证的数据传输过程。这种身份识别方式先前已经由FIDO联盟做出过标准化的统一。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

虽然苹果没有公布过Secure Enclave的技术细节,但从其描述方式来看。和ARM设计中的TrustZone在理念上很相似,或许是TEE的其他实现方式,或者也可能是高度定制版TrustZone——TrustZone也是在处理器内部区隔出一块独立的安全区域(ARM称之为Secure World)。也就是将安全世界和普通世界进行隔离的设计理念。

听起来似乎和金立M6的设计也差不多,但千万不要忘记:无论是ARM芯片内部的TrustZone,还是苹果A7(到现如今的A10)芯片内部的Secure Enclave,它们都是在设计伊始就融入到整个系统的流程中的,也就是将安全作为芯片设计的必要环节。

所以这两者的设计思路是整合到处理器流程内部的,而金立M6安全芯片如前文所述更像是个“外来者”——虽然严格来说这也属于内置硬件安全模块。且不说这颗芯片中的加密数据经过总线和主芯片通讯的性能会打折扣,打个更为宏观的比方,现如今的企业安全都讲究将安全融入到业务中去,而不是在业务之外孤立地考虑安全问题,这就是两者的区别所在。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

这种在主芯片旁边采用定制硬件的方案的安全设计思路如果早几年应该是个可被接受的方案,但在TrustZone(TEE)普及之后就显得没那么给力了。就安全而言,其主要问题在于涉及的范围有限,投入产出不大成正比:没有人会将所有应用和数据全部放到“私密空间”,现实也不允许这么干,这就注定其保护的资产是不全面的。

这句话很形象地表达了,在安全事件出现之前,绝大部分人对安全的忽视。所以最佳方案是在整个“业务”流程中融入安全,令安全成为系统的组成部分,而不是独立于系统之外。不要寄希望于用户会主动选择安全,将数据主动放进“黑匣子”,而是帮他们去做这件事。

安全只是系统的组成部分

TrustZone主要就是在CPU内部构建一个叫做“Trust Execution Enviroment(TEE)”的区域,也就是前文所述的“安全世界”。这里的TEE早在很久之前就由GlobalPlatform提出了标准化,TrustZone算是遵循TEE的具体解决方案(TrustZone也并非唯一一种TEE解决方案)。其理念就是在硬件架构之中,将安全基础设施扩展到整个系统设计,比如安全启动、授权Debug之类的操作都考虑在其中。

在此,我们还可以对TrustZone的设计做一些简单展开。由于芯片具体实现比较枯燥,这里只谈其中的一小部分。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

左边的Rich OS表现在手机上就是Android和iOS了

如前文所述,TrustZone的设计理念就是将整个SoC硬件和软件资源都分隔成两部分:安全子系统的“安全世界”,和常规使用的“普通世界”。“安全世界”有自己专有的操作系统(受信任的启动流程,Root of Trust),敏感数据就放在其中,也会有一些微应用运行在安全处理器核心之上,诸如加密、密钥管理和完整性检查,这个“世界”也有专门的安全Debug。AMBA3 AXI总线结构用于确保“安全世界”不会被“普通世界”的成员访问。

在具体实现上,比如如今占据移动芯片半壁江山的高通,其CPU内部的TrustZone名为QSEE,所用的安全操作系统叫QSEOS。QSEOS直接以系统调用的形式提供少量服务,由TrustZone自身内核处理。为了让受信任功能具有扩展性,TrustZone内核是可以加载执行名为“Trustlets”的小程序的——为“普通世界”操作系统(也就是Android)提供安全服务。一般来说这两个世界之间的通讯是需要经过操作系统的内核的。通常的Trustlets有:

当然了,TrustZone本身在实现方面绝不仅是在CPU内部划个单独的逻辑区域出来这么简单。有很多实际的问题需要解决和设计,比如AMBA3 AXI系统总线需要针对每个读写通道增加一个额外的控制信号,用这个信号比特位来确认处理操作究竟是Secure还是Non-secure。这样一来内部Cache也需要重新设计,这多出来的标记比特位可以看作是第33个地址位(NS,如下图所示)。如此就有更多实际问题要解决了。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

带TrustZone的CPU的L1缓存示意图,这里的NS就是多出来的标记位,PA是物理地址、VA是虚拟地址、NSTID是指非安全表标记符(Non-secure Table Idenfitier);这表明了TrustZone对于缓存设计的影响

再比如TrustZone划分后,就有了两个虚拟处理器,但从实际物理属性来看仍是一个处理器。在处理具体工作的时候按照时序的方式来切换,这两个“世界”还要考虑工作切换的问题(用名为monitor mode的模式来进行切换,从“普通世界”进入到monitor mode的机制是被严格控制的,这个过程是通过软件执行Secure Monitor Call专门指令达成的,由“安全世界”内核处理这种SMC指令。)

另外,TrustZone在设计中还有个AMBA3 APB外围总线,让TrustZone能够用于保护外围组件,比如中断控制器、用户I/O设备。这样也就可以解决更广泛的安全问题了,比如采用安全键盘,实现用户密码的安全输入。

说了这么多其实是为了表达一点,这种将安全融入到整个流程内的设计方案,实现了更广范围的安全保护。但如果是在CPU外部加一颗“安全芯片”,这其中的价值又是完全不同的了。

而且实际上,当前绝大部分智能手机都已经用上了TrustZone方案,包括高通、联发科、三星、苹果,还有华为的海思处理器。那么金立M6就面临一个更有意思的问题,联发科P10主芯片内部的TrustZone,和外部那颗“安全加密芯片”,它们之间究竟是怎样一种工作关系呢?

加密?那不是应该的吗?

无论如何,金立M6的这颗安全加密芯片的主要价值就是重要数据的加密,且金立强调是从硬件层面实现加密,至于它能不能像ARM的TrustZone那样全程参与其它操作流程就不得而知了。数据加密对安全而言总是一件好事,但请等一等,iOS和Android早就实现全盘加密了。什么?你说那是软件层面的加密,和硬件加密不能比?有关这一点的争议问题我们按下不表。

回顾一下去年圣贝纳迪诺枪击案涉案的那台iPhone 5c——抛开可能存在的阴谋论不谈,这款手机的A6芯片都还没有加装Secure Enclave,即便后期利用种种复杂的手法(FBI被坑了!破解iPhone 5c的密码其实只要100美元)可以实现解锁,实现成本却并不像很多人所说的那么低,也并没有破解其中的加密方式。且后期iOS是否是单纯的“软件加密”?为此,我们来简单了解一下iOS的数据防护机制是怎么做的。这部分内容可能会比较枯燥,没兴趣的可以直接跳过,或只看其中的粗体部分。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

这些实际还只是苹果设备安全的一个环节,iOS的安全还包括启动流程的几层安全认证:启动过程的每一步都包含苹果加密签署的组件,以确保完整性。这个链条包括Bootloaders、Kernal、Kernel Extensions,以及基带固件。Secure Enclave与属于Secure Boot Chain的一个环节,所以现在的iPhone几乎已经很难再刷进第三方固件。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

说这么多并不是为了表明iPhone的Secure Enclave和数据保护方案做得有多好,而是在金立M6宣称“硬件级”加密的时候,苹果玩儿的这一套早就不知将金立甩到哪里去了。通过对iPhone Secure Enclave相关数据保护的阐述,也不难发现,将安全融入到系统全套流程中有多么必要,不光是全局和局部安全的差异。反观金立M6的“私密空间”,这还是个事儿吗?

不过问题又来了,Android系统从6.0版本开始也采用强制全盘加密,虽然我们并没有去研究Android文件加密的方案,但金立M6私密空间的加密和普通文件的加密流程,又是如何做流程设计的呢?这和上一段中提及主芯片的TrustZone及其安全加密芯片如何配合工作,大致上也算是同一个问题了。

什么样的芯片设计是安全的?

TEE出现这么久并不值得歌颂,因为这是如今移动安全的标配。而TrustZone也并非无懈可击,去年的GeekPwn2016黑客大赛上,美国Shellphish团队宣布攻破华为P9 Lite的加密功能,实际上破解的就是海思Kirin芯片中的TrustZone,实现任意指纹解锁手机。“安全世界”无论如何还是需要和“普通世界”做交互的,找准具体实现的漏洞,还攻破TrustZone也是完全可行的。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

去年GeekPwn黑客大赛上,攻破TrustZone的Shellphish团队成员

Shellphish攻击的主要思路是首先找到系统内核驱动的一个漏洞(CVE-2015-4421)(https://www.blackhat.com/docs/us-15/materials/us-15-Shen-Attacking-Your-Trusted-Core-Exploiting-Trustzone-On-Android-wp.pdf ),这个驱动和上文谈到的SMC请求是有关的;随后再利用华为自家TEE(也就是“安全世界”)中的操作系统RTOSck的漏洞(CVE-2015-4422)最终实现在TrustZone内部操作系统中实现任意代码执行,并且从传感器获取指纹图像。举个例子,这些利用环节中海思麒麟芯片TEE内部的受信任应用名为TA,具体如安全存储(TA_SecStorage)、指纹扫描(TA_FingerPrints)等,而其中有个“TEEGlobalTask”是TEE用户模式的首要TA,负责将外部的调用发往其他TA提供的子服务。这里的TEEGlobalTask没有进行边界检查,TEE内部也几乎没有什么漏洞缓解机制,如ASLR/DEP等,这些都提供了更大的攻击面。

至于高通的TrustZone,去年国外有名黑客在自己的博客上连续发布了数篇探讨高通QSEE的文章(http://bits-please.blogspot.co.il/2016/04/exploring-qualcomms-secure-execution.html)。他的其中一篇文章(http://bits-please.blogspot.co.il/2016/05/qsee-privilege-escalation-vulnerability.html)分享了QSEE提权漏洞(CVE-2015-6639),抓住了Linux内核中qseecom的软肋,这个qseecom可让用户空间进程执行各种与TrustZone相关的操作,比如将Trustlets载入到安全环境,并与之通讯的操作。有趣的是,这个过程越过了Linux内核直捣QSEE。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

qseecom可以算得上是一个较大的攻击面,所以其访问仅限于极少的进程,其中包括了mediaserver,攻陷了mediaserver就能直捣QSEE的Trustlet了!

这个世界看来根本就没有什么手机是安全的,更何况我们这里还只谈到了芯片层面的安全问题。但ARM的TrustZone白皮书输出了在我们看来相当到位的安全理念,即移动设备总是要不可避免地遭受攻击。

其中有一类攻击名为Lab Attack(实验室攻击)。这种攻击在实验室里通过电子探针进行针对设备的专业级逆向工程,甚至可以细致到晶体管级别,还能通过监控模拟信号,如设备电量使用、电磁发射来执行加密密钥分析之类的攻击。一般来说,任何设备在这种攻击强度下都会被攻破,所以产品在进行安全设计的时候没有必要考虑抵御Lab Attack,这类攻击的攻击成本本身也相当之高。

对手机芯片或者安全环节上的很多组成部分而言,

比如针对圣贝纳迪诺枪击案涉案的那台iPhone 5c,虽然市面上涌现了各种攻破手法,随之而来就有不少媒体说iPhone并不安全。但是这些攻击手法并不具有简单可复制性,也不是普通人在家里就能搞定的。如同TrustZone和Secure Enclave的大部分攻破方式都并不简单,虽然的确也可以从中看出其具体实现方式设计过程中的一些疏忽。

金立手机安全密码是什么 金立M6的TrustZone加密技术是如何保障手机安全的?

最后顺带一说,除了安全加密芯片之外,金立M6也支持伪基站信息屏蔽、虚拟位置、通话防录音。这些功能应该是在系统层面实现的,不过这类安全功能算不上稀奇,许多国产手机都已经带有同类功能。而且像华为这样具有垂直整合能力的厂商,已经开始从芯片层面着手防伪基站了(去年的ISC大会上,海思安全研究人员的分享就提到过这一点)。

更有趣的是,黑莓还没有卖身TCL之前曾经推出过一款手机DTEK50,宣传语是“最安全的Android手机”。这款手机的CPU有特别定制,实际上先前就有传说黑莓的许多关键硬件组成都是定制的,包括闪存芯片、CPU等,连PCB主板都进行了JTAG屏蔽;在系统层面,黑莓当时宣称每个月都会越过谷歌独立推安全补丁。即便如此也不过是最安全的“Android手机”,大约是黑莓深知,硬件底层做得再安全,在Android面前也不过是惘然。

那么金立M6还有可能是最安全的手机吗? 别闹了!差得远。

主要参考来源:

[1] iOS安全(https://www.apple.com/business/docs/iOS_Security_Guide.pdf)

[2] ARM安全技术(http://infocenter.arm.com/help/topic/com.arm.doc.prd29-genc-009492c/PRD29-GENC-009492C_trustzone_security_whitepaper.pdf)

[3] 用基于ARM TrustZone的TEE与FIDO来保护认证的未来(https://www.arm.com/files/pdf/TrustZone-and-FIDO-white-paper.pdf)

[4] 探索高通SEE(http://bits-please.blogspot.co.il/2016/04/exploring-qualcomms-secure-execution.html)

综上所述,金立手机通过TrustZone加密技术保障了用户的手机安全,配合设定安全密码等措施,可以更好地保护用户的隐私和信息安全。在使用金立手机时,用户也应加强安全意识,不随意下载不可信的应用程序,及时更新系统和应用程序等,从而更好地防范手机信息泄露的风险。

相关文章

猜你喜欢