“我是郭冬临。”长着秀气头发的青年程序员对着面试官介绍自己
而面试官并不会觉得他在假冒小品演员“郭冬临”,因为面试之前,小郭已经出具身份证证明自己是程序员郭冬临。
现代化社会,我们习惯于提供身份证件,账号密码等信息来证明“我是我”,从而不会把你我错认成公民彭于晏,你也无法冒充微信用户林俊杰或是微博用户郭冬临。

然而,目前的身份管理系统有几个缺陷:

中心化的机构如数字认证中心CA,公钥基础设施PKI等存储着这些用户数据或者密钥,提供服务。然而使得恶意攻击者可以窃取这些信息,盗用你的身份证明进而冒用你的身份。
区块链为身份认证的去中心化提供了解决方案:去中心化的标识符被存储在分布式账本和区块链上,它们是防篡改的,安全的,并且可以被任何人即时验证。

这减少了在服务器中存储身份信息的需要,使用户通过区块链账户登录,无缝访问Web3服务。
本文粗略地介绍了去中心化身份的概念,涵盖数字签名等密码学知识,提出笔者的一些思考,并且浅显地讨论去中心化身份及去中心化身份认证的解决方案。

1 去中心化身份意味着什么?

通俗地说,去中心化身份允许你拥有自己的身份。
一个组织(交通警察大队)想给你(用户)发一个证书(驾驶执照)。你发送你的钱包地址,这是分布式账本或区块链上用于存储数据的特定位置。然后交通警察大队用其私钥签署交易,将凭证发送到你的数字钱包。

现在,你可以在任何时候分享这个凭证,以确定你的身份:例如,在完成贷款申请时。对方使用算法验证,检查公钥和交易细节,以确认你的证件有效性。
在去中心化身份管理中,用户在 数字钱包中存储凭证和个人信息,就像现实生活中的钱包一样,数字钱包保存着你的身份证明,如你的执照或身份证。去中心化身份标识将身份信息的存储在分布式账本或区块链中,满足了防篡改,可验证,透明可追溯等特性。

2 为何提出去中心化身份认证?

传统的身份认证方案,如常见的CA数字认证中心通过发放包含你公钥和信息绑定的数字证书,可以向他人证明你的公钥的有效性:PK-ID。
然而仅仅向他人发送一个被CA签名过的数字证书,会被中间人利用,冒充你的身份,此称为中间人攻击(MIMT)。

那么如何防止MIMT呢?

让第四方签署这个CA证书显然是不实际的,于是就衍生了许多方案,如PKI,信任链的概念来解决数字证书或者数字签名中间人攻击的问题。
去中心化身份便可用于替代这些中心化的方案。去中心化身份管理可以保证数据安全,同时不需要你去记那么多的ID,密码,一个账户满足所有应用登录。

3 Inspiration灵光一现

通过上传PK与身份信息,如ID的绑定到区块链上,可以实现替代CA的作用,由区块链承担身份验证;

在单点登录场景下,只有拥有区块链账户私钥的,才能发送交易进行登录操作。因此,即使攻击者窃取ID,密码等信息,仍然无法替代该账户发送交易进行登录。智能合约可以通过判断交易发起者的身份,进行登录验证,使得MIMT不可能实现!

因此Dapp不用公钥密码学进行身份认证也是可行的,只需要加入地址的判断,筛选掉攻击者。

参考资料