白话可信身份认证—FIDO、IFAA、TUSI 2021-10-24 网络 暂无评论 3132 次阅读 #导读 二十多年前,互联网刚兴起的时候只是做些浏览网页、发个邮件等简单的应用,人们对功能的关注远超对安全的考虑,对于身份认证这个事也是直接简单方便的来,账号+密码的方式最终成了在互联网上身份认证方案的首选,在一些重要的场景下可能会增加短信验证码来做第二验证因子。然而,随着互联网的飞速发展,网络上所承载的东西越来越多越来越重要,移动商务、移动金融、移动支付逐步普及,人们放在互联网上的数据、隐私、财产也越来越多,安全就变得愈发重要,简单的采用密码的方案已经越来越难于担当起保障用户身份的重担,急需一套全新的、高安全等级的、确保可信的身份认证方案出台。 #1. 关于可信计算与身份认证 随着移动互联网的发展,移动支付的迅速普及,人们在手机上处理的事情越来越多、越来越重要。以移动支付为例,手机逐渐取代钱包实现线上线下支付,现在买菜都可以用微信支付了。而这里手机支付的安全可信便成为一个迫切需要解决的问题,它直接关系到人们的资金安全。支付安全的一个核心问题便是用户的“亲自确认”,而这个用户确认的过程实际上就是身份认证。所以,身份认证作为支付安全的第一道关口成为人们关注的焦点。用户的身份认证看起来简单,却对安全起到关键性作用,其作用就类似于两千五百年前斯巴达人守着的温泉关,只要300人守住那个温泉关,几万人马过不去。 ![FIDO-IFAA-TUSI-01.png](https://blog.moper.net/usr/uploads/2021/10/1323187299.png) 百度百科上对于“可信计算”的定义:“可信计算(Trusted Computing)是在计算和通信系统中广泛使用基于硬件安全模块支持下的可信计算平台,以提高系统整体的安全性。”基于硬件安全模块,实际上隐含着的是硬件隔离和密码学算法这两项主要安全特性。斯巴达温泉关的描述 :“关口很狭窄,只能通过一辆战车,是从希腊北部通往中部的必经之道。”而可信计算应用于身份认证,则可以达到类似于斯巴达温泉关的效果:硬件隔离技术像形成温泉关的高大山岩一样牢不可破挡在那里,只对外留出一个通信接口;而密码学算法则是经过无数考验的理论上无法破解的,类似那300个斯巴达勇士一样坚不可摧。 本文试着简要介绍可信计算在计算机、信息通信、金融领域的应用情况,重点分析可信计算技术在身份认证领域的发展应用情况,最后探讨未来的身份认证行业发展前景。 #2. 身边的可信计算应用 可信计算,这个听起来很高深很遥远的词语,但实际上我们大部分人每天都在使用它,享受这个技术带来的安全和便利,但由于它做到用户无感的体验,以至于我们大部分人都忘了它的存在。现实中有很多事物,你习惯了它的好以至于你感受不到它的存在。好了,废话不多说,你每天都在用的手机的通信系统就是采用可信计算搭建起来的安全架构:你每天手机开机的第一件事情,即手机要到运营商核心网服务器那里登陆你的号码的(类似于你上网需要账号登陆某个网站),你的电话号码之所以从来未曾被别人冒用花光你的话费,你每次打电话的通话内容之所以没有被别有用心(除了法律允许的公安以外)的人监听到,这背后都是由于那个小小的SIM卡(内含安全模块)和核心网之间建立的可信通信来保障安全的。 ![FIDO-IFAA-TUSI-02.png](https://blog.moper.net/usr/uploads/2021/10/3987897594.png) 那它具体是怎么保护通信安全呢?当你开机的时候,手机的第一步动作便是通过SIM卡内部预置的根密钥K与核心网之间就自动开始进行着一番复杂的双向鉴权认证(GSM系统只有对手机端的单向鉴权,所以存在伪基站的安全漏洞,3G、4G以后都是双向鉴权),确保只有拥有这张SIM卡的人才能使用这个电话号码。 另一个方面是通话、短信内容加密保护,我们用手机打电话、发短信都是无线的方式在空中传输的,实际上任何人都可以获取到手机发射出来的信号,如何保护信息内容的保密性?这里我们的安全模块SIM卡自然也起了关键作用。每次通话的时候,SIM卡里的根密钥都会派生出一个会话密钥供本次通话进行加密,加密信息通过空中传输到了运营商网络那里采用同样方式派生的会话密钥进行解密获取信息明文。之后下行的通路与上行类似,信息明文先在网络端进行加密通过空中下发到被叫手机上进行解密获取通话信息明文,完成一次通话信息流转。 想象一下,如果不是采用SIM卡这种可信身份认证方式,那么剩下的恐怕还是那种古老的比较弱的身份认证方式:输入账号(手机号)+密码,也就是说你每次开机需要输入一下你的手机号对应的密码才能登陆运营商的电信网络,注意这是登陆运营商网络的密码,不是手机锁屏密码,脑子里又增加了记忆一个密码的负担有木有?而一旦密码被人无意间看到或是被手机木马劫持到,那么你的话费、流量费可能就没了,这还只是冰山一角,更可怕的是你的朋友可能因此被欺诈,你所有的通话内容可能被人听到,你的所有短信验证码都可以被别人收到,也就意味着你银行卡里的资金不保...所以,你的隐私、财产都会面临极大的威胁,这就是为什么移动通信从一开始便要使用这种高安全等级的可信身份认证方案。 除了手机通信上采用的可信计算,我们还在哪里有用到呢? U盾,对,各种银行发的U-Key也是可信计算的一种典型应用,它内部是采用的SE芯片作为安全模块来实现支付信息的签名操作。那么U盾的安全等级怎么样?这么说吧,网络上用密码只能给5000的额度,如果用U盾基本上可以给你100万到1000万的额度,从这里可以体会到密码和U-Key的安全等级差距有多大了。 还有呢?还有哪些日常生活中在用高深的可信计算?有多少人在用苹果手机的指纹识别,他们都在用可信计算。苹果的指纹识别安全系统在底层用的也是可信计算架构,指纹解锁,指纹支付,指纹登陆同花顺炒股,指纹代替密码输入,苹果的用户也许每天都在使用,而这些便利也是我们的可信计算在底层起作用。 ![FIDO-IFAA-TUSI-03.png](https://blog.moper.net/usr/uploads/2021/10/1263267830.png) 还有谁在用呢?大部分人不知道的党、政、军队领域,要的是强力的可信计算来确保安全。这块的具体应用,笔者还脑子里有记忆的是在2009年看过一份美国军方的可信计算论文,基本思路就是把一个手机变成俩手机的合体:一个普通手机加一个可信计算手机,两套内部系统硬件、两套屏幕、两套键盘。那么,国内的军方是如何设计的?抱歉!笔者从那家生产军工安全产品的单位离职之后就立马老老实实地按照国家规定把它们忘记的一干二净了......你懂的。 #3. 当前业界的热点技术 在上一节里,我们列举了一些可信计算的实际应用领域,在这一节里我们将主要梳理一下业界在这个领域里的一些热点技术,主要关注可信计算在移动互联网、移动支付领域的应用。 TEE技术即Trust Execute environment可信执行环境。ARM公司提供的Trust Zone技术是TEE的一种实现技术,提供硬件支持的隔离,支持 TrustZone 的 AMBA3 AXI™ 总线构造中的硬件逻辑可确保普通区域组件无法访问安全区域资源,从而在这两个区域之间构建强大边界。三星、华为等安卓手机的指纹支付技术便是基于ARM公司提供的这一套TEE技术实现的。 TouchID是苹果公司的一种指纹识别技术,用户的指纹数据存放在处理器的安全区域(Secure Enclave)中,只有Secure Enclave可以访问指纹数据,这些数据同处理器和系统是隔开的,类似ARM处理器的Trust Zone技术。 SE安全模块趋于集成化。近几年来,手机里集成SE芯片的越来越多,甚至开始在主芯片上集成,inSE是最近华为公布的麒麟960主芯片上嵌入SE芯片,可以看到业界对于可信计算也越来越重视并开始行动了。 可信身份认证技术。近几年来出现的基于可信计算技术的互联网统一身份认证协议,国际上FIDO标准、蚂蚁金服的IFAA、腾讯的TUSI三大统一身份认证方案。 #4. 可信身份认证框架模型 通过以上我们看到,可信计算的一个最重要的应用领域就是作为信息安全的入口保镖:身份认证。在这一节里,我们将重点探讨信息系统里的可信身份认证的安全框架。 首先,我们分析一下互联网上的身份认证模型。我们知道,所谓的身份认证,本质上就是一件事情,用户向远程的服务端证明你是你,以确认在端侧的动作都是用户本人发出并确认的。这个模型的两个端点分别是远程的服务端和用户本身,注意这里是用户本身而不是用户的端设备(手机)。以传统的账号+密码身份认证为例,我们看看它是如何实现身份认证的:用户脑子里记着一个和服务端预设好的密码,所以当用户在手机上输入账号、密码,密码传输到远程服务端进行比对,如果比对正确,则证明用户就是他自己。这里头用户端的端点就是他脑子里记着的那个密码,服务端就是服务器上数据库里存储的密码(或是一个哈希值)。 那么可信身份认证模型是怎样的?可信身份认证,一般情况下都会在端侧隔离出一个独立的硬件环境建立一个安全锚点(安全模块),理论上这个隔离出来的硬件本身是难于攻破的,比如ARM公司在其处理器上隔离出来的Trust Zone硬件区域,或者是手机里加了一个独立安全芯片,也可能是集成到主芯片里的一个模块,比如华为的InSE。这个安全锚点将身份认证链条分割成了两个部分:用户到安全锚点,安全锚点到服务端,分别保障这两个分路径的可信和安全,就可以保证从用户到服务端的可信身份认证。手机操作系统和客户端软件系统在这个认证模型里,可以看作是开放的、透明的、不可信的,这个安全模型可以保证即使手机客户端整个被攻破也不影响整个系统身份认证的安全可信。从用户到安全锚点之间的认证也叫本地认证,一般有以下几种方案:PIN码、指纹识别、瞳孔识别等生物特征识别。一方面,由于做了硬件隔离,这些认证信息是直接输入到安全锚点,不经过危险的手机软件系统,所以,病毒木马对其起不了作用;另一方面,此认证是本地进行的认证,由于锚点本身是可信和安全的,所以这条路径可以保证是安全的。 ![FIDO-IFAA-TUSI-04.png](https://blog.moper.net/usr/uploads/2021/10/2806901962.png) 另一段必经的路经:从这个硬隔离出来的安全锚点到服务端之间的认证,这其实是大部分的安全威胁所在,因为这个路径要通过开放的、处处充满威胁的、不可信的操作系统并途经开放的互联网才能到达远程的服务端。一个完整的可信身份认证模型是要在这里做重点设计的,我们要在这个可信的、坚固的安全锚点与远程服务端之间建立一条可信的安全通道,这也是可信身份认证协议的主要内容。这些协议是什么呢?包括应用于网银U盾的PKI/CA协议,另外的重点是近几年业界为了能在移动互联网上甚至未来物联网上进行应用的FIDO、IFAA、TUSI三大统一身份认证标准。 #5. FIDO、IFAA、TUSI的出现 近几年来不断爆发的密码大量泄露事件,证实了传统的以账号加密码的身份认证方案不堪一击,本文刊发前夕,这类事件还在出现:京东被指数据外泄,超过12个G,涉及数千万用户;短信验证码也存在大量的安全漏洞可能被劫持攻击,最近刚刚由知名黑客Seeker的实践证明短信本身是通信,用来做验证码是业余的,用LTE/4G微基站+GSM中间人攻击可以攻破所有短信验证;OTP技术只能作为第二认证因子,需要用户抄写6位token码和原来的密码输入做身份认证,其安全性和用户体验也是不够友好而未能普及。 在金融领域,UKey技术已经成熟应用多年,用到的是PKI/CA证书系统,其提供的安全能力能很好的满足银行需要达到的安全等级。但问题是技术方案太复杂,建设维护成本过高,用户体验也较差。由于成本高,所以一般也就只有银行等金融机构能出的起钱来搭建和维护这一套系统,互联网行业用起来就太重了。 在这样的背景下,互联网行业迫切需要一套安全性高、轻量级、统一、体验好的身份认证标准,FIDO、IFAA、TUSI适应互联网的统一身份认证技术标准应运而生。FIDO、IFAA、TUSI的共同特点是硬件隔离配合高强度的密码学算法来实现身份认证,实现轻量级、通用化、优良的用户体验。其核心思路是在终端侧通过TEE或SE实现硬件隔离用于实现密钥存储和密码算法运算,避免开放系统上的软件病毒、木马的攻击,在此基础上通过密码学算法为云端应用服务商和用户之间建立一套端到端的安全认证协议,这是业界公认的端到端可信安全技术框架。 #6. 当前业界基于可信身份认证模型的方案安全性评估: 当前业界主流的可信身份认证解决方案,从硬件与安全协议的配合使用上主要可以分为两大类:单纯依靠硬件隔离的安全认证方案、硬件隔离结合可信身份认证协议的技术方案。 ##1)靠安全硬件无安全协议 由于搭建一套可信身份认证协议是需要一定成本的,运用起来也有一定的技术难度,所以在一些安全等级要求不高的场景暂时就仅靠安全硬件隔离来实现安全,未配合可信身份认证协议。相当于只实现了可信身份认证模型的前一段:本地认证。 TEE结合生物特征识别安全认证方案,比如安卓手机中,华为Mate7、Mate8手机的指纹解锁、指纹支付功能,以及苹果iphone5S以上版本的手机的TouchID技术属于这一类型。此类安全方案只做了端的安全,实现了从用户到手机TEE侧的安全,但是不保证从TEE安全锚点到服务端之间的身份安全,所以其安全等级并不高,所以至多只能作为密码认证方式的一种补充。 a) 安卓指纹支付 (TEE&指纹) b) 苹果的TouchID技术(TEE&指纹) ##2)硬件隔离结合可信身份认证协议的方案 此类的方案,是实现了完整的可信身份认证模型,本地认证以及本地安全锚点到远端服务器之间的认证。包括传统的网银U盾系统和近几年业界很火的三大统一身份认证协议都属于这种类型: a) UKey(SE&CA证书协议) b) TUSI (SE&TUSI协议) c) FIDO(TEE&UAF、SE&UAF、SE&U2F) d) IFAA (TEE&IFAA标准) PKI/CA即Public Key Infrastructure 公钥基础设施,是一种利用公钥加密、公钥证书技术为电子商务的开展提供一套安全基础平台的技术和规范。TEE或SE协同安全认证协议进行身份认证,就像是在两个安全堡垒之间架设起来的封闭安全管道,用户通过安全管道走过去,被野外的生物攻击到的可能性就变得非常低,这就是为什么我们要软硬件结合的身份认证方案。TUSI、FIDO、IFAA三种统一身份认证协议之间的优劣,我们将在后续的文章里做深入的对比分析。 ##3)有安全协议无安全硬件: 另外,还有一些没有建立可信安全锚点,仅依靠安全协议的方案,也在广泛使用。比如https协议、区块链技术就是属于有安全认证协议,但是用户端侧没有可信硬件节点支撑。实际上它建立起来的通道的一端还是在开放的操作系统/软件系统里,也就是为什么它还是存在被攻击的可能性,会话密钥协商出来之后还是在不安全的环境里存储,理论上还是有被病毒木马获取的可能。 #7. 最后 20年前,城市居民并不是每家都会安装防盗门,而20年后的今天,可以看到基本上家家户户都安上了防盗门,人们对安全需求越来越倾向于“硬安全”。可以看到,未来移动互联网、移动商务、移动金融、物联网将越来越深地融入到人们的日常生活、工作、娱乐中,这些领域将关系到人们的数据、隐私、财产甚至人身的安全,天生具备极高安全等级基因的可信计算的安全基础设施将会得到越来越广泛的应用。 转发https://zhuanlan.zhihu.com/p/24336743 标签: FIDO, IFAA, TUSI 本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。