具体实施方式
本文描述了用于网络安全漏洞管理的技术。这些技术通常涉及基于区块链网络管理网络安全漏洞。在一些实施例中,通过区块链网络可以集成涉及服务提供平台的安全漏洞管理的各方,诸如服务提供商、服务用户、管理员或监管者或安全专家中的一个或多个。每方都可以是区块链网络的参与者或客户。每方都可以通过例如经由智能合约与区块链网络交互来处理与网络安全漏洞相关的信息。基于区块链的网络安全漏洞管理可以提供定义的接口以及至各方的便捷访问,并提供增强的服务提供平台数据安全性。
如本文所述,网络安全漏洞可能是(在软件、硬件和/或网络等中)的弱点,其可被例如网络攻击者的威胁行为者利用以在计算机系统或网络内执行未授权动作。在一些实施例中,例如道德计算机黑客(也称为“白帽黑客”)的安全专家可以在一个或多个计算机系统和网络上执行测试以评估计算机安全性并识别网络安全漏洞。可以提供解决方案(例如,软件补丁、升级的防火墙等)来补救已识别的网络安全漏洞,从而通过在恶意黑客(例如,“黑帽黑客”)可以检测和利用它们之前暴露漏洞来提高安全性。
本文中描述的技术产生若干技术效果。在一些实施例中,区块链网络维护漏洞记录,该漏洞记录包括关于一个或多个识别出的网络安全漏洞的信息和针对该漏洞的解决方案。区块链网络可以授予和修改不同参与实体访问漏洞记录的权限。在一些实施例中,漏洞记录可以是防篡改的,从而建立不同参与实体之间的增强的信任。通过将漏洞记录存储在区块链网络中,由于漏洞记录不可变,因此有关已识别的网络安全漏洞和针对漏洞的解决方案的信息可以是更加安全且可靠的。例如,恶意行为者不能从漏洞记录中去除网络安全漏洞以意图使用未记录的漏洞危害网络,或者不能向该记录中添加虚构的漏洞解决方案以意图使用未解决的漏洞危害网络。
在一些实施例中,安全专家可以向区块链网络提交包括关于一个或多个网络安全漏洞的信息的漏洞报告,并且区块链网络确定安全专家是否被授权提交漏洞报告。这可以防止未授权实体向区块链网络发布恶意内容,从而危害区块链网络的安全性。
在一些实施例中,管理员(例如,监管者)访问区块链网络以获得漏洞报告并验证漏洞报告中识别的网络安全漏洞是否确实存在。区块链网络可以在授予管理员访问权限之前确定管理员是否有权访问漏洞报告。这可以防止未授权实体获得关于已识别的网络安全漏洞的信息。如果未授权实体(例如恶意行为者)获得了漏洞报告,则恶意行为者可以利用报告中识别的漏洞侵入计算机系统和网络,并渗透受保护的数据。同样地,本文描述的技术提高了实现这些技术的计算机系统、网络和数据库系统的安全性。
为本文实施例提供进一步的背景,并且如上所述,分布式账本系统(DLS),又可称为共识网络(例如,由点对点节点组成)和区块链网络,使参与的实体能够安全地、不可篡改地进行交易和存储数据。尽管术语“区块链”通常与特定网络和/或用例相关联,但是在不参考任何特定用例情况下,本文使用“区块链”来一般地指代DLS。
区块链是以交易不可篡改的方式存储交易的数据结构。因此,区块链上记录的交易是可靠且可信的。区块链包括一个或多个区块。链中的每个区块通过包含在链中紧邻其之前的前一区块的加密哈希值(cryptographic hash)链接到该前一区块。每个区块还包括时间戳、自身的加密哈希值以及一个或多个交易。已经被区块链网络中的节点验证的交易经哈希处理并编入默克尔(Merkle)树中。Merkle树是一种数据结构,在该树的叶节点处的数据是经哈希处理的,并且在该树的每个分支中的所有哈希值在该分支的根处级联(concatenated)。此处理沿着树持续一直到整个树的根,在整个树的根处存储了代表树中所有数据的哈希值。通过确定哈希值是否与树的结构一致而可快速验证该哈希值是否为存储在该树中的交易的哈希值。
区块链是用于存储交易的去中心化或至少部分去中心化的数据结构,而区块链网络是通过广播、验证和确认交易等来管理、更新和维护一个或多个区块链的计算节点的网络。如上所述,区块链网络可作为公有区块链网络、私有区块链网络或联盟区块链网络被提供。本文中参考联盟区块链网络进一步详细描述了本文的实施例。然而,可以预期,本文实施例可以在任何适当类型的区块链网络中实现。
通常,联盟区块链网络在参与实体之间是私有的。在联盟区块链网络中,共识处理由经授权的一组节点控制,所述节点可以被称为共识节点,一个或多个共识节点由各自的实体(例如,金融机构、保险公司)操作。例如,由十(10)个实体(例如,金融机构、保险公司)组成的联盟可以操作联盟区块链网络,每个实体可以操作联盟区块链网络中的至少一个节点。
在一些示例中,在联盟区块链网络内,全局区块链作为跨所有节点复制的区块链被提供。也就是说,对于全局区块链,所有共识节点处于完全共识状态。为了达成共识(例如,同意向区块链添加区块),在联盟区块链网络内实施共识协议。例如,联盟区块链网络可以实现实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)共识,下面将进一步详细描述。
图1是示出了可用于执行本文的实施例的环境100的示例的图。在一些示例中,环境100使得实体能够参与联盟区块链网络102。环境100包括计算设备106,108以及网络110。在一些示例中,网络110包括局域网(LAN)、广域网(WAN)、因特网或其组合,并且连接网络站点、用户设备(例如,计算设备)和后台系统。在一些示例中,可以通过有线和/或无线通信链路来访问网络110。在一些示例中,网络110使得与区块链网络102通信以及在联盟区块链网络102内部进行通信成为可能。通常,网络110表示一个或多个通信网络。在一些情况下,计算设备106、108可以是云计算系统(未示出)的节点,或者每个计算设备106、108可以是包括通过网络互连的多个计算机并且充当分布式处理系统的单独的云计算系统。
在所描绘的示例中,计算设备106、108可以各自包括能够作为节点参与至联盟区块链网络102中的任何适当的计算系统。计算设备的示例包括但不限于服务器、台式计算机、膝上型计算机、平板计算设备以及智能电话。在一些示例中,计算设备106、108承载一个或多个由计算机实施的服务,用于与联盟区块链网络102进行交互。例如,计算设备106可以承载第一实体(例如,用户A)的由计算机实施的、例如交易管理系统的服务,第一实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。计算设备108可以承载第二实体(例如,用户B)的由计算机实施的、例如交易管理系统的服务,例如,第二实体使用该交易管理系统管理其与一个或多个其他实体(例如,其他用户)的交易。在图1的示例中,联盟区块链网络102被表示为节点的点对点网络(Peer-to-Peer network),且计算设备106、108分别提供参与联盟区块链网络102的第一实体和第二实体的节点。
图2是示出根据本文的实施例的架构200的示例的图。示例性概念架构200包括分别对应于参与者A、参与者B和参与者C的参与者系统202、204、206。每个参与者(例如,用户、企业)参与到作为点对点网络提供的区块链网络212中,该点对点网络包括多个节点214,至少一些节点将信息不可篡改地记录在区块链216中。如图中进一步详述,尽管在区块链网络212中示意性地描述了单个区块链216,但是在区块链网络212上提供并维护了区块链216的多个副本。
在所描绘的示例中,每个参与者系统202、204、206分别由参与者A、参与者B和参与者C提供或代表参与者A、参与者B和参与者C,并且在区块链网络中作为各自的节点214发挥作用。如这里所使用的,节点通常是指连接到区块链网络212且使相应的参与者能够参与到区块链网络中的个体系统(例如,计算机、服务器)。在图1的示例中,参与者对应于每个节点214。然而,可以预期,一个参与者可以操作区块链网络212内的多个节点214,和/或多个参与者可以共享一个节点214。在一些示例中,参与者系统202、204、206使用协议(例如,超文本传输协议安全(HTTPS))和/或使用远程过程调用(RPC)与区块链网络212通信或通过区块链网络212进行通信。
节点214可以在区块链网络212内具有不同的参与程度。例如,一些节点214可以参与共识处理(例如,作为将区块添加到区块链216的矿工节点),而其他节点214不参与此共识处理。作为另一示例,一些节点214存储区块链216的完整的副本,而其他节点214仅存储区块链216的一部分的副本。例如,数据访问特权可以限制相应的参与者在其相应系统内存储的区块链数据。在图2的示例中,参与者系统202、204存储区块链216的相应的完整副本216'、216”。
区块链(例如,图2的区块链216)由一系列区块组成,每个区块存储数据。所述数据的示例包括表示两个或更多个参与者之间的交易的交易数据。尽管本文通过非限制性示例使用了“交易”,但是可以预期,任何适当的数据可以存储在区块链中(例如,文档、图像、视频、音频)。所述交易的示例可以包括但不限于有价物的交换(例如,资产、产品、服务、货币)。交易数据不可篡改地存储在区块链中。也就是说,交易数据不能改变。
在将交易数据存储在区块中之前,对交易数据进行哈希处理。哈希处理是将交易数据(作为字符串数据提供)转换为固定长度哈希值(也作为字符串数据提供)的处理。不可能对哈希值进行去哈希处理(un-hash)以获取交易数据。哈希处理可确保即使交易数据轻微改变也会导致完全不同的哈希值。此外,如上所述,哈希值具有固定长度。也就是说,无论交易数据的大小如何,哈希值的长度都是固定的。哈希处理包括通过哈希函数处理交易数据以生成哈希值。哈希函数的示例包括但不限于输出256位哈希值的安全哈希算法(SHA)-256。
多个交易的交易数据被哈希处理并存储在区块中。例如,提供两个交易的哈希值,并对它们本身进行哈希处理以提供另一个哈希值。重复此处理,直到针对所有要存储在区块中的交易提供单个哈希值为止。该哈希值被称为Merkle根哈希值,并存储在区块的头中。任何交易中的更改都会导致其哈希值发生变化,并最终导致Merkle根哈希值发生变化。
通过共识协议将区块添加到区块链。区块链网络中的多个节点参与共识协议,并执行将区块添加到区块链中的操作。这种节点被称为共识节点。如上介绍的PBFT用作共识协议的非限制性示例。共识节点执行共识协议以将交易添加到区块链,并更新区块链网络的整体状态。
进一步详细地,共识节点生成区块头,对区块中的所有交易进行哈希处理,并将所得的哈希值成对地组合以生成进一步的哈希值,直到为区块中的所有交易提供单个哈希值(Merkle根哈希值)。将此哈希值添加到区块头中。共识节点还确定区块链中最近的区块的哈希值(即,添加到区块链中的最后一个区块)。共识节点还向区块头添加随机数(nonce)和时间戳。
通常,PBFT提供容忍拜占庭故障(例如,故障节点、恶意节点)的实际拜占庭状态机复制。这通过假设将发生故障(例如,假设存在独立节点故障和/或由共识节点发送的操纵消息)而在PBFT中实现。在PBFT中,以包括主共识节点和备份共识节点的顺序提供共识节点。主共识节点被周期性地改变,交易由区块链网络内达成关于区块链网络的世界状态的协议的所有共识节点添加到区块链中。在此处理中,在共识节点之间传输消息,并且每个共识节点证明从指定的对等节点接收消息,并验证在传输期间所述消息未被修改。
在PBFT中,在多个阶段提供共识协议,所有共识节点以同一状态开始。首先,客户端向主共识节点发送请求以调用服务操作(例如,在区块链网络内执行交易)。响应于接收所述请求,主共识节点将所述请求多播到备份共识节点。所述备份共识节点执行所述请求,并且每个节点都向客户端发送回复。客户端等待直到收到阈值数量的回复。在一些示例中,客户端等待接收f+1个回复,其中f是区块链网络内可以容忍的故障共识节点的最大数量。最终结果是,足够数量的共识节点对于要添加到区块链的记录的顺序达成一致,并且所述记录被接受或拒绝。
在一些区块链网络中,用密码学来维护交易的隐私。例如,如果两个节点想要保持交易隐私,以使得区块链网络中的其他节点不能看出交易的细节,则这两个节点可以对交易数据进行加密处理。加密处理的示例包括但不限于对称加密和非对称加密。对称加密是指使用单个密钥既进行加密(从明文生成密文)又进行解密(从密文生成明文)的加密处理。在对称加密中,同一密钥可用于多个节点,因此每个节点都可以对交易数据进行加密/解密。
非对称加密使用密钥对,每个密钥对包括私钥和公钥,私钥仅对于相应节点是已知的,而公钥对于区块链网络中的任何或所有其他节点是已知的。节点可以使用另一个节点的公钥来对数据进行加密,并且该加密的数据可以使用其他节点的私钥被解密。例如,再次参考图2,参与者A可以使用参与者B的公钥来对数据进行加密,并将加密数据发送给参与者B。参与者B可以使用其私钥来对该加密数据(密文)进行解密并提取原始数据(明文)。使用节点的公钥加密的消息只能使用该节点的私钥进行解密。
非对称加密用于提供数字签名,这使得交易中的参与者能够确认交易中的其他参与者以及交易的有效性。例如,节点可以对消息进行数字签名,而另一个节点可以根据参与者A的该数字签名来确认该消息是由该节点发送的。数字签名也可以用于确保消息在传输过程中不被篡改。例如,再次参考图2,参与者A将向参与者B发送消息。参与者A生成该消息的哈希值,然后使用其私钥对该哈希值进行加密以提供为加密哈希值的数字签名。参与者A将该数字签名附加到该消息上,并将该具有数字签名的消息发送给参与者B。参与者B使用参与者A的公钥对该数字签名进行解密,并提取哈希值。参与者B对该消息进行哈希处理并比较哈希值。如果哈希值相同,参与者B可以确认该消息确实来自参与者A,且未被篡改。
图3是示出根据本文的实施例的系统的示例的图。示例系统300基于区块链网络管理服务漏洞。如图所示,系统300包括区块链网络302、一个或多个安全专家304、一个或多个服务用户306、一个或多个服务提供商308、一个或多个安全服务提供商310以及一个或多个管理员312。在一些实施例中,区块链302可以是联盟区块链网络。在一些实施例中,一个或多个安全专家304、一个或多个服务用户306、一个或多个服务提供商308、一个或多个安全服务提供商310以及一个或多个管理员312中的每个可以包括区块链网络302的客户端设备或节点或与区块链网络302的客户端设备或节点相关联。客户端设备可以包括例如被编程为执行本文描述的方法的任何合适的计算机、模块、服务器或计算元件。
如本文所述,服务漏洞可以是(在软件、硬件和/或网络等中)可以被例如网络攻击者的威胁行为者利用以在计算机系统或网络内执行未授权动作的弱点。例如,服务漏洞可以是网络安全漏洞。通常,系统300管理来自服务提供商308的服务的服务漏洞,使得安全漏洞管理中涉及的每个参与者可以通过与区块链网络302交互来处理与服务漏洞相关的信息。
安全专家304可以与计算机安全专家或道德计算机黑客(也称为“白帽黑客”)相关。例如,安全专家304可以执行渗透测试以及确保组织的信息系统的安全性的其他测试方法。例如,安全专家304可以是突破受保护的系统和网络以测试并评估它们的安全性计算机安全专家。安全专家304可以通过在恶意黑客(例如,“黑帽黑客”)可以检测和利用漏洞之前暴露漏洞来提高安全性。例如,安全专家304可以执行渗透测试以发现安全漏洞。渗透测试涉及以下操作:收集有关测试目标的例如网络或Web应用程序的信息;识别可能的入口点;尝试通过这些点突破;然后报告测试的结果。安全专家304还可以在公司系统的克隆版本上执行拒绝服务(denial-of-service)攻击,或者在关键使用量最小时在系统本身上执行拒绝服务攻击。安全专家304还可以使用安全扫描程序和框架来发现安全漏洞。
服务用户306可以是由服务提供商308提供的服务的用户或客户端。服务提供商308可以是计算机系统或网络中的服务(例如,软件、硬件和/或网络资源等)的提供商。安全服务提供商310可以是安全服务的提供商。例如,安全服务提供商310可以为来自服务提供商308的服务的漏洞提供解决方案(例如,反恶意软件、网络防火墙等)。管理员312可以是具有管理由一个或多个服务提供商308提供的一个或多个服务的漏洞的权限的实体(例如,监管机构(例如,政府或管理机构)或区块链网络302的管理员或所有者)。例如,管理员312可以被授权管理由安全专家304识别的服务漏洞或对其进行监视。如本文所述的服务用户306、服务提供商308、安全服务提供商310和管理员312可以包括被编程为执行本文描述的方法的任何合适的计算机、模块、服务器或计算元件或与之相关。
在一些实施例中,安全专家304可以识别由服务提供商308提供的服务的服务漏洞(例如,网络安全漏洞)并将漏洞报告提交给区块链网络302。区块链网络302允许管理员312访问漏洞报告,使得管理员312可以从区块链网络302读取漏洞报告。管理员312验证漏洞报告中的服务漏洞并确定服务漏洞是否实际存在或是否有效。在验证漏洞报告中的服务漏洞之后,管理员312生成漏洞验证报告并将其发送到区块链网络302。区块链网络302可以基于漏洞报告和漏洞验证报告生成或更新漏洞记录,其中漏洞记录包括服务漏洞的信息,例如服务漏洞的表现形式、将导致服务漏洞的条件和操作、服务漏洞的影响等。
区块链网络302可以向服务提供商308提供对漏洞记录的访问,使得服务提供商308可以获得服务漏洞的信息。服务提供商308可以对服务漏洞的信息进行分析并生成解决方案(例如,软件补丁、硬件替换等)以修复或以其他方式解决或减轻服务漏洞。服务提供商308可以应用解决方案并且例如通过发送解决方案通知来向区块链网络302通知解决方案。区块链网络302可以基于来自服务提供商308的解决方案通知来更新漏洞记录。
在一些实施例中,服务提供商308可以向安全专家304提供通证(例如,加密通证)作为用于识别服务漏洞的奖励。区块链网络302可以向服务用户306和安全服务提供商310提供对漏洞记录的访问,使得他们可以获得服务漏洞的信息和针对服务漏洞的解决方案。服务用户306和安全服务提供商310可以独立地对服务漏洞的信息和解决方案进行分析,检查是否存在与已知服务漏洞相关的其他服务漏洞,升级对应的网络安全方案(例如,升级反恶意软件和防火墙等)并执行任何其他适当的操作。
图4描绘了可以根据本文的实施例执行的处理的示例。信号流表示用于基于区块链网络管理服务漏洞的处理400。为方便起见,处理将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的分布式系统(例如,图3的系统300)可以执行该处理。
在一些实施例中,可以定义用于管理服务漏洞的一个或多个智能合约。在网络安全漏洞管理方案的各方或参与者之间,例如在一个或多个安全专家304、一个或多个服务用户306、一个或多个服务提供商308、一个或多个安全服务提供商310和一个或多个管理员312之间,可以协商一个或多个智能合约。在一些实施例中,一个或多个智能合约可以包括网络安全漏洞管理方案的每方或每个参与者与区块链网络(例如,区块链网络的共识节点)之间的定义的接口。在一些实施例中,一个或多个智能合约可以包括可以由网络安全漏洞管理方案的每方或每个参与者执行的功能或操作。例如,所述功能或操作可以包括安全专家向区块链网络提交漏洞报告的功能、管理员向区块链网络提交漏洞验证报告的功能、以及服务提供商向区块链网络提交针对识别漏洞的解决方案的信息的功能等等。在一些实施例中,一个或多个智能合约可以定义用于执行某些功能的授权实体。在一些实施例中,一个或多个智能合约可以被部署在区块链网络上并且由授权实体调用以在区块链网络上执行一个或多个功能以用于网络安全漏洞管理。智能合约可促进实行参与实体和区块链网络之间的可跟踪且可信的交互。
处理400开始于402,其中安全专家304识别由服务提供商308提供的服务的一个或多个服务漏洞。在一些示例中,服务可以包括由计算机系统或网络中的服务提供商308实现的软件、硬件和/或网络资源。通常,服务漏洞可能包括软件、硬件或网络中的弱点,威胁行为者(如网络攻击者)可利用这些弱点在计算机系统或网络中执行未授权操作。例如,服务漏洞可以包括服务程序中的入口点,恶意行为者可以使用该入口点突破受保护的计算机系统和网络并渗透受限数据。
服务漏洞的其他示例包括以下:可被威胁者利用以获取对信息的未授权访问或破坏关键处理的自动化系统安全进程、管理控制、内部控制等方面的弱点;可被利用以获得对机密或敏感信息的未授权访问的系统安全进程、硬件设计、内部控制等方面的弱点;可被利用以对计算机系统或活动造成伤害的物理布局、组织、进程、人员、管理、实施、硬件或软件等方面的弱点;以及系统中存在的任何弱点或缺陷。
在404,安全专家304向区块链网络302提交漏洞报告。在一些实施例中,安全专家304可以基于步骤402所确定的服务漏洞来生成漏洞报告。例如,漏洞报告可以识别由服务提供商308提供的服务、服务的版本、服务中识别的服务漏洞、识别服务漏洞的时间戳和/或服务漏洞的任何其他信息。在一些实施例中,安全专家304可以使用其私钥对漏洞验证报告进行签名,并将安全专家304的数字签名包括在漏洞报告中。
在一些实施例中,安全专家304通过对区块链网络302上执行的智能合约进行合约调用将漏洞报告提交给区块链网络302。智能合约可以提供用于将漏洞报告提交给区块链网络302的一个或多个接口和功能。在一些实施例中,可以执行智能合约以确定安全专家304是否被授权将漏洞报告提交给区块链网络302。例如,区块链网络302可以验证漏洞报告中包括的安全专家304的数字签名,以确定安全专家304是否被授权。如果确定安全专家304被授权将漏洞报告提交给区块链网络302,则区块链网络302可以接受并存储来自安全专家304的漏洞报告。在一些实施例中,区块链网络可以将漏洞报告存储在区块链网络上,例如,通过存储在区块链网络的每个共识节点的区块上。如果确定安全专家304未被授权将漏洞报告提交给区块链网络302,则区块链网络302可以拒绝来自安全专家304的漏洞报告。
在406,管理员312访问来自区块链网络302的漏洞报告。在一些实施例中,管理员312可以监视区块链网络302的区块的任何更新或改变。在一些实施例中,在识别新漏洞报告被存储在区块链网络302的区块中之后,管理员312可以向区块链网络302发送针对漏洞报告的请求。区块链网络302确定管理员312是否被授权获得漏洞报告。例如,区块链网络302可以确定请求中包括的管理员312的数字签名是否有效。如果确定管理员312被授权获得漏洞报告,则区块链网络302将漏洞报告发送给管理员312。如果确定管理员312未被授权获得漏洞报告,则区块链网络302可以拒绝来自管理员312的用于获得漏洞报告的请求。
在替代实施例中,区块链网络302可以周期性地将漏洞报告推送到被授权获取漏洞报告的管理员312。例如,许多管理员312可以从区块链网络302订阅漏洞报告推送服务。区块链网络302可以在从安全专家304接收到漏洞报告之后向订阅管理员302发送漏洞报告。
在408,管理员312验证来自区块链网络302的漏洞报告。例如,管理员312可以确定漏洞报告中识别的一个或多个服务漏洞是否实际存在以及一个或多个服务漏洞的信息是否准确。在一些实施例中,管理员312可以通过利用服务漏洞来执行模拟网络攻击。如果确定模拟网络攻击成功,则管理员312可以确定服务漏洞实际存在并且漏洞报告有效。如果确定模拟网络攻击不成功,则管理员312可以确定服务漏洞不存在并且漏洞报告无效。在验证漏洞报告之后,管理员312可以生成漏洞验证报告。在一些实施例中,漏洞验证报告可以包括漏洞报告中识别的服务漏洞和指示服务漏洞是否已经被验证存在的验证报告。在一些实施例中,管理员312可以使用其私钥对漏洞验证报告进行签名,并将管理员312的数字签名包括在漏洞验证报告中。
在410,管理员312将漏洞验证报告发送到区块链网络302。在一些实施例中,管理员312可以通过对在区块链网络302上执行的智能合约进行合约调用来提交漏洞验证报告。区块链网络302可以例如通过验证管理员312的数字签名确定管理员312是否被授权提交漏洞验证报告。如果确定管理员312被授权提交漏洞验证报告,则区块链网络302可以接受并存储漏洞验证报告。如果确定管理员312未被授权提交漏洞验证报告,则区块链网络302可以拒绝漏洞验证报告。
在一些实施例中,区块链网络302生成或更新漏洞记录。区块链网络302可以基于漏洞报告和漏洞验证报告生成或更新漏洞记录。漏洞记录包括服务漏洞的信息,其包括漏洞报告和/或漏洞验证报告中包含的部分或全部信息。例如,漏洞记录可以包括多个漏洞条目,其中每个漏洞条目可以包括服务的服务名称、服务的版本、提供服务的服务提供商308的标识、对所识别的服务漏洞的说明、识别漏洞的时间戳以及来自管理员312的所识别漏洞的验证结果等。
在412,服务提供商308访问区块链网络302以获得漏洞信息。在一些实施例中,服务提供商308可以监视区块链网络302的区块的任何更新或改变。在一些实施例中,在识别区块链网络302的区块中存储的漏洞记录的更新之后,服务提供商308可以向区块链网络302发送用于访问区块链网络302中存储的漏洞记录的请求。区块链网络302可以确定服务提供商308是否被授权访问漏洞记录。例如,区块链网络302可以确定请求中包括的服务提供商308的数字签名是否有效。如果确定服务提供商308被授权访问漏洞记录,则区块链网络302可以将漏洞记录发送到服务提供商308。在一些实施例中,区块链网络302确定与服务提供商308相关的漏洞记录的子集,并将该漏洞记录的子集发送给服务提供商308。如果确定服务提供商308未被授权访问漏洞记录,则区块链网络302可以拒绝来自服务提供商308用于访问漏洞记录的请求。
在替代实施例中,区块链网络302可以周期性地将漏洞记录推送到被授权访问漏洞记录的服务提供商308。例如,许多服务提供商308可以从区块链网络302订阅漏洞记录推送服务。区块链网络302可以将最新漏洞记录发送到订阅服务提供商308。在一些实施例中,区块链网络302识别与服务提供商308相关的漏洞记录的子集,并将该漏洞记录的子集发送给相应的服务提供商308。
在414,服务提供商308基于从区块链网络302获得的漏洞信息生成针对所识别的服务漏洞的解决方案。服务提供商308可以对漏洞信息进行分析以识别服务漏洞的潜在原因。服务提供商308可以对漏洞信息进行分析以识别受服务漏洞负面影响的软件、硬件和网络资源。在一些实施例中,服务提供商308可以生成软件补丁以补救与软件相关的服务漏洞。在一些实施例中,服务提供商308可以识别需要被替换的功能异常的硬件组件。在一些实施例中,服务提供商308还可以识别网络防火墙中的漏洞并生成防火墙更新以补救漏洞。
在416,服务提供商308应用该解决方案来补救服务漏洞。例如,服务提供商308可以将软件补丁应用于受服务漏洞影响的软件。在一些实施例中,服务提供商308可以替换功能异常的硬件组件。在一些实施例中,服务提供商308可以应用防火墙更新来补救防火墙中的漏洞。在一些实施例中,服务提供商308可以将例如软件补丁的解决方案发送给服务中受服务漏洞影响的服务用户306。
在418,服务提供商308向区块链网络302发送通知以通知区块链网络302该解决方案。在一些实施例中,服务提供商308可以使用其私钥对通知进行签名,并将服务提供商308的数字签名包括在该通知中。在一些实施例中,服务提供商308通过对在区块链网络302上执行的智能合约进行合约调用来发送通知。在一些实施例中,该通知包括服务的服务名称/服务的版本、提供服务的服务提供商308的标识、对所识别的服务漏洞的说明以及解决方案的信息(例如,用于获得或下载解决方案的网络地址、解决方案的版本)等。如上所述,区块链网络302存储漏洞记录。区块链网络302可以更新漏洞记录以将针对服务漏洞的解决方案的一些或全部信息包括到漏洞记录中。
在420,在一些实施例中,服务提供商308向区块链网络302发送用于向识别服务漏洞的安全专家304授予通证的请求。通证可以是加密通证,其被支付给安全专家304作为对识别服务漏洞的激励。在一些实施例中,服务提供商308可以发起交易以在区块链网络302上将加密通证添加、存储或转移到安全专家304的账户。
在422,在一些实施例中,区块链网络302将通证授予安全专家。在一些实施例中,区块链网络302可以执行交易以在区块链网络302上将加密通证添加、存储或转移到安全专家304的账户。
在一些实施例中,区块链网络302可以向系统300例如服务用户306和安全服务提供商310的其他参与者提供对漏洞记录中的漏洞和解决方案信息的访问。例如,区块链网络302可以修改区块链网络302上的漏洞记录的访问权限,使得服务用户306和安全服务提供商310可以访问漏洞记录。
在424,服务用户306访问区块链网络302以获得漏洞记录中的漏洞和解决方案信息。在一些实施例中,服务用户306可以监视区块链网络302的区块的任何更新或改变。在一些实施例中,在识别区块链网络302的区块中存储的漏洞记录的更新之后,服务提供商308可以向区块链网络302发送针对漏洞和解决方案信息的请求。区块链网络302可以验证服务用户306的身份,如果识别验证成功,则将漏洞和解决方案信息发送给服务用户306。在一些实施例中,区块链网络302可以周期性地将漏洞和解决方案信息推送到订阅服务用户306。
在426,服务用户306对漏洞和/或解决方案信息进行分析。在一些实施例中,服务用户306可以对程序、协议、网络、数据库系统进行系统分析,以确定服务漏洞是否已经被补救。在一些实施例中,服务用户306可以确定由服务漏洞引起的数据丢失或数据损坏是否存在。如果数据丢失或数据损坏存在,则服务用户306可以使用数据检索方法或工具来检索丢失的数据或损坏的数据。在一些实施例中,除了应用由服务提供商308提供的解决方案之外,服务用户306还可以将额外的解决方案应用于服务漏洞。在一些实施例中,服务用户306,可以例如在特定时间段期间、针对某个服务提供商或者由于特定原因,对一个或多个漏洞和/或解决方案进行分析。在一些实施例中,服务用户306可以生成详述分析结果的报告。在一些实施例中,服务用户306可以基于漏洞和/或解决方案信息执行额外或不同的分析和操作。
在428,安全服务提供商310访问区块链网络302以获得漏洞记录中的漏洞和解决方案信息。在一些实施例中,安全服务提供商310可以监视区块链网络302的区块的任何更新或改变。在一些实施例中,在识别区块链网络302的区块中存储的漏洞记录的更新之后,安全服务提供商310可以向区块链网络302发送针对漏洞和解决方案信息的请求。区块链网络302可以验证安全服务提供商310的身份,如果识别验证成功,则将漏洞和解决方案信息发送给安全服务提供商310。在一些实施例中,区块链网络302可以周期性地将漏洞和解决方案信息推送到订阅安全服务提供商310。
在430,安全服务提供商310更新或升级其安全方案。例如,向服务用户306提供防火墙服务或反恶意软件的安全服务提供商310可以向防火墙服务或反恶意软件提供更新或补丁以解决所识别的服务漏洞。在一些实施例中,安全服务提供商310可以例如在特定时间段期间、针对某个服务提供商或者由于特定原因,对发现的漏洞和/或解决方案进行分析。在一些实施例中,安全服务提供商310可以生成详述分析结果的报告。在一些实施例中,安全服务提供商310可以预测其他潜在漏洞并主动提供针对其他潜在漏洞的安全方案。在一些实施例中,安全服务提供商310可以基于漏洞和/或解决方案信息执行额外或不同的分析和操作。
图5是用于网络安全漏洞管理的处理500的示例的流程图。处理500可以是由区块链网络在图4的处理400的上下文中执行的处理。为方便起见,处理500将被描述为由位于一个或多个位置并根据本文被适当地编程的一个或多个计算机的系统执行。例如,被适当地编程的分布式系统(例如,图3的区块链系统300),可以执行处理500。
在502,区块链网络(例如,区块链网络302)例如根据相对于图4的404描述的技术从客户端设备(例如,安全专家304)接收漏洞报告。在一些实施例中,漏洞报告指示由服务提供商(例如,服务提供商308)提供的服务的网络安全漏洞。在一些实施例中,网络安全漏洞包括软件漏洞和/或硬件漏洞。
在504,区块链网络向管理服务器(例如,管理员312)提供对漏洞报告的访问,以例如根据相对于图4的406所描述的技术验证漏洞报告中的网络安全漏洞。在一些实施例中,例如,由于管理服务器对区块链网络中存储的漏洞报告的订阅,区块链网络通过将漏洞报告推送到管理服务器向管理服务器提供对漏洞报告的访问。在一些实施例中,区块链网络从管理服务器接收针对漏洞报告的请求。区块链网络可以确定管理服务器是否被授权获得漏洞报告。如果确定管理服务器被授权获得漏洞报告,则区块链网络将漏洞报告发送给管理服务器。在一些实施例中,如果确定管理服务器未被授权获得漏洞报告,则区块链网络可以拒绝来自管理服务器的用于获得漏洞报告的请求。
在506,区块链网络例如根据相对于图4的410描述的技术从管理服务器接收漏洞验证报告。漏洞验证报告指示对漏洞报告中的网络安全漏洞的验证。在一些实施例中,区块链网络可以确定管理服务器是否被授权提交漏洞验证报告。如果确定管理服务器被授权提交漏洞验证报告,则区块链网络可以接受并存储漏洞验证报告。如果确定管理服务器未被授权提交漏洞验证报告,则区块链网络可以拒绝漏洞验证报告。
在一些实施例中,区块链网络从客户端设备接收漏洞报告。在一些实施例中,区块链网络从服务提供商接收用于奖励客户端设备的区块链账户的请求。响应于从服务提供商接收到该请求,区块链网络可以提供向客户端设备的区块链账户提供数字通证作为奖励。
在508,区块链网络将网络安全信息的信息存储到漏洞报告中。在一些实施例中,基于漏洞报告和漏洞验证报告生成漏洞记录。漏洞记录包括关于网络安全漏洞的信息。例如,关于网络安全漏洞的信息可以包括漏洞报告和/或漏洞验证报告中包含的部分或全部信息。例如,漏洞记录可以包括多个漏洞条目,其中每个漏洞条目可以包括服务的服务名称、服务的版本、提供服务的服务提供商的标识、对所识别的服务漏洞的说明、识别漏洞的时间戳以及来自管理服务器的对所识别的漏洞的验证结果等。
在510,区块链网络例如根据相对于图4的412描述的技术向服务提供商提供对漏洞记录的访问。在一些实施例中,例如,由于服务提供商对区块链网络中存储的漏洞报告的订阅,区块链网络通过将漏洞记录推送到服务提供商向服务提供商提供对漏洞记录的访问。在一些实施例中,区块链网络可以确定服务提供商是否被授权访问漏洞记录。如果确定服务提供商被授权访问漏洞记录,则区块链网络可以将漏洞记录发送到服务提供商。在一些实施例中,区块链网络确定与服务提供商相关的漏洞记录的子集,并将该漏洞记录的子集发送给服务提供商。在一些实施例中,如果确定服务提供商未被授权访问漏洞记录,则区块链网络可拒绝来自服务提供商的用于访问漏洞记录的请求。
在512,区块链网络,例如根据相对于图4的418所描述的技术,接收指示来自服务提供商的解决方案的通知。该通知指示针对网络安全漏洞的解决方案。在一些实施例中,服务提供商通过对在区块链网络上执行的智能合约进行合约调用来发送通知。在一些实施例中,该通知包括服务的服务名称、服务的版本、提供服务的服务提供商的标识、所识别的服务漏洞的说明以及解决方案的信息(例如,获得或下载解决方案的网络地址、解决方案的版本)等。
在514,区块链网络将针对网络安全漏洞的解决方案存储到漏洞记录中。在一些实施例中,区块链网络可以更新漏洞记录以包括针对服务漏洞的解决方案的一些或全部信息。
在516,区块链网络向该服务的服务用户提供对漏洞记录的访问。在一些实施例中,服务用户可以监视区块链网络的区块的任何更新或改变。在一些实施例中,在识别区块链网络的区块中存储的漏洞记录的更新之后,服务提供商可以向区块链网络发送针对漏洞和解决方案信息的请求。区块链网络可以验证服务用户的身份,如果识别验证成功,则将漏洞和解决方案信息发送给服务用户。在一些实施例中,区块链网络可以周期性地将漏洞和解决方案信息推送到订阅服务的用户。
图6描绘了根据本文的实施例的装置600的模块的示例。装置600可以是被配置为管理网络安全漏洞的区块链网络的节点的实施例的示例。装置600可以对应于上述实施例,并且装置600包括以下:第一接收模块602,用于接收指示由服务提供商提供的服务的网络安全漏洞的漏洞报告;第一提供模块604,用于向管理服务器提供对漏洞报告的访问,以验证漏洞报告中的网络安全漏洞;第二接收模块606,用于从管理服务器接收指示对漏洞报告中的网络安全漏洞的验证的漏洞验证报告;存储模块608,用于将关于网络安全漏洞的信息存储到在区块链网络上存储的漏洞记录中,其中,关于网络安全漏洞的信息基于漏洞报告和漏洞验证报告;第二提供模块610,用于向服务提供商提供对漏洞记录的访问;第三接收模块612,用于从服务提供商接收指示针对网络安全漏洞的解决方案的通知。
在可选实施例中,网络安全漏洞包括软件漏洞和/或硬件漏洞。
在可选实施例中,装置600还包括:接收子模块,用于从管理服务器接收用于访问漏洞报告的请求;确定子模块,用于确定管理服务器是否被授权访问漏洞报告;和发送子模块,用于响应于确定管理服务器被授权访问漏洞报告,将漏洞报告发送到管理服务器。
在可选实施例中,装置600还包括:接收子模块,用于从服务提供商接收用于访问漏洞验证报告的请求;确定子模块,用于确定服务提供商是否被授权访问漏洞验证报告;发送子模块,用于响应于确定服务提供商被授访问漏洞验证报告,将漏洞验证报告发送给服务提供商。
在可选实施例中,所述漏洞报告是由区块链网络从客户端设备接收的,并且装置600还包括以下:接收子模块,用于从服务提供商接收用于奖励客户端设备的区块链账户的请求;以及提供子模块,用于响应于从服务提供商接收到请求,向客户端设备的区块链账户提供数字通证作为奖励。
在可选实施例中,装置600还包括:存储子模块,用于响应于从服务提供商接收到通知,将针对网络安全漏洞的解决方案存储到漏洞记录中;以及提供子模块,用于向服务的服务用户提供对漏洞记录的访问。
在可选实施例中,对网络安全漏洞的解决方案包括软件补丁和/或硬件替换。
在先前实施例中示出的系统、装置、模块或单元可以通过使用计算机芯片或实体来实现,或者可以通过使用具有特定功能的产品来实现。典型的实施例设备是计算机,计算机可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或这些设备的任意组合。
对于装置中每个单元的功能和角色的实施例处理,可以参考前一方法中相应步骤的实施例处理。为简单起见,这里省略了细节。
由于装置实施例基本上对应于方法实施例,对于相关部分,可以参考方法实施例中的相关描述。先前描述的装置实施例仅是示例。被描述为单独部分的模块可以是或不是物理上分离的,并且显示为模块的部分可以是或不是物理模块,可以位于一个位置,或者可以分布在多个网络模块上。可以基于实际需求来选择一些或所有模块,以实现本文方案的目标。本领域普通技术人员无需付出创造性劳动就能理解和实现本申请的实施例。
再次参考图6,其可以被解释为示出内部功能模块和区块链网络安全漏洞管理装置的结构。区块链网络安全漏洞管理装置可以是被配置为管理网络安全漏洞的区块链网络节点的示例。本质上,执行主体可以是电子设备,电子设备包括:一个或多个处理器;被配置为存储一个或多个处理器的可执行指令存储器。
本文中描述的技术产生若干技术效果。在一些实施例中,安全专家向区块链网络提交漏洞报告,区块链网络确定安全专家是否有权提交包括关于一个或多个网络安全漏洞的信息的漏洞报告。这可以防止未授权实体向区块链网络发布恶意内容,从而危害区块链网络的安全性。在一些实施例中,管理员访问区块链网络以获得漏洞报告并验证漏洞报告中识别的网络安全漏洞是否确实存在。区块链网络在授予管理员访问权限之前确定管理员是否有权访问漏洞报告。这可以防止未授权实体获取关于已识别的网络安全漏洞的信息。如果未授权实体(例如恶意行为者)获取漏洞报告,则恶意行为者可以利用报告中识别的漏洞侵入计算机系统和网络,并渗透受保护的数据。同样地,本文描述的技术提高了实现这些技术的计算机系统、网络和数据库系统的安全性。
此外,在一些实施例中,安全专家通过对在区块链网络上执行的智能合约进行合约调用来向区块链网络提交漏洞报告。管理员通过对智能合约的合约调用向区块链网络提交漏洞验证报告。服务提供商通过对智能合约的合约调用向区块链网络提交对识别的漏洞的解决方案的信息。智能合约促进实施参与实体(例如安全专家、管理员和服务提供商等)和区块链网络之间的可跟踪且可信交互。
此外,在一些实施例中,区块链网络维护漏洞记录,该漏洞记录包括关于所识别的网络安全漏洞的信息和对漏洞的解决方案。区块链网络可以向授权参与实体授予对漏洞记录的访问。通过这种方式,漏洞记录由所有授权参与实体共享,以便每个实体不需要维护单独的漏洞记录。这节省了计算资源和网络资源,以便每个实体单独维护漏洞记录。
所描述的主题的实施例可以包括单独或组合的一个或多个特征。例如,在第一实施例中,用于网络安全漏洞管理的方法包括:区块链网络接收指示由服务提供商提供的服务的网络安全漏洞的漏洞报告;区块链网络向管理服务器提供对漏洞报告的访问,以验证漏洞报告中的网络安全漏洞;区块链网络从管理服务器接收指示对漏洞报告中的网络安全漏洞的验证的漏洞验证报告;区块链网络将关于网络安全漏洞的信息存储到在区块链网络上存储的漏洞记录中,其中关于网络安全漏洞的信息基于漏洞报告和漏洞验证报告;区块链网络向服务提供商提供对漏洞记录的访问;区块链网络从服务提供商接收指示针对网络安全漏洞的解决方案的通知。
前述和其他描述的实施例可以各自可选地包括以下特征中的一个或多个:
第一特征,可与以下任何特征相结合,指定网络安全漏洞包含软件漏洞和/或硬件漏洞。
第二特征,可与任何前述或以下特征组合,指定该方法还包括:区块链网络从管理服务器接收用于访问漏洞报告的请求;区块链网络确定管理服务器是否被授权访问漏洞报告;以及响应于确定管理服务器被授权访问漏洞报告,将漏洞报告发送到管理服务器。
第三特征,可与任何前述或以下特征组合,指定该方法还包括:区块链网络从服务提供商接收用于访问漏洞验证报告的请求;区块链网络确定服务提供商是否被授权访问漏洞验证报告;以及响应于确定服务提供商被授权访问漏洞验证报告,将漏洞验证报告发送给服务提供商。
第四特征,可与任何前述或以下特征组合,指定其中漏洞报告是由区块链网络从客户端设备接收的,并且该方法还包括:区块链网络从服务提供商接收用于奖励客户端设备的区块链账户的请求;以及响应于从服务提供商接收到该请求,区块链网络向客户端设备的区块链账户提供数字通证作为奖励。
第五特征,可与任何前述或以下特征组合,指定该方法还包括:响应于从服务提供商接收到通知,区块链网络将针对网络安全漏洞的解决方案存储到漏洞记录中;以及区块链网络向该服务的服务用户提供对漏洞记录的访问。
第六特征,可与任何前述或以下特征结合,指定针对网络安全漏洞的解决方案包括软件补丁和/或硬件替换。
本文中描述的主题、动作以及操作的实施例可以在数字电子电路、有形体现的计算机软件或固件、计算机硬件中实现,包括本文中公开的结构及其结构等同物,或者它们中的一个或多个的组合。本文中描述的主题的实施例可以实现为一个或多个计算机程序,例如,一个或多个计算机程序指令模块,编码在计算机程序载体上,用于由数据处理装置执行或控制数据处理装置的操作。例如,计算机程序载体可以包括具有编码或存储在其上的指令的一个或多个计算机可读存储介质。所述载体可以是有形的非暂态计算机可读介质,例如磁盘、磁光盘或光盘、固态驱动器、随机存取存储器(RAM)、只读存储器(ROM)或其他类型媒体。可选地或附加地,载体可以是人工生成的传播信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息用于传输到合适的接收器装置以供数据处理装置执行。计算机存储介质可以是或部分是机器可读存储设备、机器可读存储基板、随机或串行访问存储器设备或它们中的一个或多个的组合。计算机存储介质不是传播信号。
计算机程序也可以被称为或描述为程序、软件、软件应用程序、app、模块、软件模块、引擎、脚本或代码,可以以任何形式的编程语言编写,包括编译或演绎性语言、说明或程序性语言;它可以配置为任何形式,包括作为独立程序,或者作为模块、组件、引擎、子程序或适合在计算环境中执行的其他单元,该环境可包括由通信数据网络互联的在一个或多个位置的一台或多台计算机。
计算机程序可以但非必须对应于文件系统中的文件。计算机程序可以存储在:保存其他程序或数据的文件的一部分中,例如,存储在标记语言文档中的一个或多个脚本;专用于所讨论的程序的单个文件;或者多个协调文件,例如,存储一个或多个模块、子程序或代码部分的多个文件。
用于执行计算机程序的处理器包括,例如,通用和专用微型处理器两者,和任意种类数码计算机的任意一个或多个处理器。通常,处理器将接收用于执行的计算机程序的指令以及来自耦接到所述处理器的非暂态计算机可读介质的数据。
术语“数据处理装置”包括用于处理数据的所有类型的装置、设备和机器,包括例如可编程处理器、计算机或者多处理器或计算机。数据处理装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)、ASIC(专用集成电路)或GPU(图形处理单元)。除了硬件,该装置还可以包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或者它们中的一个或多个的组合的代码。
本文中描述的处理和逻辑流程可由一台或多台计算机或处理器执行一个或多个计算机程序来进行,以进行通过对输入数据进行运算并生成输出的操作。处理和逻辑流程也可以由例如FPGA、ASIC、GPU等的专用逻辑电路或专用逻辑电路与一个或多个编程计算机的组合来执行。
适合于执行计算机程序的计算机可以基于通用和/或专用微处理器,或任何其他种类的中央处理单元。通常,中央处理器将从只读存储器和/或随机存取存储器接收指令和数据。计算机的元件可包括用于执行指令的中央处理单元以及用于存储指令和数据的一个或多个存储器设备。中央处理单元和存储器可以补充有专用逻辑电路或集成在专用逻辑电路中。
通常,计算机还将包括或可操作地耦接至一个或多个大容量存储设备,以从一个或多个大容量存储设备接收数据或将数据传输到一个或多个存储设备。存储设备可以是例如磁盘、磁光盘或光盘,固态驱动器或任何其他类型的非暂态计算机可读介质。但是,计算机不需要具有这样的设备。因此,计算机可以耦接到本地和/或远程的一个或多个存储设备,例如一个或多个存储器。例如,计算机可以包括作为计算机的组成部分的一个或多个本地存储器,或者计算机可以耦接到云网络中的一个或多个远程存储器。此外,计算机可以嵌入在另一个设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或例如通用串行总线(USB)闪存驱动器的便携式存储设备,仅举几例。
组件可以通过彼此交换地例如电连接或光学连接直接地或经由一个或多个中间组件彼此“耦接”。如果组件中的一个组件集成到另一个组件中,组件也可以彼此“耦接”。例如,存储组件集成到处理器(例如,L2高速缓存组件)中即“耦接到”处理器中。
为了提供与用户的交互,本文中描述的主题的实施例可以在计算机上实现或配置为与该计算机通信,该计算机具有:显示设备,例如,LCD(液晶显示器)监视器,用于向用户显示信息;以及输入设备,用户可以通过该输入设备向该计算机提供输入,例如键盘和例如鼠标、轨迹球或触摸板等的指针设备。其他类型的设备也可用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以接收来自用户的任何形式的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过向用户设备上的web浏览器发送web页面以响应从web浏览器收到的请求,或者通过与例如智能电话或电子平板电脑等的用户设备上运行的应用程序(app)进行交互。此外,计算机可以通过向个人设备(例如,运行消息应用的智能手机)轮流发送文本消息或其他形式的消息并接收来自用户的响应消息来与用户交互。
本文使用与系统、装置和计算机程序组件有关的术语“配置为”。对于被配置为执行特定操作或动作的一个或多个计算机的系统,意味着系统已经在其上安装了在运行中促使该系统执行所述操作或动作的软件、固件、硬件或它们的组合。对于被配置为执行特定操作或动作的一个或多个计算机程序,意味着一个或多个程序包括当被数据处理装置执行时促使该装置执行所述操作或动作的指令。对于被配置为执行特定操作或动作的专用逻辑电路,意味着该电路具有执行所述操作或动作的电子逻辑。
虽然本文包括许多具体实施细节,但是这些不应被解释为由权利要求本身限定的对要求保护的范围的限制,而是作为对特定实施例的具体特征的描述。在本文多个单独实施例的上下文中描述的多个特定特征也可以在单个实施例中的组合实现。相反,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合在多个实施例中实现。此外,尽管上面的特征可以描述为以某些组合起作用并且甚至最初如此要求保护,但是在一些情况下,可以从要求保护的组合中删除来自该组合的一个或多个特征,并且可以要求保护指向子组合或子组合的变体。
类似地,虽然以特定顺序在附图中描绘了操作并且在权利要求中叙述了操作,但是这不应该被理解为:为了达到期望的结果,要求以所示的特定顺序或依次执行这些操作,或者要求执行所有示出的操作。在一些情况下,多任务并行处理可能是有利的。此外,上述实施例中的各种系统模块和组件的划分不应被理解为所有实施例中都要求如此划分,而应当理解,所描述的程序组件和系统通常可以一起集成在单个软件产品或者打包成多个软件产品。
已经描述了主题的特定实施例。其他实施例在以下权利要求的范围内。例如,权利要求中记载的动作可以以不同的顺序执行并且仍然实现期望的结果。作为一个示例,附图中描绘的处理无需要求所示的特定顺序或次序来实现期望的结果。在一些情况下,多任务并行处理可能是有利的。