CN110771112A - 用于防止域门户上会话固定的***和方法 - Google Patents
用于防止域门户上会话固定的***和方法 Download PDFInfo
- Publication number
- CN110771112A CN110771112A CN201780092028.4A CN201780092028A CN110771112A CN 110771112 A CN110771112 A CN 110771112A CN 201780092028 A CN201780092028 A CN 201780092028A CN 110771112 A CN110771112 A CN 110771112A
- Authority
- CN
- China
- Prior art keywords
- client device
- request
- computing system
- host
- key
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/0822—Key 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 key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/321—Cryptographic 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/3213—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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 keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Information Transfer Between Computers (AREA)
Abstract
在一个实施例中,方法包括***从用户的设备接收请求,该请求被定向到第一主机。***可以生成密钥、验证令牌和加密密钥。***可以从第一主机向设备传输验证令牌和加密密钥,并且传输指令,指令被配置成使得:(1)验证令牌被存储为与第一主机相关联的cookie,以及(2)设备向第二主机传输加密密钥。***可以从设备接收包括加密密钥的第二请求,并在确定加密密钥之前未被解密过时对其进行解密以获得密钥。***可以从第二主机向设备传输密钥,并指示设备将密钥存储为与第二主机相关联的cookie。
Description
技术领域
本公开一般涉及用于提高在线安全性(例如防止会话固定攻击)的***和方法。
背景
在线应用(如网站)可以使人们能够在可能无法负担经由数据计划的互联网访问的地方访问互联网。在线应用可以像门户一样,允许第三方内容和服务提供者向本来无法访问其网站的人提供内容和服务。通过在线应用提供的任何内容,包括第三方网站内容,都可以在在线应用的域下提供。
移动计算设备(例如智能手机、平板计算机或膝上型计算机)可以包括用于确定它的位置、方向或定向的功能,例如GPS接收器、罗盘、陀螺仪或加速度计。这种设备还可以包括用于无线通信(例如蓝牙通信、近场通信(NFC)、或红外(IR)通信、或与无线局域网(WLAN)或蜂窝电话网络的通信)的功能。这种设备还可以包括一个或更多个摄像机、扫描仪、触摸屏、麦克风或扬声器。移动计算设备还可以执行软件应用,例如游戏、web浏览器或社交网络应用。使用社交网络应用,用户可以与他们的社交网络中的其他用户进行关连、交流和分享信息。
特定实施例的概述
本文公开的特定实施例涉及在线门户(例如,托管在0.fbs.com处),该门户在可能不太负担得起互联网访问的市场中向人们提供对互联网服务的访问。通过该门户,第三方网站可以免费获得,而不会产生数据费用。这些第三方网站可以被视为0.fbs.com上的子域。例如,托管在www.3rdparty.com处的第三方网站可以通过门户从主机(host)www-3rdparty-com.0.fbs.com获得。因为第三方网站是子域,所以与更高级域(例如,0.fbs.com)相关联的用户cookies可能容易受到来自,例如,第三方网站上托管的客户端侧脚本语言的攻击。
为了解决这个安全问题,本文公开的特定实施例使得验证令牌被存储为与独立于第三方源的安全源相关联的cookie,从而验证令牌cookie无法被第三方源托管的客户端侧脚本(可能是恶意的)访问和/或修改。在特定实施例中,用户可以请求与门户建立会话。门户的主机可以将用户的浏览器重定向到安全源,而不是直接向用户提供所请求的会话密钥。安全源可以响应于用户的请求,向用户提供验证令牌,浏览器可以使用该令牌来验证后续通信中使用的会话密钥的完整性。验证令牌可以被存储为与安全源相关联的cookie。安全源还可以向用户提供会话密钥的加密版本以及一次性随机数(nonce),并将用户的浏览器重定向到重写源或代理,第三方网站通过重写源或代理在门户上被提供。在特定实施例中,重定向可以使得会话密钥的加密版本和一次性随机数被呈现给重写源。如果一次性随机数指示加密的密钥以前没有被解密过,服务器可以对加密的会话密钥进行解密,并将解密的会话密钥返回给浏览器存储。由于一次性随机数,加密的会话密钥只能被解密一次。由于只有用户或攻击者/黑客(而不是两者)可以从服务器获得解密的会话密钥,因此用户和攻击者/黑客不能都获得同一会话密钥,从而防止会话固定。
本文公开的实施例仅仅是示例,并且本公开的范围不限于它们。特定实施例可以包括上面公开的实施例的部件、元件、特征、功能、操作或步骤中的全部、一些或没有一个被包括。根据本发明的实施例在涉及方法、存储介质、***和计算机程序产品的所附权利要求中被具体公开,其中,在一个权利要求类别(例如方法)中提到的任何特征也可以在另一个权利要求类别(例如***)中被要求保护。在所附权利要求中的从属性或往回引用仅为了形式原因而被选择。然而,也可以要求保护由对任何前面的权利要求(特别是多项权利要求)的有意往回引用而产生的任何主题,使得权利要求及其特征的任何组合被公开并且可被要求保护,而不考虑在所附权利要求中选择的从属性。可以被要求保护的主题不仅包括如在所附权利要求中阐述的特征的组合,而且还包括在权利要求中的特征的任何其他组合,其中,在权利要求中提到的每个特征可以与在权利要求中的任何其他特征或其他特征的组合相结合。此外,本文描述或描绘的实施例和特征中的任一个可以在单独的权利要求中和/或以与本文描述或描绘的任何实施例或特征的任何组合或以与所附权利要求的任何特征的任何组合被要求保护。
在实施例中,可以提供计算机实现的方法,该方法包括以下步骤:
由计算***从与用户相关联的客户端设备接收第一请求,第一请求被定向到与计算***相关联的第一主机;
由计算***响应于第一请求生成密钥;
由计算***基于密钥生成验证令牌;
由计算***基于密钥生成加密密钥;
由计算***从与计算***相关联的第一主机向客户端设备传输第一指令、验证令牌和加密密钥,第一指令被配置成:
使验证令牌作为第一cookie存储在客户端设备上,第一cookie与第一主机相关联;
使客户端设备将加密密钥传输到与计算***相关联的第二主机;
由计算***从客户端设备接收包括加密密钥的第二请求;
由计算***在确定加密密钥之前未被解密过时,对接收的加密密钥进行解密以获得密钥;以及
由计算***,从第二主机向客户端设备传输第二指令和通过解密获得的密钥,第二指令被配置成使得通过解密获得的密钥作为第二cookie存储在客户端设备上,第二cookie与第二主机相关联。
在实施中,可以提供一个或更多个计算机可读非暂时性存储介质,该存储介质包含软件,该软件当由计算***的一个或更多个处理器执行时可操作来使处理器,特别是使计算***,执行一种方法,该方法包括根据本文或所附权利要求中所描述的任一实施例的方法的所有步骤。
在实施例中,可以提供一种计算***,该计算***包括:一个或更多个处理器;以及一个或更多个计算机可读非暂时性存储介质,该一个或更多个计算机可读非暂时性存储介质耦合到一个或更多个处理器,并且包括指令,特别是计算机可执行指令,指令当由一个或更多个处理器执行时可操作来使***执行一种方法,该方法包括根据本文或所附权利要求中所描述的任一实施例的方法的所有步骤。
在实施例中,该方法可以包括:
由计算***从客户端设备接收先前请求(prior request),其中先前请求被定向至与计算***相关联的第三主机,并且在所述请求被接收之前被接收;以及
由计算***响应于先前请求向客户端设备传输重定向指令,重定向指令被配置成使得客户端设备向第一主机发送第一请求。
在实施例中,该方法还可以包括:
由计算***生成一次性随机数;以及
由计算***向客户端设备传输一次性随机数;
其中第一指令被配置成使得客户端设备将一次性随机数随加密密钥一起传输到与计算***相关联的第二主机;以及
其中确定加密密钥之前未被解密过是基于一次性随机数的。
在实施例中,该方法还可以包括:
由计算***从与第二用户相关联的第二客户端设备接收第三请求,该第三请求包括加密密钥和一次性随机数;
由计算***确定(1)一次性随机数之前被使用过,或者(2)一次性随机数没有绑定到加密密钥;以及
由计算***拒绝第三请求。
在该方法的实施例中,第一cookie可以被配置成可由客户端侧脚本访问,其中第二cookie可以被配置成不可由客户端侧脚本访问。
在该方法的实施例中,第一主机和第二主机可以不同。
在该方法的实施例中,第二主机可以被配置成提供对由第三方托管的网页的访问。
在实施例中,该方法还可以包括:
由计算***从客户端设备接收包括被存储为第二cookie的密钥的第三请求;
由计算设备基于与第三请求一起被接收的密钥生成第二验证令牌;以及
由计算设备响应于第三请求向客户端设备传输网页,网页包括第二验证令牌和指令,该指令被配置成使客户端设备:
将第二验证令牌与被存储为第一cookie的验证令牌进行比较;以及
基于比较确定是否呈现网页。
附图简述
图1示出了用户安全地与服务器建立会话的示例通信序列图。
图2示出了用于安全地与服务器建立会话的示例方法。
图3示出了示例网络环境。
图4示出了示例计算机***。
示例实施例的描述
在特定实施例中,在线应用,如使用一个或更多个web服务器提供的门户服务,可以允许用户访问第三方网站。在特定实施例中,对第三方网站的访问可以由门户通过门户域的子域来提供。在特定实施例中,可以基于第三方网站的地址来生成用于托管第三方网站的门户子域。例如,如果门户服务提供者托管在地址0.fbs.com,第三方网站托管在www.3rdparty.com,则门户可以使第三方网站通过地址www-3rdparty-com.0.fbs.com而可用。在本示例中,通过门户的子域提供对第三方内容的访问。
在特定实施例中,当用户与门户通信时,门户可以自动创建会话密钥(例如,ICK)来识别用户和/或用户与门户之间的会话。会话密钥对于每个用户可以是唯一的,并且可以存储在用户客户端设备上的cookie中(例如,存储在客户端设备上的浏览器中)。客户端设备可以是任何合适的计算设备,如智能手机、台式或膝上型计算机、平板电脑、可佩戴设备(例如智能手表)、或虚拟现实头戴式装置。存储的cookie可用于用户设备和门户之间的通信,以识别两者之间的会话。在特定实施例中,该cookie内的信息可以与门户服务器上的cookie jar相关联。服务器上的cookie jar可用于存储用户通过门户与之交互的第三方网站的cookie。在特定实施例中,会话密钥可用于访问和/或解密服务器上相应的cookiejar。
在特定实施例中,如果攻击者和用户使用同一ICK与门户通信,则攻击者可以实现会话固定。因为ICK允许通信实体(可能是合法用户或攻击者)访问相应的cookie jar,所以如果攻击者和用户都使用同一个ICK与门户通信,那么他们都可以访问同一个cookie jar。因此,例如,如果服务器侧cookie jar包含用户与他/她的电子邮件服务器之间的会话cookie,具有用户ICK的攻击者将能够参与该会话,因为攻击者也具有对电子邮件服务器的会话cookie的访问权。为了实现这一点,攻击者可以,例如(1)窃取受害者的ICK,或者(2)将攻击者自己的ICK植入受害者的***,以使得受害者将使用攻击者的ICK与服务器通信。
在特定实施例中,如果ICK被存储为第三方网页托管的恶意客户端侧脚本通过门户可访问和/或可修改的cookie,则ICK可能容易受到攻击。例如,如果ICK被存储为cookie,该cookie与门户分配用来提供对相应第三方网页的访问的子域(例如www-3rdparty-com.0.fbs.com)的父域(例如0.fbs.com)相关联,则这种情况可能发生。恶意第三方网站可能包含客户端侧脚本,当在客户端设备上执行时,这些脚本可能会操纵任何可访问的客户端侧cookies。因此,如果ICK被存储为与父域相关联的cookie,它可能是易受攻击的,因为浏览器通常会使cookie对于用于设置该cookie的给定域及其任何子域是可访问的。因此,如果cookie与0.fbs.com相关联,则它在第三方网页通过门户从0.fbs.com的子域被提供时可以被该页面(例如,经由JavaScript)访问。
在特定实施例中,可以通过要求来自门户的每个通信响应包括从请求中提供的ICK导出的验证令牌ICKT来防止会话固定。然后可以在客户端侧将响应的ICKT与安全存储的验证令牌ICKT进行比较,以确保最初传输的ICK的完整性。例如,经由门户请求第三方网页的用户可以向门户的服务器提交本地存储的ICK,然后该服务器可以使用派生f(ick)生成ICKT并将其嵌入返回的网页中。当加载返回的网页时,接收到的ICKT可以与先前安全存储的ICKT进行比较。不匹配意味着请求中发送的ICK已被破解。在特定实施例中,可使用单向函数f(ick)(例如,HMAC)从原始ICK导出ICKT。在特定实施例中,如当用户最初请求登录时,ICKT可以在ICK被生成时被生成。与ICK不同,在特定实施例中,ICKT可以安全地存储在客户端设备上攻击者无法到达的位置,如在localStorage中。与cookies不同,遵循同一个源策略的localStorage是按源分开的(每个源都有自己独立的localStorage),这意味着一个源中的JavaScript无法访问另一个源的localStorage。例如,在第三方网站可以通过重写源进行托管的门户环境中,通过第三方重写源(例如,http://3rdparty.rewrite.0.fbs.com)托管的潜在攻击者的页面可能不同于ICKT的源(e.g.,http://0.fbs.com)。因此,攻击者网页上托管的脚本将无法访问ICKT,因为该ICKT安全地存储在不同源的localStorage中。结合使用localStorage来安全地存储ICKT,特定实施例可以利用2017年2月6日提交的、标题为“域门户上的安全内容传送(SECURE CONTENTDELIVERY OVER A DOMAIN PORTAL)”的第15/425,974号美国专利申请中公开的一个或更多个***、部件、元件、功能、方法、操作或步骤,其内容通过引用以其整体并入本文。
然而,并非所有的web浏览器都支持localStorage,例如Opera Mini。在特定实施例中,ICKT可以以根据本文描述的实施例的方式被存储为cookie,使得攻击者无法访问它,并且在发布时无法被固定,而不是使用localStorage作为安全存储装置。在高层次上,ICK和ICKT可以被存储为与不同主机相关联的cookies。为了实现这一点,在特定实施例中,ICK和ICKT可以经由重定向机制从不同主机分别传输到客户端设备。例如,ICK可能与主机rewrite.i.org相关联,而ICKT可能与不同的主机secure.0.fbs.com(或www.0.fbs.com)相关联。由于rewrite.i.org不与secure.0.fbs.com共享祖先域(ancestor domain),与例如www-3rdparty-com.rewrite.i.org相关联的JavaScript无法访问与secure.0.fbs.com相关联的ICKT cookie。
在特定实施例中,对客户端的ICK传输可以独立于ICKT传输。在特定实施例中,ICK密钥和ICKT验证令牌可以在同一时间生成,并且两者都不能被服务器持久保存。在ICK可能与ICKT在同一时间从同一主机传输到客户端设备时,攻击者可能会拦截ICKT和相关联的ICK。如果是这样,用户和攻击者都将能够共享与ICK相关联的会话并访问该相关联的会话。为了防止这种情况,服务器可以不直接将ICK与ICKT一起发送。在特定实施例中,服务器可以替代地向用户传输加密的ICK(本文中称为EICK)。在特定实施例中,EICK可以使用双向加密函数进行加密,其中秘密加密密钥只有服务器知道。在接收到EICK后,客户端设备可以请求服务器对EICK进行解密以获得ICK。为了防止攻击者类似地请求服务器对同一EICK进行解密,在特定实施例中,***可以将EICK绑定到一次性随机数,以限制这种解密将被授权的次数(例如,一次)。因此,即使攻击者能够拦截用户也可能拥有的EICK和一次性随机数,但是由于一次性随机数,只有其中一方(即,攻击者或用户,而不是双方)能够成功请求服务器对EICK进行解密。这种安全措施将防止攻击者和用户使用同一个ICK/ICKT,从而防止会话固定。
图1示出了根据本文描述的特定实施例的用户与门户建立会话的通信序列图的示例。所示示例示出了用户100与门户101(例如,0.freebasics.com)、安全源102(例如,www.0.freebasics.com)和重写源103(例如,rewrite.i.org)之间的通信。如上所述,安全源102是安全的,这在于其cookies不可被通过重写源103提供的第三方网页中的客户端侧脚本访问。在特定实施例中,安全源102(例如,www.0.fbs.com或secure.0.fbs.com)可以不与重写源(例如,rewrite.i.org)共享非公共后缀列表主机。如上所述,重写源103被配置成向用户提供对第三方网站的访问。在特定实施例中,与门户101、安全源102和重写源103相关联的服务器由公共实体控制。
在步骤110,在特定实施例中,用户100可以通过他/她的web浏览器或能够与关联于门户的远程服务器通信的任何其他类型的应用来发起与门户的登录过程。在特定实施例中,初始请求可以包括HTTP GET请求。可以向用户显示欢迎屏幕、登录屏幕和/或要求用户接受门户101的服务条款。
在步骤120,门户101可以用重定向指令(例如,使用带有状态代码302的HTTP响应)来响应,该重定向指令将用户浏览器100重定向至安全源102。
在步骤125,用户浏览器100可以根据重定向指令向安全源102发送请求(例如,HTTP GET)。在特定实施例中,响应于该请求,与安全源102相关联的服务器可以生成ICK密钥。在特定实施例中,ICK密钥可以是每次用户请求与门户建立会话时新生成的随机或伪随机密钥。在特定实施例中,ICK密钥可能不会被服务器持久保存以便于用户隐私不受冷访问(cold-accessing)与ICK密钥相关联的cookie jar的影响。应当理解,ICK密钥生成不受请求者提供的任何东西的影响,以进一步确保其完整性。在特定实施例中,一旦ICK密钥被生成,服务器也可以生成与ICK密钥相关联的传输中(in-transit)密钥。在特定实施例中,可以被称为EICK的传输中密钥可以通过使用加密函数加密ICK密钥来生成,使得EICK=E(SECRET,ICK),其中SECRET是服务器侧秘密密钥,而加密函数E(K,M)表示消息M在密钥K下的对称加密。在特定实施例中,服务器还可以生成一次性随机数N,该一次性随机数N在随后的通信中仅能提交给服务器一次,以确保EICK仅被解密一次。在特定实施例中,一次性随机数N可以被绑定到EICK,使得一次性随机数N的验证取决于相关EICK的提交(例如,如果随一次性随机数提交了不同的EICK,则一次性随机数的验证可能失败)。此外,在特定实施例中,如上所述,服务器可以生成验证令牌ICKT。ICKT令牌可以使用,例如,具有秘密密钥的HMAC函数或任何其他单向函数从ICK导出,使得无法从ICKT获得ICK。
在步骤130,服务器可以从安全源102向用户100发送响应。响应可以包括指令,该指令使用户浏览器100将生成的ICKT存储为,例如,与安全源103.1相关联的、JavaScript可访问的客户端侧cookie。由于安全源(例如,secure.0.fbs.com或www.0.fbs.com)和重写源(例如,rewrite.i.org)不共享非公共后缀列表主机,所以通过重写源托管的站点(可能包含恶意代码)无法影响、访问或隐藏与安全源相关联的cookies。虽然攻击者可能能够使用cookie泛洪(cookie-flooding)清除cookie,但这将导致获得新的ICK和ICKT。在特定实施例中,ICKT cookie没有使用HttpOnly标志进行设置,这使得客户端侧脚本(例如,由安全源102托管的脚本)可以访问ICKT cookie,从而客户端侧脚本可以使用ICKT来验证ICK的完整性。在特定实施例中,服务器还可以通过安全源102向用户100发送EICK和一次性随机数N。应当理解,由于EICK和一次性随机数N可能容易受到攻击,发送加密的EICK而不是实际的ICK防止了ICK在此阶段被暴露给攻击者。
在步骤140,用户100可以向重写源103发送EICK和一次性随机数N,请求它对EICK进行解密。例如,EICK和一次性随机数N可以作为与重写源103相关联的URL的查询参数来传输。一旦接收到请求,与重写源103相关联的服务器可以基于一次性随机数N来验证该请求是否有效。例如,服务器可以检查一次性随机数N之前是否已经被使用过。如果一次性随机数已经被使用过,服务器可以阻止该请求,并发出带有代码403的HTTP禁止响应。服务器还可以检查一次性随机数N是否绑定到给定的EICK,如果一次性随机数N和EICK没有彼此绑定,则阻止请求。这个过程确保任何给定的EICK只能被服务器解密一次,进而确保只有一个请求方可以从服务器获得解密的ICK。如果服务器确定一次性随机数N绑定到EICK并且它从未被使用过,则服务器可以将一次性随机数标记为正在使用,并且使用例如ICK=D(SECRET,EICK)从EICK恢复ICK,其中SECRET表示上面讨论的秘密加密密钥,而D(K,M)表示消息M在密钥K下的对称解密。
在步骤150,与重写源103相关联的服务器可以用ICK向用户100发送响应。在特定实施例中,响应可以包括指令,该指令使用户浏览器100将ICK存储为与重写源103相关联的cookie。ICK可以被存储为HttpOnly cookie,因此客户端侧脚本无法访问它。在特定实施例中,服务器还可以向用户100发送重定向指令(例如,具有代码302的HTTP响应),该重定向指令使得用户的浏览器100恢复与门户101的通信(例如,步骤160)。
通过重定向用户100以从不同源请求ICKT和ICK,在特定实施例中,ICKT cookie和ICK cookie与不同主机相关联(例如,ICKT与安全源102相关联,ICK与重写源103相关联)。即使攻击者可以控制与重写源103相关联的ICK,攻击者也将无法使用ICK作为ICK固定向量,因为它与ICKT不匹配。例如,让我们假设攻击者可以控制EICK和一次性随机数N(例如,通过窃取用户的EICK和N或使用户使用攻击者的EICK和N)。如果攻击者希望知道相应的ICK,它必须(a)破解EICK的加密(这是不可能的)以直接获得ICK而不要求服务器对它进行解密;或者(b)要求服务器对EICK进行解密。由于服务器(由于一次性随机数N)只对EICK进行一次解密,攻击者或用户(而不是两者都)可以获得ICK。例如,如果攻击者首先要求服务器解密(例如,用户的EICK或攻击者的EICK),服务器将拒绝用户的后续请求。另一方面,如果用户先解密,然后攻击者试图解密,服务器将拒绝攻击者的后续请求。因此,攻击者将无法实现会话固定,这需要攻击者和用户使用同一ICK。此外,纯属偶然地为攻击者和用户随机生成同一ICK是非常不可能的。
图2示出了用于安全地与服务器建立会话的示例方法200。方法可以开始于步骤210,其中计算***可以从与用户相关联的客户端设备接收第一请求。第一请求可以被定向至与计算***相关联的第一主机(例如,安全源)。在步骤220,响应于第一请求,***可以生成密钥、基于该密钥的验证令牌和基于该密钥的加密密钥。在步骤230,***可以从与计算***相关联的第一主机向客户端设备传输第一指令、验证令牌和加密密钥。第一指令可以被配置成使得验证令牌作为第一cookie存储在客户端设备上,其中第一cookie与第一主机相关联。第一指令还可以被配置成使得客户端设备将加密密钥传输到与计算***相关联的第二主机(例如,重写源)。在步骤240,***可以从客户端设备接收包括加密密钥的第二请求。在步骤250,***可以确定加密密钥之前是否被解密过。在步骤260,一旦确定加密密钥之前未被解密过,***可以对接收到的加密密钥进行解密以获得密钥。然后在步骤270,***可以将第二指令和从解密获得的密钥从第二主机传输到客户端设备。第二指令可以被配置成使得从解密获得的密钥作为第二cookie存储在客户端设备上,其中第二cookie与第二主机相关联。相反,如果在步骤250***确定密钥之前被解密过,则在步骤280,***可以阻止用户的请求。在适当的情况下,特定实施例可以重复图2方法的一个或更多个步骤。尽管本公开描述并示出了图2方法的特定步骤如以特定顺序发生,本公开设想了图2方法的任何合适的步骤以任何合适的顺序发生。此外,尽管本公开描述并示出了用于与服务器安全建立会话的示例方法包括图2方法的特定步骤,本公开设想了包括任何合适步骤的用于与服务器安全建立会话的任何合适的方法,在适当的情况下,该方法可以包括图2方法的所有、一些步骤,或没有包括图2方法的任何步骤。此外,尽管本公开描述并示出了执行图2方法的特定步骤的特定部件、设备或***,本公开设想了执行图2方法的任何合适步骤的任何合适部件、设备或***的任何合适组合。
图3示出了与社交网络***相关联的示例网络环境300。网络环境300包括通过网络310连接到彼此的客户端***330、社交网络***360和第三方***370。尽管图3示出了客户端***330、社交网络***360、第三方***370和网络310的特定布置,但是本公开设想了客户端***330、社交网络***360、第三方***370和网络310的任何合适的布置。作为示例而不是作为限制,客户端***330、社交网络***360和第三方***370中的两个或更多个可以直接连接到彼此,绕过网络310。作为另一示例,客户端***330、社交网络***360和第三方***370中的两个或更多个可以全部或部分地在物理上或逻辑上彼此位于同一位置(co-located)。此外,尽管图3示出了特定数量的客户端***330、社交网络***360、第三方***370和网络310,但是本公开设想了任何合适数量的客户端***330、社交网络***360、第三方***370和网络310。作为示例而不是作为限制,网络环境300可以包括多个客户端***330、社交网络***360、第三方***370和网络310。
本公开设想了任何合适的网络310。作为示例而不是作为限制,网络310的一个或更多个部分可以包括自组织网络、内联网、外联网、虚拟专用网络(VPN)、局域网(LAN)、无线LAN(WLAN)、广域网(WAN)、无线WAN(WWAN)、城域网(MAN)、互联网的一部分、公共交换电话网(PSTN)的一部分、蜂窝电话网、或这些中的两个或更多个的组合。网络310可以包括一个或更多个网络310。
链路350可以将客户端***330、社交网络***360和第三方***370连接到通信网络310或连接到彼此。本公开设想了任何合适的链路350。在特定实施例中,一个或更多个链路350包括一个或更多个有线(例如数字用户线路(DSL)或基于电缆的数据服务接口规范(DOCSIS))链路、无线(例如Wi-Fi或全球互通微波接入(WiMAX))链路、或光(例如同步光网络(SONET)或同步数字体系(SDH))链路。在特定实施例中,一个或更多个链路350各自包括自组织网络、内联网、外联网、VPN、LAN、WLAN、WAN、WWAN、MAN、互联网的一部分、PSTN的一部分、基于蜂窝技术的网络、基于卫星通信技术的网络、另一链路350、或两个或更多个这种链路350的组合。链路350不需要在整个网络环境300中是相同的。一个或更多个第一链路350可以在一个或更多个方面上不同于一个或更多个第二链路350。
在特定实施例中,客户端***330可以是包括硬件、软件或嵌入式逻辑部件、或两个或更多个这样的部件的组合,并且能够执行由客户端***330实现或支持的适当功能的电子设备。作为示例而不是作为限制,客户端***330可以包括计算机***,例如台式计算机、笔记本或膝上型计算机、上网本、平板计算机、电子书阅读器、GPS设备、摄像机、个人数字助理(PDA)、手持电子设备、蜂窝电话、智能手机、增强/虚拟现实设备、其他合适的电子设备、或其任何合适的组合。本公开设想了任何合适的客户端***330。客户端***330可以使在客户端***330处的网络用户能够访问网络310。客户端***330可以使它的用户能够与在其他客户端***330处的其他用户进行通信。
在特定实施例中,客户端***330可以包括web浏览器332,例如MICROSOFTINTERNET EXPLORER、GOOGLE CHROME或MOZILLA FIREFOX,并且可以具有一个或更多个附加件、插件或其他扩展件,例如TOOLBAR或YAHOO TOOLBAR。在客户端***330处的用户可以输入统一资源定位符(URL)或将web浏览器332引导到特定的服务器(例如服务器362或与第三方***370相关联的服务器)的其他地址,并且web浏览器332可以生成超文本传输协议(HTTP)请求并将HTTP请求传递到服务器。服务器可以接受HTTP请求,并响应于HTTP请求而向客户端***330传递一个或更多个超文本标记语言(HTML)文件。客户端***330可以基于来自服务器的HTML文件来显现网页用于呈现给用户。本公开设想了任何合适的网页文件。作为示例而不是作为限制,可以根据特定的需要从HTML文件、可扩展超文本标记语言(XHTML)文件或可扩展标记语言(XML)文件来显现网页。这样的页面还可以执行脚本,例如且没有限制,用JAVASCRIPT、JAVA、MICROSOFT SILVERLIGHT编写的脚本、标记语言和脚本(例如AJAX(异步JAVASCRIPT和XML))的组合等。在本文,在适当的情况下,对网页的引用包括一个或更多个相应的网页文件(浏览器可以使用这些网页文件来显现网页),反之亦然。
在特定实施例中,社交网络***360可以是可以托管在线社交网络的网络可寻址计算***。社交网络***360可以例如生成、存储、接收并发送社交网络数据(例如,用户简档数据、概念简档数据、社交图信息或与在线社交网络相关的其他合适的数据)。社交网络***360可以由网络环境300的其他组成部分直接地或经由网络310来访问。作为示例而不是作为限制,客户端***330可以使用web浏览器332或与社交网络***360相关联的原生(native)应用(例如,移动社交网络应用、消息传送应用、另一合适的应用或其任何组合)直接地或经由网络310来访问社交网络***360。在特定实施例中,社交网络***360可以包括一个或更多个服务器362。每个服务器362可以是单一服务器(unitary server)或跨越多台计算机或多个数据中心的分布式服务器。服务器362可以具有各种类型,例如且没有限制,web服务器、新闻服务器、邮件服务器、消息服务器、广告服务器、文件服务器、应用服务器、交换服务器、数据库服务器、代理服务器、适合于执行本文描述的功能或过程的另一服务器、或者其任何组合。在特定实施例中,每个服务器362可以包括硬件、软件或嵌入式逻辑部件、或用于执行由服务器362实现或支持的适当功能的两个或更多个这样的部件的组合。在特定实施例中,社交网络***360可以包括一个或更多个数据储存器364。数据储存器364可以用于存储各种类型的信息。在特定实施例中,可以根据特定的数据结构来组织存储在数据储存器364中的信息。在特定实施例中,每个数据储存器364可以是关系数据库、纵列(columnar)数据库、相关性数据库或其他合适的数据库。尽管本公开描述或示出了特定类型的数据库,但是本公开设想了任何合适类型的数据库。特定实施例可以提供使客户端***330、社交网络***360或第三方***370能够管理、检索、修改、添加或删除存储在数据储存器364中的信息的接口。
在特定实施例中,社交网络***360可以在一个或更多个数据储存器364中存储一个或更多个社交图。在特定实施例中,社交图可以包括多个节点——其可以包括多个用户节点(各自对应于特定用户)或多个概念节点(各自对应于特定概念)——以及连接节点的多条边。社交网络***360可以向在线社交网络的用户提供与其他用户通信和互动的能力。在特定实施例中,用户可以经由社交网络***360加入在线社交网络,且然后将关连(例如,关系)添加到社交网络***360中的他们想要关连到的多个其他用户。在本文,术语“朋友”可以指社交网络***360的任何其他用户,用户经由社交网络***360与任何其他用户形成关连(connection)、关联(association)或关系。
在特定实施例中,社交网络***360可以向用户提供对由社交网络***360支持的各种类型的项目或对象采取动作的能力。作为示例而不是作为限制,项目和对象可以包括社交网络***360的用户可以属于的组或社交网络、用户可能感兴趣的事件或日历条目、用户可以使用的基于计算机的应用、允许用户经由服务来购买或销售商品的交易、用户可以执行的与广告的交互、或其他合适的项目或对象。用户可以与能够在社交网络***360中或者由第三方***370的外部***表示的任何事物进行交互,第三方***370与社交网络***360分离并且经由网络310耦合到社交网络***360。
在特定实施例中,社交网络***360能够链接各种实体。作为示例而不是作为限制,社交网络***360可以使用户能够彼此互动以及从第三方***370或其他实体接收内容,或者允许用户通过应用编程接口(API)或其他通信渠道与这些实体交互。
在特定实施例中,第三方***370可以包括一种或更多种类型的服务器、一个或更多个数据储存器、一个或更多个接口(包括但不限于API)、一个或更多个web服务、一个或更多个内容源、一个或更多个网络或任何其他合适的部件(例如,服务器可以与这些部件通信)。第三方***370可以由与操作社交网络***360的实体不同的实体进行操作。然而,在特定实施例中,社交网络***360和第三方***370可以结合彼此来操作以向社交网络***360或第三方***370的用户提供社交网络服务。在这个意义上,社交网络***360可以提供平台或骨干网,其他***(例如第三方***370)可以使用该平台或骨干网来在整个互联网上向用户提供社交网络服务和功能。
在特定实施例中,第三方***370可以包括第三方内容对象提供者。第三方内容对象提供者可以包括可以被传递到客户端***330的内容对象的一个或更多个源。作为示例而不是作为限制,诸如,内容对象可以包括关于用户感兴趣的事情或活动的信息,例如电影放映时间、电影评论、餐馆评论、餐馆菜单、产品信息和评论或其他合适的信息。作为另一示例而不是作为限制,内容对象可以包括激励内容对象(例如优惠券、折扣券、礼品券或其他合适的激励对象)。
在特定实施例中,社交网络***360还包括用户生成的内容对象,其可以增强用户与社交网络***360的交互。用户生成的内容可以包括用户可以添加、上传、发送或“发布”到社交网络***360的任何内容。作为示例而不是作为限制,用户将帖子从客户端***330传送到社交网络***360。帖子可以包括数据,例如状态更新或其他文本数据、位置信息、照片、视频、链接、音乐或其他类似数据或媒体。内容还可以由第三方通过“通信渠道”(例如动态消息或流)来添加到社交网络***360。
在特定实施例中,社交网络***360可以包括各种服务器、子***、程序、模块、日志和数据储存器。在特定实施例中,社交网络***360可以包括下列项中的一项或更多项:web服务器、动作控制器、动作日志、第三方内容对象暴露日志、推理模块、授权/隐私服务器、搜索模块、广告定位模块(advertisement-targeting module)、用户界面模块、用户简档储存器、关连储存器(connection store)、第三方内容储存器或位置储存器。社交网络***360还可以包括合适的部件,例如网络接口、安全机构、负载平衡器、故障转移服务器、管理和网络操作控制台、其他合适的部件、或其任何合适的组合。在特定实施例中,社交网络***360可以包括用于存储用户简档的一个或更多个用户简档储存器。用户简档可以包括例如传记信息、人口统计信息、行为信息、社交信息或其他类型的描述性信息(例如工作经历、教育历史、爱好或偏好、兴趣、喜好或位置)。兴趣信息可以包括与一个或更多个类别相关的兴趣。类别可以是一般的或特定的。作为示例而不是作为限制,如果用户“赞(like)”关于一种品牌的鞋的文章,该类别可以是品牌,或者“鞋”或“衣服”的一般类别。关连储存器可以用于存储关于用户的关连信息。关连信息可以指示具有相似或共同的工作经历、组成员资格、爱好、教育历史或者以任何方式相关或共享共同属性的用户。关连信息还可以包括在不同用户和内容(内部和外部)之间的用户定义的关连。web服务器可以用于经由网络310将社交网络***360链接到一个或更多个客户端***330或一个或更多个第三方***370。web服务器可以包括邮件服务器或用于在社交网络***360和一个或更多个客户端***330之间接收并按规定路线发送消息的其他消息传送功能。API请求服务器可以允许第三方***370通过调用一个或更多个API来访问来自社交网络***360的信息。动作记录器可以用于从web服务器接收关于用户在社交网络***360上或之外的动作的通信。结合动作日志,可以维护关于对第三方内容对象的用户暴露的第三方内容对象日志。通知控制器可以向客户端***330提供关于内容对象的信息。信息可以作为通知被推送到客户端***330,或者信息可以响应于从客户端***330接收的请求而从客户端***330中被拉取。授权服务器可以用于实施社交网络***360的用户的一个或更多个隐私设置。用户的隐私设置确定与用户相关联的特定信息可以如何被分享。授权服务器可以例如通过设置适当的隐私设置来允许用户决定加入或决定退出使他们的动作由社交网络***360记录或者与其他***(例如,第三方***370)分享。第三方内容对象储存器可以用于存储从第三方(例如第三方***370)接收的内容对象。位置储存器可以用于存储从与用户相关联的客户端***330接收的位置信息。广告定价模块可以组合社交信息、当前时间、位置信息或其他合适的信息以用通知的形式向用户提供相关广告。
图4示出了示例计算机***400。在特定实施例中,一个或更多个计算机***400执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在特定实施例中,一个或更多个计算机***400提供本文描述或示出的功能。在特定实施例中,在一个或更多个计算机***400上运行的软件执行本文描述或示出的一个或更多个方法的一个或更多个步骤,或者提供本文描述或示出的功能。特定实施例包括一个或更多个计算机***400的一个或更多个部分。在本文,在适当的情况下,对计算机***的引用可以包括计算设备,反之亦然。此外,在适当的情况下,对计算机***的引用可以包括一个或更多个计算机***。
本公开设想了任何合适数量的计算机***400。本公开设想了计算机***400采取任何合适的物理形式。作为示例而不是作为限制,计算机***400可以是嵌入式计算机***、片上***(SOC)、单板计算机***(SBC)(例如,模块上计算机(COM)或模块上***(SOM))、台式计算机***、膝上型或笔记本计算机***、交互式信息亭(interactivekiosk)、大型机、计算机***网状网、移动电话、个人数字助理(PDA)、服务器、平板计算机***、增强/虚拟现实设备、或者这些***的两个或更多个的组合。在适当的情况下,计算机***400可以包括一个或更多个计算机***400;是整体式的或分布式的;跨越多个位置;跨越多台机器;跨越多个数据中心;或者驻留在云中,云可以包括在一个或更多个网络中的一个或更多个云部件。在适当的情况下,一个或更多个计算机***400可以在没有实质性空间或时间限制的情况下执行本文描述或示出的一个或更多个方法的一个或更多个步骤。作为示例而不是作为限制,一个或更多个计算机***400可以实时地或以批处理模式来执行本文描述或示出的一个或更多个方法的一个或更多个步骤。在适当的情况下,一个或更多个计算机***400可以在不同的时间或在不同的位置处执行本文描述或示出的一个或更多个方法的一个或更多个步骤。
在特定实施例中,计算机***400包括处理器402、存储器404、存储装置406、输入/输出(I/O)接口408、通信接口410和总线412。尽管本公开描述并示出了具有在特定布置中的特定数量的特定部件的特定计算机***,但是本公开设想了具有在任何合适布置中的任何合适数量的任何合适部件的任何合适的计算机***。
在特定实施例中,处理器402包括用于执行指令(例如构成计算机程序的那些指令)的硬件。作为示例而不是作为限制,为了执行指令,处理器402可以从内部寄存器、内部高速缓存、存储器404或存储装置406中检索(或取回)指令;将他们解码并执行它们;以及然后将一个或更多个结果写到内部寄存器、内部高速缓存、存储器404或存储装置406。在特定实施例中,处理器402可以包括用于数据、指令或地址的一个或更多个内部高速缓存。在适当的情况下,本公开设想了处理器402包括任何合适数量的任何合适的内部高速缓存。作为示例而不是作为限制,处理器402可以包括一个或更多个指令高速缓存、一个或更多个数据高速缓存、以及一个或更多个转译后备缓冲器(TLB)。在指令高速缓存中的指令可以是在存储器404或存储装置406中的指令的副本,并且指令高速缓存可以加速处理器402对那些指令的检索。在数据高速缓存中的数据可以是在存储器404或存储装置406中的数据的副本,用于使在处理器402处执行的指令进行操作;在处理器402处执行的先前指令的结果,用于由在处理器402处执行的后续指令访问或者用于写到存储器404或存储装置406;或其他合适的数据。数据高速缓存可以加速由处理器402进行的读或写操作。TLB可以加速关于处理器402的虚拟地址转换。在特定实施例中,处理器402可以包括用于数据、指令或地址的一个或更多个内部寄存器。在适当的情况下,本公开设想了处理器402包括任何合适数量的任何合适的内部寄存器。在适当的情况下,处理器402可以包括一个或更多个算术逻辑单元(ALU);是多核处理器;或者包括一个或更多个处理器402。尽管本公开描述并示出了特定的处理器,但是本公开设想了任何合适的处理器。
在特定实施例中,存储器404包括主存储器,其用于存储用于处理器402执行的指令或用于处理器402操作的数据。作为示例而不是作为限制,计算机***400可以将指令从存储装置406或另一个源(例如,另一个计算机***400)加载到存储器404。处理器402然后可以将指令从存储器404加载到内部寄存器或内部高速缓存。为了执行指令,处理器402可以从内部寄存器或内部高速缓存中检索指令并将它们解码。在指令的执行期间或之后,处理器402可以将一个或更多个结果(其可以是中间结果或最终结果)写到内部寄存器或内部高速缓存。处理器402然后可以将这些结果中的一个或更多个写到存储器404。在特定实施例中,处理器402仅执行在一个或更多个内部寄存器或内部高速缓存中或在存储器404(与存储装置406或其它地方相对)中的指令,并且仅对在一个或更多个内部寄存器或内部高速缓存中或在存储器404(与存储装置406或其它地方相对)中的数据进行操作。一个或更多个存储器总线(其可以各自包括地址总线和数据总线)可以将处理器402耦合到存储器404。如下所述,总线412可以包括一个或更多个存储器总线。在特定实施例中,一个或更多个存储器管理单元(MMU)驻留在处理器402和存储器404之间,并且便于由处理器402请求的对存储器404的访问。在特定实施例中,存储器404包括随机存取存储器(RAM)。在适当的情况下,该RAM可以是易失性存储器。在适当的情况下,该RAM可以是动态RAM(DRAM)或静态RAM(SRAM)。此外,在适当的情况下,该RAM可以是单端口RAM或多端口RAM。本公开设想了任何合适的RAM。在适当的情况下,存储器404可以包括一个或更多个存储器404。尽管本公开描述并示出了特定的存储器,但是本公开设想了任何合适的存储器。
在特定实施例中,存储装置406包括用于数据或指令的大容量存储装置。作为示例而不是作为限制,存储装置406可以包括硬盘驱动器(HDD)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(USB)驱动器、或这些中的两个或更多个的组合。在适当的情况下,存储装置406可以包括可移动或不可移动(或固定)介质。在适当的情况下,存储装置406可以在计算机***400的内部或外部。在特定实施例中,存储装置406是非易失性固态存储器。在特定实施例中,存储装置406包括只读存储器(ROM)。在适当的情况下,该ROM可以是掩模编程ROM、可编程ROM(PROM)、可擦除PROM(EPROM)、电可擦除PROM(EEPROM)、电可变ROM(EAROM)、或闪存、或这些中的两个或更多个的组合。本公开设想了采用任何合适的物理形式的大容量存储装置406。在适当的情况下,存储装置406可以包括便于在处理器402和存储装置406之间的通信的一个或更多个存储装置控制单元。在适当的情况下,存储装置406可以包括一个或更多个存储装置406。尽管本公开描述并示出了特定的存储装置,但是本公开设想了任何合适的存储装置。
在特定实施例中,I/O接口408包括为在计算机***400和一个或更多个I/O设备之间的通信提供一个或更多个接口的硬件、软件或两者。在适当的情况下,计算机***400可以包括这些I/O设备中的一个或更多个。这些I/O设备中的一个或更多个可以实现在人和计算机***400之间的通信。作为示例而不是作为限制,I/O设备可以包括键盘、小键盘、麦克风、监视器、鼠标、打印机、扫描仪、扬声器、静态摄像机、触笔、手写板、触摸屏、跟踪球、视频摄像机、另一个合适的I/O设备、或这些中的两个或更多个的组合。I/O设备可以包括一个或更多个传感器。本公开设想了任何合适的I/O设备以及用于它们的任何合适的I/O接口408。在适当的情况下,I/O接口408可以包括使处理器402能够驱动这些I/O设备中的一个或更多个的一个或更多个设备或软件驱动器。在适当的情况下,I/O接口408可以包括一个或更多个I/O接口408。尽管本公开描述并示出了特定的I/O接口,但是本公开设想了任何合适的I/O接口。
在特定实施例中,通信接口410包括提供用于在计算机***400和一个或更多个其他计算机***400或一个或更多个网络之间的通信(例如,基于分组的通信)的一个或更多个接口的硬件、软件或两者。作为示例而不是作为限制,通信接口410可以包括用于与以太网或其他基于有线的网络进行通信的网络接口控制器(NIC)或网络适配器,或用于与无线网络(例如WI-FI网络)进行通信的无线NIC(WNIC)或无线适配器。本公开设想了任何合适的网络和用于它的任何合适的通信接口410。作为示例而不是作为限制,计算机***400可以与自组织网络、个域网(PAN)、局域网(LAN)、广域网(WAN)、城域网(MAN)或互联网的一个或更多个部分、或这些中的两个或更多个的组合进行通信。这些网络中的一个或更多个的一个或更多个部分可以是有线的或无线的。作为示例,计算机***400可以与无线PAN(WPAN)(例如,蓝牙WPAN)、WI-FI网络、WI-MAX网络、蜂窝电话网络(例如,全球移动通信***(GSM)网络)、或其他合适的无线网络、或这些中的两个或更多个的组合进行通信。在适当的情况下,计算机***400可以包括用于这些网络中的任一个的任何合适的通信接口410。在适当的情况下,通信接口410可以包括一个或更多个通信接口410。尽管本公开描述并示出了特定的通信接口,但是本公开设想了任何合适的通信接口。
在特定实施例中,总线412包括将计算机***400的部件耦合到彼此的硬件、软件或两者。作为示例而不是作为限制,总线412可以包括加速图形端口(AGP)或其他图形总线、扩展工业标准体系结构(EISA)总线、前端总线(FSB)、超传输(HYPERTRANSPORT,HT)互连、工业标准体系结构(ISA)总线、无线带宽(INFINIBAND)互连、低引脚数(LPC)总线、存储器总线,微通道体系结构(MCA)总线、***部件互连(PCI)总线、PCI-Express(扩展)(PCIe)总线、串行高级技术附件(SATA)总线、视频电子标准协会本地(VLB)总线、或任何其他合适的总线、或这些中的两个或更多个的组合。在适当的情况下,总线412可以包括一个或更多个总线412。尽管本公开描述并示出了特定总线,但是本公开设想了任何合适的总线或互连。
在本文,在适当的情况下,一个或更多个计算机可读非暂时性存储介质可以包括一个或更多个基于半导体的集成电路(IC)或其他集成电路(例如,现场可编程门阵列(FPGA)或专用IC(ASIC))、硬盘驱动器(HDD)、混合硬盘驱动器(HHD)、光盘、光盘驱动器(ODD)、磁光盘、磁光盘驱动器、软盘、软盘驱动器(FDD)、磁带、固态驱动器(SSD)、RAM驱动器、安全数字(SECURE DIGITAL)卡或驱动器、任何其他合适的计算机可读非暂时性存储介质、或这些中的两个或更多个的组合。在适当的情况下,计算机可读非暂时性存储介质可以是易失性的、非易失性的或者易失性和非易失性的组合。
本文中,除非另有明确指示或通过上下文另有指示,否则“或”是包括一切的而非排他性的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A或B”意指“A、B或两者”。此外,除非另有明确指示或通过上下文另有指示,否则“和”既是联合的又是各自的。因此在本文,除非另有明确指示或通过上下文另有指示,否则“A和B”意指“A和B,联合地或各自地”。
本公开的范围包括本领域中的普通技术人员将理解的对本文描述或示出的示例实施例的所有改变、替换、变化、变更和修改。本公开的范围不限于本文描述或示出的示例实施例。此外,尽管本公开将本文的相应实施例描述并示为包括特定的部件、元件、特征、功能、操作或步骤,但是这些实施例中的任何一个可以包括本领域中的普通技术人员将理解的在本文任何地方描述或示出的任何部件、元件、特征、功能、操作或步骤的任何组合或置换。此外,在所附权利要求中对适合于、被布置成、能够、被配置成、实现来、可操作来、或操作来执行特定功能的装置或***或装置或***的部件的引用包括该装置、***、部件,无论它或那个特定功能是否被激活、开启或解锁,只要该装置、***或部件是如此被调整、被布置、有能力的、被配置、实现、可操作的、或操作的。此外,尽管本公开将特定实施例描述或示为提供特定优点,但是特定实施例可以提供这些优点中的一些、全部或不提供这些优点。
Claims (30)
1.一种方法,包括:
由计算***从与用户相关联的客户端设备接收第一请求,所述第一请求被定向到与所述计算***相关联的第一主机;
由所述计算***响应于所述第一请求生成密钥;
由所述计算***基于所述密钥生成验证令牌;
由所述计算***基于所述密钥生成加密密钥;
由所述计算***从与所述计算***相关联的第一主机向所述客户端设备传输第一指令、所述验证令牌和所述加密密钥,所述第一指令被配置成:
使所述验证令牌作为第一cookie存储在所述客户端设备上,所述第一cookie与所述第一主机相关联;
使所述客户端设备将所述加密密钥传输到与所述计算***相关联的第二主机;
由所述计算***从所述客户端设备接收包括所述加密密钥的第二请求;
由所述计算***在确定所述加密密钥之前未被解密过时,对接收到的加密密钥进行解密以获得所述密钥;以及
由所述计算***,从所述第二主机向所述客户端设备传输第二指令和通过解密获得的所述密钥,所述第二指令被配置成使得通过解密获得的所述密钥作为第二cookie存储在所述客户端设备上,所述第二cookie与所述第二主机相关联。
2.根据权利要求1所述的方法,还包括:
由所述计算***从所述客户端设备接收先前请求,其中所述先前请求被定向至与所述计算***相关联的第三主机,并且在所述请求被接收之前被接收;以及
由所述计算***响应于所述先前请求向所述客户端设备传输重定向指令,所述重定向指令被配置成使得所述客户端设备向所述第一主机发送所述第一请求。
3.根据权利要求1所述的方法,还包括:
由所述计算***生成一次性随机数;以及
由所述计算***向所述客户端设备传输所述一次性随机数;
其中所述第一指令被配置成使得所述客户端设备将所述一次性随机数随所述加密密钥一起传输到与所述计算***相关联的所述第二主机;以及
其中确定所述加密密钥之前未被解密过是基于所述一次性随机数。
4.根据权利要求3所述的方法,还包括:
由所述计算***从与第二用户相关联的第二客户端设备接收第三请求,该第三请求包括所述加密密钥和所述一次性随机数;
由所述计算***确定(1)所述一次性随机数之前被使用过,或者(2)所述一次性随机数没有绑定到所述加密密钥;以及
由所述计算***拒绝所述第三请求。
5.根据权利要求1所述的方法,其中,所述第一cookie被配置成能够被客户端侧脚本访问,其中所述第二cookie被配置成不能被客户端侧脚本访问。
6.根据权利要求1所述的方法,其中,所述第一主机和所述第二主机不同。
7.根据权利要求1所述的方法,其中,所述第二主机被配置成提供对由第三方托管的网页的访问。
8.根据权利要求1所述的方法,还包括:
由所述计算***从所述客户端设备接收包括被存储为所述第二cookie的所述密钥的第三请求;
由所述计算设备基于随所述第三请求一起被接收的所述密钥生成第二验证令牌;以及
由所述计算设备响应于所述第三请求向所述客户端设备传输网页,所述网页包括所述第二验证令牌和指令,该指令被配置成使所述客户端设备:
将所述第二验证令牌与被存储为所述第一cookie的验证令牌进行比较;以及
基于所述比较确定是否呈现所述网页。
9.一个或更多个计算机可读非暂时性存储介质,包含软件,所述软件当被执行时可操作来:
从与用户相关联的客户端设备接收第一请求,所述第一请求被定向到与计算***相关联的第一主机;
响应于所述第一请求生成密钥;
基于所述密钥生成验证令牌;
基于所述密钥生成加密密钥;
从与所述计算***相关联的第一主机向所述客户端设备传输第一指令、所述验证令牌和所述加密密钥,所述第一指令被配置成:
使所述验证令牌作为第一cookie存储在所述客户端设备上,所述第一cookie与所述第一主机相关联;
使所述客户端设备将所述加密密钥传输到与所述计算***相关联的第二主机;
从所述客户端设备接收包括所述加密密钥的第二请求;
在确定所述加密密钥之前未被解密过时,对接收到的加密密钥进行解密以获得所述密钥;以及
从所述第二主机向所述客户端设备传输第二指令和通过解密获得的所述密钥,所述第二指令被配置成使得通过解密获得的所述密钥作为第二cookie存储在所述客户端设备上,所述第二cookie与所述第二主机相关联。
10.根据权利要求9所述的介质,其中,所述软件当被执行时还可操作来:
从所述客户端设备接收先前请求,其中所述先前请求被定向至与所述计算***相关联的第三主机,并且在所述请求被接收之前被接收;以及
响应于所述先前请求向所述客户端设备传输重定向指令,所述重定向指令被配置成使得所述客户端设备向所述第一主机发送所述第一请求。
11.根据权利要求9所述的介质,其中,所述软件当被执行时还可操作来:
生成一次性随机数;以及
向所述客户端设备传输所述一次性随机数;
其中所述第一指令被配置成使得所述客户端设备将所述一次性随机数随所述加密密钥一起传输到与所述计算***相关联的所述第二主机;以及
其中确定所述加密密钥之前未被解密过是基于所述一次性随机数。
12.根据权利要求11所述的介质,其中,所述软件当被执行时还可操作来:
从与第二用户相关联的第二客户端设备接收第三请求,该第三请求包括所述加密密钥和所述一次性随机数;
确定(1)所述一次性随机数之前被使用过,或者(2)所述一次性随机数没有绑定到所述加密密钥;以及
拒绝所述第三请求。
13.根据权利要求9所述的介质,其中,所述第二主机被配置成提供对由第三方托管的网页的访问。
14.根据权利要求9所述的介质,其中,所述软件当被执行时还可操作来:
从所述客户端设备接收包括被存储为所述第二cookie的所述密钥的第三请求;
基于随所述第三请求一起被接收的所述密钥生成第二验证令牌;以及
响应于所述第三请求向所述客户端设备传输网页,所述网页包括所述第二验证令牌和指令,该指令被配置成使所述客户端设备:
将所述第二验证令牌与被存储为所述第一cookie的验证令牌进行比较;以及
基于所述比较确定是否呈现所述网页。
15.一种计算***,包括:
一个或更多个处理器;以及
一个或更多个计算机可读非暂时性存储介质,其耦合到一个或更多个所述处理器并包括指令,所述指令当由一个或更多个所述处理器执行时可操作来使所述***:
从与用户相关联的客户端设备接收第一请求,所述第一请求被定向到与所述计算***相关联的第一主机;
响应于所述第一请求生成密钥;
基于所述密钥生成验证令牌;
基于所述密钥生成加密密钥;
从与所述计算***相关联的第一主机向所述客户端设备传输第一指令、所述验证令牌和所述加密密钥,所述第一指令被配置成:
使所述验证令牌作为第一cookie存储在所述客户端设备上,所述第一cookie与所述第一主机相关联;
使所述客户端设备将所述加密密钥传输到与所述计算***相关联的第二主机;
从所述客户端设备接收包括所述加密密钥的第二请求;
在确定所述加密密钥之前未被解密过时,对接收到的加密密钥进行解密以获得所述密钥;以及
从所述第二主机向所述客户端设备传输第二指令和通过解密获得的所述密钥,所述第二指令被配置成使得通过解密获得的所述密钥作为第二cookie存储在所述客户端设备上,所述第二cookie与所述第二主机相关联。
16.根据权利要求15所述的***,其中,当执行所述指令时,所述处理器还可操作来:
从所述客户端设备接收先前请求,其中所述先前请求被定向至与所述计算***相关联的第三主机,并且在所述请求被接收之前被接收;以及
响应于所述先前请求向所述客户端设备传输重定向指令,所述重定向指令被配置成使得所述客户端设备向所述第一主机发送所述第一请求。
17.根据权利要求15所述的***,其中,当执行所述指令时,所述处理器还可操作来:
生成一次性随机数;以及
向所述客户端设备传输所述一次性随机数;
其中所述第一指令被配置成使得所述客户端设备将所述一次性随机数随所述加密密钥一起传输到与所述计算***相关联的所述第二主机;以及
其中确定所述加密密钥之前未被解密过是基于所述一次性随机数。
18.根据权利要求17所述的***,其中,当执行所述指令时,所述处理器还可操作来:
从与第二用户相关联的第二客户端设备接收第三请求,该第三请求包括所述加密密钥和所述一次性随机数;
确定(1)所述一次性随机数之前被使用过,或者(2)所述一次性随机数没有绑定到所述加密密钥;以及
拒绝所述第三请求。
19.根据权利要求15所述的***,其中,所述第二主机被配置成提供对由第三方托管的网页的访问。
20.根据权利要求15所述的***,其中,当执行所述指令时,所述处理器还可操作来:
从所述客户端设备接收包括被存储为所述第二cookie的所述密钥的第三请求;
基于随所述第三请求一起被接收的所述密钥生成第二验证令牌;以及
响应于所述第三请求向所述客户端设备传输网页,所述网页包括所述第二验证令牌和指令,该指令被配置成使所述客户端设备:
将所述第二验证令牌与被存储为所述第一cookie的验证令牌进行比较;以及
基于所述比较确定是否呈现所述网页。
21.一种计算机实现的方法,包括:
由计算***从与用户相关联的客户端设备接收第一请求,所述第一请求被定向到与所述计算***相关联的第一主机;
由所述计算***响应于所述第一请求生成密钥;
由所述计算***基于所述密钥生成验证令牌;
由所述计算***基于所述密钥生成加密密钥;
由所述计算***从与所述计算***相关联的第一主机向所述客户端设备传输第一指令、所述验证令牌和所述加密密钥,所述第一指令被配置成:
使所述验证令牌作为第一cookie存储在所述客户端设备上,所述第一cookie与所述第一主机相关联;
使所述客户端设备将所述加密密钥传输到与所述计算***相关联的第二主机;
由所述计算***从所述客户端设备接收包括所述加密密钥的第二请求;
由所述计算***在确定所述加密密钥之前未被解密过时,对接收到的加密密钥进行解密以获得所述密钥;以及
由所述计算***,从所述第二主机向所述客户端设备传输第二指令和通过解密获得的所述密钥,所述第二指令被配置成使得通过解密获得的所述密钥作为第二cookie存储在所述客户端设备上,所述第二cookie与所述第二主机相关联。
22.根据权利要求21所述的方法,还包括:
由所述计算***从所述客户端设备接收先前请求,其中所述先前请求被定向至与所述计算***相关联的第三主机,并且在所述请求被接收之前被接收;以及
由所述计算***响应于所述先前请求向所述客户端设备传输重定向指令,所述重定向指令被配置成使得所述客户端设备向所述第一主机发送所述第一请求。
23.根据权利要求21或22所述的方法,还包括:
由所述计算***生成一次性随机数;以及
由所述计算***向所述客户端设备传输所述一次性随机数;
其中所述第一指令被配置成使得所述客户端设备将所述一次性随机数随所述加密密钥一起传输到与所述计算***相关联的所述第二主机;以及
其中确定所述加密密钥之前未被解密过是基于所述一次性随机数。
24.根据权利要求23所述的方法,还包括:
由所述计算***从与第二用户相关联的第二客户端设备接收第三请求,该第三请求包括所述加密密钥和所述一次性随机数;
由所述计算***确定(1)所述一次性随机数之前被使用过,或者(2)所述一次性随机数没有绑定到所述加密密钥;以及
由所述计算***拒绝所述第三请求。
25.根据权利要求21至24中任一项所述的方法,其中,所述第一cookie被配置成能够被客户端侧脚本访问,其中所述第二cookie被配置成不能被客户端侧脚本访问。
26.根据权利要求21至25中任一项所述的方法,其中,所述第一主机和所述第二主机不同。
27.根据权利要求21至26中任一项所述的方法,其中,所述第二主机被配置成提供对由第三方托管的网页的访问。
28.根据权利要求21至27中任一项所述的方法,还包括:
由所述计算***从所述客户端设备接收包括被存储为所述第二cookie的所述密钥的第三请求;
由所述计算设备基于随所述第三请求一起被接收的所述密钥生成第二验证令牌;以及
由所述计算设备响应于所述第三请求向所述客户端设备传输网页,所述网页包括所述第二验证令牌和指令,该指令被配置成使所述客户端设备:
将所述第二验证令牌与被存储为所述第一cookie的验证令牌进行比较;以及
基于所述比较确定是否呈现所述网页。
29.一个或更多个计算机可读非暂时性存储介质,包含软件,该软件当由计算***的一个或更多个处理器执行时可操作来使所述处理器,特别是计算***,执行包括根据权利要求21至28中任一项所述的方法的所有步骤的方法。
30.一种计算***,其包括:一个或更多个处理器;以及一个或更多个计算机可读非暂时性存储介质,该一个或更多个计算机可读非暂时性存储介质耦合到一个或更多个所述处理器,并且包括指令,所述指令当由一个或更多个所述处理器执行时可操作来使所述***执行包括根据权利要求21至28中任一项所述的方法的所有步骤的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/605,563 US10454672B2 (en) | 2017-05-25 | 2017-05-25 | Systems and methods for preventing session fixation over a domain portal |
US15/605,563 | 2017-05-25 | ||
PCT/US2017/034682 WO2018217212A1 (en) | 2017-05-25 | 2017-05-26 | Systems and methods for preventing session fixation over a domain portal |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110771112A true CN110771112A (zh) | 2020-02-07 |
CN110771112B CN110771112B (zh) | 2022-02-15 |
Family
ID=64395781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780092028.4A Active CN110771112B (zh) | 2017-05-25 | 2017-05-26 | 用于防止域门户上会话固定的***和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10454672B2 (zh) |
JP (1) | JP7018455B2 (zh) |
KR (1) | KR102365807B1 (zh) |
CN (1) | CN110771112B (zh) |
WO (1) | WO2018217212A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343191A (zh) * | 2020-03-03 | 2020-06-26 | 浙江大华技术股份有限公司 | 会话校验方法及装置、存储介质、电子装置 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10715513B2 (en) * | 2017-06-30 | 2020-07-14 | Microsoft Technology Licensing, Llc | Single sign-on mechanism on a rich client |
US10263970B1 (en) * | 2018-10-07 | 2019-04-16 | Capital One Services, Llc | System, method and architecture for secure sharing of customer intelligence |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060212706A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Scalable session management |
US20090171982A1 (en) * | 1999-12-21 | 2009-07-02 | Thomas Hagan | Privacy and Security Method and System for a World-Wide-Web Site |
US20150149777A1 (en) * | 2013-11-22 | 2015-05-28 | Electronics And Telecommunications Research Institute | Mobile terminal, terminal and authentication method using security cookie |
CN105429978A (zh) * | 2015-11-13 | 2016-03-23 | 中国建设银行股份有限公司 | 数据访问方法、设备及*** |
CN106415567A (zh) * | 2013-08-21 | 2017-02-15 | 微软技术许可有限责任公司 | 基于web浏览器cookie的安全令牌的拥有证明 |
CN106576041A (zh) * | 2014-06-27 | 2017-04-19 | 林建华 | 客户端与服务器之间相互验证的方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6985953B1 (en) * | 1998-11-30 | 2006-01-10 | George Mason University | System and apparatus for storage and transfer of secure data on web |
JP2001075468A (ja) * | 1999-09-03 | 2001-03-23 | Yamazaki Kyoiku Kizai Kk | インターネット教育システム、クライアントサーバシステムおよび記録媒体 |
US6601169B2 (en) | 1999-12-30 | 2003-07-29 | Clyde Riley Wallace, Jr. | Key-based secure network user states |
US20050154887A1 (en) * | 2004-01-12 | 2005-07-14 | International Business Machines Corporation | System and method for secure network state management and single sign-on |
JP4979210B2 (ja) * | 2005-08-24 | 2012-07-18 | 株式会社みずほ銀行 | ログイン情報管理装置及び方法 |
JP5262941B2 (ja) * | 2009-04-10 | 2013-08-14 | ソニー株式会社 | 認証装置、認証方法、及びプログラム |
AU2011223767B2 (en) * | 2010-03-01 | 2015-11-19 | Emc Corporation | System and method for network security including detection of attacks through partner websites |
US8850219B2 (en) * | 2010-05-13 | 2014-09-30 | Salesforce.Com, Inc. | Secure communications |
US8694784B1 (en) | 2012-10-09 | 2014-04-08 | Sap Ag | Secure client-side key storage for web applications |
US8880885B2 (en) * | 2012-10-09 | 2014-11-04 | Sap Se | Mutual authentication schemes |
KR101358704B1 (ko) | 2012-12-20 | 2014-02-13 | 라온시큐어(주) | 싱글 사인 온을 위한 인증 방법 |
US9225515B2 (en) | 2013-09-13 | 2015-12-29 | Sap Portals Israel Ltd | Shared portal context session |
IN2013CH05960A (zh) * | 2013-12-20 | 2015-06-26 | Samsung R & D Inst India Bangalore Private Ltd | |
US10587732B2 (en) * | 2017-04-13 | 2020-03-10 | International Business Machines Corporation | Secure client-server communication |
US10778668B2 (en) * | 2017-06-02 | 2020-09-15 | Dell Products L.P. | HTTP session validation module |
-
2017
- 2017-05-25 US US15/605,563 patent/US10454672B2/en active Active
- 2017-05-26 CN CN201780092028.4A patent/CN110771112B/zh active Active
- 2017-05-26 WO PCT/US2017/034682 patent/WO2018217212A1/en active Application Filing
- 2017-05-26 KR KR1020197036275A patent/KR102365807B1/ko active IP Right Grant
- 2017-05-26 JP JP2019563736A patent/JP7018455B2/ja active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090171982A1 (en) * | 1999-12-21 | 2009-07-02 | Thomas Hagan | Privacy and Security Method and System for a World-Wide-Web Site |
US20060212706A1 (en) * | 2005-03-18 | 2006-09-21 | Microsoft Corporation | Scalable session management |
CN106415567A (zh) * | 2013-08-21 | 2017-02-15 | 微软技术许可有限责任公司 | 基于web浏览器cookie的安全令牌的拥有证明 |
US20150149777A1 (en) * | 2013-11-22 | 2015-05-28 | Electronics And Telecommunications Research Institute | Mobile terminal, terminal and authentication method using security cookie |
CN106576041A (zh) * | 2014-06-27 | 2017-04-19 | 林建华 | 客户端与服务器之间相互验证的方法 |
CN105429978A (zh) * | 2015-11-13 | 2016-03-23 | 中国建设银行股份有限公司 | 数据访问方法、设备及*** |
Non-Patent Citations (1)
Title |
---|
梁雪松: "《基于cookie的认证机制及其安全性分析》", 《通信技术》 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343191A (zh) * | 2020-03-03 | 2020-06-26 | 浙江大华技术股份有限公司 | 会话校验方法及装置、存储介质、电子装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20200012889A (ko) | 2020-02-05 |
US20180343113A1 (en) | 2018-11-29 |
US10454672B2 (en) | 2019-10-22 |
WO2018217212A1 (en) | 2018-11-29 |
KR102365807B1 (ko) | 2022-02-23 |
JP2020522918A (ja) | 2020-07-30 |
CN110771112B (zh) | 2022-02-15 |
JP7018455B2 (ja) | 2022-02-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11218460B2 (en) | Secure authentication for accessing remote resources | |
US10530759B2 (en) | Proxy bypass login for applications on mobile devices | |
US10462135B2 (en) | Systems and methods for providing confidentiality and privacy of user data for web browsers | |
US10148627B2 (en) | Establishing a direct connection between two devices | |
US20170270619A1 (en) | Bypass Login for Applications on Mobile Devices | |
JP7046201B2 (ja) | 近さに基づく信頼 | |
CN110771112B (zh) | 用于防止域门户上会话固定的***和方法 | |
US8898800B1 (en) | Mechanism for establishing the trust tree | |
US10243992B2 (en) | Secure content delivery over a domain portal | |
US10069829B1 (en) | Multi-party secure global attestation | |
US11803635B2 (en) | Passing local credentials to a secure browser session | |
EP3407561B1 (en) | Systems and methods for preventing sessions fixation over a domain portal | |
EP3358801B1 (en) | Secure content delivery over a domain portal | |
CN114244607B (zh) | 单点登录方法、***、设备、介质和程序 | |
US20220394035A1 (en) | Data clutch for unmatched network resources | |
US20230344818A1 (en) | Systems and methods for securely establishing trusted device bonding |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: California, USA Applicant after: Yuan platform Co. Address before: California, USA Applicant before: Facebook, Inc. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |