用于使用区块链来认证用户的方法、系统和介质与流程

专利2022-05-09  21



1.所公开的主题涉及用于使用区块链来认证用户的方法、系统和介质。


背景技术:

2.人们越来越多地使用多个用户设备并且从每个设备访问多个应用。例如,一个人可以在其家中或办公室中具有各自可访问不同应用的多个用户设备(例如,移动电话、平板计算机、台式计算机等)和多个物联网(iot)设备。每个用户设备可能需要被认证到该应用以访问和使用该应用。
3.使用分布式区块链服务器来认证用户设备可能是耗时且资源密集的。例如,为了验证分布式区块链网络上的用户设备,用户设备必须连接到区块链网络的区块链服务器,区块链服务器然后将区块链的区块更新到区块链网络的其余区块链服务器。此外,使用分布式区块链网络会具有安全风险。例如,使用受共识控制的区块链服务器可能允许黑客访问区块链网络的区块链服务器,这可以使整个区块链网络易受攻击。
4.因此,期望提供用于使用区块链来认证用户的新方法、系统和介质。


技术实现要素:

5.提供了用于使用区块链来认证用户的方法、系统和介质。
6.根据所公开的主题的一些实施例,提供了一种用于使用区块链来认证用户的方法,所述方法包括:在用户的用户设备处接收用于针对与所述用户设备相关联的应用进行认证的用户凭证;使用存储在所述用户设备上的本地区块链来确定所述用户凭证对于所述应用是否有效;响应于确定所述用户凭证有效,生成要被添加到所述本地区块链的新区块;将所述新区块添加到所述本地区块链;以及基于验证的用户凭证来授权对所述应用的访问。
7.根据所公开的主题的一些实施例,提供了一种用于使用区块链来认证用户的系统,所述系统包括:存储器;以及硬件处理器,当执行存储在存储器中的计算机可执行指令时,该硬件处理器被配置为:在用户的用户设备处接收用于针对与所述用户设备相关联的应用进行认证的用户凭证;使用存储在所述用户设备上的本地区块链来确定所述用户凭证对于所述应用是否有效;响应于确定所述用户凭证有效,生成要被添加到所述本地区块链的新区块;将所述新区块添加到所述本地区块链;以及基于验证的用户凭证来授权对所述应用的访问。
8.根据所公开的主题的一些实施例,提供了一种包含计算机可执行指令的非暂时性计算机可读介质,所述计算机可执行指令在由处理器执行时使得所述处理器执行用于使用区块链来认证用户的方法,所述方法包括:在用户的用户设备处接收用于针对与所述用户设备相关联的应用进行认证的用户凭证;使用存储在所述用户设备上的本地区块链来确定所述用户凭证对于所述应用是否有效;响应于确定所述用户凭证有效,生成要被添加到所述本地区块链的新区块;将所述新区块添加到所述本地区块链;以及基于验证的用户凭证
来授权对所述应用的访问。
附图说明
9.当结合以下附图考虑时,参考所公开的主题的以下详细描述,可以更充分地理解所公开的主题的各种目的、特征和优点,在附图中,相同的附图标记标识相同的元件。
10.图1示出根据所公开的主题的一些实施例的用于使用区块链来认证用户的过程的示例。
11.图2示出根据所公开的主题的一些实施例的适于实现本文所描述的用于使用区块链来认证用户的机制的说明性系统的示意图。
12.图3示出根据所公开主题的一些实施例的可以在图2的服务器和/或用户设备中使用的硬件的详细示例。
具体实施方式
13.根据各个实施例,提供了用于使用区块链来认证用户的机制(其可以包括方法、系统和介质)。
14.在一些实施例中,本文描述的机制可以用于使用存储在用户设备上的本地区块链和/或存储在区块链服务器上的云区块链来针对要在用户设备上打开或执行的应用认证用户设备的用户。在一些实施例中,本地区块链和云区块链可以被同步,使得本地区块链和云区块链是相同的。
15.在一些实施例中,用户设备可以是任何合适类型的用户设备,诸如移动电话、平板计算机、膝上型计算机、台式计算机、媒体回放设备、物联网(iot)设备(例如,智能恒温器、智能锁、智能电器和/或任何其他合适类型的iot设备)和/或任何其他合适类型的用户设备。在一些实施例中,所述机制可以用于授权对任何适当类型的应用的访问,诸如用于访问用户设备上的消息(例如,电子邮件、文本消息和/或任何其他适当类型的消息)的应用、用于在用户设备上呈现媒体内容的应用、用于使用用户设备控制其他设备的应用和/或任何其他适当类型的应用。
16.在一些实施例中,这些机制可以使用任何合适的技术或技术的组合来认证用户设备的用户。例如,在一些实施例中,机制可以接收与用户将针对其被认证的应用相关联的用户凭证,并且可以使用存储在用户设备上的本地区块链来验证用户凭证。在一些实施例中,响应于使用本地区块链来验证用户凭证,该机制可以生成要被添加到本地区块链的新区块。在一些实施例中,所述机制然后可以尝试连接到区块链服务器以使得新区块被添加到存储在区块链服务器上的云区块链。在一些实施例中,在机制不能连接到区块链服务器的情况下,所述机制可以将新创建的区块存储为离线区块,所述离线区块将在用户设备下次能够成功连接到区块链服务器时被添加到云区块链。相反,在机制可以连接到区块链服务器的情况下,机制可以同步本地区块链和云区块链,使得本地区块链和云区块链是相同的,如结合图1更详细地描述的。
17.注意,在一些实施例中,本地区块链可以分布在多个用户设备之间。例如,在一些实施例中,本地区块链可以分布在各自与特定用户相关联的多个用户设备之间。作为更具体的示例,在一些实施例中,本地区块链可以分布在多个用户设备和多个iot设备(诸如各
自在用户的家、办公室或其他位置内的多个iot设备)之间。
18.转向图1,示出根据所公开的主题的一些实施例的用于使用区块链来认证用户的过程的示例100。在一些实施例中,过程100的块可以在用户设备上和/或在存储块链的区块链服务器(例如,如以下结合图2所示和所述的云区块链服务器202)上执行。
19.过程100可以在102处通过接收用于针对应用进行认证的用户凭证而开始。在一些实施例中,应用可以是可以在用户设备上执行的任何合适类型的应用,诸如用于呈现媒体内容的应用、用于访问电子邮件或其他消息的应用、对应于社交网络服务的应用、用于控制用户家中的iot设备的应用、和/或任何其他合适类型的应用。在一些实施例中,用户凭证可以包括任何合适类型的用户凭证,诸如用户名、密码、生物测定签名、动态令牌、对应于用户设备的唯一设备标识符和/或可以唯一地标识用户设备和/或用户设备的用户的任何其他合适类型的信息。
20.注意,在一些实施例中,过程100可以在任何合适的时间和/或响应于任何合适的动作接收用户凭证。例如,在一些实施例中,过程100可以响应于在用户设备上选择或打开应用而接收用户凭证。作为更具体的示例,在一些实施例中,过程100可以响应于确定应用已经被选择或打开而呈现请求用户凭证(例如,用户名和/或密码、生物测定标识符和/或任何其他合适的证书)的用户界面。作为另一示例,在一些实施例中,过程100可以响应于确定用户设备已经被开启或激活而从用户请求用户凭证。
21.在104,过程100可以使用本地区块链来确定用户凭证是否有效。注意,在一些实施例中,本地区块链可以是本地存储在用户设备的存储器中的区块链。在一些实施例中,过程100可以以任何合适的方式使用本地区块链来确定用户凭证是否有效。例如,在一些实施例中,过程100可以使用任何合适的技术或技术的组合来针对应用认证用户凭证。作为更具体的示例,在一些实施例中,过程100可以验证用户凭证的散列以针对应用认证用户凭证。
22.注意,在一些实施例中,本地区块链可以分布在多个用户设备之间。例如,在一些实施例中,本地区块链的一部分可被存储在正在针对应用认证的用户设备上,并且本地区块链的剩余部分可以被分布在其他用户设备中。作为更具体的示例,在一些实施例中,本地区块链的剩余部分可以分布在与针对应用认证的用户设备的用户相关联的其他用户设备中,诸如由用户使用的其他用户设备、用户的家庭或办公室中的iot设备和/或任何其他合适的用户设备。
23.如果在104,过程100使用本地区块链确定用户凭证无效(在104为“否”),则过程100可以在124结束。
24.如果在104处,过程100使用本地区块链确定用户凭证有效(在104处为“是”),则过程100可以在106处确定是否存在到云区块链服务器(例如,如以下结合图2所示和所述的云区块链服务器202)的连接。在一些实施例中,过程100可以以任何合适的方式确定是否存在到云区块链服务器的连接。例如,在一些实施例中,过程100可以使用任何合适的通信网络来尝试连接到云区块链服务器,并且可以确定连接到云区块链服务器的尝试是否成功。
25.如果在106,过程100确定不存在到云区块链服务器的连接(在106为“否”),则过程100可以在108为本地区块链创建新区块。例如,在一些实施例中,新区块可以对应于其中用户设备被认证到应用的实例。在一些实施例中,可以使用任何合适的信息来生成新区块,任何合适的信息诸如对应于应用的用户名和/或密码、生物测定签名、动态令牌、对应于用户
设备的唯一标识符、公钥基础结构(pki)公钥和私钥、网际协议(ip)地址、日期和/或时间(例如,使用本地区块链来认证用户凭证的日期和/或时间、和/或任何其他合适的日期和/或时间)、地理位置(例如,当前全球定位系统或gps、用户设备的坐标、用户设备的当前城市或城镇、和/或任何其他合适的地理位置)、和/或任何其他合适的信息。注意,在一些实施例中,可以使用信息的任何适当组合来生成新区块。另外,注意,在一些实施例中,可以使用任何合适的加密协议以任何合适的方式对新区块进行加密。
26.在110,过程100可以将新区块添加到本地区块链。注意,在一些实施例中,新区块可以作为离线区块被添加到本地区块链,离线区块可以在用户设备下次连接到云区块链服务器时与存储在云区块链服务器上的区块链同步。
27.在112,过程100可以授权与用户凭证相关联的用户对应用的访问。在一些实施例中,过程100可以以任何合适的方式授权对用户设备上的应用的访问。例如,在一些实施例中,过程100可以使用用户凭证登录到与用户和应用相关联的用户账户。
28.过程100然后可以在124结束。
29.返回参考106,如果在106处,过程100确定存在到区块链服务器的连接(在106处为“是”),则在114处,过程100可以使用云区块链来确定用户凭证是否有效。在一些实施例中,过程100可以以任何合适的方式使用云区块链来确定用户凭证是否有效。例如,在一些实施例中,用户设备可以向区块链服务器传送请求,该请求向应用请求验证用户凭证。在一些实施例中,区块链服务器可以使用任何合适的技术或技术的组合来验证用户凭证。例如,在一些实施例中,过程100可以验证与用户凭证相关联的散列。
30.如果在114,过程100确定用户凭证无效(在114为“否”),则过程100可以在124结束。
31.如果在114,过程100确定用户凭证有效(在114为“是”),则在116,过程100可以同步云区块链和本地区块链。在一些实施例中,过程100可以使用任何合适的技术或技术的组合来同步云区块链和本地区块链。例如,在一些实施例中,过程100可以将由过程100创建的尚未被添加到云区块链的所有区块从用户设备传送到区块链服务器。作为更具体的示例,在一些实施例中,过程100可以传送被指示为离线区块的区块,如以上结合110所描述的。作为具体示例,在一些实施例中,过程100可在没有成功连接到区块链服务器时传送先前被添加到本地区块链的离线区块。作为另一示例,在一些实施例中,过程100可以在用户设备处从区块链服务器接收存在于存储在区块链服务器上的云区块链中的、尚未被包括在本地区块链中的任何区块。作为更具体的示例,在一些实施例中,在本地区块链分布在多个用户设备之间的情况下,过程100可以从区块链服务器接收从存储本地区块链的一部分的其他用户设备添加到云区块链的区块。
32.在118,过程100可以为本地区块链创建新区块。如上结合108所述,过程100可以以任何合适的方式为本地区块链创建新区块。例如,在一些实施例中,可以使用任何合适的信息来生成新区块,任何合适的信息诸如对应于应用的用户名和/或密码、生物测定签名、动态令牌、对应于用户设备的唯一标识符、公钥基础设施(pki)公钥和私钥、网际协议(ip)地址、日期和/或时间(例如,用户设备针对应用认证的日期和/或时间、和/或任何其他合适的日期和/或时间)、地理位置、和/或任何其他合适的信息。注意,在一些实施例中,可以使用信息的任何适当组合来生成新区块。另外,注意,在一些实施例中,可以以任何合适的方式
并且使用任何合适的协议来加密新区块。
33.在120,过程100可以将新区块添加到本地区块链。
34.在122,过程100可以将新区块传送到区块链服务器。在一些这样的实施例中,可以利用指令来传送新区块,所述指令使得区块链服务器将新区块添加到存储在区块链服务器上的云区块链。
35.然后,如上所述,在112,过程100可以授权与用户凭证相关联的用户对应用的访问。
36.转向图2,示出根据所公开的主题的一些实施例的可以使用的用于使用区块链来认证用户的硬件的示例200。如图所示,硬件200可包括云区块链服务器202、通信网络204、诸如用户设备208、210和212的一个或多个用户设备206、和/或诸如路由器214和/或216的一个或多个路由器。
37.云区块链服务器202可以是用于存储信息、数据、程序和/或任何其他合适的内容的任何合适的服务器。例如,在一些实施例中,云区块链服务器202可以存储与区块链相关联的信息,该信息可以用于针对应用认证用户。在一些实施例中,存储在云区块链服务器202上的云区块链可以与存储在用户设备206中的一个或多个上的本地区块链同步,如以上结合图1所示和所述。
38.在一些实施例中,通信网络204可以是一个或多个有线和/或无线网络的任何合适的组合。例如,通信网络204可以包括互联网、内联网、广域网(wan)、局域网(lan)、无线网络、数字用户线(dsl)网络、帧中继网络、异步传输模式(atm)网络、虚拟专用网络(vpn)和/或任何其它适当的通信网络中的任何一个或多个。用户设备206可以通过一个或多个通信链路连接到通信网络204,该通信网络可以经由一个或多个通信链路链接到云区块链服务器202。在一些实施例中,用户设备206可以经由一个或多个路由器(诸如路由器214和/或路由器216)连接到通信网络204。例如,在一些实施例中,用户设备208和210可以经由路由器214连接到通信网络204,并且用户设备212可以经由路由器216连接到通信网络204。在一些实施例中,通信链路可以是适合于在用户设备206和服务器202之间传达数据的任何通信链路,诸如网络链路、拨号链路、无线链路、硬连线链路、任何其他合适的通信链路、或此类链路的任何合适的组合。
39.用户设备206可以包括任何一个或多个用户设备。例如,在一些实施例中,用户设备206可以包括用户设备,诸如移动电话、平板计算机、膝上型计算机、台式计算机、可穿戴计算机和/或任何其他合适类型的计算机。作为另一示例,在一些实施例中,用户设备206可以包括媒体回放设备,诸如电视、扬声器、游戏控制台和/或任何其他合适类型的媒体回放设备。作为又一示例,在一些实施例中,用户设备206可以包括任何合适的物联网(iot)设备,诸如智能恒温器、智能锁和/或任何其他合适的iot设备。注意,在一些实施例中,用户设备206的用户可以针对要在用户设备206上执行的任何合适的应用进行认证,任何合适的应用诸如用于访问电子邮件的应用、用于呈现媒体内容的应用和/或任何其他合适类型的应用。在一些实施例中,可以使用上面结合图1示出和描述的技术来执行认证。
40.尽管云区块链服务器202被图示为一个设备,但是在一些实施例中,由云区块链服务器202执行的功能可以使用任何合适数量的设备来执行。例如,在一些实施例中,多个设备可以用于实现由云区块链服务器202执行的功能。
41.尽管为了避免附图过于复杂而在图2中示出了三个用户设备208、210和212,但是在一些实施例中可以使用任何合适数量的用户设备和/或任何合适类型的用户设备。
42.在一些实施例中,云区块链服务器202和用户设备206可以使用任何合适的硬件来实现。例如,在一些实施例中,设备202和206可以使用任何合适的通用计算机或专用计算机来实现。例如,移动电话可以使用专用计算机来实现。任何这样的通用计算机或专用计算机可以包括任何合适的硬件。例如,如图3的示例硬件300中所示,这样的硬件可以包括硬件处理器302、存储器和/或存储304、输入设备控制器306、输入设备308、显示器/音频驱动器310、显示器和音频输出电路312、通信接口314、天线316和总线318。
43.在一些实施例中,硬件处理器302可以包括任何合适的硬件处理器,诸如微处理器、微控制器、数字信号处理器、专用逻辑和/或用于控制通用计算机或专用计算机的功能的任何其他合适的电路。在一些实施例中,硬件处理器302可以由存储在服务器的存储器和/或存储中的服务器程序控制,所述服务器诸如云区块链服务器202。例如,在一些实施例中,服务器程序可以使硬件处理器302将区块添加到云区块链,将云区块链与本地存储在用户设备上的区块链同步,和/或执行任何其他合适的功能。在一些实施例中,硬件处理器302可以由存储在诸如用户设备206的用户设备的存储器和/或存储中的计算机程序控制。例如,在一些实施例中,计算机程序可以使硬件处理器302使用存储在用户设备206上的本地区块链来针对要在用户设备306上执行的应用认证用户,使本地存储的区块链与存储在云区块链服务器202上的区块链同步,使用本地存储的区块链基于用户凭证的认证来向用户设备206的用户授权对应用的访问,和/或执行任何其他合适的功能。
44.在一些实施例中,存储器和/或存储304可以是用于存储程序、数据和/或任何其它合适的信息的任何合适的存储器和/或存储装置。例如,存储器和/或存储304可以包括随机存取存储器、只读存储器、闪存、硬盘存储、光学介质和/或任何其它合适的存储器。
45.在一些实施例中,输入设备控制器306可以是用于控制和接收来自一个或多个输入设备308的输入的任何合适的电路。例如,输入设备控制器306可以是用于从触摸屏、从键盘、从一个或多个按钮、从语音识别电路、从麦克风、从相机、从光学传感器、从加速度计、从温度传感器、从近场传感器、从压力传感器、从编码器和/或任何其他类型的输入设备接收输入的电路。
46.在一些实施例中,显示器/音频驱动器310可以是用于控制和驱动到一个或多个显示器/音频输出设备312的输出的任何合适的电路。例如,显示器/音频驱动器310可以是用于驱动触摸屏、平板显示器、阴极射线管显示器、投影仪、一个或多个扬声器和/或任何其它合适的显示和/或呈现设备的电路。
47.通信接口314可以是用于与一个或多个通信网络(例如,计算机网络204)对接的任何合适的电路。例如,接口314可以包括网络接口卡电路、无线通信电路和/或任何其他合适类型的通信网络电路。
48.在一些实施例中,天线316可以是用于与通信网络(例如,通信网络204)无线通信的任何合适的一个或多个天线。在一些实施例中,可以省略天线316。
49.在一些实施例中,总线318可以是用于在两个或更多个组件302、304、306、310和314之间通信的任何合适的机制。
50.根据一些实施例,硬件200中可以包括任何其他合适的组件。
51.在一些实施例中,图1的过程的上述块中的至少一些可以以不限于结合附图示出和描述的顺序和序列的任何顺序或序列来执行或进行。而且,图1的上述块中的一些块可以在适当的情况下基本上同时或并行地执行或进行,以减少等待时间和处理时间。另外或替代地,可省略图1的过程的上述块中的一些块。
52.在一些实施例中,任何合适的计算机可读介质可用于存储用于执行本文的功能和/或过程的指令。例如,在一些实施例中,计算机可读介质可以是暂时性的或非暂时性的。例如,非暂时性计算机可读介质可以包括介质,诸如非暂时性形式的磁介质(诸如硬盘、软盘和/或任何其他合适的磁介质)、非暂时性形式的光学介质(诸如压缩盘、数字视频盘、蓝光盘和/或任何其他合适的光学介质)、非暂时性形式的半导体介质(诸如闪存、电可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)和/或任何其他合适的半导体介质)、在传输期间不短暂或缺乏任何永久性的外观的任何合适的介质和/或任何合适的有形介质。作为另一示例,暂时性计算机可读介质可以包括网络上的信号、电线中的信号、导体中的信号、光纤中的信号、电路中的信号、传输期间短暂且缺乏任何持久的外观的任何合适的介质中的信号、和/或任何合适的无形介质中的信号。
53.因此,提供了用于使用区块链来认证用户的方法、系统和介质。
54.尽管在上述说明性实施例中描述和说明了本发明,但是应当理解,本公开仅通过示例的方式进行,并且在不脱离本发明的精神和范围的情况下,可以对本发明的实现细节进行各种改变,本发明的精神和范围仅由所附权利要求限定。所公开的实施例的特征可以以各种方式组合和重新布置。
转载请注明原文地址:https://doc.8miu.com/read-1050172.html

最新回复(0)