使用非接触式卡安全地共享存储在区块链中的个人数据

文档序号:1821599 发布日期:2021-11-09 浏览:28次 >En<

阅读说明:本技术 使用非接触式卡安全地共享存储在区块链中的个人数据 (Securely sharing personal data stored in a blockchain using a contactless card ) 是由 杰弗里·鲁尔 拉伊科·埃琳西克 凯特琳·纽曼 于 2020-03-19 设计创作,主要内容包括:用于安全地共享存储在区块链中的数据的系统、方法和制品。非接触式卡可以从设备接收提供数据元素的请求。非接触式卡的小程序可以对数据元素和钱包地址进行加密。小程序可以为请求生成签名,并将签名和加密数据发送到移动设备。移动设备可以向验证服务发送签名和加密数据。验证服务可以基于公钥验证签名。区块链中的节点可以生成区块链中的块,该块包括签名验证、请求的数据元素和钱包地址的指示。对应于数据元素的加密的数据元素可以使用公钥进行解密。设备可以从钱包地址接收解密的数据元素。(Systems, methods, and articles of manufacture for securely sharing data stored in a blockchain. The contactless card may receive a request from a device to provide a data element. The applet of the contactless card may encrypt the data element and the wallet address. The applet may generate a signature for the request and send the signature and encrypted data to the mobile device. The mobile device may send the signature and the encrypted data to the authentication service. The verification service may verify the signature based on the public key. A node in the blockchain may generate a block in the blockchain that includes an indication of the signature verification, the requested data element, and the wallet address. Encrypted data elements corresponding to the data elements may be decrypted using the public key. The device may receive the decrypted data element from the wallet address.)

使用非接触式卡安全地共享存储在区块链中的个人数据

相关申请

本申请主张2019年3月20日提交的题为“USING A CONTACTLESS CARD TOSECURELY SHARE PERSONAL DATA STORED IN A BLOCKCHAIN(使用非接触式卡安全地共享存储在区块链中的个人数据)”的美国专利申请序列号16/359,980的优先权。上述申请的全部内容在此纳入作为参考。

技术领域

本文的实施例一般地涉及共享数据,更具体地说,涉及使用非接触式卡安全地共享存储在区块链中的个人数据。

背景技术

用户经常需要与商家、政府官员和其他实体共享个人数据。然而,使用常规技术通常会暴露比需要更多的个人数据。例如,当购买有年龄限制的物品时,只需提供人的年龄即可。但是,在销售点扫描驾驶员的驾照时,可能会暴露其他数据,例如该人的姓名、地址和驾照号码。

发明内容

本文公开的实施例提供用于使用非接触式卡来安全地共享存储在区块链中的个人数据的系统、方法、制品和计算机可读介质。在一个示例中,非接触式卡的通信接口可以从商家设备的读卡器接收向与所述商家相关联的钱包地址提供用户数据元素的请求。基于存储在所述非接触式卡的存储器中的私钥在所述非接触式卡的所述存储器中执行的小程序对所述用户数据元素和钱包地址的指示进行加密。所述小程序基于所述私钥生成所述请求的数字签名,以通过所述非接触式卡的所述通信接口向移动设备的读卡器发送所述数字签名和所述用户数据元素和所述钱包地址的所述加密指示。所述移动设备可以向验证服务发送所述数字签名和所述用户数据元素和所述钱包地址的所述加密指示。所述验证服务可以基于与所述非接触式卡的所述私钥相关联的公钥验证所述数字签名。区块链的节点可以响应于所述验证服务的所述验证而在所述区块链中生成对应于所述请求的块,所述块包括所述数字签名的所述验证的指示、所请求的数据元素,以及与所述商家相关联的钱包地址。可以使用所述公钥对与所述用户数据元素相对应的加密数据元素进行解密。所述商家设备可以从与所述商家相关联的所述钱包地址接收所述解密的数据元素以完成所述请求。

附图说明

图1示出了系统的实施例。

图2A至图2C示出了使用非接触式卡来安全地共享存储在区块链中的个人数据的示例。

图3示出了示例性区块链的逻辑模型。

图4示出了存储在区块链中的消息的逻辑模型。

图5示出了第一逻辑流程的实施例。

图6示出了第二逻辑流程的实施例。

图7示出了第三逻辑流程的实施例。

图8示出了计算架构的实施例。

具体实施方式

本文公开的实施例提供了用于使用非接触式卡安全地公开存储在区块链中的个人数据的技术。通常,商家设备可以存储描述从用户处请求的个人数据的一个或多个元素的数据。例如,商家设备可以请求用户提供他们的姓名和出生日期。作为响应,用户可以将非接触式卡轻触到商家设备,并接收描述所请求的用户数据元素(例如,姓名和出生日期)的数据。在非接触式卡上执行的小程序可以使用私钥生成加密的有效载荷并使用私钥对加密的有效载荷进行签名。加密的有效载荷通常可以指示向与商家相关联的钱包地址公开和/或验证所请求的数据。然后小程序可以将签名的加密有效载荷发送到用户的移动设备。用户的移动设备然后可以经由网络(例如,因特网)将接收到的数据发送到验证服务。验证服务可以存储私钥的相应实例并使用存储的私钥对加密数据进行解密。验证服务可以进一步验证从移动设备接收的数字签名。可以将一个块添加到区块链中以反映所请求的交易(例如,公开姓名和出生日期)。商家设备然后可以从区块链接收数据并使用相应的密钥对数据进行解密,从而将所请求的数据公开给商家设备而不公开用户的任何附加数据。

有利地,本文公开的实施例利用非接触式卡来公开和/或验证存储在区块链中的个人信息。本文公开的实施例提供快速、高效和安全的技术来根据需要公开和/或验证一个或多个特定数据元素,而不是公开所有个人信息。这样做可以提高个人数据的安全性,并允许请求设备更有效地处理用户数据。

通过一般参考这里使用的符号和术语,以下详细描述的一个或多个部分可以根据在计算机或计算机网络上执行的程序过程来呈现。本领域技术人员使用这些过程描述和表示来最有效地将他们工作的实质传达给本领域技术人员。过程在这里通常被认为是导致期望结果的自洽操作序列。这些操作是需要对物理量进行物理操纵的操作。通常,虽然不是必须的,但是这些量的形式是能够被存储,传输,组合,比较和以其它方式操纵的电,磁或光信号。主要出于常用的原因,将这些信号称为比特、值、元素、符号、字符、术语、数字等有时被证明是方便的。然而,应当注意的是,所有这些以及类似的术语都与适当的物理量相关联,并且仅仅是应用于这些量的方便标签。

此外,这些操纵通常以诸如加法或比较之类的术语来指代,这些术语通常与人类操作员执行的心理操作相关联。然而,在此处描述的形成一个或多个实施例的一部分的任何操作中,人类操作员的这种能力在大多数情况下不是必需的或期望的。相反,这些操作是机器操作。用于执行各种实施例的操作的有用机器包括由根据本文的教导编写的存储在其中的计算机程序选择性地激活或配置的数字计算机,和/或包括为所需目的而特别构造的装置或数字计算机。各种实施例还涉及用于执行这些操作的装置或系统。这些装置可以为所需目的而特别构造。通过给出的描述中,各种这些机器所需的结构将是显而易见的。

现在参考附图,其中相同的参考标号自始至终用于指代相同的元件。在以下描述中,为了解释的目的,阐述了许多具体细节以提供对其的透彻理解。然而,显而易见的是,可以在没有这些具体细节的情况下实践新颖的实施例。在其他情况下,公知的结构和设备以框图形式示出以便于对其进行描述。意图是覆盖权利要求范围内的所有修改、等同物和替代物。

图1示出了与所公开的实施例一致的示例性系统100的示意图。如图所示,系统100包括一个或多个非接触式卡101、一个或多个移动设备110、一个或多个验证系统120、一个或多个商家设备130和一个或多个区块链140。非接触式卡101代表任何类型的支付卡,例如信用卡、借记卡、ATM卡、礼品卡等。非接触式卡101可以包括一个或多个用于通信接口108的芯片,例如射频识别(RFID)芯片,其被配置为经由近场通信(NFC)、EMV标准或其他短距离协议在无线通信中与移动设备110通信。尽管NFC被用作示例通信接口,但本公开同样适用于其他类型的无线通信,例如EMV标准、蓝牙和/或Wi-Fi。移动设备110代表任何类型的支持网络的计算设备,例如智能电话、平板计算机、可穿戴设备、膝上型计算机、便携式游戏设备等。

商家设备130代表被配置为与支付卡通信的任何类型的设备,例如支付终端、读卡器、移动设备、计算设备等。商家设备130与商家的钱包地址131-1和一个或多个加密商家密钥132相关联。通常,商家设备130可以经由卡接口118-2与非接触式卡101通信。类似地,移动设备110经由卡接口118-1与非接触式卡101通信。卡接口118(包括卡接口118-1和118-2)可以是任何类型的通信接口,例如无线通信接口(例如,NFC、蓝牙和/或RFID)、磁条读取器和/或插槽,其被配置为从非接触式卡101的存储器102传送数据。

如图所示,非接触式卡的存储器102包括一个或多个小程序103、私钥104、交易密钥105、公钥106和数字签名107。小程序103可以在非接触式卡101的处理器(未示出)上执行,并且代表被配置为执行任何数量和类型的操作的可执行代码。例如,小程序103可以包括第一小程序103(在此称为“选择小程序”),其基于由非接触式卡101执行的功能类型选择其他小程序103中的一个。例如,当处理交易请求时,选择小程序103可以选择使用非接触式卡101处理交易的第二小程序103(在此称为“交易小程序”)。在这样的实施例中,交易小程序103可以选择交易密钥105以生成用于处理交易的加密数据。交易可以被发布到区块链140的第一实例,该区块链是用于交易的区块链。作为另一示例,当处理提供存储在区块链140中的用户数据141的请求时,选择小程序103可以选择处理提供用户数据141的请求的第三小程序103(在此称为“用户数据小程序”)。在这样的实施例中,用户数据小程序103可以选择私钥104来处理提供用户数据141的请求。这样的交易可以被发布到区块链140的第二实例,该区块链是用于存储用户数据141的区块链。

在一些实施例中,非接触式卡101可以包括单个私钥(例如,私钥104和/或交易密钥105之一),其用于为交易和用户数据请求生成密码数据。在一些这样的实施例中,非接触式卡101可以包括单个小程序103,其使用单个私钥为交易和用户数据请求生成密码数据。此处使用的特定数量和/或类型的小程序和/或密码密钥不应被认为是对本公开的限制。

例如,与非接触式卡101相关联的用户可能试图从商家购买有年龄限制的物品。商家的商家设备130在允许用户购买物品之前可能需要确认用户的年龄。用户可以将非接触式卡101轻触到商家设备130,从而使非接触式卡101充分靠近商家设备130的卡接口118-2,以启用非接触式卡101的通信接口108和商家设备130的卡接口118-2之间的NFC数据传送。在其他实施例中,用户可将非接触式卡101插入商家设备130的卡接口118-2中。商家设备130可以发送请求数据,其中至少包括商家钱包地址131-1、识别请求的请求令牌(未示出)以及用户数据141的一个或多个请求元素的指示(例如,至少是客户的年龄)。用户数据的元素可以是存储在区块链140中的用户数据141。在一些实施例中,用户数据141存储在基于云的数据库中。然而,本公开适用于任何类型的数据存储技术。

在一些实施例中,商家设备130可以发起接收用户数据141和/或验证用户数据的请求。在其他实施例中,移动设备110发起交易以提供和/或验证用户数据141。发起通信的特定实体不应被视为对本公开的限制,因为系统100中的任何实体都可以发起接收用户数据141的给定请求和/或提供用户数据141的交易。

响应于从商家设备130接收到公开和/或验证请求,选择小程序103可以确定请求的类型与提供用户数据141的请求相关联。因此,选择小程序103可以选择用户数据小程序103并将接收到的数据提供给用户数据小程序103。然后用户数据小程序103可以选择私钥104以生成用于验证所请求的用户数据元素的释放的加密数据。例如,用户数据小程序103的加密功能可以使用私钥104对商家钱包地址131-1、请求令牌和所请求的数据元素的指示进行加密。在一些实施例中,可以使用私钥104对其他数据元素进行加密,例如非接触式卡101的帐户标识符、用户的标识符等。此外,用户数据小程序103可以使用私钥104和密码函数生成数字签名107。数字签名107用于确认用户已授权从区块链140释放所请求的用户数据141。

用户数据小程序103然后可以响应于非接触式卡101轻触到移动设备110而将加密数据(包括数字签名107)发送到移动设备110的帐户应用113。用户可以将非接触式卡101轻触到移动设备110,从而使非接触式卡101充分靠近移动设备110的卡接口118-1以实现非接触式卡101的通信接口108和移动设备110的卡接口118-1之间的NFC数据传送。通常,帐户应用113允许用户执行各种与帐户相关的操作,例如查看帐户余额、处理支付和公开用户数据141。在一些实施例中,用户必须使用认证凭据进行认证以访问帐户应用113。例如,认证凭据可以包括用户名和密码、生物特征识别标识符(例如,指纹、虹膜扫描等)等。移动设备110通常在操作系统(未示出)的控制下。示例操作系统包括OS、 操作系统。

然后帐户应用113可以将与用户相关联的钱包地址131-2和从非接触式卡101接收的数据发送到一个或多个验证系统120的验证服务121。验证服务121然后可以使用来自验证密钥122的密钥和签名验证算法验证数字签名107。验证密钥122可以包括非接触式卡101的私钥104和公钥106的副本。验证服务121可以使用验证密钥122(例如,公钥106)和签名验证算法来对数字签名107进行解密以验证数字签名107。此外,验证服务121可以使用验证密钥122之一(例如,非接触式卡101的私钥104的副本)对由非接触式卡101生成的加密数据进行解密。在一些实施例中,验证服务121可在公开所请求的数据之前确定解密的数据是否包括预期值(例如,客户标识符、帐户标识符等)。因此,例如,如果验证服务121不能验证数字签名107和/或对加密数据进行解密,则验证服务121可以避免公开所请求的数据。

一旦数字签名107被验证和/或由非接触式卡101生成的加密数据被解密,则验证服务121可以使计算节点在区块链140中生成反映所请求的用户数据141的公开的块。例如,区块链140中的块可以包括用户(或其他用户和/或帐户标识符)的钱包地址131-2、商家钱包地址131-1、请求令牌、公钥106,以及相关的用户数据141(例如,前面示例中的用户年龄)的加密指示。一旦发布到区块链140,商家设备130就可以对区块链140中的数据进行解密(例如,使用密钥132和/或公钥106)以读取用户数据141。因此,继续前面的示例,商家设备130可以对区块链140中的数据进行解密以读取请求令牌和用户的年龄。在一些实施例中,商家设备130可以使用公钥106来验证数字签名107。商家设备130然后可以确定用户的年龄。如果确定的年龄高于产品的年龄限制,则商家设备130可以允许用户购买产品。否则,商家设备130可以限制用户购买产品。

根据一些实施例,商家设备130可以在不接收实际用户数据141的情况下接收验证。相反,在这样的实施例中,商家设备130的外部逻辑(例如,验证服务121)可以接收用户数据141,处理用户数据141,并将结果发送到商家设备130。例如,验证服务120可以确定用户的年龄是否高于产品的年龄限制。验证服务121然后可以向商家设备130发送结果(例如,是,客户年龄符合,和/或否,客户年龄不符合),商家设备130可以基于接收到的结果限制和/或允许购买,无需将用户的实际年龄公开给商家设备130。

此外,验证服务121可以被配置为管理和验证存储在区块链140中的用户数据141。例如,用户可以提交反映更新的家庭地址的文件。可以对提交的文件进行验证(例如,由验证服务121使用一种或多种图像分析和/或NLP算法验证,或者由用户验证)。一旦被验证,验证服务121便可使用与验证服务121(和/或提供验证服务121的实体)相关联的验证密钥122为文件和/或更新的家庭地址生成签名(例如,散列值)。然后可以更新用户的用户数据141以反映用户的新家庭地址(其可以包括由用户提交的文件作为元数据)。由验证服务121生成的数字签名可由用户数据141的接收者(例如,商家设备130、验证服务121等)使用对应的公钥来验证以验证用户数据141的真实性。因此,在一些实施例中,商家设备130可以请求验证用户数据141并接收用户数据141的验证,而不会将实际用户数据141公开给商家设备130。

此外,当块被添加到区块链140中以请求公开和/或验证用户数据141时,这些块可用于处理后续请求以公开和/或验证用户数据141。例如,验证服务121可以基于区块链140中的块确定用户之前已经向给定商家公开和/或验证了他们的驾照号码。因此,验证服务121可以确定商家是被用户信任的,并允许随后向商家公开和/或验证驾照。然而,如果区块链140中先前没有任何块反映向商家公开了数据,则验证服务121可以拒绝公开和/或验证用户数据141的请求,以保护用户数据141。在一些实施例中,验证服务121可以允许用户和/或商家接收驾照号码的验证,而不必基于先前的验证和/或公开重新公开驾照号码。

用户数据141可以包括任何类型的个人可识别数据。用户数据141的示例元素包括但不限于用户姓名、其人脸图像、家庭地址、电子邮件地址、国民身份证号码(例如,社会保险号)、护照号码、车辆登记、车牌号码、驾驶员的驾照号码、指纹、笔迹、信用卡号码、数字身份、出生日期、出生地、遗传信息、电话号码、登录名、显示名、昵称和密码。因此,商家设备130生成的任何公开和/或验证用户数据141的请求都可以包括任何数量和类型的用户数据141的元素。例如,商家设备130可以请求电子邮件地址、年龄和用户的人脸图像。有利地,使用本文描述的技术,只有电子邮件地址、年龄和用户的人脸图像被公开给发出请求的商家设备130,从而保护用户的用户数据141的其他元素的安全和隐私。

类似地,如果请求验证用户数据141的一个或多个元素,则验证服务121可以验证用户数据141的这些元素而不将实际用户数据141公开给商家设备130。例如,商家设备130可以请求验证用户居住在特定州,验证服务121可以对用户数据141进行解密并确定用户的居住地址是否位于该州内。作为响应,验证服务121可以在不公开用户地址的情况下发送验证结果(例如,用户是否居住在该州)。更一般地,商家设备130可以请求验证用户数据141满足一个或多个标准(例如,年龄标准、地址标准等)。验证服务121然后可以对用户数据141进行解密并将解密的用户数据141与标准进行比较。例如,如果请求指定验证用户为18岁或以上,则验证服务121可以对用户数据进行解密以确定用户的年龄并将用户的年龄与标准进行比较(例如,用户的年龄是否>18岁?)。验证服务121然后可以将比较结果发送到商家设备130。

非接触式卡101可以被配置为执行密钥多样化技术以生成本文描述的密码数据和/或数字签名。密钥多样化技术的示例在2018年11月29日提交的美国专利申请16/205,119中有所描述。上述专利申请的全部内容在此纳入作为参考。

网络111可以被配置为提供客户端设备、商家设备130、验证系统120和区块链140之间的通信。例如,网络111可以是提供通信、交换信息、和/或促进信息的交换的任何类型的网络(包括基础设施),例如因特网、局域网或允许系统100在系统100的组件之间发送和接收信息的其他合适的连接。

图2A是示出执行帐户应用113的移动设备110的示意图200。通常,移动设备110的帐户应用113可以与商家设备130通信以从商家设备130接收描述所请求的用户数据141的数据。然后帐户应用113可以输出指定商家设备130请求的数据的图形用户界面(GUI)。如图所示,例如,商家设备130已经请求了用户的年龄和家庭地址。然而,在其他实施例中,商家设备130可以请求验证用户的年龄和家庭地址(例如,年龄是否超过年龄阈值和/或家庭地址是否满足一个或多个标准)。帐户应用113向用户输出指令,指定将非接触式卡101轻触到商家设备130和移动设备110以批准家庭地址和年龄的释放。

如上所述,一旦轻触到商家设备130,非接触式卡101便从商家设备130接收数据,其中包括请求令牌、商家钱包地址131-1和请求的数据元素(例如,家庭地址和年龄)。在一些实施例中,商家设备130可以指定标准(例如,年龄阈值、位置标准等)。非接触式卡101的选择小程序103然后可以基于对所接收的数据的分析确定所接收的数据与用户数据141相关联。选择小程序103然后可以选择用户数据小程序103,该小程序使用私钥104生成加密数据和数字签名107。

然后,用户数据小程序103可以将加密数据、从商家设备130接收的数据和数字签名107发送到移动设备110(例如,经由NFC)。帐户应用113然后可以将所接收的数据和用户钱包地址131-2发送到验证服务121。在一些实施例中,用户钱包地址131-2存储在非接触式卡101的存储器中并由小程序103提供给移动设备110。然后验证服务121可以使用与非接触式卡101相关联的公钥106来验证数字签名107,并且使用非接触式卡101的私钥104对加密数据进行解密。验证服务121可以然后选择用户数据141的被请求元素(例如,年龄和家庭地址)并针对所请求的数据在区块链140中生成块。所生成的块中的用户数据141可以被加密以保护用户数据141。在一些实施例中,验证服务121不将所请求的用户数据141存储在区块链140中的块中。例如,如果请求指定验证用户出生于1980年,则验证服务121可以对用户的出生日期进行解密并确定用户的出生年份是否在1980年。在这样的示例中,验证服务121可以在区块链的块中存储用户是否出生于1980年的指示。

图2B是示出输出用户年龄和家庭地址的公开结果的商家设备130的显示211的示意图210。如图所示,商家设备130确定用户的年龄已经被验证(例如,如果用户试图购买有年龄限制的物品,进入有年龄限制的机构等)。然而,有利地,仅公开用户数据141的被请求元素,并且存储在区块链140中的剩余用户数据141保持安全。

如上所述,在一些实施例中,来自商家设备130的请求可以指定在不公开实际用户数据141的情况下验证用户数据141。图2C是示出商家设备130接收对用户年龄的验证而不接收用户的实际年龄,以及接收对用户家庭地址的验证而不接收用户家庭地址的实施例的示意图220。例如,如果图2A中的请求是确定用户是否可以购买有年龄限制的物品并且用户生活在三个不同的州之一中,则验证服务121可以至少部分地基于使用私钥104对加密数据的解密,验证用户数据141中的用户年龄和住所。例如,验证服务121可以将解密的用户数据141与一个或多个标准进行比较并返回比较结果。

如图所示,如果解密的年龄指示用户被允许购买有年龄限制的物品(例如,用户的年龄大于年龄标准),则验证服务121可以向商家设备130发送批准指示,不公开用户的实际年龄。类似地,如果解密的年龄指示用户被限制购买有年龄限制的物品(例如,用户的年龄小于年龄标准),则验证服务121可以发送指定用户不满足年龄要求的指示,不公开用户的实际年龄。此外,如果解密的用户数据141中的用户地址指示用户居住在三个州之一中,则验证服务121发送指出用户居住在三个州之一中的指示,不公开地址。如上所述,在这样的实施例中,验证服务121可以将比较结果而不是用户数据141的实际值存储在区块链140中。

图3示出了与公开的实施例一致的示例性区块链140的逻辑模型300。区块链140可以包括由许多不同系统维护的许多这样的区块链。这样的示例性区块链可以包括块,例如块301a-301d。块可以包括消息,例如消息307a-307d。通常,块可以包括唯一地标识每个块的头,例如头303a-303d。头303a-303d可以包括由散列函数生成的散列值。散列函数是可用于将任意大小的输入数据映射到固定大小的散列值的任何函数。例如,头可以包括前一块的散列值、基于块中的任何消息生成的散列值(例如,默克尔根)和时间戳中的至少一个。与公开的实施例一致,系统100可能要求添加到区块链140中的块满足工作量证明条件(例如,证明305a-305d)和数字签名条件中的至少一个。例如,头303a-303d可以包括被选择确保头满足工作量证明条件的随机数。作为非限制性示例,工作量证明条件可能要求头的散列落在预定值范围内。作为附加示例,头可以用授权系统的密码密钥(例如,私钥104、交易密钥105、验证密钥122和/或商家密钥132)进行数字签名,并且数字签名可以包含在头中。可以使用系统100的成员可用的密钥来验证该数字签名。通常,系统100的一个或多个指定组件(例如,区块链140等)可以生成块301,该块包括头303、证明305和存储在区块链140中的用户数据141的消息307。

图4示出了与公开的实施例一致的存储在区块链140中的消息307b的逻辑模型。在一些实施例中,系统100的指定组件(例如,区块链140等)生成区块链消息,例如消息307b。在一些实施例中,消息307b可以包括索引信息403。在某些实施例中,索引信息403可以包括识别用户的信息。例如,索引信息403可以是用户的全名、电子邮件地址、电话号码或其他非敏感个人信息中的至少一个。在某些实施例中,索引信息403包括用户数据141的一个或多个元素。在各种实施例中,索引信息403可以包括对区块链140中较早块的一个或多个引用。例如,索引信息403可以包括对与同一用户相关联的一个或多个较早块的一个或多个引用。作为非限制性示例,引用可以包括与同一用户相关联的区块链中的先前块的散列。在一些实施例中,索引信息403可以根据本领域技术人员公知的方法被混淆或加密。例如,索引信息403可以用密码密钥进行加密。作为附加示例,索引信息403可以包括用户的全名、电子邮件地址、电话号码或其他非敏感个人信息中的至少一个的散列。

与公开的实施例一致,消息307b可以包括用户数据141。在各种实施例中,用户数据141可以作为索引信息403的一部分存储,和/或与索引信息403分开存储。在一些实施例中,用户数据141可以根据本领域技术人员公知的方法被混淆或加密。例如,用户数据141可以用密码密钥(例如,非接触式卡101的私钥104和/或交易密钥105、商家设备130的商家密钥132和/或验证系统120的验证密钥122)进行加密。消息307b还可以包括商家钱包地址131-1、用户钱包地址131-2和/或公钥106。在各种实施例中,钱包地址131-1、用户钱包地址131-2和/或公钥106可以作为索引信息403的一部分存储,和/或与索引信息403分开存储。

与公开的实施例一致,消息307b可以包括用户数据结果404。通常,用户数据结果404可以包括验证服务121和/或区块链140将用户数据141与一个或多个标准进行比较的结果。例如,如果商家设备130请求验证用户至少为21岁,则用户数据结果404反映用户是否至少21岁。在一些实施例中,包括用户数据404的消息307b可能不包括实际用户数据141(例如,用户的年龄)。在一些实施例中,用户数据结果404可以根据本领域技术人员公知的方法被混淆或加密。例如,用户数据结果404可以用密码密钥(例如,非接触式卡101的私钥104和/或交易密钥105、商家设备130的商家密钥132和/或验证系统120的验证密钥122)进行加密。在各种实施例中,用户数据结果404可以作为索引信息403的一部分存储,和/或与索引信息403分开存储。

与公开的实施例一致,消息307b可以包括认证记录407。在一些实施例中,认证记录407可以包括使得能够对交易进行后续审计的信息。例如,认证记录407可以识别以下至少一项:验证系统120、与验证系统120相关联的商业机构、验证请求的目的(例如,公开和/或验证用户数据141的元素)、认证请求的结果(例如,用户数据141的哪些元素被公开和/或验证),以及与认证请求相关的信息。在一些实施例中,认证请求的目的可以包括创建与验证系统120的相关联的商业机构的关系(例如,金融关系,例如银行帐户、经纪帐户、信用卡帐户和/或贷款帐户),或由验证系统120执行服务(例如,向商家设备130公开和/或验证用户数据141,在与用户相关联的金融帐户中执行交易,兑现用户提供的支票,和/或向用户出售本票)。如本领域技术人员将理解的,上述示例性认证目的不旨在限制。在一些实施例中,认证请求的结果可以包括认证请求的目的是否达到。例如,当认证请求的目的是建立关系时,认证请求的结果可以指示是否建立了关系。作为另一示例,当认证请求的目的是公开和/或验证用户数据141的一个或多个元素时,认证请求的结果可以指示用户数据141的元素是否被公开和/或验证。如本领域技术人员将理解的,以上示例性认证结果不旨在限制。

在一些实施例中,与认证请求相关的信息可以包括附加的联系信息、人口统计信息、财务信息或与认证请求相关联地提供的类似的个人信息。在一些实施例中,此类信息可以仅指示提供了此类信息,和/或提供了可以获得此类信息的位置。在一些实施例中,认证记录407可以根据本领域技术人员公知的方法被混淆或加密。例如,认证记录407可以用密码密钥进行加密。

与公开的实施例一致,可以使用密码密钥来对块中的消息元素进行加密。在一些实施例中,此类密码密钥可以与系统100的成员(例如,验证系统120、非接触式卡101、移动设备110、商家设备130等)相关联。在各种实施例中,至少一些密码密钥可以与授权系统相关联。与公开的实施例一致,相应的密码密钥可用于对加密的消息元素进行解密。例如,当块中消息的元素用对称密钥加密时,相同的对称密钥可用于对加密元素进行解密。作为另一示例,当块中消息的元素用私钥加密时,对应的公钥可用于对加密元素进行解密。在一些实施例中,相应的密码密钥可用于认证系统的成员(例如,验证系统120、非接触式卡101、移动设备110、商家设备130等)。如上所述,此类密码密钥可用于将用户数据141存储在区块链140中,公开和/或验证存储在区块链140中的用户数据141,并创建反映存储在区块链140中的用户数据141的公开和/或验证的记录。

图5示出了逻辑流程500的实施例。逻辑流程500可以代表由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程500可以代表使用非接触式卡101来安全地共享存储在区块链140中的用户数据141的一些或全部操作。在本文中,实施例不受限制。

如图所示,逻辑流程500开始于框505,其中用户数据141被存储在区块链140和/或基于云的数据库中。在一些实施例中,存储用户数据141的基于云的数据库是区块链140的组件。通常,用户数据141可以被加密并存储在任何合适的数据存储实体(例如,数据库、文件、区块链140的一个或多个块等)中。用户数据141的一个或多个元素可由验证服务121签名(例如,使用与验证服务121相关联的实体的私钥来生成数字签名)。在框510,用户可以访问移动设备110上的帐户应用113并提供有效的认证凭据(例如,用户名/密码、指纹等)。在框515,作为接收用户数据141的一个或多个元素的请求的一部分,商家设备130输出将非接触式卡101轻触到商家设备130的指示。例如,商家设备130可以与公共交通系统相关联,需要验证用户的全名、地址、出生日期和身份证号码才能允许用户乘坐公共交通系统。作为另一示例,请求可以指定根据一个或多个标准来验证用户数据141。

在框520,非接触式卡101被轻触到商家设备130并从商家设备130接收数据。数据可以包括请求令牌、所请求的数据元素(例如,全名、地址、出生日期、身份证号码),以及商家的钱包地址131-1。在框525,选择小程序103基于在框520接收的数据类型选择用户数据小程序103和私钥104。例如,通过分析从商家设备130接收的数据,小程序103可以确定请求用户数据141。用户数据小程序103然后可以使用私钥104生成加密数据和数字签名107。在框530,非接触式卡101将加密数据和数字签名107发送到移动设备110。

在框535,移动设备110的帐户应用113将钱包地址131-2和从非接触式卡101接收的数据发送到验证服务121。在框540,验证服务121验证请求以验证用户数据141。例如,验证服务121可以使用非接触式卡的公钥106对数字签名107进行解密。另外,验证服务121可以使用存储在验证系统120的存储器中的私钥104的副本来对由非接触式卡101生成的加密数据进行解密。在框545,验证服务121和/或区块链140检索所请求的用户数据141(例如,全名、地址、出生日期、身份证号码)。在一些实施例中,验证服务121和/或区块链140可以根据一个或多个标准来验证用户数据。例如,验证服务121和/或区块链140可以确定年龄是否超过阈值、用户是否居住在一个或多个位置等。

在框550,在区块链140中生成块以反映所请求的用户数据141从用户的钱包地址131-2释放到商家的地址131-1。如上所述,虽然第三方可以查看交易细节,但实际用户数据141在区块链140的块中保持加密。如上所述,在验证实施例中,验证服务121和/或区块链140可以存储用户数据141与标准的比较(例如,用户是否至少与指定年龄一样大)作为用户数据结果404。在框555,商家设备130读取在框550生成的区块链140中的块。商家设备130然后可以使用商家的商家密钥132来对加密数据进行解密。一旦解密,数据就可以由商家设备130和/或用户进行分析。例如,商家设备130可以确定解密的用户数据141(例如,全名、地址、出生日期、身份证号码)与用户的公共交通车票上的相应数据相匹配。然后可以允许用户登上公共交通车辆。作为另一示例,该框可以指定任何所需比较的结果。在这样的示例中,商家设备130确定用户数据与来自区块链140的用户数据结果404的标准的比较结果。

图6示出了逻辑流程600的实施例。逻辑流程600可以代表由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程600可以包括由验证服务121执行以将用户数据141公开给发出请求的商家设备130的一些或全部操作。在本文中,实施例不受限制。

如图所示,逻辑流程600开始于框610,其中验证服务121接收由非接触式卡101生成的数据(例如,数字签名107和加密数据)。在框620,验证服务121使用公钥106和签名验证算法对数字签名107进行解密以验证公开源自非接触式卡101的用户数据141的请求。类似地,验证服务121可以使用私钥104对加密数据进行解密,以确认公开源自非接触式卡101的用户数据141的请求。

在框630,验证服务121可以接收与存储在区块链140中的用户数据141的被请求元素相关联的数字签名。如上所述,提供验证服务121的实体可以用相应的数字签名对用户数据141的每个元素进行签名,以验证其真实性。在框640,验证服务121可以验证与存储在区块链140中的用户数据141的被请求元素相关联的数字签名。例如,可以使用相应的公钥对数字签名进行解密以验证数字签名,例如在向商家设备130提供所请求的数据之前验证所请求的数据。在框650,验证服务121确定与请求相关联的数据。例如,验证服务121可以从由非接触式卡101生成的解密数据中提取请求令牌、用户数据141的被请求元素、帐户和/或用户标识符,以及商家钱包地址131-1。在一个实施例中,验证服务121可以从区块链140接收用户数据141的被请求元素(例如,用户的人脸图像)。在另一实施例中,验证服务121指示所请求的数据元素(例如,URL、存储位置、描述等)足以允许区块链140的组件从用户数据141接收所请求的数据元素。

在框660,验证服务121向区块链140提供请求数据以生成块。区块链140可以生成包括所请求的(但加密的)用户数据141的块。如上所述,在一些实施例中,验证服务121提供所请求的用户数据141。在其他实施例中,区块链140基于从验证服务121接收的信息检索用户数据141(例如,通过访问指定URL处的数据,从数据库中选择与用户相关联的数据记录等)。在一些实施例中,验证服务121不向商家设备130提供用户数据141。相反,验证服务121可以验证用户数据141并将验证结果发送到商家设备130。

图7示出了逻辑流程700的实施例。逻辑流程700可以代表由本文描述的一个或多个实施例执行的一些或全部操作。例如,逻辑流程700可以代表将用户数据141存储在区块链140中的一个或多个操作。在本文中,实施例不受限制。

如图所示,逻辑流程700开始于框710,其中接收描述用户的用户数据。用户数据可以从任何来源接收,例如帐户应用113、网络服务、纸质表格等。在框720,验证所接收的用户数据。例如,验证服务121可以对用户的图像进行图像处理,以确定图像中描绘的人脸是否与用户的其他已知图像匹配。作为另一示例,提供验证服务121的实体的雇员可以验证用户数据。在框730,验证服务121例如使用与验证服务121相关联的私钥为经过验证的用户数据生成数字签名。在框740,经过验证的数据和数字签名被存储为用户数据141。例如,可以更新用户数据141的数据库以反映经过验证和签名的用户数据的添加。作为另一示例,可以将包括数字签名和用户数据的加密版本的一个或多个块添加到区块链140中。这样做允许如本文所述使用非接触式卡101安全且选择性地公开所存储的用户数据141。

图8示出了示例性计算架构800的实施例,其包括可以适合于实现如前所述的各种实施例的计算系统802。在各种实施例中,计算架构800可以包括电子设备或被实现为电子设备的一部分。在一些实施例中,计算架构800例如可以代表实现系统100的一个或多个组件的系统。在一些实施例中,计算系统802例如可以代表系统100的移动设备110、商家设备130、验证系统120、区块链140。在本文中,实施例不受限制。更一般地,计算架构800被配置为实现本文参考图1至图7描述的所有逻辑、应用、系统、方法、装置和功能。

如在本申请中使用的,术语“系统”和“组件”和“模块”旨在指代计算机相关实体,可以是硬件、硬件和软件的组合、软件或执行中的软件,其示例由示例性计算架构800提供。例如,组件可以是但不限于在计算机处理器上运行的进程、计算机处理器、硬盘驱动器、多个存储驱动器(光和/或磁存储介质的)、对象、可执行文件、执行线程、程序和/或计算机。举例来说,在服务器上运行的应用和服务器都可以是组件。一个或多个组件可以驻留在进程和/或执行线程中,并且组件可以位于一台计算机上和/或分布在两台或多台计算机之间。此外,组件可以通过各种类型的通信媒体相互通信耦合以协调操作。协调可能涉及单向或双向信息交换。例如,组件可以以通过通信媒体传送的信号的形式传送信息。该信息可以被实现为分配给各种信号线的信号。在这样的分配中,每条消息都是一个信号。然而,其他实施例可替代地采用数据消息。此类数据消息可以通过各种连接发送。示例性连接包括并行接口、串行接口和总线接口。

计算系统802包括各种常见的计算元件,例如一个或多个处理器、多核处理器、协处理器、存储单元、芯片组、控制器、外围设备、接口、振荡器、定时设备、视频卡、音频卡、多媒体输入/输出(I/O)组件、电源等。然而,实施例不限于由计算系统802实现。

如图8所示,计算系统802包括处理器804、系统存储器806和系统总线808。处理器804可以是各种商用计算机处理器中的任一种,包括但不限于 处理器;应用、嵌入式安全处理器; 处理器;IBM和Cell处理器; Core(2) 处理器;以及类似的处理器。双微处理器、多核处理器和其他多处理器架构也可以用作处理器804。

系统总线808为包括但不限于系统存储器806和处理器804的系统组件提供接口。系统总线808可以是使用任何多种商用总线架构的任何多种类型的总线结构,其可以进一步互连到存储器总线(带或不带存储控制器)、外围总线和本地总线。接口适配器可以经由插槽架构连接到系统总线808。示例插槽架构可以包括但不限于加速图形端口(AGP)、卡总线、(扩展)工业标准架构((E)ISA)、微通道架构(MCA)、NuBus、外围组件互连(扩展)(PCI(X))、PCI Express、个人计算机存储卡国际协会(PCMCIA)等。

系统存储器806可以包括采取一个或多个高速存储单元的形式的各种类型的计算机可读存储介质,例如只读存储器(ROM)、随机存取存储器(RAM)、动态RAM(DRAM)、双倍数据速率DRAM(DDRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存(例如,一个或多个闪存阵列)、诸如铁电聚合物存储器之类的聚合物存储器、奥式存储器、相变或铁电存储器、硅-氧化物-氮-氧化物-硅(SONOS)存储器、磁卡或光卡、诸如独立磁盘冗余阵列(RAID)之类的设备阵列的驱动器、固态存储器设备(例如,USB存储器、固态驱动器(SSD))和适合于存储信息的任何其他类型的存储介质。在图8所示的图示实施例中,系统存储器806可以包括非易失性存储器810和/或易失性存储器812。基本输入/输出系统(BIOS)可被存储在非易失性存储器810中。

计算系统802可以包括采取一个或多个低速存储单元的形式的各种类型的计算机可读存储介质,其中包括内部(或外部)硬盘驱动器(HDD)814、用于对可移动磁盘818执行读写操作的磁软盘驱动器(FDD)816,以及用于对可移动光盘822(例如CD-ROM或DVD)执行读写操作的光盘驱动器820。HDD 814、FDD 816和光盘驱动器820可以分别通过HDD接口824、FDD接口826和光盘驱动器接口828连接到系统总线808。用于外部驱动器实现的HDD接口824可以包括通用串行总线(USB)和IEEE 1394接口技术中的至少一种或全部两种。计算系统802一般被配置为实现本文参考图1至图5描述的所有逻辑、系统、方法、装置和功能。

驱动器和相关联的计算机可读介质提供数据、数据结构、计算机可执行指令等的易失性和/或非易失性存储。例如,多个程序模块可以存储在驱动器和存储器单元810、812中,其中包括操作系统830、一个或多个应用832、其他程序模块834和程序数据836。在一个实施例中,一个或多个应用832、其他程序模块834和程序数据836例如可以包括系统100的各种应用和/或组件,例如帐户应用113、验证服务121、区块链140和/或用户数据141。

用户可以通过一个或多个有线/无线输入设备(例如,键盘838和诸如鼠标840之类的指点设备)将命令和信息输入计算系统802。其他输入设备可以包括麦克风、红外线(IR)遥控器、射频(RF)遥控器、游戏手柄、触控笔、读卡器、加密狗、指纹读取器、手套、图形输入板、操纵杆、键盘、视网膜读取器、触摸屏(例如,电容式、电阻式等)、轨迹球、轨迹板、传感器、触控笔等。这些和其他输入设备通常通过耦合到系统总线808的输入设备接口842连接到处理器804,但可以通过其他接口连接,例如并行端口、IEEE 1394串行端口、游戏端口、USB端口、IR接口等。

监视器844或其他类型的显示设备也经由接口(例如视频适配器846)连接到系统总线808。监视器844可以在计算系统802的内部或外部。除了监视器844之外,计算机通常包括其他外围输出设备,例如扬声器、打印机等。

计算系统802可以使用经由有线和/或无线通信到一个或多个远程计算机(例如远程计算机848)的逻辑连接在网络环境中操作。远程计算机848可以是工作站、服务器计算机、路由器、个人计算机、便携式计算机、基于微处理器的娱乐设备、对等设备或其他常见网络节点,并且通常包括许多或全部关于计算系统802描述的元件,尽管为了简洁起见,仅示出了存储器/存储设备850。所描绘的逻辑连接包括到局域网(LAN)852和/或更大的网络,例如广域网(WAN)854的有线/无线连接。这种LAN和WAN网络环境在办公室和公司中很常见,并且促进企业范围的计算机网络,例如内联网,所有这些网络都可以连接到全球通信网络,例如因特网。在实施例中,图1的网络111是LAN 852和WAN 854中的一个或多个。

当在LAN网络环境中使用时,计算系统802通过有线和/或无线通信网络接口或适配器856连接到LAN 852。适配器856可以促进到LAN 852的有线和/或无线通信,LAN 852还可以包括设置在其上的无线接入点,用于与适配器856的无线功能进行通信。

当在WAN网络环境中使用时,计算系统802可以包括调制解调器858,或者连接到WAN 854上的通信服务器或者具有用于在WAN 854上建立通信的其他手段,例如通过因特网。调制解调器858可以是内部或外部的有线和/或无线设备,其经由输入设备接口842连接到系统总线808。在网络环境中,关于计算系统802示出的程序模块或其一部分可以存储在远程存储器/存储设备850中。应当理解,所示的网络连接是示例性的,可以使用在计算机之间建立通信链路的其他手段。

计算系统802可操作地与使用IEEE 802系列标准的有线和无线设备或实体进行通信,例如可操作地设置在无线通信(例如,IEEE 802.16空中调制技术)中的无线设备。这至少包括Wi-Fi(或无线保真)、WiMax和蓝牙TM无线技术等。因此,通信可以是与传统网络一样的预定义结构,或者只是至少两个设备之间的自组织通信。Wi-Fi网络使用称为IEEE802.11x(a、b、g、n等)的无线电技术来提供安全、可靠、快速的无线连接。Wi-Fi网络可用于将计算机相互连接、连接到因特网以及连接到有线网络(使用IEEE 802.3相关媒体和功能)。

各种实施例可以使用各种硬件元素、软件元素或两者的组合来实现。硬件元素的示例可以包括处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等。软件的示例可以包括软件组件、程序、应用、计算机程序、应用、系统程序、机器程序、操作系统软件、中间件、固件、软件模块、例程、子例程、功能、方法、过程、软件接口、应用接口(API)、指令集、计算代码、计算机代码、代码段、计算机代码段、字、值、符号或其任何组合。确定是使用硬件元素和/或软件元素来实现实施例可以根据任何数量的因素而变化,例如期望的计算速率、功率水平、耐热性、处理周期预算、输入数据速率、输出数据速率、内存资源、数据总线速度和其他设计或性能限制。

至少一个实施例的一个或多个实施例可以通过存储在机器可读介质上的代表性指令来实现,该机器可读介质表示处理器内的各种逻辑,当被机器读取时,这些指令使机器制造逻辑以执行本文所述的技术。这种被称为“IP核”的表示可以存储在有形的机器可读介质上,并提供给各种客户或制造厂,以装载到制造逻辑或处理器的制造机器中。例如,可以使用机器可读介质或制品来实现一些实施例,该机器可读介质或制品可以存储指令或指令集,如果被机器执行,则这些指令或指令集可以使机器执行根据实施例的方法和/或操作。这种机器例如可以包括任何合适的处理平台、计算平台、计算设备、处理设备、计算系统、处理系统、计算机、处理器等,并且可以使用硬件和/或软件的任何合适的组合来实现。机器可读介质或制品例如可以包括任何合适类型的存储器单元、存储器设备、存储器制品、存储器介质、存储设备、存储物品、存储介质和/或存储单元,例如,存储器、可移动或不可移动介质、可擦除或不可擦除介质、可写或可重写介质、数字或模拟介质、硬盘、软盘、光盘只读存储器(CD-ROM)、可记录光盘(CD-R)、可重写光盘(CD-RW)、光盘、磁介质、磁光介质、可移动存储卡或磁盘、各种类型的数字通用磁盘(DVD)、磁带、盒式磁带等。指令可以包括例如使用任何合适的高级、低级、面向对象的、可视的、编译的和/或解释的编程语言来实现的任何合适类型的代码,源代码、编译代码、解释代码、可执行代码、静态代码、动态代码、加密代码等。

为了说明和描述的目的已经呈现了示例实施例的前述描述,其并不旨在是穷举的或将本公开内容限制为所公开的精确形式。根据本公开,许多修改和变化是可能的。本公开的范围旨在不受该详细描述的限制,而是受所附权利要求的限制。要求本申请优先权的未来提交的申请可以以不同的方式要求所公开的主题,并且通常可以包括如本文以不同方式公开或以其他方式展示的任何一组一个或多个限制。

28页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:项目推荐系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!