去中心身份及其应用对现有互联网产品的影响
CareerOn
2019-03-08
热度6503

去中心登录不是脱离监管

主讲人

周燃

CareerOn 联合创始人、CTO

原燃云科技创始人,自2011年以来一直从事云安全相关工作。曾任阿里巴巴高级专家(P8)、腾讯云安全高级工程师(T3.3),主导并完成了多个阿里巴巴和腾讯内部的云安全项目,在云安全及云计算领域有深入研究和独到见解。在区块链与云安全的实际应用层面,深入结合二者特性,创建了区块链+云安全的新型应用平台,解决了云安全在数据溯源方面的重要难题。

主持人

李健

CareerOn 创始人、CEO

李健:大家晚上好,我是CareerOn李健。自进入区块链领域创业以来深感大家对区块链技术的关注,也有越来越多的朋友以不同方式参与进来;任何创新发展离不开支持和包容,CareerOn也团结了大量人力资源从业者、管理者,担任我们的智囊团。

本周二我在「学霸十三妹」做了一期分享,有近24万人在线观看,我想原因主要有两点:

一是CareerOn正在做一件所全球所有人都相关的事情;

二是区块链技术已经从数字币的阴影逐渐跳出来,大家可以谈技术了。

周二直播后我们收到很多职场人士提问和邀约,因此今晚我们委托周燃从技术角度为大家解读去中心“登录“,这里稍作说明一下,在Facebook发布去中心登陆之前CareerOn首款DApp就是去中心登陆方式,我发到这里供大家参考。

今晚主要分为两个阶段,第一个阶段由周燃分享去中心登陆的利弊及技术实现,第二个阶段从提供中选在3-5个问题进行解答。

下面交给周燃。

周燃:好的,感谢大家的时间。

其实具体到去中心身份和登陆这个事情,确实没有太多可讲的,我尽量让大家明白这个登录与我们日常体验的各个互联网产品的登陆有什么区别,优劣势在哪。

首先讲几个概念:

身份指的是可以确定一个人(虚拟的/实体的)的一堆数据,登录就是将这个数据与某个服务提供方的服务对应起来的动作。


登陆的作用就是,确定你是谁,你能做什么。确定“你是谁”,并不一定需要实人意义上的“谁”,只要能把你的某个请求与一个确定的资源、权限等关联起来就够了。

这个过程中,有几个风险点:

第一,  身份数据泄露

第二,  登陆伪造,主要指的是中间人攻击

第三,  掌握你信息的中心化机构泄露你的数据

第四,  中心化机构不可用

第五,  繁琐的各种注册、填写信息,用户体验不好

以上说的都是中心化身份/账户体系/登录逻辑的问题。

接下来我说下去中心身份和登录是什么。

去中心身份是指身份数据的保存由owner自己控制,流转/使用过程完全由owner自己控制的一套账户产生、使用的机制。解决什么问题:用户无需注册,身份信息自主产生,哪些人能使用自己的身份信息由用户自己控制,用户不用一遍遍注册和填写资料。而且可以很方便的与个人生物识别信息关联,用户不用记录自己的身份信息。不再担心密码丢失。

如何实现:可信计算+去中心技术。

每个人的身份id可以自主选择和生成,这个id可以通过技术手段与具体的一个人的生物特征绑定。用户请求服务时,只需要带上这个id信息,由服务提供方验证这个id有哪些服务内容权限。

传统登录总是会有个C/S或者B/S的交互过程,这个交互过程通常不附带任何业务数据和逻辑,纯“验身”,实际上我们只需要在每次需要敏感服务的同时、携带上验身数据就够了。任何能让服务提供者知道“你是谁”的方式都能满足传统“登录”的需求,所以登陆逻辑不需要单独存在。

去中心登陆的实质就是:发起服务请求时随服务一起附带身份信息,同时这些身份信息不需要也不允许服务提供方存储、看到,只允许服务提供方使用。

因为服务提供方不存储任何身份数据,不能看到身份数据,只能”用“身份数据,所以服务提供方无法泄露或者贩卖用户数据。然后这套系统需要满足哪些基本条件:

第一,是可验证,无法造假。这里的无法造假,主要指的是:消息里说本消息是A发出的,则一定是A发出的,不可能是B伪造出来的。这里的无法造假与实人认证没有关系。


第二,数据去中心存储,不需要任何一个中心化机构存储信息。这实际是对可用性的保障。


第三,能有权限控制。用户指定谁能看哪些、能用哪些信息,其他人在非授权情况下不能看、不能使用任何信息。


第四,授权信息可撤销、可修改。比如,工信部近几年一直强调的,要求互联网企业必须对用户提供注销机制。


但是,目前来看,多数企业仍然基于自身利益考虑,并不愿意对用户提供这样的操作。在去中心身份下,“注销”这个操作,就是简单的撤销对某个服务提供者的身份授权,不需要服务提供者主动操作。


第五,允许附加元信息,比如第三方认证数据等等。


第六,有办法与真实的自然人关联。比如如何安全、稳定的与个人的指纹、虹膜等信息关联,同时还能确保这些生物信息不可被第三方获取。


我们知道目前的指纹、面部识别,基本逻辑是各个服务提供者(比如支付宝、微信等)会采集并存储个人的生物信息,然后验证时,把客户端采集的生物信息与服务提供者中心化服务器存储的信息做比对。

这个过程明显存在一个问题就是:如果你的指纹、面部三维数据泄露了,你总不能换指纹、换脸吧。所以,在身份领域一个基本原则就是:生物信息可以用,但是不允许看、不允许存、不允许流转。

目前的绝大多数企业是不去满足这点的。

前不久,某AI公司采集的人脸识别数据库就泄露了,而且是三维生物识别信息,简单说就是在某些情况下,用程序就可以直接冒充这些被泄露信息的人的身份的。

比如冒充机构或者组织的核心部门的门禁信息等等,这是个非常恐怖的事情。这也是我说的去中心身份需要满足这个条件的非常重要的原因。

然后我想说下这套系统的基本逻辑架构:

1、去中心网络保存用户身份及附加信息:满足私密、授权、高可用,甚至用户与服务者之间无网络也必须可用。如何实现“无网络时仍然可用”,这里先放一下,后续会有解释。

2、多重身份数据:

  1. 日常服务提供方不可见身份数据的明文,所有身份需求必须明确,不允许有未知的身份需求和可见明文身份数据的需求。

  2. 多监管部门多签名机制:可解密得出明文身份的数据,都需要多个监管部门联合签名,且签名得出的明文数据会使用诸如频域水印技术等打上水印,方便跟踪。

3、用户发起一个服务请求时,和服务一起携带自己的身份数据给到服务提供方。这些数据并非明文,而是一个基本身份ID。服务提供方用这个身份id与该用户拥有的服务做关联。

同时,如果有特殊的需求,比如实名认证、合法性认证等等,业务提供方可以带上身份id去与监管方做黑盒比对,监管方只返回类似”合法“/”不合法“、”实名“/”未实名“等业务结果,不允许返回数据明文。

4、以太坊做密钥分发与管理,IPFS负责内容寻址,ENS做人类可读性信息的解析,whisper做安全的数据传输通道。

主要技术点:

1、上面说到的逻辑上的”去监管方验证“等逻辑,实际上所有操作都是在本地进行的,借助去中心相关逻辑,比如区块链、ipfs等,所有数据都是在本地的。只不过这些数据都是加密过的,不是任何人都能看到明文,这里也是去中心身份的技术体现之一。

2、可信计算:区块链,SGX,trustzone

上面提到,无网络时身份仍然可用,其实与这里就有很大的关系。

一个具体的场景:用户无网络时,因为某个紧急理由,需要授权第三方能使用自己的的身份信息。此时,传统方案里,基本就只能把一些敏感信息(比如密码等)通过第三方渠道告知需求者,这实际是不现实的。在可信计算环境下,可信计算对于非授权者可以认为是黑盒,只能看到我想让你看到的内容。

回到刚才这个例子,我在本地,通过手机计算出一个加密过的密钥,把这个加密密钥通过第三方渠道(比如人肉口口相传、纸介质等等)传送给请求者。请求者在他本地的黑盒环境中按照事先预定好的逻辑使用密钥并获得授权。

3、各种密钥算法,比如DH、RSA等等。他们具体解决的是就是信息的非对称使用:能用、不能看。这些算法与可信计算环境共同构成一个可信的身份使用逻辑,确保身份数据的非对称使用。而这一点,也是传统身份系统里不能解决的问题:第三方能用你的数据也就能看你的数据,拿走你的数据,这是所有身份相关安全风险的根本原因之一。

然后,我说下技术壁垒:

第一个是软件层面目前的区块链技术只是解决了身份可信、数据可信、行为可信。对于执行环境可信是不满足的,也就是我一旦需要解密数据,或者对数据做明文操作,运行环境的控制者是可以看到这些数据的。

这就引入第二个壁垒点:硬件层面的执行环境可信。前面说过,硬件层面执行环境的可信主要几个解决方案:intel的SGX技术,arm的trustzone,以及其它第三方的TPM模块,他们各有优缺点。

对于SGX来说,其黑盒环境资源与外部不可信环境共用较多,攻击面比较大。比如各种侧信道攻击,在GitHub上有相应实现。解决方案上,目前intel有发布过一些软件层面的补丁,部分缓解了这个问题,但仍然没有彻底解决。

不过好的一面是,目前的侧信道攻击所能获得的数据粒度仍然比较大,做不到很精细的程度。所以如果使用这个方案,需要根据侧信道攻击的原理及产生问题的原因(比如针对特定代码模式的处理),做一些针对性处理。SGX的优点在于,其可以运行多个黑盒环境且各个黑盒环境相互隔离,这一点讲,它的安全性和实用性是最好的。

ARM的trustzone环境从硬件架构上讲是安全性最好的。Trustzone有独立的内存、缓存等资源,部分独立的CPU内部硬件资源,还有独立的操作系统“trustOS”。但是,其只有一个可信环境,不像SGX可以同时运行多个可信环境,这限制了它的应用面。同时,因为需要有trustOS的支持,这通常是由手机厂商提供的,所以trustOS的可用性及功能完备性取决于手机厂商的具体实现,这对于花样翻新的各种应用明显是满足不了这些应用的需求的。

关于其他第三方的TPM模块,他们更多被用于标准的密码存储与加解密计算。这里有个问题是,对于TPM模块,在我国目前的环境下,法律对其有合规性要求,所有TPM都必须得到国家密码局的认可,未得认可的TPM模块及其电子产品,在中国销售和使用都是违法的。这个点,它的风险在哪,我就不过多解读了,大家可以私下沟通。

以上说的都是两个方面的技术壁垒,一是如何解决区块链的可信执行环境问题,二是硬件方式的可信环境,各自仍然不完善,如何与现有软件技术结合的问题。这是整个去中心可信身份的最重要两个技术壁垒。

最后,我想针对可信黑盒,举个具体的使用流程,让大家知道如何在可信黑盒环境下,既使用了数据,又不会让使用者看到数据。

以征信信息为例,用户A和机构B都使用各自黑盒协商出一个密钥,这个密钥的公钥通过网络传输到对方。密钥算法基于大数分解难题或者椭圆曲线的对数难题,确保公钥无法推导出私钥。产生公私钥过程都在黑盒里执行,任何第三方(包括用户)都无法知道私钥内容。

机构B在拿到用户A的公钥后,在黑盒内推导出一个用于解密的密钥,这个密钥除了黑盒内的程序,任何第三方都无法得知。

机构B从以太坊、IPFS等位置取得加密过的数据,将加密数据输入黑盒环境,黑盒程序利用刚才的密钥解密出数据明文,并根据事先预定好的逻辑(由区块链确保逻辑是公开的、可接受的、未被篡改的,也就是行为可信),根据数据明文得出业务结果并告诉机构B。

这就是一个最简单的可信身份的应用过程。

好了,我今天的分享就到这里,还有其他问题的话,欢迎大家提问。

本内容旨在传递行业动态,不构成投资建议或承诺。
为你推荐

商务合作:TG:@Lottie96