Sora身份:区块链上的安全数字身份

摘要

数字身份是数字经济的基石。然而,远程身份证明是很困难的。更复杂的是,身份通常不是一个全局的、绝对的结构,但不同方共享的信息是不同的,基于与用户的关系。因此,一个可行的数字身份解决方案应该使用户能够完全控制他们的个人信息,并且只与每个服务共享他们希望共享的信息。区块链技术通过支持去中心化的方式处理公钥基础设施,可以帮助实现用户对其信息的控制的自主身份。在本文中,我们提出了Sora身份系统,这是一个移动应用程序,利用区块链技术创建一个安全协议来存储加密的个人信息,以及共享关于个人信息的可验证声明。

关键字:区块链,分布式共识,分布式账本技术,数字身份

引言

身份问题渗透在人类历史中。在Torah中,雅各布伪造了他哥哥的身份,以获得他父亲的祝福。在更现代的社会中,身份***猖獗,金融机构花费大量资源(平均每家银行[1]6000万美元)来满足了解客户(KYC)的要求和相关的反洗钱(AML)要求。尽管需要数字身份来支持资产管理和网络安全[2]等任务,但当代的数字身份解决方案仍然存在许多问题,如多次黑客攻击泄露了个人信息[3]、[4]。
本文提出使用区块链技术,通过使用先进的密码学提供可篡改的数据存储,作为一种增强身份管理解决方案的方法。我们提出区块链技术可以通过分散系统的结构来增加身份管理系统的安全性,从而不需要单点信任,从而提高抗攻击能力。密码学可以用来安全地让用户直接控制自己的信息,降低被黑客攻击和泄露的概率。

相关工作

当代的数字身份解决方案都围绕着公钥基础设施(PKI)[5]。然而,传统的PKI依赖于集中式的证书颁发机构[6],存在信任问题。此外,许多管理用户信息的集中式服务面临着系统安全风险,经常会泄露用户的个人信息[7]。
中央管理身份的另一种选择是自主身份,其中个人完全控制他们的信息,安全保证提供信息的隐私不受损害,个人还控制谁有权访问他们的个人信息[8]。
区块链技术通常被认为与加密货币有关,例如比特币[9]。然而,允许区块链网络中的任何参与者验证区块链中的数据的技术也允许验证其他数据,例如可验证的身份声明。在Baars提出的[10]系统中,由于在区块链系统中任何人都可以验证数字签名的真实性,因此可以建立一个分散的个人身份声明共享系统。
在区块链系统中,提供关于用户的声明就像一个公证人,只是任何人都可以对数据进行签名,并且可以选择他们希望信任的数据签名人,而不是由指定的权威机构提供公证。例如,爱沙尼亚正在使用区块链技术来公证与他们的电子居住权计划[11]相关的个人信息,因此任何希望信任电子居住权计划信息的人都可以通过比较区块链中信息的签名来验证。Moyano和Ross[1]同样建议使用区块链技术,通过共享用户信息验证的可验证证明来简化银行的KYC程序。
为了实现自主数字身份的标准,W3C提出了去中心化标识符(DIDs)1。DIDs是全局唯一的身份,使用密码学来生成可以使用标识符解决的数据证明。DIDs可以提供一种标准化的格式来共享关于用户身份的可验证声明。
在本文中,我们提出使用用户拥有的密钥加密的key-value存储,并将个人信息值的散列值进行加盐并放入区块链平台中。Sora的移动应用程序允许用户生成他们的加密密钥,输入他们的数据,加密,并发布他们的数据的盐化哈希到区块链。然后,用户可以根据自己的意愿将个人信息分享给银行或其他公司等机构,而这些机构又可以对个人信息的散列值进行加密签名,从而起到公证人的作用。

激励的例子

考虑一个用户U,他使用Sora identity移动应用程序(第V节)来管理他们的身份。他们安装应用程序并输入他们的个人信息。然后他们的个人信息被加盐并由他们进行数字签名(第IV节),数字签名以证明他们同意将信息输入区块链。然后,他们与机构I共享他们的个人信息,I然后对信息的加盐哈希进行数字签名,并将哈希和签名发布给区块链。另一个用户U想在机构I2开户,U收到U的个人信息,然后验证I的签名,以确认U的信息被验证。
在这个例子中,Sora identity移动应用程序通过让用户U控制他们的个人数据来实现自主数字身份解决方案,因为用户可以加密他们的数据并自己发送给机构。一旦信息被共享,机构就可以通过在区块链上放置带符号的哈希来公证个人信息。这些数字签名的哈希可以作为可验证身份声明的基础。
另一个例子包括颁发者I、用户U和验证者V。我能够创建关于U的任何类型的可验证声明(问题文档、健康记录等),而无需通过将签名的盐渍哈希上传至区块链来披露它们的内容。然后,U可以与V分享声明,V可以加密验证其内容。

SORA的身份协议

本节描述Sora身份协议,这是本贡献的核心组件。我们这里的方法是自上而下的,我们给出系统的顶层视图,然后提供每个组件的更多细节。
协议的主要参与者是用户、移动设备、中央服务器和区块链平台(例如Hyperledger Iroha)。
数字身份可以表示为一组keyvalue绑定项。例如,有两个条目:key=birthday, value=01/01/1962;key=first-name, value=Bohdan。为了表达数字身份“密钥”的语义,我们使用JSON-LD3。
系统的每个用户都有一个唯一的标识——DID(Decentralized Identifier)[12]。DIDs及其对应的文档对象(DDOs;示例如清单2所示)通过分布式DID解析器进行管理,该解析器能够在DDOs上执行CRUD操作。该解析器实现了Sora方法规范4,并且基于Hyperledger Iroha。用户在DDO中指定他们的公钥,并使用相应的密钥对为Iroha创建交易。
为了防止密钥对的丢失和方便迁移,每个密钥对都以加密的形式存储在一个中央服务器上,这样只有密钥对的所有者才能解密。
需要注意的是,用户的私人数据可以以加密的形式存储在远程服务器上,而服务器没有能力解密(第IV-B节)。
任何具有DID的用户都能够发出关于自己或其他用户的可验证声明5。这些声明通常会包含私人信息,例如数字身份的细节。为了防止数据丢失,我们将可验证的声明分为两部分。第一部分是公开的(清单4),它存储在区块链上,由声明本身的加盐散列、数字签名和有关发行者的信息组成。第二部分是私有的(清单3),它在请求时与验证者共享。
可验证声明的公开部分与区块链相结合用于实现:
  • 未经所有者许可,哈希数字身份(声明)的隐私预像不能被披露
  • 不可否认性——用户不能悄无声息地更改数字身份或否认其所有权
  • 选择性:用户可以自由选择共享身份的哪一部分
  • 完整性——散列后的身份不可更改
  • 时间锁定:使用区块链,很容易证明身份在某个时间被创建或修改,或在某个时间之后被撤销(因此是无效的)
  • 假名:用户可以创建任意数量的DIDs,以避免将其数字身份的不同部分关联起来。
例如,用户可以发出5个声明,每个护照字段一个,并将它们组合成一个可验证声明。如果验证者只需要出生日期,那么验证者(声明主体)只能提供一个相应的声明,并且验证者可以简单地计算哈希并对声明的公共部分进行哈希查找。验证者还可以在声明的公开部分添加签名,从而证明其有效性。

用户端密钥和身份验证

为了确保只有用户能够解密她的身份,用户选择了安全性最低的个人密码(P):48位熵;这对应于一个8位数的密码,包含大写字母、小写字母和数字。用户必须生成一个kseypair,用于与区块链交互。由于我们使用Hyperledger Iroha作为存储经过公证的个人信息的区块链平台,用户需要生成一个Ed25519/SHA3-512的[13]密钥对。该密钥对用用户的数据加密密钥K(第IV-C节)加密,而用户的数据加密密钥是由P派生出来的,因此即使攻击者窃取了该密钥对,没有P她也无法使用。
因此,P成为主密码,允许用户解密她的数字身份和所有必要的元信息,包括密钥对。

数据项的创建和存储

对于entry,我们假设只有一个键值绑定,例如key=birthday, value=01/01/1962。
通过实例对算法进行了描述。假设有一个用户想添加自己的出生日期,那么他会使用下面的算法:
1)生成盐值——一个16字节的随机字符串
2)创建一个声明(清单3),它可能看起来像下面的JSON:
然后,使用JSON-LD归一化算法URDNA2015对该JSON-LD进行序列化,并使用SHA3-256进行哈希。这保证了没有人能够计算哈希的原像。
3)使用分组密码加密声明,如AES256,使用密钥K(第IV-C节),并将其存储在手机上本地。因此,用户是这些数据的唯一所有者。
4)创建一个具有所有必要元信息的可验证声明,包括声明的哈希值。
5)使用任意密钥对创建交易并广播给Iroha区块链。该交易包含可验证声明的公开部分。

数据加密密钥派生

用户的密码P可能很弱,很容易通过字典攻击被猜测。我们无法保护它免受蛮力攻击,但我们可以让它变得足够坚硬,让它变得不现实。为此,我们使用基于密码的密钥派生函数(PBKDF2[14])。PBKDF定义为:

其中:
  • PRF是SHA3-512
  • Password是用户的密码P
  • 盐值是
(字符串“SORA-SALT”和用户密码P的SHA3-512)
  • c为61337(轮数)
  • dkLen是256(输出密钥长度为256位)
得到的输出密钥称为数据加密密钥K,长度为256位。

身份共享和公证

用户可以通过在区块链中添加自己的签名来对其他用户的身份进行公证。
通过一个实例对该公证协议进行了演示。考虑两个用户:A和B。
1)A发布了可验证的区块链声明。
2)B要求具有一定的数字身份属性。
3)A与claim共享一个哈希的原像。
4)B计算哈希,并将其与在区块链上找到的可验证声明中的一个哈希进行比较。
5)如果hash匹配,则签名有效,且可验证的声明未被撤销,则身份验证。
然后,用户B可以通过为这个可验证的声明创建签名来“公证”这个声明。签名可以发送回用户A,由用户A发布到她的账户。

SORA身份移动应用

为了实现我们的安全数字身份的目标,我们实现了一个Android和iOS的移动应用程序,该应用程序与一个经过许可的超级账本Iroha6区块链交互,以存储关于用户个人信息的可验证声明的证明,按照Sora身份协议。
图1显示了来自Sora Identity应用程序的一个屏幕。使用移动应用程序,用户可以输入他们的个人信息并上传加盐哈希值到Iroha区块链。
Sora身份移动应用是一个概念证明,证明了Sora身份协议可以在移动环境中实现,证明了我们的协议的存在性。

图1:SORA身份移动应用主屏幕,用户可以选择编辑或分享他们的个人信息。

结论

我们提出了Sora身份系统来管理区块链上分散的、自主的身份。本文提出的Sora身份协议概述了一种实用的、生产就绪的方法,用于管理使用区块链系统的分散的、可验证的身份声明。
我们的系统使用移动应用程序允许用户与授权的区块链进行交互,Hyperledger Iroha,以数字签名和共享其个人信息的证明。移动应用表明,该协议在生产环境中是可行的。在未来的工作中,我们希望实现更多的工具,允许机构验证用户的信息,并与他人分享他们的公证信息。

鸣谢

特别感谢Bulat Mukhutdinov对本文中提出的协议的评论。

参考文献

[1] J. P. Moyano and O. Ross, “Kyc optimization using distributed ledger technology,” Business & Information Systems Engineering, vol. 59, no. 6, pp. 411–423, 2017.
[2] A. R. Friedman and L. D. Wagoner, “The need for digital identity in cyberspace operations,” Journal of Information Warfare, vol. 14, no. 2, pp. 42–52, 2015.
[3] M. Levine and J. Date, “22 million affected by opm hack, officials say,” ABC News, July, vol. 9, 2015.
[4] J. Silver-Greenberg, M. Goldstein, and N. Perlroth, “Jpmorgan chase hack affects 76 million households,” New York Times, vol. 2, 2014.
[5] U. Maurer, “Modelling a public-key infrastructure,” in European Symposium on Research in Computer Security. Springer, 1996, pp. 325–350.
[6] C. Ellison and B. Schneier, “Ten risks of pki: What you’re not being told about public key infrastructure,” Comput Secur J, vol. 16, no. 1, pp. 1–7, 2000.
[7] D. Mulligan and A. Schwartz, “Your place or mine?: privacy concerns and solutions for server and client-side storage of personal information,” in Proceedings of the tenth conference on Computers, freedom and privacy: challenging the assumptions. ACM, 2000, pp. 81–84.
[8] A. Tobin and D. Reed, “The inevitable rise of self-sovereign identity,” The Sovrin Foundation, 2016.
[9] S. Nakamoto, “Bitcoin: A peer-to-peer electronic cash system,” 2008.
[10] D. Baars, “Towards self-sovereign identity using blockchain technology,” Master’s thesis, University of Twente, 2016.
[11] C. Sullivan and E. Burger, “E-residency and blockchain,” Computer Law & Security Review, vol. 33, no. 4, pp. 470–481, 2017.
[12] W3C, “DID Specification,” https://w3c-ccg.github.io/did-spec/, 2018.
[13] Hyperledger, “Iroha-Ed25519,” https://github.com/hyperledger/iroha-ed25519, 2018, [Online; accessed 16-April-2018].
[14] Wikipedia, “Password Based Key Derivation Function 2,” https://en.wikipedia.org/wiki/PBKDF2, 2018, [Online; accessed 16-April-2018].
全部评论
安全永远是个大家都关注的话题啊
点赞 回复 分享
发布于 2022-08-09 14:59

相关推荐

10-14 23:01
已编辑
中国地质大学(武汉) Java
CUG芝士圈:虽然是网上的项目,但最好还是包装一下,然后现在大部分公司都在忙校招,十月底、十一月初会好找一些。最后,boss才沟通100家,别焦虑,我去年暑假找第一段实习的时候沟通了500➕才有面试,校友加油
点赞 评论 收藏
分享
10-09 00:50
已编辑
长江大学 算法工程师
不期而遇的夏天:1.同学你面试评价不错,概率很大,请耐心等待;2.你的排名比较靠前,不要担心,耐心等待;3.问题不大,正在审批,不要着急签其他公司,等等我们!4.预计9月中下旬,安心过节;5.下周会有结果,请耐心等待下;6.可能国庆节前后,一有结果我马上通知你;7.预计10月中旬,再坚持一下;8.正在走流程,就这两天了;9.同学,结果我也不知道,你如果查到了也告诉我一声;10.同学你出线不明朗,建议签其他公司保底!11.同学你找了哪些公司,我也在找工作。
点赞 评论 收藏
分享
1 1 评论
分享
牛客网
牛客企业服务