CN114586315A - 去中心化的数据认证 - Google Patents

去中心化的数据认证 Download PDF

Info

Publication number
CN114586315A
CN114586315A CN202080061087.7A CN202080061087A CN114586315A CN 114586315 A CN114586315 A CN 114586315A CN 202080061087 A CN202080061087 A CN 202080061087A CN 114586315 A CN114586315 A CN 114586315A
Authority
CN
China
Prior art keywords
data item
identity
key
verified
request
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202080061087.7A
Other languages
English (en)
Inventor
A·L·费伦齐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
American Express Travel Related Services Co Inc
Original Assignee
American Express Travel Related Services Co Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by American Express Travel Related Services Co Inc filed Critical American Express Travel Related Services Co Inc
Publication of CN114586315A publication Critical patent/CN114586315A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • G06F21/645Protecting data integrity, e.g. using checksums, certificates or signatures using a third party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/126Applying verification of the received information the source of the received data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

公开了用于对数据的认证或验证进行去中心化的各种实施例。可以为数据项生成身份密钥。然后可以将请求发送到认证服务以进行数据项的认证,该请求包括身份密钥和数据项。然后,作为响应,可以接收到对于数据项的经验证的声明。随后,生成身份文档,该身份文档包括对于数据项的身份密钥和经验证的声明。最后,可以将身份文档存储在分布式账本中。

Description

去中心化的数据认证
相关申请的交叉引用
本申请要求于2019年8月29日提交的题为“去中心化的数据认证”的美国专利申请第16/555,638号的优先权和权益。
背景技术
许多安全威胁依赖于欺骗用户相信他们正在访问由可信源提供的数据。实际上,用户经常发现数据本身是恶意软件或包括恶意软件。其他时候,访问数据触发恶意软件在用户的计算装置上的安装。
例如,常见的安全威胁被称为网络钓鱼,由此恶意行为者(“网络钓鱼者”)创建在视觉上与有效网站无法区分的虚假网站。当个人访问虚假网站时,可以收获他们的数据或者可以将恶意软件加载到他们的浏览器上以尝试利用他们的计算机。为了引导目标访问虚假网站,网络钓鱼者可以创建具有与有效网站的网络地址类似或看起来与有效网站的网络地址相关的网络地址的链接。
作为类似的示例,另一常见的安全威胁是包含恶意软件的文件的分布。恶意软件文件可以被伪装成用户通常将打开、与之交互或消费的合法文件,诸如电子表格、演示、报告、音频文件、图像文件或视频文件。文件也可以被伪装或呈现为由可信实体创作或创建。因此,当实际上用户正在将恶意软件加载到他或她的计算机上时,用户可能会被诱骗打开他或她认为是源自可信源的无害文件的文件。
发明内容
本公开的各种实施例包括一种系统,所述系统包括:计算装置,包括处理器和存储器;以及存储在存储器中的机器可读指令,所述机器可读指令在由处理器执行时使计算装置至少:生成对于数据项的身份密钥;将对数据项进行认证的请求发送到安全服务,所述请求包括身份密钥和数据项;从安全服务接收对于数据项的经验证的声明;生成身份文档,所述身份文档包括对于数据项的身份密钥和经验证的声明;以及将身份文档存储在分布式账本中。在所述系统的一些实施方式中,机器可读指令在由计算装置执行时还使计算装置至少:接收对数据项的请求;以及发送对请求的响应,所述响应包括数据项和身份密钥。在所述系统的一些实施方式中,身份密钥是第二身份密钥;身份文档是第二身份文档;对数据项进行认证的请求是对于认证的第二请求;并且机器可读指令还使计算装置至少:将对机器可读指令的运营商的身份进行认证的请求发送到认证服务;从认证服务接收第一身份密钥和经验证的声明;创建第一身份文档,所述身份文档包括身份密钥和经验证的声明;以及将第一身份文档存储在分布式账本中;以及在将第一身份文档存储在分布式账本中之后,发送对数据项进行认证的第二请求。在所述系统的一些实施方式中,机器可读指令在由处理器执行时还使计算装置至少:生成与数据项唯一相关联的非对称密钥对;以及其中,身份文档还包括非对称密钥对的公钥。在所述系统的一些实施方式中,机器可读指令在由处理器执行时还使计算装置至少:接收验证请求,所述验证请求包括用公钥加密的加密令牌(token);使用非对称密钥对的私钥对加密令牌进行解密,以生成非加密(encrypted)令牌;使用私钥创建非加密令牌的密码签名;以及提供包括非加密令牌和密码签名的验证响应。在所述系统的一些实施方式中,数据项是网络地址。在所述系统的一些实施方式中,数据项是文件(file)。
本公开的各种实施例包括一种方法:接收对数据项的验证请求,所述验证请求包括身份密钥和所述数据项;确定所述数据项符合至少一个验证规则;生成对于所述数据项的经验证的声明,所述经验证的声明表明所述身份密钥与所述数据项相关联并且所述数据项符合所述至少一个验证规则;以及提供所述经验证的声明作为对所述数据项的认证请求的响应。在所述方法的一些实施方案中,所述身份密钥是第二身份密钥;所述至少一个验证规则表明所述数据项源自经认证的实体;所述认证请求还包括与所述经认证的实体相关联的第一身份密钥;确定所述数据项符合所述至少一个验证规则还包括:至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体;并且响应于验证所述认证请求源自所述经认证的实体而发生生成所述经验证的声明。在所述方法的一些实施方式中,至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体还包括:检索与所述第一身份密钥相关联的身份文档,所述身份文档包含相应非对称密钥对的公共加密密钥;用所述公共加密密钥对令牌进行加密以创建加密令牌;将所述加密令牌发送到发送所述认证请求的发起(originating)实体;接收所述令牌和用所述相应非对称密钥对的私钥创建的数字签名;以及利用所述公共加密密钥验证所述数字签名。在所述方法的一些实施方式中,所述至少一个验证规则表明所述数据项符合指定的安全策略;并且确定所述数据项符合所述至少一个验证规则还包括执行所述数据项的安全分析。在所述方法的一些实施方式中,所述方法还包括:创建包括所述身份密钥和所述经验证的声明的身份文档;以及向分布式账本注册所述身份文档。在所述方法的一些实施方式中,数据项是网络地址。在所述方法的一些实施方式中,数据项是文件。
公开了一种包括机器可读指令的非暂时性计算机可读介质的各种实施例,所述机器可读指令在由计算装置的处理器执行时使计算装置至少:向应用程序(application)发送对数据项的请求;从应用程序接收数据项和身份密钥,身份密钥与数据项链接;从分布式账本检索由身份密钥标识的身份文档,所述身份文档包含与数据项相关的至少一个经验证的声明;至少部分地基于身份文档来验证数据项;以及至少部分地基于数据项的验证的结果来呈现用户界面。在所述非暂时性计算机可读介质的一些实施方式中,机器可读指令在由处理器执行时还使计算装置至少:使用包括在身份文档中的公钥对令牌进行加密以创建加密令牌;将加密令牌发送到应用程序;从应用程序接收令牌和与令牌相关联的密码签名;以及验证密码签名。在所述非暂时性计算机可读介质的一些实施方式中,使计算装置至少部分地基于身份文档来验证数据项的机器可读指令还使计算装置至少评估经验证的声明中的至少一个声明,所述至少一个声明包括关于所述数据项符合至少一个验证规则的断言。在所述非暂时性计算机可读介质的一些实施方式中,使计算装置至少评估至少一个声明的机器可读指令还使计算装置确定声明是由可信实体做出的。在所述非暂时性计算机可读介质的一些实施方式中,数据项是网络地址。在所述非暂时性计算机可读介质的一些实施方式中,数据项是文件。
附图说明
参考以下附图可以更好地理解本公开的许多方面。附图中的部件不一定按比例绘制,而是将重点放在清楚地示出本公开的原理上。此外,在附图中,相同的附图标记在若干个视图中表示对应的部分。
图1是根据本公开的各种示例性实施例的网络环境的图。
图2是示出了根据本公开的各种实施例的在图1的网络环境中实现的功能的一个示例的序列图。
图3是示出了根据本公开的各种实施例的在图1的网络环境中实现的功能的一个示例的序列图。
图4是示出了根据本公开的各种实施例的在图1的网络环境中实现的功能的一个示例的序列图。
图5是示出了根据本公开的各种实施例的在图1的网络环境中实现的功能的一个示例的序列图。
图6是示出了根据本公开的各种实施例的在图1的网络环境中实现的功能的一个示例的序列图。
图7是根据本公开的各种实施例的由图1的网络环境中的客户端呈现的示例用户界面的示意图。
图8是根据本公开的各种实施例的由图1的网络环境中的客户端呈现的示例用户界面的直观图。
具体实施方式
公开了用于认证数据或内容或者验证内容作者、发起者或分发者的身份的各种方法。用于验证数据或内容的文档可以以去中心化的方式被存储。去中心化可以防止认证或验证过程中的单点故障。例如,如果证书授权机构遭受安全漏洞或变得不可访问,则依赖于证书授权机构来验证与内容或数据相关联的证书的认证方法将失败,直到证书授权机构是安全的或再次变得可访问。相反,用于认证数据或内容或者验证内容作者、发起者或分发者的身份的去中心化方法更具弹性,并且在各种情况下不太可能变得不可用。此外,去中心化方法防止单个实体(诸如证书授权机构的运营商)独占或控制认证数据或内容或者验证内容作者、发起者或分发者的身份的过程。在以下讨论中,提供了系统及其部件的一般描述,然后讨论了系统及其部件的操作。
如图1所示,示出了根据各种实施例的网络环境100。网络环境100包括计算环境103、客户端装置106、身份中心109和分布式账本113,它们经由网络116彼此进行数据通信。网络116包括广域网(WAN)和局域网(LAN)。这些网络可以包括有线或无线部件或其组合。有线网络可以包括以太网网络、电缆网络、光纤网络和电话网络,诸如拨号、数字用户线路(DSL)和综合业务数字网络(ISDN)网络。无线网络可以包括蜂窝网络、卫星网络、电气和电子工程师协会(IEEE)802.11无线网络(即,
Figure BDA0003524072890000051
)、
Figure BDA0003524072890000052
网络、微波传输网络以及依赖于无线电广播的其他网络。网络116还可以包括两个或更多个网络116的组合。网络116的示例可以包括互联网、内联网、外联网、虚拟专用网络(VPN)和类似的网络。
计算环境103可以包括服务器计算机或提供计算能力的任何其他系统。替代地,计算环境103可以采用可以被布置在一个或多个服务器库(bank)或计算机库或其他布置中的多个计算装置。这样的计算装置可以位于单个设施中,或者可以分布在许多不同的地理位置之间。例如,计算环境103可以包括多个计算装置,所述多个计算装置一起可以包括托管计算资源、网格计算资源或任何其他分布式计算布置。在一些情况下,计算环境103可以对应于弹性计算资源,其中,处理、网络、存储或其他计算相关资源的指定容量可以随时间变化。
根据各种实施例,可以在计算环境103中执行各种应用程序或其他功能。在计算环境103上执行的部件包括托管应用程序119、安全服务121以及本文未详细讨论的其他应用程序、服务、进程、系统、引擎或功能。虽然托管应用程序119和安全服务121被描绘为在相同的计算环境中操作,但是应当理解,托管应用程序119和安全服务121可以在单独的计算环境中操作或执行。类似地,取决于特定的实现方式,托管应用程序119和安全服务121可以由相同的实体或不同的实体来操作和控制。
托管应用程序119可以被执行以向用户提供对存储在托管数据存储123中的数据的访问,或者代表用户执行一个或多个功能或者发起一个或多个交易。托管应用程序119的示例包括web服务器、邮件服务器、文件服务器,其可以用于提供基于web的应用程序,诸如电子银行应用程序、电子商务或购物应用程序、社交媒体应用程序、基于互联网或web的电子邮件(网页邮件)应用程序、文件共享应用程序或服务、基于互联网或web的生产力应用程序(例如,文字处理器、电子表格、演示应用程序等)、媒体流应用程序等。然而,出于本公开的各种实施例的目的,由计算环境103托管的为客户端装置106提供内容、对内容的访问、或者可以访问数据或内容的可解析网络地址的任何应用程序都可以被认为是托管应用程序119。
认证提供者120(authentication provider)可以被执行以认证或验证用户或实体的身份。这可以包括认证或以其他方式验证特定服务、应用程序或装置是由用户或实体操作或控制的。例如,认证提供者120可以被执行以确定在特定网络地址(例如,http://www.examplebank.com)处可用的网站实际上是由公司“ExampleBank”运营的。
安全服务121可以被执行以评估资源的安全性或真实性。这可以包括例如验证或认证文件、网络地址或其他数据的真实性,以及验证或认证文件、网络地址或其他数据的创建者或提供者的真实性。例如,安全服务121可以被执行以评估文件是否由特定的人或组织创建或分发的。作为另一示例,安全服务121可以被执行以评估链接或网络地址是否实际上用于在特定实体的控制下的资源。例如,安全服务121可以确定银行网站的链接是否实际上是到银行的真实网站的链接,或者取代地是到冒充者网站的链接。安全扫描器121也可以被执行以评估文件是否包括恶意软件或者在网络地址处可用的网站是否具有安全漏洞。这些评估可以响应于接收到文件或网络地址或者响应于由另一应用程序接收的请求而自动执行。
此外,各种数据可以存储在计算环境103可访问的托管数据存储123中。托管数据存储123可以代表多个托管数据存储123,所述多个托管数据存储可以包括关系数据库、面向对象的数据库、分层数据库、哈希表或类似的键值数据存储、以及其他数据存储应用程序或数据结构。存储在托管数据存储123中的数据与下面描述的各种应用或功能实体的操作相关联。该数据可以包括一个或多个认证记录126和一个或多个验证规则129。
认证记录126可以表示身份密钥131与数据项133之间的关系。例如,该关系可以被存储,以便使用身份密钥131来验证至少部分地基于一个或多个验证规则129做出的关于数据项133的断言。
身份密钥131可以表示指定可以找到身份文档136的位置的唯一地址,诸如指定身份文档136的网络位置的网络地址。身份密钥131可以包括可以找到身份文档136的存储位置、身份文档136的唯一标识符以及潜在的其他信息。由于身份密钥131可以相对于其他身份文档136唯一地标识身份文档136,因此身份密钥131还可以用作个人、实体、组织或数据项133的唯一标识符。身份密钥131的说明性示例是由万维网联盟(W3C)定义的去中心化标识符(DID)。然而,在本公开的各种实施例中,数据格式可以用作身份密钥131。
在DID的示例中,身份密钥131可以包括:唯一统一资源标识符(URI)或唯一统一资源定位符(URL),其指定身份密钥131的类型;特定分布式账本113,身份文档136可以位于该特定分布式账本中;以及身份文档136的标识符。例如,如果使用以太坊(ETHEREUM)协议的实现来存储身份文档136,则格式化为DID的身份密钥131具有“did:ethereum:123456abcdefg”的示例URL或URI架构。然后,该示例身份密钥131可以用作用于从分布式账本113检索身份文档136的密钥。
数据项133可以包括数据的任何数字表示。例如,数据项133可以是文件或数据流。作为另一示例,数据项133可以是文件、应用程序或网页所在的地址(例如,URL、URI或者类似的链接或网络地址)。
验证规则129可以表示用作关于特定数据项133或数据项133的类别的断言的基础的合规性规则或策略。例如,验证规则129可以指定用于做出数据项133是安全的断言的要求。这包括网站通过由安全服务121执行的安全扫描或者文件被安全服务121确认为不包括恶意软件的要求。作为另一示例,验证规则129可以指定用于做出关于数据项133的所有者或创建者的断言的要求,诸如用于确定特定网站所有者是特定链接的发起者的要求。
客户端装置106表示可以耦接到网络116的多个客户端装置。客户端装置106可以包括基于处理器的系统,诸如计算机系统。这样的计算机系统可以以个人计算机(例如,台式计算机、膝上型计算机或类似装置)、移动计算装置(例如,个人数字助理、蜂窝电话、智能电话、上网本、平板计算机系统、音乐播放器、便携式游戏控制台、电子书阅读器和类似装置)、媒体回放装置(例如,媒体流装置、
Figure BDA0003524072890000081
播放器、数字视频光盘(DVD)播放器、机顶盒和类似装置)、视频游戏控制台或具有类似能力的其他装置的形式来体现。客户端装置106可以包括一个或多个显示器139,诸如液晶显示器(LCD)、基于气体等离子体的平板显示器、有机发光二极管(OLED)显示器、电泳墨水(“E-ink”)显示器、投影仪或其他类型的显示装置。在一些情况下,显示器139可以是客户端装置106的部件,或者可以通过有线或无线连接连而接到客户端装置106。
客户端装置106可以被配置为执行各种应用程序,诸如客户端应用程序143或其他应用程序。客户端应用程序143可以由客户端装置106执行以访问由计算环境103或其他服务器提供的网络内容,从而在显示器139上呈现用户界面146。为此,客户端应用程序143可以包括浏览器或专用应用程序(例如,电子邮件应用程序、社交网络应用程序、消息传送应用程序、银行应用程序、购物应用程序等),并且用户界面146可以包括网络页面、应用屏幕、用于获得用户输入的其他用户机制。
身份中心109可以表示由一个或多个计算装置托管并且用于安全地存储个人用户的身份文档并响应于授权的请求提供身份文档的服务或服务集合。例如,身份中心109可以包括凭证管理器149和保险库(vault)153。尽管为了清楚起见,身份中心109被描绘为与计算环境103分离,但是应当理解,身份中心109(包括保险库管理器149和保险库153)的功能可以在计算环境103内实现。此外,在一些实施方式中,取决于特定实施方式,包括保险库管理器149和保险库153的身份中心109可以由相同的实体或不同的实体操作。
保险库管理器149可以被执行以控制对保险库153的访问。例如,保险库管理器149可以用于添加、移除或修改存储在保险库153中的各种数据。作为另一示例,保险库管理器149可以用于认证各个用户并将对保险库153的访问限制为授权用户或实体。
保险库153表示凭证管理器149可访问的安全数据存储。存储在保险库153中的数据可以以仅可由各个用户或实体访问的加密形式存储。个体用户或实体可以在保险库153中存储各种类型的数据,包括一个或多个密钥记录156。密钥记录156可以用于跟踪特定身份密钥131与相应密钥对159之间的关联或关系。
密钥对159可以表示包括公钥163和私钥166的非对称密码密钥对。密钥对159中的密码密钥可以由实体或用户使用,以确认或以其他方式认证其和与身份密钥131相关联的数据的关系或对与身份密钥131相关联的数据的控制,如稍后所描述。可以使用各种方法来生成密钥对159,诸如椭圆曲线密码术(ECC)方法或使用Rivest-Shamir-Adleman(RSA)算法。
分布式账本113表示跨不同地理或网络位置中的多个节点分布的同步的、最终一致的数据存储。分布式账本113中的每个节点可以包含分布式账本113的复制副本,包括存储在分布式账本113中的所有数据。可以使用连接形成分布式账本113的各个节点的对等网络来共享或复制涉及分布式账本113的交易的记录。一旦交易或记录被记录在分布式账本113中,它就可以通过对等网络进行复制,直到该记录最终被所有节点记录为止。可以使用各种共识方法来确保数据被可靠地写入分布式账本113。分布式账本的示例可以包括区块链、分布式哈希表(DHT)和类似的数据结构。
各种数据也可以存储在分布式账本113中。这可以包括一个或多个身份文档136。然而,如果在该特定实施方式中数据的公共可用性是可接受的,则本公开中讨论的任何其他数据也可以存储在分布式账本113中。
身份文档136是提供用于标识和认证用户的信息的文件。身份文档136可以包括身份密钥131,该身份密钥131可以用于唯一地标识身份文档136,并且因此唯一地标识与身份文档136相关联的个人或实体。身份文档136还可以包括来自与身份密钥131相关联的非对称密钥对159的公钥163,第三方可以使用该公钥来验证身份文档136的真实性。身份文档136还可以包括一个或多个经验证的声明169。身份文档163的说明性示例是由W3C定义的去中心化的标识符文档(DID文档)。然而,在本公开的各种实施例中,数据格式可以用作身份文档163。
经验证的声明173表示关于由身份文档136描述的特定实体或数据项133的一个或多个经验证的断言。例如,断言可以是数据项133符合一个或多个验证规则129(例如,文件不包括恶意软件或者到网站的链接是来自网站的运营商的有效链接)。作为另一示例,断言可以是特定实体是他们所声称的人,或者内容的发起者或通信的作者是他们所声称的人。因此,经验证的声明169可以包括一个或多个声明173和用于每个声明173的相应签名176。
声明173表示关于实体、个人或数据项133的断言。例如,声明173可以陈述,根据在一个或多个验证规则129中阐述的标准,位于特定网络地址处的网站被认为是安全的。例如,声明173可以指定网站不包括任何已知的安全漏洞或者不包含任何已知的恶意软件。作为另一示例,声明173可以指定将用户引导到网络服务(诸如网站或web应用程序)的网络地址是由网站或web应用程序的运营商提供的真实或有效的网络地址。类似地,声明173可以指定文件不包含恶意软件或者文件的创建者是他们所声称的人。
签名176可以包括用于验证声明173的真实性和可靠性的任何密码签名。例如,签名176可以识别做出断言的一方,并且还包括由该方实体拥有的加密私钥166生成的数字签名和识别可以用于验证签名176的对应的公共加密密钥163的数字指纹二者。签名176还可以用于确定声明173是否已经在没有做出声明173的实体的同意的情况下被修改。例如,对声明173的未经授权的改变将导致签名176与声明173之间的不匹配。
接下来,提供网络环境100的各种部件的操作的一般描述。在图2-图7的讨论中提供了各个部件的操作的更详细描述。此外,虽然以下描述提供了图1的网络环境100中描绘的各种部件之间的交互的一个示例,但是它们可以被配置为以其他方式操作,如稍后所讨论的。
首先,认证提供者120可以首先验证托管应用程序119的身份,这可以包括验证托管应用程序119的运营商的身份。因此,托管应用程序119可以生成将被用于认证托管应用程序119的身份的密钥对159,或者使用先前为此目的创建的预先存在的密钥对159。托管应用程序119还可以生成新的身份密钥131,其可以用于认证或验证托管应用程序119的身份。
接下来,托管应用程序119可以向认证提供者120发送身份密钥131以及用于托管应用程序119的认证信息以验证或认证其身份。这些认证凭证可以包括用户名和密码、密码证书、来自预先存在的密钥对159的公钥163、先前发布的认证令牌或小型文本文件(cookie)、生物识别凭证等。
认证提供者120然后可以使用认证凭证来认证托管应用程序119的身份。这可以包括验证用户名和密码,使用证书或公钥163发出密码质询(challenge),以及验证密码响应,验证先前发出的认证令牌或小型文本文件等。一旦验证了托管应用程序119的身份,认证提供者120就可以创建经验证的声明169,该经验证的声明169包含断言托管应用程序119的运营商的身份的声明173和针对声明173的签名176。然后,经验证的声明169可以被返回到托管应用程序119,该托管应用程序119可以在分布式账本中创建并存储身份文档136,该身份文档136包含由托管应用程序119用于证明其身份的经验证的声明169、身份密钥131和公钥163。
随后,托管应用程序119可以请求安全服务121确认数据项133,诸如文件或网络地址(例如,指定网站或web应用程序的URL)。验证可以是证明托管应用程序119是数据项133的发起者(例如,文件的创建者或分发者或者由网络地址标识的网站或web应用程序的主机),或者数据项133是安全的(例如,文件不包含已知的恶意软件,或者位于网络地址处的网站或web应用程序不包含任何已知的漏洞)。该请求可以包括特定于数据项133的新生成的密钥对159和对于数据项133唯一的新创建的身份密钥131,以及用于验证托管应用程序119本身的身份的身份密钥131。
在从托管应用程序119接收到请求时,安全服务121可以首先验证托管应用程序119的身份。例如,安全服务121可以从分布式账本113中检索身份文档136,该身份文档136包含关于托管应用程序119的身份的经验证的声明169和用于验证托管应用程序119的身份的公钥163。然后,安全服务121可以使用公钥163来发起质询-响应交换以验证托管应用程序119的身份。在一些情况下,在使用多个分布式账本113的那些实施方式中,安全服务121可以使用中继服务或解析服务来确定哪个分布式账本113包含身份文档136。这样的中继服务或解析服务的示例是由W3C定义的DID解析器。
一旦验证了托管应用程序119的身份,安全服务121就可以确认数据项133。例如,如果数据项133是用于网站或web应用程序的网络地址(例如,URL),则安全服务121可能首先执行自动威胁评估。威胁评估可以检查常见的网站错误配置或者已知的服务器或应用程序漏洞。作为另一示例,安全服务121可以验证网络地址是由网站或web应用程序的运营商控制的真实网络地址(例如,而不是指向网络钓鱼站点的网络地址)。如果数据项133是文件,则安全服务121可能执行恶意软件扫描,以确定文件是否包含恶意软件。作为另一示例,安全服务121可以验证托管应用程序119的运营商是文件的创建者或发起者。这可以通过验证由托管应用程序119创建的文件的密码签名来完成。
在验证数据项133之后,安全服务121可以创建与数据项133相关的一个或多个经验证的声明169。例如,安全服务121可以创建经验证的声明169,该经验证的声明包含网络地址由托管应用程序119的运营商控制的第一声明173和网络地址处可用的网站或web应用程序不包含已知的安全漏洞的第二声明173。安全服务121还可以创建用于第一声明173的第一签名176和用于第二声明173的第二签名176,并且将这些签名包括在经验证的声明169中。然而,安全服务121可以创建多个经验证的声明169,每个经验证的声明169表示单个声明173。然后,安全服务121可以返回用于数据项133的经验证的声明169,并且在一些实施方式中,返回与数据项133相关联的身份密钥131。
一旦托管应用程序119接收到经验证的声明169,它就可以创建身份文档136,该身份文档包括与数据项133相关联的身份密钥131、由安全服务121提供的经验证的声明169、以及与身份密钥131相关联的公钥163。托管应用程序119然后可以将身份文档136存储在分布式账本113中。
当客户端应用程序143请求数据项133时,它可以使用存储在分布式账本113中的身份文档136来确认或以其他方式验证数据项133的安全性或真实性。例如,如果浏览器使用URL请求网页,则托管应用程序119可以向浏览器提供与网络地址相关的身份密钥131。然后,浏览器可以检索针对URL的身份文档136,识别身份文档136中的经验证的声明169(其包括URL是由托管应用程序119提供的网页的有效网络地址的声明173),并且使用公钥163和签名176来验证声明173。类似地,浏览器可以识别身份文档136中的指示网页已经通过由安全服务121执行的最近安全扫描的第二声明173,并且使用公钥163和签名176来验证声明173。如果数据项133是文件,则客户端应用程序143可以使用类似的过程来验证文件的作者身份和安全性。
接下来参考图2,示出了提供网络环境100的部件的操作的一个示例的序列图。应当理解,图2的序列图仅提供了可以被采用以实现网络环境100的所描绘的部分的操作的许多不同类型的功能布置的示例。作为替代,图2的序列图可以被视为描绘了在网络环境100内实现的方法的元素的示例。
从步骤203开始,托管应用程序119可以生成要被用于认证托管应用程序119或托管应用程序119的运营商的身份的密钥对159和身份密钥131两者。在生成密钥对159和身份密钥131之后,托管应用程序119可以将密钥对159存储在保险库153中。因此,托管应用程序119可以向保险库管理器149发送请求,该请求可以包括对于托管应用程序119的认证凭证以及身份密钥131和密钥对159。在验证认证凭证之后,保险库管理器149可以在保险库153中创建将身份密钥131与密钥对159相关联的密钥记录。如果托管应用程序119需要与身份密钥131相关联的私钥166,则它可以从保险库管理器149请求私钥166的副本或访问私钥166。
然后,在步骤206处,托管应用程序119可以将密钥对159和身份密钥131发送到认证提供者120以进行验证。在一些实施方式中,托管应用程序119还可以将(一个或多个)认证凭证发送到认证提供者120,以证明托管应用程序119本身或托管应用程序119的运营商的身份。
接下来在步骤209处,认证提供者120验证由托管应用程序119提供的(一个或多个)认证凭证。例如,认证提供者120可以验证:由托管应用程序119提供的(一个或多个)认证凭证,诸如用户名和密码;预共享的秘密、令牌或小型文本文件;或者由托管应用程序119提供的其他认证凭证与已经与认证提供者120存档的(一个或多个)认证凭证匹配。
随后,在步骤213处,如果在步骤209处确定认证凭证有效,则认证提供者120可以创建经验证的声明169并将其返回到托管应用程序119。经验证的声明169可以包括:声明173,该声明断言认证提供者120已经验证了托管应用程序119或托管应用程序119的运营商的身份,包括由托管应用程序119提供的身份密钥131由托管应用程序119或托管应用程序119的运营商来控制。经验证的声明169还可以包括:针对包括在经验证的声明169中的每个声明173的相应签名176。签名176可以由认证提供者120使用由认证提供者120控制的私钥166来生成。结果,第三方可以通过使用针对由认证提供者120控制的私钥166的相应公钥163,将签名176与声明173进行比较来验证声明173。如果使用认证提供者120的公钥163不能验证签名176,则这可以表明声明173已经在没有授权的情况下被更改或者声明173从未由认证提供者120做出。然后将经验证的声明169返回到托管应用程序119。
接下来在步骤216处,托管应用程序119可以创建身份文档136,其可以允许其他应用程序或第三方验证托管应用程序119或托管应用程序119的运营商的身份。例如,托管应用程序119可以创建身份文档136,该身份文档包括在步骤203处创建的身份密钥131和密钥对159,以及在步骤213处创建的经验证的声明169。在创建身份文档136之后,托管应用程序119可以使身份文档136存储在分布式账本113中。
接下来参考图3,示出了提供网络环境100的部件的操作的另一示例的序列图。应当理解,图3的序列图仅提供了可以被采用以实现网络环境100的所描绘的部分的操作的许多不同类型的功能布置的示例。作为替代,图3的序列图可以被视为描绘了在网络环境100内实现的方法的元素的示例。
从步骤303开始,托管应用程序119为相应的数据项133(例如,文件、网络地址或其他类型的数据)创建密钥对159和身份密钥131。身份密钥131与数据项133之间的关系也可以作为认证记录126被记录在托管数据存储123中,该认证记录126可以包含身份密钥131和用于数据项133的副本或标识符。
接下来在步骤306处,托管应用程序119可以将验证请求发送到安全服务121。验证请求可以包括与数据项133相关联的身份密钥131、数据项133本身、以及标识托管应用程序119的身份密钥131。在一些情况下,托管应用程序119还可以提供当评估数据项133时要考虑的一个或多个验证规则129的指示。
前进到步骤309,安全服务121响应于接收到验证请求而检索与标识托管应用程序119的身份密钥131相关联的身份文档136。例如,安全服务121可以使用身份密钥131来搜索存储在分布式账本113中的相应身份文档136并检索它。在使用多个分布式账本113的情况下,安全服务121可以将身份密钥131发送到中继或解析器服务(诸如DID解析器),以确定哪个分布式账本113包含身份文档136。在这些实例中,中继或解析器服务可以代表安全服务121检索身份文档136并将其返回到安全服务121。
继续到步骤311,安全服务121可以将认证质询发送到托管应用程序119,以确认托管应用程序119在步骤306处做出了请求。因此,安全服务121可以使用在步骤309处检索的身份文档136中的公钥163对令牌或随机数进行加密以用作认证质询。然后可以将认证质询发送到托管应用程序119。
接下来参考步骤313,托管应用程序119可以将认证质询转发到保险库管理器149。认证质询可以作为请求的一部分被转发,以使保险库管理器149使用与认证托管应用程序119的身份密钥131相关联的私钥166来对认证质询进行解密和签名。托管应用程序119还可以包括认证凭证,以向保险库管理器149确认应该代表托管应用程序119执行操作。
作为响应,在步骤316处,保险库管理器149可以对认证质询进行解密和签名,并将解密的认证质询和针对认证质询的签名提供给托管应用程序119。例如,保险库管理器149可以首先检索与标识托管应用程序119的身份密钥131相关联的密钥对159的私钥166。然后,保险库管理器149可以对加密的质询进行解密,以重新创建由安全服务121提供的原始令牌或随机数。然后,保险库管理器149可以用私钥166对令牌或随机数进行签名,以证明托管应用程序119的私钥166的所有者对质询进行了解密,而不是通过其他方式获得非加密的令牌或随机数。然后,保险库管理器149可以将非加密的令牌或随机数以及相应的签名提供给托管应用程序119。
接下来在步骤319处,托管应用程序119可以将认证响应发送到安全服务121以证明其身份。这可以包括来自认证质询的非加密的令牌或随机数以及用于非加密的令牌或随机数的签名。
然后,在步骤323处,安全服务121可以验证或确认数据项133。例如,安全服务121可以评估数据项133以确定数据项133是否符合在步骤306中由托管应用程序119指定的一个或多个验证规则129。作为另一示例,安全服务121可以识别应用于数据项133的验证规则129并评估数据项133的合规性。例如,如果数据项133是针对网站的网络地址,则安全服务121可以识别适用于网络地址或网站的所有验证规则129,并评估数据项133的合规性。类似地,如果数据项133是文件,则安全服务121可以识别适用于文件的所有验证规则129并评估数据项的合规性。
一旦安全服务121评估了数据项133,安全服务就可以创建关于数据项133的经验证的声明169。这可以包括关于数据项133所符合的每个验证规则129的声明173。这还可以包括关于数据项133不符合的每个验证规则129的声明173。例如,如果安全服务121确定网络地址是用于托管应用程序119的有效网络地址,而不是用于冒充者应用程序的网络地址,则安全服务121可以做出网络地址符合阐述网络地址应该是用于到达托管应用程序119的有效网络地址的验证规则129的声明173。然而,如果由安全服务121执行的自动安全扫描指示托管应用程序119中存在漏洞,则安全服务121可以做出托管应用程序119不安全并且未能符合托管应用程序119应该没有漏洞或特定漏洞的验证规则129的第二声明。也可以关于文件做出类似的声明173,诸如文件的创建者或分发者的身份或者文件是否包含恶意软件。安全服务121还可以为经验证的声明169中的每个声明173创建相应的签名176。然后可以将(一个或多个)经验证的声明169返回到托管应用程序119。
最后,在步骤326处,托管应用程序119可以创建并记录对于数据项133的身份文档136,该身份文档包括由安全服务121提供的(一个或多个)经验证的声明169。这可以允许其他应用或第三方验证数据项133的真实性或安全性,诸如到网络地址的链接是真的还是假的,托管应用程序119、网站或文件是否包含恶意软件或以其他方式不安全,或者声称是文件的创建者、发起者或分发者的实体是否实际上是文件的创建者、发起者或分发者。因此,托管应用程序119可以创建身份文档136,该身份文档包括在步骤303处创建的身份密钥131和密钥对159,以及在步骤323处创建的(一个或多个)经验证的声明169。在创建身份文档136之后,托管应用程序119可以使身份文档136存储在分布式账本113中。
接下来参考图4,示出了提供网络环境100的部件的操作的另一示例的序列图。应当理解,图4的序列图仅提供了可以被采用以实现网络环境100的所描绘的部分的操作的许多不同类型的功能布置的示例。作为替代,图4的序列图可以被视为描绘了在网络环境100内实现的方法的元素的示例。
应当注意,图4的序列图在范围上类似于图3的序列图。然而,图3的序列图描绘了保险库管理器149的使用,而图4的序列图描绘了省略保险库管理器149的使用的替代实现。
从步骤403开始,托管应用程序119为相应的数据项133(例如,文件、网络地址或其他类型的数据)创建密钥对159和身份密钥131。身份密钥131与数据项133之间的关系也可以作为认证记录126被记录在托管数据存储123中,认证记录126可以包含身份密钥131和用于数据项133的副本或标识符。
接下来在步骤406处,托管应用程序119可以将验证请求发送到安全服务121。验证请求可以包括与数据项133相关联的身份密钥131、数据项133本身、以及标识托管应用程序119的身份密钥131。在一些情况下,托管应用程序119还可以提供当评估数据项133时要考虑的一个或多个验证规则129的指示。
前进到步骤409,安全服务121响应于接收到验证请求而检索与标识托管应用程序119的身份密钥131相关联的身份文档136。例如,安全服务121可以使用身份密钥131来搜索存储在分布式账本113中的相应身份文档136并检索它。在使用多个分布式账本113的情况下,安全服务121可以将身份密钥131发送到中继或解析器服务(诸如DID解析器),以确定哪个分布式账本113包含身份文档136。在这些实例中,中继或解析器服务可以代表安全服务121检索身份文档136并将其返回到安全服务121。
继续到步骤411,安全服务121可以将认证质询发送到托管应用程序119,以确认托管应用程序119在步骤406处做出了请求。因此,安全服务121可以使用在步骤409处检索的身份文档136中的公钥163来对令牌或随机数进行加密以用作认证质询。然后可以将认证质询发送到托管应用程序119。
在步骤416处,托管应用程序119可以对认证质询进行解密和签名,并将解密的认证质询和对于认证质询的签名提供给托管应用程序119。例如,托管应用程序119可以使用密钥对159的相应私钥166对加密的质询进行解密,以重新创建由安全服务121提供的原始令牌或随机数。然后,托管应用程序119可以用私钥166对令牌或随机数进行签名,以证明托管应用程序119对质询进行了解密,而不是通过其他方式获得非加密的令牌或随机数。
然后,在步骤419处,托管应用程序119可以将认证响应发送到安全服务121以证明其身份。这可以包括来自认证质询的非加密的令牌或随机数以及对于非加密的令牌或随机数的签名。
在步骤423中,安全服务121可以验证或确认数据项133。例如,安全服务121可以评估数据项133以确定数据项133是否符合在步骤406中由托管应用程序119指定的一个或多个验证规则129。作为另一示例,安全服务121可以识别应用于数据项133的验证规则129并评估数据项133的合规性。例如,如果数据项133是对于网站的网络地址,则安全服务121可以识别适用于网络地址或网站的所有验证规则129,并评估数据项133的合规性。类似地,如果数据项133是文件,则安全服务121可以识别适用于文件的所有验证规则129并评估数据项的合规性。
一旦安全服务121评估了数据项133,安全服务就可以创建关于数据项133的经验证的声明169。这可以包括关于数据项133所符合的每个验证规则129的声明173。这还可以包括关于数据项133不符合的每个验证规则129的声明173。例如,如果安全服务121确定网络地址是用于托管应用程序119的有效网络地址,而不是用于冒充者应用程序的网络地址,则安全服务121可以做出网络地址符合阐述网络地址应该是用于到达托管应用程序119的有效网络地址的验证规则129的声明173。然而,如果由安全服务121执行的自动安全扫描指示托管应用程序119中存在漏洞,则安全服务121可以做出托管应用程序119不安全并且未能符合托管应用程序119应该没有漏洞或特定漏洞的验证规则129的第二声明。也可以关于文件做出类似的声明173,诸如文件的创建者或分发者的身份或者文件是否包含恶意软件。安全服务121还可以为经验证的声明169中的每个声明173创建相应的签名176。然后可以将(一个或多个)经验证的声明169返回到托管应用程序119。
最后,在步骤426处,托管应用程序119可以创建并记录对于数据项133的身份文档136,该身份文档包括由安全服务121提供的(一个或多个)经验证的声明169。这可以允许其他应用程序或第三方验证数据项133的真实性或安全性,诸如到网络地址的链接是真的还是假的,托管应用程序119、网站或文件是否包含恶意软件或以其他方式不安全,或者声称是文件的创建者、发起者或分发者的实体是否实际上是文件的创建者、发起者或分发者。因此,托管应用程序119可以创建身份文档136,该身份文档包括在步骤403处创建的身份密钥131和密钥对159,以及在步骤423处创建的(一个或多个)经验证的声明169。在创建身份文档136之后,托管应用程序119可以使身份文档136存储在分布式账本113中。
接下来参考图5,示出了提供网络环境100的部件的操作的另一示例的序列图。应当理解,图5的序列图仅提供了可以被采用以实现网络环境100的所描绘的部分的操作的许多不同类型的功能布置的示例。作为替代,图5的序列图可以被视为描绘了在网络环境100内实现的方法的元素的示例。
从步骤503开始,客户端应用程序143将对数据项133的请求发送到托管应用程序119。这可以包括例如对文件的请求、对网页的请求等。
在步骤506处,托管应用程序119响应于请求而提供数据项136以及在相应认证记录126中识别的相应身份密钥131。可以使用各种定制协议或现有协议的扩展来提供身份密钥131。例如,附加的超文本传输协议(HTTP)标头可以被包括在响应中以指示与数据项133相关联的身份密钥。
随后在步骤509处,客户端应用程序143识别响应中的身份密钥131并检索相应的身份文档136。例如,客户端应用程序143可以使用身份密钥131来搜索存储在分布式账本113中的相应身份文档136并检索它。在使用多个分布式账本113的情况下,客户端应用程序143可以将身份密钥131发送到中继或解析器服务(诸如DID解析器),以确定哪个分布式账本113包含身份文档136。在这些情况下,中继或解析器服务可以代表客户端应用程序143检索身份文档136并将其返回到安全服务121。
然后在步骤513处,客户端应用程序143可以创建密码质询并将其发送到托管应用程序119。因此,客户端应用程序143可以使用在步骤509处检索的身份文档136中的公钥163对令牌或随机数进行加密以用作密码质询,然后可以将其发送到托管应用程序119。
在步骤516处,托管应用程序119可以将密码质询转发到保险库管理器149。密码质询可以作为请求的一部分被转发,以供保险库管理器149使用与通过认证记录126链接到数据项133的身份密钥131相关联的私钥166对密码质询进行解密和签名。
作为响应,在步骤519处,保险库管理器149可以对密码质询进行解密和签名,并将解密的密码质询和对于密码质询的签名提供给托管应用程序119。例如,保险库管理器149可以首先检索与链接到数据项133的身份密钥131相关联的密钥对159的私钥166。然后,保险库管理器149可以对密码质询进行解密,以重新创建由客户端应用程序143提供的原始令牌或随机数。然后,保险库管理器149可以用私钥166对令牌或随机数进行签名,以证明用于托管应用程序119的私钥166的所有者对质询进行了解密,而不是通过其他方法获得非加密的令牌或随机数。然后,保险库管理器149可以将非加密的令牌或随机数以及相应的签名提供给托管应用程序119。
接下来在步骤523处,托管应用程序119然后可以将非加密的随机数或令牌以及对于随机数或令牌的签名发送到客户端应用程序143。这可以表明由客户端应用程序143检索的身份文档136与数据项133相关联,并且包含关于数据项133的有效的经验证的声明169。
然后,在步骤526处,客户端应用程序143可以评估包含在步骤509处检索到的身份文档136中的经验证的声明169。例如,客户端应用程序143可以评估每个声明173以确定关于数据项133所断言的内容(例如,它是安全的、它是否包含恶意软件、是到有效站点还是冒名者站点的链接、谁是文件的声称作者等)。客户端应用程序143还可以确认对于经验证的声明169中的每个声明173的相应签名176是正确的,以确保每个声明173是有效的。
在一些情况下,客户端应用程序143还可以确定其是否信任在声明173中做出断言的一方。例如,签名176可以指定做出声明173的安全服务121。客户端应用程序143可以比一个安全服务121更信任另一个安全服务121(例如,另一个安全服务121可以具有更彻底或更准确的历史)。因此,如果特定声明173是由特定安全服务121做出的,则客户端应用程序143可以选择忽略该特定声明,或者可以要求多个不可信安全服务121在它们各自的声明173中做出相同的断言,以便使得不可信安全服务121的特定断言是可信的。
最后,在步骤529处,客户端应用程序143至少部分地基于包含在经验证的声明169中的声明173来呈现用户界面146。在一些实施方式中,可以仅将经验证的声明169中的来自可信源的声明173合并到用户界面146中。例如,客户端应用程序143可以呈现用户界面146,该用户界面显示数据项133以及数据项133的状态的指示。例如,用户界面可以表明网站是安全的,链接是针对网站的有效链接,文件不包含恶意软件,或者文件的作者或分发者是他或她声称的人。
接下来参考图6,示出了提供网络环境100的部件的操作的另一示例的序列图。应当理解,图6的序列图仅提供了可以被采用以实现网络环境100的所描绘的部分的操作的许多不同类型的功能布置的示例。作为替代,图6的序列图可以被视为描绘了在网络环境100内实现的方法的元素的示例。
应当注意,图6的序列图在范围上类似于图5的序列图。然而,图5的序列图描绘了保险库管理器149的使用,而图6的序列图描绘了省略保险库管理器149的使用的替代实现。
从步骤603开始,客户端应用程序143将对数据项133的请求发送到托管应用程序119。这可以包括例如对文件的请求、对网页的请求等。
在步骤606处,作为响应,托管应用程序119提供数据项136以及在相应认证记录126中识别的相应的身份密钥131。可以使用各种定制协议或现有协议的扩展来提供身份密钥131。例如,附加的超文本传输协议(HTTP)标头可以被包括在响应中以指示与数据项133相关联的身份密钥。
随后在步骤609处,客户端应用程序143识别响应中的身份密钥131并检索相应的身份文档136。例如,客户端应用程序143可以使用身份密钥131来搜索存储在分布式账本113中的相应身份文档136并检索它。在使用多个分布式账本113的情况下,客户端应用程序143可以将身份密钥131发送到中继或解析器服务(诸如DID解析器),以确定哪个分布式账本113包含身份文档136。在这些情况下,中继或解析器服务可以代表客户端应用程序143检索身份文档136并将其返回到安全服务121。
然后在步骤613处,客户端应用程序143可以创建密码质询并将其发送到托管应用程序119。因此,客户端应用程序143可以使用在步骤509处检索的身份文档136中的公钥163对令牌或随机数进行加密以用作密码质询,然后可以将其发送到托管应用程序119。
在步骤619处,托管应用程序119可以对密码质询进行解密和签名,并将解密的密码质询和对于密码质询的签名提供给托管应用程序119。例如,托管应用程序119可以使用与链接到数据项133的身份密钥131相关联的密钥对159的私钥166对密码质询进行解密,以重新创建由客户端应用程序143提供的原始令牌或随机数。然后,托管应用程序119可以用私钥166对令牌或随机数进行签名,以证明用于托管应用程序119的私钥166的所有者对质询进行了解密,而不是通过其他方式获得非加密的令牌或随机数。
接下来在步骤623处,托管应用程序119然后可以将非加密的随机数或令牌以及对于随机数或令牌的签名发送到客户端应用程序143。这可以表明由客户端应用程序143检索的身份文档136与数据项133相关联,并且包含关于数据项133的有效的经验证的声明169。
然后,在步骤626处,客户端应用程序143可以评估包含在步骤509处检索到的身份文档136中的经验证的声明169。例如,客户端应用程序143可以评估每个声明173以确定关于数据项133所断言的内容(例如,它是安全的、它是否包含恶意软件、是到有效站点还是冒名者站点的链接、谁是文件的声称作者等)。客户端应用程序143还可以确认对于经验证的声明169中的每个声明173的相应签名176是正确的,以确保每个声明173是有效的。
在一些情况下,客户端应用程序143还可以确定其是否信任在声明173中做出断言的一方。例如,签名176可以指定做出声明173的安全服务121。客户端应用程序143可以比一个安全服务121更信任另一个安全服务121(例如,另一个安全服务121可以具有更彻底或更准确的历史)。因此,如果特定声明173是由特定安全服务121做出的,则客户端应用程序143可以选择忽略该特定声明173,或者可以要求多个不可信安全服务121在它们各自的声明173中做出相同的断言,以便使得不可信安全服务121的特定断言是可信的。
最后,在步骤629处,客户端应用程序143至少部分地基于包含在经验证的声明169中的声明173来呈现用户界面146。在一些实施方式中,可以仅将经验证的声明169中的来自可信源的声明173合并到用户界面146中。例如,客户端应用程序143可以呈现用户界面146,该用户界面显示数据项133以及数据项133的状态的指示。例如,用户界面可以表明网站是安全的,链接是针对网站的有效链接,文件不包含恶意软件,或者文件的作者或分发者是他或她声称的人。
图7描绘了根据本公开的各种实施例的由客户端应用程序143在显示器139上呈现的用户界面146的示例。尽管图7中描绘的用户界面146描绘了本公开的实施方式的一个示例,但是图7的用户界面146中公开的原理可以适用于用于类似目的的其他用户界面146。
图7的示例描绘了由客户端应用程序143(诸如浏览器)呈现的用户界面146,该用户界面包含先前在图5或图6中描绘的验证过程的结果。在用户界面146中显示的是已经使用诸如先前在图5或图6中描绘的过程验证的多个链接。响应于对每个链接的经验证的声明169的评估,已经在每个链接旁边插入用户界面元素703以指示链接的状态。例如,一些链接可以具有它们被“批准”的指示。该状态可以指示这些链接符合所有适用的验证规则129,诸如链接是否将用户引导到模仿合法网站的网站,或者链接可到达的网站是否包含安全漏洞。相反,其他链接可以具有陈述“请勿点击”的指令,以警告用户这些链接不符合至少一个适用的验证规则129。所有这些用户界面元素703包含如何将信息传达给用户的说明性示例,可以适当地使用其他方法。
图8描绘了根据本公开的各种实施例的由客户端应用程序143在显示器139上呈现的用户界面146的示例。尽管图8中描绘的用户界面146描绘了本公开的实施方式的一个示例,但是图8的用户界面146中公开的原理可以适用于用于类似目的的其他用户界面146。
图8的示例描绘了由客户端应用程序143(诸如浏览器)呈现的用户界面146,该用户界面包含先前在图5或图6中描绘的验证过程的结果。在用户界面146中显示的是已经使用诸如先前在图5或图6中描绘的过程验证的多个链接。响应于对用户正在尝试访问的文件的经验证的声明169的评估,已经呈现对话框803以指示文件的状态。尽管可以在对话框803中呈现任何状态,但是如果文件不符合至少一个验证规则129,则一些实施方式可以选择仅呈现对话框803。例如,如果文件包含恶意软件或者如果文件看起来不是源自该文件的声称的作者或分发者,则可以呈现对话框803。
先前讨论的多个软件部件被存储在相应计算装置的存储器中,并且可由相应计算装置的处理器执行。在这方面,术语“可执行”是指最终可以由处理器运行的形式的程序文件。可执行程序的示例可以是:编译程序,其可以被转换成能够被加载到存储器的随机存取部分中并由处理器运行的格式的机器代码;可以以适当格式表达的源代码,诸如能够被加载到存储器的随机存取部分中并由处理器执行的目标代码;或者可以由另一可执行程序解释以在存储器的随机存取部分中生成要由处理器执行的指令的源代码。可执行程序可以被存储在存储器的任何部分或部件中,包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、通用串行总线(USB)闪存驱动器、存储卡、诸如压缩盘(CD)或数字通用盘(DVD)的光盘、软盘、磁带或其他存储器部件。
存储器包括易失性和非易失性存储器以及数据存储部件。易失性部件是在断电时不保留数据值的部件。非易失性部件是在断电时保留数据的部件。因此,存储器可以包括随机存取存储器(RAM)、只读存储器(ROM)、硬盘驱动器、固态驱动器、USB闪存驱动器、经由存储卡读取器访问的存储卡、经由相关联的软盘驱动器访问的软盘、经由光盘驱动器访问的光盘、经由适当的磁带驱动器访问的磁带、或其他存储器部件、或这些存储器部件中的任何两个或更多个的组合。此外,RAM可以包括静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)或磁随机存取存储器(MRAM)以及其他这样的装置。ROM可以包括可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其他类似的存储器装置。
尽管本文描述的应用程序和系统可以体现在由如上所述的通用硬件执行的软件或代码中,但是作为替代方案,其也可以体现在专用硬件或软件/通用硬件和专用硬件的组合中。如果体现在专用硬件中,则每个硬件可以被实现为采用多种技术中的任何一种或多种技术的组合的电路或状态机。这些技术可以包括但不限于具有用于在应用一个或多个数据信号时实现各种逻辑功能的逻辑门的离散逻辑电路、具有适当逻辑门的专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其他部件等。这些技术通常是本领域技术人员公知的,因此在此不再详细描述。
序列图示出了本公开的各种实施例的部分的实施方式的功能和操作。如果体现在软件中,则每个块可以表示包括用于实现指定的逻辑功能的程序指令的代码的模块、部段或部分。程序指令可以以源代码或机器代码的形式体现,源代码包括以编程语言编写的人类可读语句,机器代码包括可由合适的执行系统(诸如计算机系统中的处理器)识别的数字指令。可以通过各种过程从源代码转换机器代码。例如,可以在执行对应的应用程序之前利用编译器从源代码生成机器代码。作为另一示例,可以在用解释器执行的同时从源代码生成机器代码。也可以使用其他方法。如果体现在硬件中,则每个块可以表示电路或多个互连电路,以实现指定的逻辑功能。
尽管序列图示出了特定的执行顺序,但是应当理解,执行顺序可以与所描绘的顺序不同。例如,可以相对于所示的顺序来扰乱两个或更多个框的执行顺序。此外,连续示出的两个或更多个框可以同时或部分同时执行。此外,在一些实施例中,可以跳过或省略序列图中所示的一个或多个框。另外,可以将任何数量的计数器、状态变量、警告信号量或消息添加到本文描述的逻辑流程中,以用于增强效用、计费、性能测量或提供故障排除辅助等目的。应当理解,所有这些变化都落在本公开的范围内。
此外,本文描述的包括软件或代码的任何逻辑或应用程序可以体现在任何非暂时性计算机可读介质中,以供指令执行系统(诸如计算机系统或其他系统中的处理器)使用或与其结合使用。在这个意义上,逻辑可以包括语句,所述语句包括可以从计算机可读介质获取并由指令执行系统执行的指令和声明。在本公开的上下文中,“计算机可读介质”可以是可以包含、存储或维护本文描述的逻辑或应用程序以供指令执行系统使用或与指令执行系统结合使用的任何介质。
计算机可读介质可以包括许多物理介质中的任何一种,诸如磁性、光学或半导体介质。合适的计算机可读介质的更具体示例将包括但不限于磁带、磁性软盘、磁性硬盘驱动器、存储卡、固态驱动器、USB闪存驱动器或光盘。此外,计算机可读介质可以是随机存取存储器(RAM),其包括静态随机存取存储器(SRAM)和动态随机存取存储器(DRAM)或磁随机存取存储器(MRAM)。另外,计算机可读介质可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或其他类型的存储器装置。
此外,本文描述的任何逻辑或应用程序可以以各种方式实现和构造。例如,所描述的一个或多个应用程序可以被实现为单个应用程序的模块或部件。此外,本文描述的一个或多个应用程序可以在共享或单独的计算装置或其组合中执行。例如,本文描述的多个应用程序可以在同一计算装置中执行,或者在同一计算环境中的多个计算装置中执行。
除非另有特别说明,否则诸如短语“X、Y或Z中的至少一个”的析取语言在上下文中通常被理解为用于表示项目、术语等可以是X、Y或Z或其任何组合(例如,X、Y或Z)。因此,这种析取语言通常不旨在并且不应暗示某些实施例要求X中的至少一个、Y中的至少一个或Z中的至少一个各自存在。
应当强调的是,本公开的上述实施例仅仅是为了清楚理解本公开的原理而阐述的实施方式的可能示例。在基本上不脱离本公开的精神和原理的情况下,可以对上述实施例进行许多变化和修改。所有这些修改和变化旨在被包括在本公开的范围内并由所附权利要求保护。
在以下条款中阐述了一个或多个示例实施方式。尽管以下条款描述了示例实施方式,但是在前面的页面和附图中也已经描述了本公开的其他实施方式。因此,虽然以下条款描述了本公开的说明性示例,但是它们不描述本公开的仅有实施方式。
条款1-一种系统,包括:计算装置,包括处理器和存储器;以及存储在所述存储器中的机器可读指令,所述机器可读指令在由所述处理器执行时使所述计算装置至少:生成对于数据项的身份密钥;将对所述数据项进行认证的请求发送到安全服务,所述请求包括所述身份密钥和所述数据项;从所述安全服务接收对于所述数据项的经验证的声明;生成身份文档,所述身份文档包括对于所述数据项的身份密钥和所述经验证的声明;以及将所述身份文档存储在分布式账本中。
条款2-根据条款1所述的系统,其中,所述机器可读指令在由所述计算装置执行时还使所述计算装置至少:接收对所述数据项的请求;以及发送对所述请求的响应,所述响应包括所述数据项和所述身份密钥。
条款3-根据条款1或2所述的系统,其中:所述身份密钥是第二身份密钥;所述身份文档是第二身份文档;对所述数据项进行认证的所述请求是对于认证的第二请求;并且所述机器可读指令还使所述计算装置至少:将对所述机器可读指令的运营商的身份进行认证的请求发送到所述认证服务;从所述认证服务接收第一身份密钥和经验证的声明;创建第一身份文档,所述身份文档包括所述身份密钥和所述经验证的声明;以及将所述第一身份文档存储在分布式账本中;以及在将所述第一身份文档存储在所述分布式账本中之后,发送对所述数据项进行认证的所述第二请求。
条款4-根据条款1-3所述的系统,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少:生成与所述数据项唯一相关联的非对称密钥对;以及其中,所述身份文档还包括所述非对称密钥对的公钥。
条款5-根据条款4所述的系统,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少:接收验证请求,所述验证请求包括用所述公钥加密的加密令牌;使用所述非对称密钥对的私钥对所述加密令牌进行解密,以生成非加密令牌;使用所述私钥创建所述非加密令牌的密码签名;以及提供包括所述非加密令牌和所述密码签名的验证响应。
条款6-根据条款1-5所述的系统,其中,所述数据项是网络地址。
条款7-根据条款1-5所述的系统,其中,所述数据项是文件。
条款8-一种方法,包括:接收对数据项的验证请求,所述验证请求包括身份密钥和所述数据项;确定所述数据项符合至少一个验证规则;生成对于所述数据项的经验证的声明,所述经验证的声明表明所述身份密钥与所述数据项相关联并且所述数据项符合所述至少一个验证规则;以及提供所述经验证的声明作为对所述数据项进行认证的请求的响应。
条款9-根据条款8所述的方法,其中:所述身份密钥是第二身份密钥;所述至少一个验证规则表明所述数据项源自经认证的实体;所述认证请求还包括与所述经认证的实体相关联的第一身份密钥;确定所述数据项符合所述至少一个验证规则还包括:至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体;以及生成所述经验证的声明是响应于验证所述认证请求源自所述经认证的实体而发生的。
条款10-根据条款9所述的方法,其中,至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体还包括:检索与所述第一身份密钥相关联的身份文档,所述身份文档包含相应非对称密钥对的公共加密密钥;用所述公共加密密钥对令牌进行加密以创建加密令牌;将所述加密令牌发送到发送所述认证请求的发起实体;接收所述令牌和用所述相应非对称密钥对的私钥创建的数字签名;以及利用所述公共加密密钥验证所述数字签名。
条款11-根据条款8-10所述的方法,其中:所述至少一个验证规则表明所述数据项符合指定的安全策略;并且确定所述数据项符合所述至少一个验证规则还包括执行所述数据项的安全分析。
条款12-根据条款8-11所述的方法,还包括:创建包括所述身份密钥和所述经验证的声明的身份文档;以及向分布式账本注册所述身份文档。
条款13-根据条款8-12所述的方法,其中,所述数据项是网络地址。
条款14-根据条款8-12所述的方法,其中,所述数据项是文件。
条款15-一种非暂时性计算机可读介质,包括机器可读指令,所述机器可读指令在由计算装置的处理器执行时使所述计算装置至少:将对数据项的请求发送到应用程序;从所述应用程序接收所述数据项和身份密钥,所述身份密钥与所述数据项相链接;从分布式账本检索由所述身份密钥标识的身份文档,所述身份文档包含与所述数据项相关的至少一个经验证的声明;至少部分地基于所述身份文档来验证所述数据项;以及至少部分地基于所述数据项的验证的结果来呈现用户界面。
条款16-根据条款15所述的非暂时性计算机可读介质,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少:使用包括在所述身份文档中的公钥对令牌进行加密以创建加密令牌;将所述加密令牌发送到所述应用程序;接收来自所述应用程序的令牌和与所述令牌相关联的密码签名;验证所述密码签名。
条款17-根据条款15或16所述的非暂时性计算机可读介质,其中,使所述计算装置至少部分地基于所述身份文档来验证所述数据项的所述机器可读指令还使所述计算装置至少评估所述经验证的声明中的至少一个声明,所述至少一个声明包括关于所述数据项符合至少一个验证规则的断言。
条款18-根据条款17所述的非暂时性计算机可读介质,其中,使所述计算装置至少评估所述至少一个声明的所述机器可读指令还使所述计算装置确定所述声明是由可信实体做出的。
条款19-根据条款15-18所述的非暂时性计算机可读介质,其中,所述数据项是网络地址。
条款20-根据条款15-18所述的非暂时性计算机可读介质,其中,所述数据项是文件。

Claims (20)

1.一种系统,包括:
计算装置,包括处理器和存储器;以及
存储在所述存储器中的机器可读指令,所述机器可读指令在由所述处理器执行时使所述计算装置至少执行以下步骤:
生成对于数据项的身份密钥;
将对所述数据项进行认证的请求发送到安全服务,所述请求包括所述身份密钥和所述数据项;
从所述安全服务接收对于所述数据项的经验证的声明;
生成身份文档,所述身份文档包括对于所述数据项的身份密钥和所述经验证的声明;以及
将所述身份文档存储在分布式账本中。
2.根据权利要求1所述的系统,其中,所述机器可读指令在由所述计算装置执行时还使所述计算装置至少执行以下步骤:
接收对所述数据项的请求;以及
发送对所述请求的响应,所述响应包括所述数据项和所述身份密钥。
3.根据权利要求1或2所述的系统,其中:
所述身份密钥是第二身份密钥;
所述身份文档是第二身份文档;
对所述数据项进行认证的所述请求是对于认证的第二请求;以及
所述机器可读指令还使所述计算装置至少执行以下步骤:
将对所述机器可读指令的运营商的身份进行认证的请求发送到认证服务;
从所述认证服务接收第一身份密钥和经验证的声明;
创建第一身份文档,所述身份文档包括所述身份密钥和所述经验证的声明;以及
将所述第一身份文档存储在分布式账本中;以及
在将所述第一身份文档存储在所述分布式账本中之后,发送对所述数据项进行认证的所述第二请求。
4.根据权利要求1-3所述的系统,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少执行以下步骤:
生成与所述数据项唯一相关联的非对称密钥对;以及
其中,所述身份文档还包括所述非对称密钥对的公钥。
5.根据权利要求4所述的系统,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少执行以下步骤:
接收验证请求,所述验证请求包括用所述公钥加密的加密令牌;
使用所述非对称密钥对的私钥对所述加密令牌进行解密,以生成非加密令牌;
使用所述私钥创建所述非加密令牌的密码签名;以及
提供包括所述非加密令牌和所述密码签名的验证响应。
6.根据权利要求1-5所述的系统,其中,所述数据项是网络地址。
7.根据权利要求1-5所述的系统,其中,所述数据项是文件。
8.一种方法,包括:
接收对数据项的验证请求,所述验证请求包括身份密钥和所述数据项;
确定所述数据项符合至少一个验证规则;
生成对于所述数据项的经验证的声明,所述经验证的声明表明所述身份密钥与所述数据项相关联并且所述数据项符合所述至少一个验证规则;以及
提供所述经验证的声明作为对所述数据项进行认证的请求的响应。
9.根据权利要求8所述的方法,其中:
所述身份密钥是第二身份密钥;
所述至少一个验证规则表明所述数据项源自经认证的实体;
所述认证请求还包括与所述经认证的实体相关联的第一身份密钥;
确定所述数据项符合所述至少一个验证规则还包括:至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体;以及
生成所述经验证的声明是响应于验证所述认证请求源自所述经认证的实体而发生的。
10.根据权利要求9所述的方法,其中,至少部分地基于所述第一身份密钥来验证所述认证请求源自所述经认证的实体还包括:
检索与所述第一身份密钥相关联的身份文档,所述身份文档包含相应非对称密钥对的公共加密密钥;
用所述公共加密密钥对令牌进行加密以创建加密令牌;
将所述加密令牌发送到发送所述认证请求的发起实体;
接收所述令牌和用所述相应非对称密钥对的私钥创建的数字签名;以及
利用所述公共加密密钥验证所述数字签名。
11.根据权利要求8-10所述的方法,其中:
所述至少一个验证规则表明所述数据项符合指定的安全策略;以及
确定所述数据项符合所述至少一个验证规则还包括执行所述数据项的安全分析。
12.根据权利要求8-11所述的方法,还包括:
创建包括所述身份密钥和所述经验证的声明的身份文档;以及
向分布式账本注册所述身份文档。
13.根据权利要求8-12所述的方法,其中,所述数据项是网络地址。
14.根据权利要求8-12所述的方法,其中,所述数据项是文件。
15.一种非暂时性计算机可读介质,包括机器可读指令,所述机器可读指令在由计算装置的处理器执行时使所述计算装置至少执行以下步骤:
将对数据项的请求发送到应用程序;
从所述应用程序接收所述数据项和身份密钥,所述身份密钥与所述数据项相链接;
从分布式账本检索由所述身份密钥标识的身份文档,所述身份文档包含与所述数据项相关的至少一个经验证的声明;
至少部分地基于所述身份文档来验证所述数据项;以及
至少部分地基于所述数据项的验证的结果来呈现用户界面。
16.根据权利要求15所述的非暂时性计算机可读介质,其中,所述机器可读指令在由所述处理器执行时还使所述计算装置至少:
使用包括在所述身份文档中的公钥对令牌进行加密以创建加密令牌;
将所述加密令牌发送到所述应用程序;
接收来自所述应用程序的令牌和与所述令牌相关联的密码签名;以及
验证所述密码签名。
17.根据权利要求15或16所述的非暂时性计算机可读介质,其中,使所述计算装置至少部分地基于所述身份文档来验证所述数据项的机器可读指令还使所述计算装置至少评估所述经验证的声明中的至少一个声明,所述至少一个声明包括关于所述数据项符合至少一个验证规则的断言。
18.根据权利要求17所述的非暂时性计算机可读介质,其中,使所述计算装置至少评估所述至少一个声明的机器可读指令还使所述计算装置确定所述声明是由可信实体做出的。
19.根据权利要求15-18所述的非暂时性计算机可读介质,其中,所述数据项是网络地址。
20.根据权利要求15-18所述的非暂时性计算机可读介质,其中,所述数据项是文件。
CN202080061087.7A 2019-08-29 2020-08-17 去中心化的数据认证 Pending CN114586315A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/555,638 2019-08-29
US16/555,638 US11165579B2 (en) 2019-08-29 2019-08-29 Decentralized data authentication
PCT/US2020/046652 WO2021041075A1 (en) 2019-08-29 2020-08-17 Decentralized data authentication

Publications (1)

Publication Number Publication Date
CN114586315A true CN114586315A (zh) 2022-06-03

Family

ID=74680496

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080061087.7A Pending CN114586315A (zh) 2019-08-29 2020-08-17 去中心化的数据认证

Country Status (6)

Country Link
US (3) US11165579B2 (zh)
EP (1) EP4022473A4 (zh)
JP (1) JP7426475B2 (zh)
KR (1) KR20220067536A (zh)
CN (1) CN114586315A (zh)
WO (1) WO2021041075A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115694842A (zh) * 2022-11-09 2023-02-03 中煤科工集团信息技术有限公司 工业互联网设备互信及数据交换方法、装置及存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020139513A1 (en) * 2018-12-28 2020-07-02 Apple Inc. Providing verified claims of user identity
US11165579B2 (en) * 2019-08-29 2021-11-02 American Express Travel Related Services Company, Inc. Decentralized data authentication
US11522858B2 (en) * 2019-09-13 2022-12-06 Microsoft Technology Licensing, Llc Event based transfer of did delegated authority
US11610012B1 (en) * 2019-11-26 2023-03-21 Gobeep, Inc. Systems and processes for providing secure client controlled and managed exchange of data between parties
US20210314293A1 (en) * 2020-04-02 2021-10-07 Hewlett Packard Enterprise Development Lp Method and system for using tunnel extensible authentication protocol (teap) for self-sovereign identity based authentication
IL274840B1 (en) * 2020-05-21 2024-03-01 Google Llc Device and application integrity verification
US11218481B2 (en) * 2020-06-04 2022-01-04 Verizon Patent And Licensing Inc. Personal identity system
KR102470713B1 (ko) 2021-04-29 2022-11-25 (주)소프트제국 블록체인 did 기반 증명서 유통 서비스 제공 방법 및 장치
US11714894B2 (en) * 2021-12-10 2023-08-01 Fmr Llc Authenticating client applications using an identity fabric blockchain
US11411954B1 (en) * 2021-12-27 2022-08-09 Coretech LT, UAB Access control policy for proxy services
US20230237245A1 (en) * 2022-01-21 2023-07-27 Docusign, Inc. Identification of document access by a message scanning system
WO2023218488A1 (en) * 2022-05-12 2023-11-16 Rimon Technology, Inc Revocable personal linked data (r_pld): encryption protocol for shared consensus over attributes and keys in lattice-based encryption, supporting direct and indirect revocation and delegated roles
KR20240014317A (ko) * 2022-07-25 2024-02-01 주식회사 아이비씨티 개인서명 데이터에 대한 nft 발행을 통한 개인서명의 소유권 증명 시스템
US20240086917A1 (en) * 2022-09-12 2024-03-14 Discover Financial Services Fraud mitigation using pre-authorization authentication and verification

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102143134A (zh) * 2010-08-05 2011-08-03 华为技术有限公司 分布式身份认证方法、装置与系统
CN104767740A (zh) * 2009-09-14 2015-07-08 交互数字专利控股公司 用于来自用户平台的可信认证和接入的方法
CN108111528A (zh) * 2017-12-29 2018-06-01 中链科技有限公司 一种基于区块链的防钓鱼方法及系统
US20190058595A1 (en) * 2017-08-16 2019-02-21 Royal Bank Of Canada Platform for generating authenticated data objects
CN109564740A (zh) * 2016-08-16 2019-04-02 阿尔卡特朗讯 基于区块链的安全威胁检测方法和系统
US20190213333A1 (en) * 2017-12-01 2019-07-11 Alan Health And Science D/B/A Onpaceplus Decentralized data authentication system for creation of integrated lifetime health records
CN110149322A (zh) * 2019-05-06 2019-08-20 山东公链信息科技有限公司 一种不可逆的动态失效重验重建的区块链加密方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005190452A (ja) * 2003-12-01 2005-07-14 Ihc:Kk 認証システム
US8060916B2 (en) * 2006-11-06 2011-11-15 Symantec Corporation System and method for website authentication using a shared secret
US8356333B2 (en) * 2006-12-12 2013-01-15 Bespoke Innovations Sarl System and method for verifying networked sites
US8090853B2 (en) * 2009-12-01 2012-01-03 International Business Machines Corporation Data access control
KR101115511B1 (ko) 2010-05-04 2012-02-27 에스케이씨앤씨 주식회사 스마트 카드 웹서버를 이용한 인증 시스템 및 방법
US9094388B2 (en) * 2013-05-01 2015-07-28 Dmitri Tkachev Methods and systems for identifying, verifying, and authenticating an identity
US10298396B1 (en) * 2015-11-10 2019-05-21 Wells Fargo Bank, N.A. Identity management service via virtual passport
US11431509B2 (en) * 2016-09-13 2022-08-30 Queralt, Inc. Bridging digital identity validation and verification with the FIDO authentication framework
CN107958371A (zh) * 2017-11-13 2018-04-24 深圳超级区块链信息技术有限公司 一种分布式区块链身份证
WO2019135745A1 (en) * 2018-01-03 2019-07-11 Baidu Usa Llc Data authentication method, apparatus, and system
US20190306159A1 (en) * 2018-03-27 2019-10-03 Ca, Inc. Time-based one-time password for device identification across different applications
US11641278B2 (en) * 2018-03-27 2023-05-02 Workday, Inc. Digital credential authentication
US11792180B2 (en) * 2018-03-27 2023-10-17 Workday, Inc. Digital credentials for visitor network access
US11698979B2 (en) * 2018-03-27 2023-07-11 Workday, Inc. Digital credentials for access to sensitive data
US11522713B2 (en) * 2018-03-27 2022-12-06 Workday, Inc. Digital credentials for secondary factor authentication
US11770261B2 (en) * 2018-03-27 2023-09-26 Workday, Inc. Digital credentials for user device authentication
US11165579B2 (en) * 2019-08-29 2021-11-02 American Express Travel Related Services Company, Inc. Decentralized data authentication
US10735398B1 (en) * 2020-02-26 2020-08-04 Bandwidth, Inc. Rolling code authentication techniques

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104767740A (zh) * 2009-09-14 2015-07-08 交互数字专利控股公司 用于来自用户平台的可信认证和接入的方法
CN102143134A (zh) * 2010-08-05 2011-08-03 华为技术有限公司 分布式身份认证方法、装置与系统
CN109564740A (zh) * 2016-08-16 2019-04-02 阿尔卡特朗讯 基于区块链的安全威胁检测方法和系统
US20190058595A1 (en) * 2017-08-16 2019-02-21 Royal Bank Of Canada Platform for generating authenticated data objects
US20190213333A1 (en) * 2017-12-01 2019-07-11 Alan Health And Science D/B/A Onpaceplus Decentralized data authentication system for creation of integrated lifetime health records
CN108111528A (zh) * 2017-12-29 2018-06-01 中链科技有限公司 一种基于区块链的防钓鱼方法及系统
CN110149322A (zh) * 2019-05-06 2019-08-20 山东公链信息科技有限公司 一种不可逆的动态失效重验重建的区块链加密方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115694842A (zh) * 2022-11-09 2023-02-03 中煤科工集团信息技术有限公司 工业互联网设备互信及数据交换方法、装置及存储介质
CN115694842B (zh) * 2022-11-09 2024-02-20 中煤科工集团信息技术有限公司 工业互联网设备互信及数据交换方法、装置及存储介质

Also Published As

Publication number Publication date
EP4022473A4 (en) 2023-08-30
US11757641B2 (en) 2023-09-12
US11165579B2 (en) 2021-11-02
WO2021041075A1 (en) 2021-03-04
JP2022545627A (ja) 2022-10-28
US20210067340A1 (en) 2021-03-04
JP7426475B2 (ja) 2024-02-01
KR20220067536A (ko) 2022-05-24
US20240031155A1 (en) 2024-01-25
EP4022473A1 (en) 2022-07-06
US20220006634A1 (en) 2022-01-06

Similar Documents

Publication Publication Date Title
US11757641B2 (en) Decentralized data authentication
US11329989B2 (en) Token-based access control and grouping
US11082240B2 (en) Retrieving public data for blockchain networks using highly available trusted execution environments
CN111164948B (zh) 使用区块链网络管理网络安全漏洞
US10715514B1 (en) Token-based credential renewal service
van Oorschot Computer Security and the Internet
US10834117B2 (en) Enhanced data security through uniqueness checking
JP2020108156A (ja) 期待値を有するデータセキュリティ処理
US11997210B2 (en) Protection of online applications and webpages using a blockchain
Pereira et al. Formal analysis of the FIDO 1. x protocol
US11700121B2 (en) Secure authorization for sensitive information
CN115550060B (zh) 基于区块链的可信证书验证方法、装置、设备和介质
Ulybyshev Data Protection in Transit and at Rest with Leakage Detection
US10015018B2 (en) Signing key log management
Bolgouras et al. Enabling Qualified Anonymity for Enhanced User Privacy in the Digital Era
Dong et al. The New Wildcats: High-Risk Banking From Worst-Case Certificate Practices Online
Sawma E-commerce security: A new methodology for deriving effective countermeasures design models
Patil et al. Developing Blockchain Authentication for Hadoop using HDFS Client
VAŠŠ Identity within the European Self-sovereign Identity Framework

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40066642

Country of ref document: HK