CN115151907A - 验证网络应用的可信度 - Google Patents

验证网络应用的可信度 Download PDF

Info

Publication number
CN115151907A
CN115151907A CN202180016332.7A CN202180016332A CN115151907A CN 115151907 A CN115151907 A CN 115151907A CN 202180016332 A CN202180016332 A CN 202180016332A CN 115151907 A CN115151907 A CN 115151907A
Authority
CN
China
Prior art keywords
code
web application
cryptographic hash
request
trusted
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
CN202180016332.7A
Other languages
English (en)
Inventor
约翰·布雷德利·陈
杰森·杰弗里·米勒
王刚
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN115151907A publication Critical patent/CN115151907A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • 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
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/3226Cryptographic 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 a predetermined code, e.g. password, passphrase or PIN
    • 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
    • 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/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/3297Cryptographic 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 time stamps, e.g. generation of time stamps
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Power Engineering (AREA)
  • Information Transfer Between Computers (AREA)
  • Inspection Of Paper Currency And Valuable Securities (AREA)
  • Materials For Medical Uses (AREA)
  • Investigating Strength Of Materials By Application Of Mechanical Stress (AREA)

Abstract

本公开涉及验证网络应用的可信度。在一个方面,一种方法包括由客户端设备的浏览器获得包括网络应用的代码的电子资源。浏览器呈现电子资源,包括处理网络应用的代码。该代码使浏览器向远程服务器发起请求。响应于处理代码,生成并修改请求,以包括网络应用的完整性元素的至少部分。修改后的请求被发送到远程服务器。从远程服务器接收对该请求的响应。该响应基于远程服务器使用完整性元素验证网络应用是可信的。基于响应显示数据。

Description

验证网络应用的可信度
技术领域
本说明书涉及网络应用安全性。
背景技术
网络应用也称为网络app,是在网络浏览器中运行的应用。可以使用脚本、超文本标记语言(HTML)、级联样式表(CSS)和/或其他网络技术来构建网络应用。网络应用通常通过发送请求,例如超文本传输协议HTTP请求,与相应的网络服务器进行交互。
发明内容
一般而言,本说明书中描述的主题的一个创新方面可以体现在方法中,该方法包括:由客户端设备的浏览器获得包括用于网络应用的代码的电子资源;由浏览器呈现电子资源,包括处理网络应用的代码,其中该代码使浏览器向远程服务器发起请求;响应于处理代码:生成请求;修改该请求以包括该网络应用的完整性元素的至少部分;并将修改后的请求发送到远程服务器;从所述远程服务器,基于所述远程服务器使用完整性元素验证所述网络应用是可信的,接收对所述请求的响应;以及基于该响应显示数据。该方面的其他实现方式包括对应的装置、系统和计算机程序,其被配置为执行该方法的方面,并被编码在计算机存储设备上。
这些和其他实现方式可以各自可选地包括一个或多个以下特征。在一些方面,修改请求以包括完整性元素包括将完整性元素的部分插入到请求的报头中。
在一些方面,电子资源包括完整性元素。一些方面可以包括,响应于处理代码,由浏览器至少部分地基于网络应用的代码和完整性元素来验证网络应用是可信的。该请求可以响应于验证该网络应用是可信的而生成。网络应用的完整性元素可包括完整性属性,该属性指定(i)加密散列函数和(ii)使用加密散列函数和网络应用的可信代码计算的可信加密散列。
由浏览器至少部分地基于网络应用的代码和完整性元素来验证网络应用是可信的可以包括由浏览器并使用加密散列函数来计算由浏览器获得的网络应用的代码的加密散列;通过将所计算的加密散列与可信加密散列进行比较来确定所计算的加密散列与可信加密散列匹配;以及响应于确定所计算的加密散列与可信加密散列匹配,由浏览器验证网络应用是可信的。完整性元素的该部分可以包括可信加密散列。
在一些方面,完整性元素包括经签过名的批准元素,该经签过名的批准元素包括完整性数据集合和基于完整性数据集合生成的数字签名,该完整性数据集合可以包括使用加密散列函数和网络应用的可信代码计算的可信加密散列、可信签名者的标识以及指示生成数字签名的时间的时间戳。完整性元素的该部分可以包括完整性数据集合和数字签名。
在一些方面,修改请求包括在请求中插入标识嵌入代码的上下文的数据。标识嵌入代码的上下文的数据包括以下至少一项:(i)代码被嵌入的电子资源的帧的属性或该帧的属性的加密散列。
在一些方面,完整性元素包括网络分组的数字签名,该网络分组包括网络应用的组成部分和标识网络分组的数据。网络应用的完整性元素可以包括完整性属性,其指定(i)加密散列函数和(ii)使用加密散列函数和网络应用的可信资产计算的可信加密散列。可信资产可以包括网络应用的图像、标志或其他资产。
当网络应用向例如网络服务器的服务器发送例如HTTP请求的请求时,拥有或操作服务器的实体可能希望服务器评估调用网络应用的可信度。例如,实体可能希望确认发起请求的代码是由目标域提供的,代码没有被修改,并且扩展没有改变代码的行为。该实体还可能希望服务器理解和/或响应其中代码被嵌入的帧——例如iframes——的存在和上下文。这可以确保网络应用没有被欺诈性地使用和/或网络应用的代码没有被修改。
本说明书中描述的主题可以在特定实施例中实现,以便实现一个或多个以下优点。网络应用的可信度可以由网络服务器在对网络应用发起的请求提供响应之前进行验证,以确保该响应被提供给可信的网络应用,而不是该网络应用的修改的、欺诈的和/或恶意的版本。可以为网络应用、呈现网络应用的浏览器以及运行浏览器的客户端设备建立信任链,这确保了生成和传输请求所涉及的所有组件都是可信的,而不是欺诈性的或被损害的。这确保了请求中信息的完整性,并确保对请求的响应不被用于欺诈或恶意目的。
本文档中描述的验证网络应用可信度的技术可以减少执行验证所需的时间量。例如,使用包括完整性信息集合的数字签过名的签过名的批准元素作为完整性元素,网络应用的验证可以由服务器在小于0.15毫秒(ms)内执行。这使得验证能够用于速度关键的应用中,例如响应于请求或用户与包括网络应用的例如网页的电子资源的交互来提供内容。提供快速响应还防止了在网络应用中出现错误,例如,由于等待来自服务器的响应而花费太长时间来完成验证过程。
通过让网络应用安全地将其可信度传送给网络服务器,网络服务器可以验证网络应用的可信度,而不限制开发者开发网络应用的能力,并且也不降低用户对合法网络应用的体验。
下面参照附图描述前述主题的各种特征和优点。根据本文描述的主题和权利要求,附加的特征和优点是显而易见的。
附图说明
图1示出了验证网络应用的可信度的环境。
图2示出了具有完整性元素的网络应用被上传以分发给客户端设备的环境。
图3示出了具有完整性元素的网络应用被上传以分发给客户端设备的环境。
图4是图示用于验证网络应用的可信度的示例过程的泳道图。
图5是图示用于验证应用的可信度并响应于验证网络应用的可信度而提供响应的示例过程的流程图。
图6是示例计算机系统的框图。
不同附图中相同的附图标记和名称表示相同的元件。
具体实施方式
总的来说,本文档描述了用于验证网络应用的可信度的系统和技术。网络服务器可以响应于从网络应用接收到请求来验证网络应用的可信度。这样,网络服务器可以在提供对请求的响应之前确保网络应用是可信的。
服务器可以使用请求中包含的完整性元素来验证网络应用的可信度。完整性元素可以有不同的形式或数据结构,但每种形式或数据结构都可以单独或与其他信息一起用于验证网络应用的可信度。例如,服务器还可以验证请求源自适当的来源,该来源可以是包括网络应用的电子资源(例如,网页)的域。在另一示例中,服务器可以验证呈现网络应用的上下文是适当的或常见的上下文。尽管这些技术是根据网络浏览器和网络应用来描述的,但是类似的技术可以用于在其他上下文中验证嵌入式应用的完整性,例如,在为特定平台或特定设备开发的原生应用中。
图1示出了环境100,其中验证了网络应用的可信度。示例环境100包括数据通信网络105,诸如局域网(LAN)、广域网(WAN)、互联网、移动网络或其组合。网络105连接客户端设备110、内容管理系统120和网络服务器130。虽然被称为网络服务器,但是网络服务器130可以使用其他类型的计算系统来实现,但是被称为与嵌入在电子资源中的网络应用交互的网络服务器。
客户端设备110是能够通过网络105进行通信的电子设备。示例客户端设备110包括个人计算机、移动通信设备,例如智能电话,以及可以通过网络105发送和接收数据的其他设备。客户端设备还可以包括通过麦克风接受音频输入并通过扬声器输出音频输出的数字助理设备。当数字助理检测到激活麦克风以接受音频输入的“热门词”或“热门短语”时,数字助理可以被置于收听模式(例如,准备好接受音频输入)。数字助理设备还可以包括照相机和/或显示器,以捕捉图像并可视地呈现信息。数字助理可以在不同形式的硬件设备中实现,包括可穿戴设备(例如,手表或眼镜)、智能电话、扬声器设备、平板设备或另一硬件设备。客户端设备还可以包括数字媒体设备,例如插入电视或其他显示器以将视频流式传输到电视、游戏系统或虚拟现实系统的流式传输设备。
客户端设备110通常包括应用,诸如网络浏览器111和/或原生应用,以便于通过网络105发送和接收数据。原生应用是为特定平台或特定设备(例如,具有特定操作系统的移动设备)开发的应用。
内容管理系统120可以包括响应于从浏览器111接收的请求而提供电子资源的服务器。内容管理系统120可以托管发布者的网站。网站包括与域名相关联并由内容管理系统120的一个或多个服务器托管的一个或多个电子资源。示例网站是以超文本标记语言(HTML)格式化的网页的群集,其可以包含文本、图像和/或多媒体内容。电子资源还可以包括用脚本、HTML、层叠样式表(CSS)、浏览器扩展或其他网络技术构建的一个或多个网络应用。每个网站由内容发布者维护,内容发布者是控制、管理和/或拥有网站的实体。
资源是可以由发布者通过网络105提供的任何数据,并且可以与资源地址相关联。资源包括HTML页面、文字处理文档和可携带文档格式(PDF)文档、图像、视频和馈送源,仅举几例。资源可以包括内容,诸如单词、短语、图片等,并且可以包括嵌入的信息(诸如元数据和超链接)和/或嵌入的指令(例如脚本)。
网络服务器130可以接收和响应来自网络应用的请求。例如,网络应用的一些功能可以涉及在远离客户端设备110的远程服务器处执行的任务,网络应用在该远程服务器上被处理,例如被执行。网络应用可以发起请求,并且浏览器111可以将该请求发送到对应于网络应用的网络服务器130。网络服务器130可以与执行任务并向浏览器111提供响应的应用服务器交互,浏览器111又向网络应用提供响应。然后,网络应用可以基于该响应在浏览器内呈现内容,显示验证响应于该请求执行了动作的数据,或者基于该响应执行一些其他动作。
网络服务器130可以在对请求采取行动和/或对请求提供响应之前,验证发起请求的网络应用的可信度。例如,网络服务器可以基于一个或多个完整性信号来确保网络应用至少具有阈值可信度。以下参考阶段A-E来描述用于验证网络应用的可信度的示例过程。
在一些实现方式中,网络服务器130可以建立信任链,该信任链指示以下两项或更多项的可信度:网络应用、正在处理/呈现网络应用的浏览器111的可信度、以及网络浏览器正在其上执行的客户端设备110的可信度。例如,网络服务器130可以从浏览器111接收可用于验证这些组件中的每一个的可信度的数据。如果网络服务器130不能验证组件中的任何一个的可信度,则网络服务器130可以选择不响应该请求,或者确定与如果所有组件都被验证为可信时网络应用将提供的响应不同的修改后的响应。
在阶段A期间,浏览器从内容管理系统120获得电子资源122。可以是网页的电子资源122包括代码124和完整性元素126。代码124可以是包括在,例如嵌入在电子资源122中的网络应用的代码。例如,代码124可以包括包含在HTML文档中的例如<script src="url"></script>的脚本标签之间的脚本。一些电子资源可以包括用于一个或多个网络应用的多个脚本或其他代码元素。
对于一个或多个代码元素中的每一个,电子资源122可以包括相应的完整性元素126。例如,如果网络应用包括多个脚本,则电子资源122可以包括用于每个单独脚本的相应完整性元素126。
尽管本文档中描述的技术主要是根据网络应用代码的完整性元素来描述的,但是相同或类似的技术可以用于验证网络应用的其他资产没有被修改,因此网络应用是可信的。例如,电子资源122可以包括例如每个代码元素、每个图像、每个标志等的每个资产的相应完整性元素。通过验证代码元素(例如,HTML、CSS、脚本)、图像和/或标志没有被修改,网络服务器130可以验证网络应用的外观和感觉没有被修改。
完整性元素126可以采用本文中描述的各种形式之一。在一个示例中,完整性元素可以包括完整性属性或采用完整性属性的形式,该完整性属性指定加密散列函数和使用加密散列函数和网络应用的可信代码计算的可信加密散列。该可信加密散列是预期的散列值,该散列值应该由浏览器111和/或网络服务器130使用加密散列函数和与电子资源122一起接收的实际代码124来计算散列值而得到。代码元素的加密散列可以被称为代码元素的标识。加密散列函数可以是一个或多个选项的散列函数,诸如例如SHA256。
在另一示例中,代码124的完整性元素可以包括签过名的批准元素,其包括完整性数据集合和基于该完整性数据集合生成的数字签名。如下面参考图3所述,签过名的批准元素可以由可信签名者生成。该完整性数据集合可包括使用加密散列函数和网络应用的可信代码计算的可信加密散列、可信签名者的标识以及指示生成数字签名的时间的时间戳。可信签名者的标识可以基于可信签名者的域,例如可信签名者域的eTLD+1。eTLD+1是有效的顶级域名(eTLD)加上比公共后缀多一级的域名。eTLD+1的示例是“example.com”,其中“.com”是顶级域名。
时间戳可以指示生成数字签名的日期和/或时间。例如,时间戳可以是日期、日期和小时,或者更高的分辨率(例如,精确到秒)。在另一示例中,时间戳可以指示自纪元或某个指定日期以来的天数。可以使用可信签名者的私钥和该完整性数据集合来生成数字签名,使得如果使用对应于私钥的公钥验证数字签名失败,则可以检测到对该数据集合的任何修改。
在另一示例中,网络应用可以作为捆绑所有资产(例如,HTML、CSS、脚本、图像等)的网络分组来分发到可能易于分发的文单个件中。这种文件可以由网络应用的开发者或另一适当的实体进行数字签名。这使得网络服务器能够验证由网络分组传递的代码124的实际标识以及其来源。在该示例中,完整性元素可以是网络分组的数字签名。
在阶段B期间,浏览器111呈现电子资源122。当浏览器111呈现网络应用的代码124时,代码124可以在阶段C中指示浏览器111向网络服务器130发送请求112。在完整性元素包括应用的可信代码的可信加密散列的实现方式中,浏览器111可以可选地在生成和发送请求之前验证包括在电子资源122中的代码124是可信的。这可以包括从完整性元素126中提取加密散列函数和可信加密散列的标识,用提取的加密散列函数计算电子资源122中包括的代码124的加密散列,并将计算的加密散列与可信加密散列进行比较。如果两个散列匹配,则代码124的可信度被成功验证,并且浏览器111可以生成并发送该请求。如果两个散列不匹配,浏览器111可以阻止请求112,例如,不发送请求112,或者浏览器111可以停止呈现网络应用的代码124。
在阶段C,浏览器111生成请求112,并将请求112传输到对应于网络应用的网络服务器130。生成请求112可以包括修改请求112以包括代码124的完整性元素126或完整性元素126的至少部分,例如发起请求的单独代码元素。例如,取决于完整性元素126的形式,浏览器111可以修改请求112以包括发起请求112的网络应用的代码124的加密散列,包括发起请求的代码124的签过名的批准元素,或者包括网络分组的数字签名。在完整性元素包括代码124的加密散列的实现方式中,即使当电子资源122不包括包含可信加密散列的完整性属性时,浏览器111可以发送该加密散列。替代地,浏览器可以使用适当的加密散列函数,例如预先指定的散列函数或由电子资源111或代码124标识的散列函数,来生成并发送代码124的加密散列。这样,网络服务器仍然可以知道生成请求112的代码124的标识,并使用代码124的加密散列来确定代码124是否是可信的。
如果电子资源包括完整性属性,并且假设完整性属性的可信加密散列与浏览器111计算的加密散列匹配,则浏览器111可以将两个散列值中的任何一个插入到请求112中。如图1所示,浏览器111可以将完整性元素或完整性元素的部分插入到HTTP请求的报头114中,该HTTP请求还包括具有请求112的附加信息的主体116,附加信息例如,请求112的目的、在处理请求112时使用的数据等。如下面更详细描述的,浏览器111可以将附加的完整性信息插入到请求112中,例如插入到报头114中,其可以用于验证网络应用的可信度。
在阶段D期间,网络服务器130处理请求112。处理请求112可以包括验证发起该请求的网络应用的可信度。网络服务器130验证请求112的技术可以基于完整性元素126的形式和/或请求112中包括的附加完整性信息而变化。下文更详细地描述了用于验证网络应用的可信度的示例技术。
在阶段E期间,网络服务器130可以基于网络应用的可信度是否被成功验证来响应或不响应请求112。如果网络应用的可信度被成功验证,则网络服务器130可以处理请求112,并以正常方式,例如,通过提供在浏览器111上显示的内容,响应请求112。如果网络应用的可信度没有被成功验证,则网络服务器130可以忽略请求112或者用指示网络应用111不可信的响应来响应浏览器111。如果浏览器111接收到响应,则浏览器111可以基于该响应在客户端设备110的显示器上显示内容。
图2示出了具有完整性元素的网络应用被上传以分发给客户端设备的环境200。在该示例中,完整性元素包括完整性属性,该完整性属性指定加密散列函数和使用加密散列函数和网络应用的可信代码计算的可信加密散列。
在阶段A期间,可信网络应用发布者240使用开发工具210来开发网络应用(即,网络应用A)。开发工具210可以被实现为具有使用户能够开发和发布网络应用的软件的计算机。例如,开发工具210可以是基于云的或本地软件开发平台。网络应用包括代码214,例如脚本、HTML、CSS等,当由客户端设备执行时,该代码实现网络应用的功能。网络应用还可以包括其他资产,例如图像、标志等。该代码214可以被认为是可信代码,因为它是原始代码并且没有机会被恶意方修改。类似地,资产可以被认为是可信资产。在开发网络应用之后,网络应用发布者240生成请求开发工具210发布网络应用的请求242。
在阶段B期间,开发工具210使用加密散列函数来计算代码214和/或其他资产的加密散列。如果网络应用包括多个代码元素,例如多个脚本,则开发工具210可以使用加密散列函数来计算每个代码元素的相应加密散列。由于加密散列是使用可信代码计算的,所以加密散列可以被称为可信加密散列。
开发工具210可以向可信代码数据库230发送代码214和/或其他资产的数据元素212。数据元素212可以包括网络应用的唯一标识符216和代码的加密散列218。如果网络应用包括多个代码元素,则开发工具210可以为每个代码元素发送相应的数据元素212。可信代码数据库230可以存储网络应用的代码和/或其他资产的可信加密散列,使得网络服务器可以验证网络应用的可信度,如下面更详细描述的。
开发工具210还可以更新网络应用A以包括代码214和/或其他资产的完整性元素。在这个示例中,完整性元素是完整性属性246。开发工具210可以将完整性属性246插入到代码214中,产生更新后的代码244。例如,如果代码214是一个或多个脚本,则开发工具210可以更新脚本标签以包括指定加密散列函数和可信加密散列的完整性属性246。在该示例中,开发工具210可以更新代码214,以在更新后的代码244的每个脚本标签中包括脚本标签中的脚本的完整性属性216。网络应用的可执行代码可以在更新后的网络应用中保持相同。
在阶段C期间,开发工具210将更新后的网络应用发送到内容管理系统120,使得更新后的网络应用可用于包含在电子资源中。以这种方式,当电子资源包括更新后的网络应用时,电子资源包括代码244和/或网络应用的其他资产的完整性属性。阶段B和C对于可信网络应用发布者240可以是完全透明的。
图3示出了具有完整性元素的网络应用被上传以分发给客户端设备的环境300。在这个示例中,完整性元素包括签过名的批准元素。
在阶段A期间,可信网络应用发布者240使用开发工具210来开发网络应用(即,网络应用A)。网络应用包括代码314,例如脚本、HTML、CSS等,该代码当由客户端设备执行时,实现网络应用和/或其他资产的功能。该代码314(即,类似于图2中的代码214)和/或其他资产可以被认为是可信的,因为它是原始代码或资产,并且没有机会被恶意方修改。在开发网络应用之后,网络应用发布者240生成请求开发工具210发布网络应用的请求342。
在阶段B期间,开发工具210将应用的代码314和/或其他资产发送给可信签名者350以供审阅。可信签名者350可以是可信第三方的第三方计算机,其评估代码和/或其他资产,并且如果代码或其他资产是可信的,则为代码或其他资产生成签过名的批准元素。可信第三方可以是在评估代码方面具有专长的一方,例如计算机/网络安全软件公司或反病毒开发者、可信网络应用发布者或行业监管机构,或者不同于可信网络应用发布者240和电子资源发布者的另一适当方。该评估可以包括例如扫描代码中的病毒、间谍软件和/或其他恶意软件或恶意代码。在一些实现方式中,可信网络应用发布者240可以充当可信签名者350来对网络应用进行自签名。
在阶段C期间,可信签名者350可以评估代码314的每个代码元素(或其他资产),并为被认为可信的每个代码元素(或其他资产)生成签过名的批准元素。可信签名者350可以通过使用加密散列函数计算代码元素的加密散列来为代码元素——例如,脚本——生成签过名的批准元素。该加密散列可以与上述完整性属性的可信加密散列相同。由于该加密散列是使用网络应用的可信代码计算的,因此该加密散列可以被称为可信加密散列。
可信签名者350可以通过生成包括完整性数据集合和基于该完整性数据集合生成的数字签过名的数据结构,例如复合消息,来为代码元素生成签过名的批准元素。如上所述,该完整性数据集合可以包括代码元素的可信加密散列、可信签名者350的标识以及指示生成数字签名的时间的时间戳。可信签名者350可以通过使用可信签名者350的私钥对该数据集合进行签名来生成数字签名。稍后可以使用对应于——例如,数学上链接到——私钥的公钥来验证数字签名。可信签名者向开发工具210提供每个签过名的批准元素。
在阶段D期间,开发工具210更新网络应用A,以包括作为完整性元素的签过名的批准元素。开发工具210可以将完整性属性216插入到代码314中,产生更新后的代码344。例如,如果代码314是一个或多个脚本,则开发工具210可以更新脚本标签以包括新的属性,该新的属性包括该脚本的签过名的批准元素。在该示例中,开发工具210可以更新代码314,以在更新后的代码344的每个脚本标签中,在脚本标签的属性中包括该脚本的签过名的批准元素。网络应用的可执行文件可以在更新后的网络应用中保持相同。如下文更详细描述的,网络应用的签过名的批准元素可用于验证网络应用的可信度。
开发工具210将更新后的网络应用发送到内容管理系统120,使得更新后的网络应用可用于包含在电子资源中。这样,当电子资源包括更新后的网络应用时,电子资源包括网络应用的代码344(即,类似于图2中的代码244)的完整性属性。阶段B-D可以对可信网络应用发布者240完全透明。
图4是图示用于验证网络应用的可信度的示例过程400的泳道图。过程400的操作可以例如通过客户端设备110的浏览器111、内容管理系统(CMS)120、网络应用的代码124和网络服务器130来实现。过程400的操作也可以被实现为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使得一个或多个数据处理装置执行过程400的操作。
尽管过程400是根据基于应用的代码来验证网络应用的可信度来描述的,但是过程400也可以用于基于网络应用的其他资产——例如,图像和/或标志——来验证网络应用的可信度。例如,过程400可以用于确定自从为资产生成完整性元素以来,这些资产中的任何一个是否已经被修改。因此,在接下来的描述中,术语代码可以被替换为资产,以指代网络应用的其他资产。
浏览器111获得电子资源(402)。浏览器111可以从托管网站的内容管理系统120获得电子资源。例如,浏览器111可以响应于用户与网页的链接进行交互或者用户将网页的统一资源定位符(URL)输入到浏览器111中,向内容管理系统120请求网页。电子资源可以包括网络应用。
对于网络应用的代码,电子资源还可以包括一个或多个完整性元素。例如,电子资源可以包括网络应用的每个代码元素(或其他元素,例如图像/标志)的完整性元素。如上所述,完整性元素可以是完整性属性、签过名的批准元素或网络分组的数字签名。
浏览器111呈现电子资源(404)。浏览器111可以在客户端设备110的显示器上显示电子资源的内容。为了呈现电子资源,浏览器111可以处理电子资源,例如,处理电子文档的代码。例如,电子资源可以是具有HTML代码的HTML文档,该HTML代码还包括用于网络应用的脚本(或其他代码)。当处理电子资源的HTML时,浏览器111可以标识应用的代码124,例如,在电子资源的脚本标签或其他适当标签内。
浏览器111验证网络应用的代码124的可信度(406)。这可以是由浏览器111执行的可选步骤。例如,一些电子资源可能不包括网络应用的可信代码的加密散列。浏览器111可以使用包括在电子资源中的代码124的完整性元素来验证代码124的可信度。例如,如上所述,完整性元素可以包括网络应用的可信代码的可信加密散列。为了验证代码124的可信度,浏览器111可以使用用于计算可信加密散列的相同散列函数来计算与电子资源一起接收的网络应用的实际代码的加密散列。然后,浏览器可以将可信加密散列与计算出的加密散列进行比较。如果两个散列匹配,浏览器111可以确定网络应用的代码124是可信的。如果两个散列不匹配,浏览器111可以确定网络应用的代码124不可信。如果代码被认为是可信的,浏览器111可以处理该代码并代表网络应用向网络服务器发送请求。如果代码被确定为不可信,则浏览器111可以拒绝处理该代码和/或拒绝代表网络应用的代码向网络服务器130发送请求。浏览器111可以验证包括在电子资源中的网络应用的每个代码元素的可信度。
浏览器111处理网络应用的代码(408)。例如,浏览器111可以读取代码并基于该代码执行一个或多个动作。一个这样的动作是生成请求并将其发送到网络服务器130。该请求可以是基于用户与由浏览器111呈现的网络应用的交互的内容。
代码124发起请求(410)。代码124可以通过指示浏览器111生成请求并将其发送到网络服务器130来发起对网络服务器130的请求。
浏览器111生成请求(412)。浏览器111可以为网络服务器130生成包括数据和/或指令的请求。例如,该请求可以包括描述用户与网络应用的交互的数据,为了响应用户交互,需要来自网络服务器130的响应。该请求可以是HTTP请求。
浏览器111可以修改该请求,以包括发起该请求的代码124的完整性元素(或完整性元素的至少部分)。浏览器111可以将完整性元素或完整性元素的部分插入到请求的报头中。如果完整性元素是完整性属性,则浏览器111可以在请求中包括应用的可信代码的可信加密散列。如果完整性元素是签过名的批准元素,浏览器111可以将签过名的批准元素插入到请求中。如果完整性元素是签过名的网络分组,则浏览器可以将签过名的网络分组的数字签名插入到请求中。
浏览器111还可以向请求中插入附加的完整性信息,该完整性信息可以用于验证网络应用的可信度。附加完整性信息可以包括网络应用的来源。来源可以是包括网络应用的电子资源的域。例如,如果网络应用被嵌入到对应于example.com的网页中,则来源可以是example.com。这使得网络服务器130能够验证网络应用被包括在适当的电子资源中。在一些实现方式中,网络应用的来源可以是统一资源标识符(URI)或URL。
附加完整性信息可以包括标识代码124的上下文的数据。标识代码124的上下文的数据可以包括代码嵌套在其中的电子资源的框架的属性,例如iframe。例如,网络应用可以嵌套在网页的特定iframe中。这可以是建立代码124的信任的重要信号。例如,代码通常可以嵌套在特定的iframe中。如果代码124嵌套在罕见的或新的iframe中,则网络应用可能不可信。
代码124可以指示浏览器111收集该上下文信息,并将该信息插入到请求中,例如,插入到请求的报头中。该信息可以包括嵌套的iframe元素,例如,仅包括那些元素的src属性的值。在一些实现方式中,浏览器111可以使用加密散列函数来计算上下文信息的加密散列,并将加密散列插入到请求中。以这种方式,网络服务器130可以将加密散列与代码124被嵌套在其中的上下文的先前加密散列进行比较。
浏览器111将修改后的请求发送到网络服务器130(414)。网络服务器130从请求中提取完整性元素(或请求中包括的完整性元素的部分)(416)。例如,网络服务器130可以从请求的报头中提取完整性元素。如果被包括在请求中,网络服务器130还可以提取上下文信息和/或网络应用的来源。
网络服务器130验证网络应用的可信度(418)。网络服务器130可以使用包括在请求中的完整性元素(或其部分)以及,如果包括在请求中,附加完整性信息,例如上下文信息和/或网络应用的来源,来验证网络应用的可信度。用于验证网络应用的可信度的技术可以基于完整性元素的形式和请求中包括的附加完整性信息而变化。
如果完整性元素是指定加密散列函数和加密散列的完整性属性,则网络服务器130可以查询数据库,例如图2的数据库230,以确定加密散列是否与存储在数据库中的网络应用的可信加密散列匹配。如果请求中包括的加密散列与数据库中存储的网络应用的可信加密散列匹配,则网络服务器130可以确定网络应用是可信的。如果请求中包括的加密散列与数据库中存储的网络应用的可信加密散列不匹配,则网络服务器130可以确定网络应用不可信。该签名比较使得网络服务器130能够确定网络应用的代码是否已经从该代码的可信版本被修改。也就是说,如果签名验证失败,则代码与应用的可信代码不匹配。如下文更详细描述的,在确定网络应用是否是可信的时,除了加密散列之外,网络服务器130还可以考虑任何附加的完整性信息。
如果完整性元素是签过名的批准元素,则网络服务器130可以执行多个步骤来确定网络应用是否是可信的。网络服务器130可以确定包括在签过名的批准元素中的签名者的标识是否与例如由网络服务器130维护的可信签名者列表中的可信签名者匹配。如果是,网络应用通过这个验证步骤。
网络服务器130还可以确定签过名的批准元素的数字签名是否是有效的。网络服务器130可以使用签过名的批准元素的数据集合和对应于用于签署该数据集合的私钥的公钥来确定数字签名是否有效。如果数字签名是有效的,这意味着自从生成数字签名以来,该数据集合没有改变,并且因此,网络应用通过该验证步骤。
网络服务器130还可以确定数字签名是否是在当前时间的阈值持续时间内生成的。为此,网络服务器130可以将签过名的批准元素的时间戳与当前时间——例如,执行验证的时间——进行比较。如果当前时间和时间戳指示的时间之间的差在阈值持续时间内,则网络应用通过该验证步骤。
如果签过名的批准元素的所有验证步骤都成功,则网络服务器130可以确定网络应用是可信的。如下文更详细描述的,在确定网络应用是否是可信的时,除了加密散列之外,网络服务器130还可以考虑任何附加的完整性信息。
与使用完整性属性相比,使用签过名的批准元素具有一些性能优势。例如,网络服务器130不必查询数据库来确定完整性元素的加密散列是否与网络应用的可信加密散列匹配。如果在短持续时间内收到许多请求,这可以防止数据库成为瓶颈,并且从而成为等待时间的来源。
如果完整性元素是网络分组的数字签名,则网络服务器130可以验证网络应用的实际来源,而不是包含网络应用的电子资源的域。在该示例中,该请求可以包括网络分组的资源定位符,例如URI或URL,使得网络服务器知道发起该请求的网络分组的标识。使用资源定位器,网络服务器可以可选地下载网络分组来执行额外的验证。网络应用的数字签名可以由应用发布者生成,这使得网络服务器能够验证网络应用是由应用发布者分发的。
如果该请求包括附加完整性信息,则网络服务器130可以基于完整性元素和附加完整性信息的组合来确定网络应用是否是可信的。如果附加完整性信息包括标识网络应用的来源的数据,则网络服务器130可以确定网络应用是否由预期域提供服务,例如由预期域集合之一提供服务。例如,可以使用于显示视频的网络应用对被允许在其电子资源中嵌入视频回放的域集合可用。如果该请求所标识的来源不在该域集合中,则网络服务器130可以确定该网络应用不可信。例如,要被认为是可信的,网络服务器130可以要求网络应用通过完整性元素验证和来源验证。
如果附加完整性信息包括上下文信息,则网络服务器130可以将该上下文信息与先前接收的(或允许的)上下文信息进行比较。例如,上下文信息可以包括其中嵌套了网络应用的帧的属性的加密散列。如果该加密散列与已知可信上下文或公共上下文的加密散列不匹配,其中至少阈值接收请求与该已知可信上下文或公共上下文匹配,则网络服务器130可以确定网络应用不可信。如果加密散列与已知可信上下文或公共上下文的加密散列匹配,其中至少阈值接收请求与该已知可信上下文或公共上下文匹配,假设完整性元素被成功验证,则网络服务器130可以确定网络应用是可信的。也就是说,为了网络应用被认为是可信的,网络服务器130可以要求上下文验证和完整性元素验证都成功。
在一些实现方式中,网络服务器130可以验证完整性元素、来源以及网络应用被嵌套在其中的上下文。如果所有三个验证都通过,则网络服务器130可以确定网络应用是可信的。如果任何验证失败,网络服务器130可以确定网络应用不可信。
在一些实现方式中,网络服务器130可以基于一个或多个验证来确定可信度分数。例如,网络服务器130可以为每个验证确定单独的分数,并且可选地通过基于该验证的重要性对每个分数进行加权来组合分数。在该示例中,分数可以基于来源的可信度和/或从与请求的上下文匹配的上下文接收对网络应用的请求的频率相对于从不同上下文接收对网络应用的请求的频率而变化。对于网络应用,多个来源中的每一个都可以具有基于其可信度的对应分数,该分数由网络应用的发布者或另一实体来分配。网络服务器130可以将可信度分数与阈值可信度进行比较,以确定网络应用是否是可信的。例如,如果可信度分数满足可信度阈值,例如通过满足或超过可信度阈值,则网络服务器130可以确定网络应用是可信的。
在一些实现方式中,例如,在响应请求之前,网络服务器可以验证网络应用、浏览器和客户端设备的可信度。例如,网络服务器可以接收浏览器和/或客户端设备的信任令牌或签过名的兑换记录。令牌或签过名的兑换记录可以包括对浏览器111和/或客户端设备110的可信度的判断。令牌或签过名的兑换记录还可以包括数字签名和/或附加信息,以确保令牌或签过名的兑换记录是由可信方发布的,并且自从其被发布给浏览器111以来没有被篡改。
网络服务器130向浏览器111发送响应(420)。网络服务器130可以基于网络应用是否被确定为可信来确定适当的响应。如果网络应用被确定为可信,则网络服务器130可以处理该请求,并以正常方式对该请求做出响应,例如,通过标识并提供响应内容以供浏览器111显示,或者通过提供网络服务器130完成了对应于该请求的动作的验证。
如果网络应用被确定为不可信,则网络服务器130可以忽略该请求,或者向浏览器111发送指示该网络应用不可信的响应,并且因此不提供内容。网络服务器130还可以维护网络应用的审计日志。对于每个请求,网络服务器130可以在审计日志中存储请求的完整性元素和指示网络应用被分类为可信还是不可信的数据。网络服务器130还可以在审计日志中存储与请求一起接收的任何附加完整性信息。在一些实现方式中,网络服务器130可以仅存储被分类为不可信的请求的数据(例如,完整性元素、可信分类和附加完整性信息)。审计日志使发布者或另一方能够分析网络应用的欺诈或误用。
浏览器111发送对代码124的响应(422)。进而,网络应用的代码124可以处理该响应并基于该响应执行动作。例如,代码124可以使浏览器111基于响应显示内容,或者显示动作已完成的消息或其他确认。
图5是图示用于验证应用的可信度并响应于验证网络应用的可信度而提供响应的示例过程500的流程图。示例过程500可以由客户端设备110的浏览器111来执行。过程500的操作可以例如由客户端设备110的浏览器111来实现。过程500的操作也可以被实现为存储在一个或多个计算机可读介质上的指令,所述计算机可读介质可以是非暂时性的,并且由一个或多个数据处理装置执行指令可以使得一个或多个数据处理装置执行过程500的操作。
尽管过程500是根据基于应用的代码来验证网络应用的可信度来描述的,但是过程500也可以用于基于网络应用的例如图像和/或标志的其他资产来验证网络应用的可信度。例如,过程500可以用于确定自从为资产生成完整性元素以来,这些资产中的任何一个是否已经被修改。因此,在接下来的描述中,术语代码可以被替换为资产,以指代网络应用的其他资产。
获得电子资源(502)。电子资源可以包括网络应用的代码。例如,电子资源可以包括作为网络应用的一个或多个代码元素的一个或多个脚本。在另一示例中,网络应用可以使用HTML、CSS、扩展或另一种适当的网络技术来实现。电子资源可以包括代码的完整性元素,例如一个或多个单独代码元素中的每一个。
验证网络应用的可信度(504)。这可以是由浏览器111执行的可选步骤。例如,一些电子资源可能不包括网络应用的可信代码的加密散列。浏览器可以使用完整性元素和网络应用的代码来验证网络应用是可信的。例如,如上所述,完整性元素可以包括应用的可信代码的可信加密散列。验证网络应用的可信度可以包括从完整性元素中提取加密散列函数(如果存在)和可信加密散列的标识,计算包括在电子资源中的代码的加密散列,并将计算的加密散列与可信加密散列进行比较。如果两个散列值匹配,则成功验证了网络应用的可信度。
呈现电子资源(506)。浏览器可以呈现电子资源,这可以包括在客户端设备的显示器上显示电子资源的内容。
生成请求(508)。浏览器可以响应于确定网络应用是可信的而生成请求。例如,处理网络应用的代码会导致代码发起请求。如果网络应用是可信的,浏览器可以代表网络应用向网络服务器生成请求。
修改该请求(510)。在一些实现方式中,浏览器可以以对网络应用的代码不透明的方式修改请求。浏览器可以通过将完整性元素或完整性元素的至少部分插入到请求中来修改请求。如果完整性元素是完整性属性,则该部分可以包括可信加密散列。如果完整性元素与网络分组相关联,则该部分可以包括数字签名和网络分组的URI/URL。如果完整性元素是签过名的批准元素,则浏览器可以将签过名的批准元素插入到请求中。如上所述,完整性元素可以被插入到请求的报头中。如上所述,浏览器还可以获得附加的完整性信息并将其插入到请求中。
将该请求发送到远程服务器(512)。浏览器可以通过网络将修改后的请求发送到对应于网络应用的网络服务器。
从远程服务器接收响应(514)。网络服务器可以基于完整性元素来验证网络应用的可信度。如果网络应用被认为是可信的,则网络服务器可以向浏览器发送响应。
基于响应显示数据(516)。浏览器可以将从网络服务器接收到的响应传递给网络应用,网络应用可以处理该响应,并基于该处理使浏览器显示数据。该数据可以包括例如响应于请求而生成的内容或者确认响应于请求而执行了动作的验证消息。
图6是可用于执行上述操作的示例计算机系统600的框图。系统600包括处理器610、存储器620、存储设备630和输入/输出设备640。组件610、620、630和640中的每一个都可以例如使用系统总线650来互连。处理器610能够处理在系统600内执行的指令。在一些实现方式中,处理器610是单线程处理器。在另一实现方式中,处理器610是多线程处理器。处理器610能够处理存储在存储器620或存储设备630上的指令。
存储器620存储系统600内的信息。在一个实现方式中,存储器620是计算机可读介质。在一些实现方式中,存储器620是易失性存储单元。在另一实现方式中,存储器620是非易失性存储器单元。
存储设备630能够为系统600提供大容量存储。在一些实现方式中,存储设备630是计算机可读介质。在各种不同的实现方式中,存储设备630可以包括例如硬盘设备、光盘设备、由多个计算设备通过网络共享的存储设备(例如,云存储设备)、或一些其他大容量存储设备。
输入/输出设备640为系统600提供输入/输出操作。在一些实现方式中,输入/输出设备640可以包括一个或多个网络接口设备,例如以太网卡、串行通信设备,例如RS-232端口、和/或无线接口设备,例如802.11卡。在另一实现方式中,输入/输出设备可以包括被配置成接收输入数据并将输出数据发送到例如,键盘、打印机和显示设备的外部设备660的驱动设备。然而,也可以使用其他实现方式,诸如移动计算设备、移动通信设备、机顶盒电视客户端设备等。
尽管已经在图6中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实现方式可以在其他类型的数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实现。
本说明书中描述的主题和操作的实施例可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,包括本说明书中公开的结构及其结构等同物,或者在它们中的一个或多个的组合中实现。本说明书中描述的主题的实施例可以被实现为一个或多个计算机程序,即一个或多个计算机程序指令模块,其被编码在计算机存储介质(或多个介质)上,用于由数据处理装置执行或控制数据处理装置的操作。替代地或附加地,程序指令可以被编码在人工生成的传播信号,例如,机器生成的电、光或电磁信号上,其被生成以编码信息,用于传输到合适的接收器装置,以由数据处理装置执行。计算机存储介质可以是或被包括在计算机可读存储设备、计算机可读存储基底、随机或串行存取存储器阵列或设备、或者它们中的一个或多个的组合中。此外,虽然计算机存储介质不是传播信号,但是计算机存储介质可以是编码在人工生成的传播信号中的计算机程序指令的源或目的地。计算机存储介质也可以是或被包括在一个或多个单独的物理组件或介质(例如,多个CD、盘或其他存储设备)中。
本说明书中描述的操作可以被实现为由数据处理装置对存储在一个或多个计算机可读存储设备上或从其他源接收的数据执行的操作。
术语“数据处理装置”包含用于处理数据的所有种类的装置、设备和机器,通过示例的方式包括可编程处理器、计算机、片上系统或前述的多个或组合。该装置可以包括专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境、虚拟机或它们中的一个或多个的组合的代码。该装置和执行环境可以实现各种不同的计算模型基础设施,例如网络服务、分布式计算和网格计算基础设施。
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言、声明或过程语言,并且它可以以任何形式部署,包括作为独立程序或作为模块、组件、子例程、对象或适合在计算环境中使用的其他单元。计算机程序可以但不需要对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,存储在标记语言文档中的一个或多个脚本),存储在专用于所讨论的程序的单个文件中,或者存储在多个协作文件中(例如,存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以被部署为在一台计算机或位于一个地点或分布在多个地点并通过通信网络互连的多台计算机上执行。
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行动作。过程和逻辑流程也可以由专用逻辑电路来执行,并且装置也可以被实现为专用逻辑电路,例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)。
通过示例的方式,适于执行计算机程序的处理器包括通用和专用微处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于根据指令执行动作的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括或可操作地耦合到一个或多个用于存储数据的大容量存储设备,例如磁盘、磁光盘或光盘,以从该大容量存储设备接收数据或向其传送数据,或两者兼有。然而,计算机不需要有这样的设备。此外,计算机可以嵌入在另一设备,例如,移动电话、个人数字助理(PDA)、移动音频或视频播放器、游戏控制台、全球定位系统(GPS)接收器或便携式存储设备(例如,通用串行总线(USB)闪存驱动器)等等中。适于存储计算机程序指令和数据的设备包括所有形式的非易失性存储器、介质和存储器设备,通过示例的方式包括半导体存储器设备,例如EPROM、EEPROM和闪存设备;磁盘,例如内部硬盘或可移除磁盘;磁光盘;和CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路来补充或并入其中。
为了提供与用户的交互,本说明书中描述的主题的实施例可以在计算机上实现,该计算机具有用于向用户显示信息的显示设备,例如CRT(阴极射线管)或LCD(液晶显示器)监视器,以及用户可以用来向计算机提供输入的键盘和定点设备,例如鼠标或轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,向用户的客户端设备上的网络浏览器发送网页。
本说明书中描述的主题的实施例可以在计算系统中实现,该计算系统包括后端组件,例如作为数据服务器,或者包括中间件组件,例如应用服务器,或者包括前端组件,例如具有图形用户界面或网络浏览器的客户端计算机,用户可以通过该图形用户界面或网络浏览器与本说明书中描述的主题的实现方式进行交互,或者包括一个或多个这样的后端、中间件或前端组件的任何组合。该系统的组件可以通过例如通信网络的任何形式或介质的数字数据通信来互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”)、互联网(例如,因特网)和对等网络(例如,自组织对等网络)。
计算系统可以包括客户端和服务器。客户端和服务器通常彼此远离,并且通常通过通信网络进行交互。客户端和服务器的关系是由于在各自的计算机上运行的计算机程序而产生的,并且彼此具有客户端-服务器关系。在一些实施例中,服务器将数据(例如,HTML页面)传输到客户端设备(例如,为了向与客户端设备交互的用户显示数据并从其接收用户输入)。在客户端设备处生成的数据(例如,用户交互的结果)可以在服务器处从客户端设备接收。
虽然本说明书包含许多具体的实施细节,但是这些不应该被解释为对任何发明的范围或可能要求保护的范围的限制,而是对特定发明的特定实施例所特有的特征的描述。本说明书中在单独实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反,在单个实施例的上下文中描述的各种特征也可以在多个实施例中单独或以任何合适的子组合来实现。此外,尽管特征可能在上面被描述为在某些组合中起作用,并且甚至最初被如此要求保护,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中删除,并且所要求保护的组合可以针对子组合或子组合的变体。
类似地,虽然在附图中以特定的次序描述了操作,但是这不应该被理解为要求这些操作以所示的特定次序或顺序执行,或者要求所有图示的操作都被执行,以获得期望的结果。在某些情况下,多任务和并行处理可能是有利的。此外,上述实施例中的各种系统组件的分离不应被理解为在所有实施例中都需要这样的分离,并且应该理解,所描述的程序组件和系统通常可以一起集成在单个软件产品中或者打包到多个软件产品中。
因此,已经描述了主题的特定实施例。其他实施例在所附权利要求的范围内。在某些情况下,权利要求中所述的动作可以以不同的次序执行,并且仍能获得期望的结果。此外,附图中示出的过程不一定需要所示的特定次序或连续次序来实现期望的结果。在某些实现中,多任务和并行处理可能是有利的。

Claims (13)

1.一种计算机实现的方法,包括:
由客户端设备的浏览器获得包括用于网络应用的代码的电子资源;
由所述浏览器呈现所述电子资源,包括处理所述网络应用的所述代码,其中所述代码使所述浏览器向远程服务器发起请求;
响应于处理所述代码:
生成所述请求;
修改所述请求以包括所述网络应用的完整性元素的至少部分;以及
将修改后的请求发送到所述远程服务器;
基于所述远程服务器使用所述完整性元素验证所述网络应用是可信的,从所述远程服务器接收对所述请求的响应;以及
基于所述响应显示数据。
2.根据权利要求1所述的计算机实现的方法,其中,修改所述请求以包括所述完整性元素包括将所述完整性元素的所述部分插入到所述请求的报头中。
3.根据权利要求1或2所述的计算机实现的方法,其中,所述电子资源包括所述完整性元素,所述方法还包括响应于处理所述代码:
由所述浏览器至少部分地基于所述网络应用的所述代码和所述完整性元素来验证所述网络应用是可信的,
其中,所述请求是响应于验证所述网络应用是可信的而生成的。
4.根据权利要求3所述的计算机实现的方法,其中,所述网络应用的所述完整性元素包括完整性属性,所述完整性属性指定(i)加密散列函数和(ii)使用所述加密散列函数和所述网络应用的可信代码计算的可信加密散列。
5.根据权利要求4所述的计算机实现的方法,其中,由所述浏览器至少部分地基于所述网络应用的所述代码和所述完整性元素来验证所述网络应用是可信的包括:
由所述浏览器并使用所述加密散列函数来计算由所述浏览器获得的所述网络应用的代码的加密散列;
通过将所计算的加密散列与所述可信加密散列进行比较来确定所计算的加密散列与所述可信加密散列匹配;以及
响应于确定所计算的加密散列与所述可信加密散列匹配,由所述浏览器来验证所述网络应用是可信的,
其中,所述完整性元素的所述部分包括所述可信加密散列。
6.根据任一前述权利要求所述的计算机实现的方法,其中,所述完整性元素包括签过名的批准元素,所述签过名的批准元素包括完整性数据集合和基于所述完整性数据集合生成的数字签名,其中所述完整性数据集合包括:
使用加密散列函数和所述网络应用的可信代码计算的可信加密散列;
可信签名者的标识符;以及
指示生成所述数字签名的时间的时间戳,
其中,所述完整性元素的所述部分包括所述完整性数据集合和所述数字签名。
7.根据任一前述权利要求所述的计算机实现的方法,其中,修改所述请求还包括将标识嵌入所述代码的上下文的数据插入到所述请求中。
8.根据权利要求7所述的计算机实现的方法,其中,标识嵌入所述代码的上下文的数据包括以下中的至少一项:(i)所述代码被嵌入的所述电子资源的帧的属性或所述帧的所述属性的加密散列。
9.根据任一前述权利要求所述的计算机实现的方法,其中,所述完整性元素包括网络分组的数字签名,所述网络分组包括所述网络应用的组件和标识所述网络分组的数据。
10.根据权利要求1所述的计算机实现的方法,其中,所述网络应用的完整性元素包括完整性属性,所述完整性属性指定(i)加密散列函数和(ii)使用所述加密散列函数和所述网络应用的可信资产计算的可信加密散列,其中所述可信资产包括所述网络应用的图像、标志或其他资产。
11.一种系统,包括:
一个或多个处理器;以及
一个或多个存储指令的存储设备,所述指令在由所述一个或多个处理器执行时使所述一个或多个处理器执行根据任一前述权利要求所述的方法。
12.一种承载指令的计算机可读存储介质,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1至10中的任一项所述的方法。
13.一种包括指令的计算机程序产品,所述指令在由计算机执行时使所述计算机执行根据权利要求1至10中的任一项所述的方法的步骤。
CN202180016332.7A 2021-01-20 2021-01-20 验证网络应用的可信度 Pending CN115151907A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2021/014118 WO2022159085A1 (en) 2021-01-20 2021-01-20 Verifying the trustworthiness of web applications

Publications (1)

Publication Number Publication Date
CN115151907A true CN115151907A (zh) 2022-10-04

Family

ID=74595425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202180016332.7A Pending CN115151907A (zh) 2021-01-20 2021-01-20 验证网络应用的可信度

Country Status (6)

Country Link
US (1) US20230102116A1 (zh)
EP (1) EP4081925A1 (zh)
JP (1) JP7438383B2 (zh)
KR (1) KR20220130752A (zh)
CN (1) CN115151907A (zh)
WO (1) WO2022159085A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230318807A1 (en) * 2022-03-30 2023-10-05 Dell Products L.P. Web browser-based secure cryptographic key management

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8122100B2 (en) * 2003-07-28 2012-02-21 Limelight Networks, Inc. Multiple object download
US9955352B2 (en) * 2009-02-17 2018-04-24 Lookout, Inc. Methods and systems for addressing mobile communications devices that are lost or stolen but not yet reported as such
KR101684753B1 (ko) * 2010-02-09 2016-12-08 인터디지탈 패튼 홀딩스, 인크 신뢰적인 연합 아이덴티티를 위한 방법 및 장치
US8813237B2 (en) * 2010-06-28 2014-08-19 International Business Machines Corporation Thwarting cross-site request forgery (CSRF) and clickjacking attacks
US8745733B2 (en) * 2011-02-16 2014-06-03 F-Secure Corporation Web content ratings
US20120323717A1 (en) * 2011-06-16 2012-12-20 OneID, Inc. Method and system for determining authentication levels in transactions
US20140282978A1 (en) * 2013-03-15 2014-09-18 Sergio Demian LERNER Method and apparatus for secure interaction with a computer service provider
EP2882156B1 (en) * 2013-12-04 2018-09-19 Telefonica Digital España, S.L.U. Computer implemented method and a computer system to prevent security problems in the use of digital certificates in code signing and a computer program product thereof
GB201522315D0 (en) * 2015-12-17 2016-02-03 Irdeto Bv Securing webpages, webapps and applications
US12003623B2 (en) * 2020-12-18 2024-06-04 Dell Products, L.P. Multilayer encryption for user privacy compliance and corporate confidentiality
US11522708B2 (en) * 2020-12-18 2022-12-06 Dell Products, L.P. Trusted local orchestration of workspaces
US11522883B2 (en) * 2020-12-18 2022-12-06 Dell Products, L.P. Creating and handling workspace indicators of compromise (IOC) based upon configuration drift

Also Published As

Publication number Publication date
JP2023519121A (ja) 2023-05-10
EP4081925A1 (en) 2022-11-02
WO2022159085A1 (en) 2022-07-28
US20230102116A1 (en) 2023-03-30
JP7438383B2 (ja) 2024-02-26
KR20220130752A (ko) 2022-09-27

Similar Documents

Publication Publication Date Title
CN113015974B (zh) 针对隐私保护的可验证同意
US11882327B2 (en) Verifying display of third party content at a client device
US12013930B2 (en) Data integrity with trusted code attestation tokens
JP7286004B2 (ja) クライアントデバイスからの通信の完全性の保護
US20230102116A1 (en) Verifying the trustworthiness of web applications
JP7410280B2 (ja) 複数受信者セキュア通信
JP2022172237A (ja) プライバシー保持アプリケーションおよびデバイスエラー検出
CN116348874B (zh) 使用鉴证令牌的安全归因的方法、系统以及介质

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