CN100581103C - 安全地处理被用于基于web的资源访问的客户证书 - Google Patents

安全地处理被用于基于web的资源访问的客户证书 Download PDF

Info

Publication number
CN100581103C
CN100581103C CN200310116481A CN200310116481A CN100581103C CN 100581103 C CN100581103 C CN 100581103C CN 200310116481 A CN200310116481 A CN 200310116481A CN 200310116481 A CN200310116481 A CN 200310116481A CN 100581103 C CN100581103 C CN 100581103C
Authority
CN
China
Prior art keywords
computer system
key
subscriber
server computer
time
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.)
Expired - Fee Related
Application number
CN200310116481A
Other languages
English (en)
Other versions
CN1505309A (zh
Inventor
S·D·布雷斯威尔
R·B·沃德
R·L·小辛普森
K·M·巴特希
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN1505309A publication Critical patent/CN1505309A/zh
Application granted granted Critical
Publication of CN100581103C publication Critical patent/CN100581103C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/30Compression, e.g. Merkle-Damgard construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明规定了安全地处理被用于基于Web的资源访问的客户证书。在客户处呈现具有用于输入用户证书的界面的登录网页,将所输入的用户证书发送到服务器。响应于接收用户证书,服务器为该客户生成唯一通话标识符。服务器也根据旋转密钥存储器中的当前密钥和该唯一通话标识符来获得该用户证书的数字签名。然后,服务器根据从这个当前密钥和唯一通话标识符中所获得的加密密钥来为数字签名和用户证书加密。当在客户处收回被加密的证书时,使用旋转密钥存储器来尝试证实证书。如果用户证书无法被证实,则再次为用户呈现该登录网页。

Description

安全地处理被用于基于WEB的资源访问的客户证书
本申请声明受益于2002年11月20日提交的标题为《基于Cookie的身份认证的系统和方法》的美国临时专利申请(序号为60/428,152),该临时申请被包括于此,用作整体参考。
技术领域
本发明涉及计算机网络,更具体地说,涉及安全地处理被用于基于Web的资源访问的客户证书。
背景技术
计算机系统和相关的技术影响着社会的许多方面。计算机系统处理信息的能力的确已改变了我们生活和工作的方式。如今,计算机系统通常所执行的许多任务(例如,文字处理、制表和数据库管理)在计算机系统出现之前是手工执行的。近来,已将计算机系统彼此连接,以建立有线计算机网络和无线计算机网络,计算机系统可以在这些计算机网络上进行电子通信,以分享数据。结果,在计算机系统处所执行的许多任务(例如,语音通信、访问电子邮件、电子会谈、web浏览)包括经由有线和/或无线计算机网络与一个或多个其他的计算机系统进行电子通信。
特别是,电子邮件已成为一种重要的通信方法。电子邮件系统通常包括电子邮件客户部件和电子邮件服务器部件。这些部件通常是被配置成在计算机系统(例如,服务器、PCs、便携式计算机和PDAs)上执行的软件应用程序。电子邮件客户部件和电子邮件服务器部件的设计和配置通常针对彼此的特殊操作。电子邮件客户部件和电子邮件服务器部件通常使用专利协议(例如,远程过程调用(“RPCs”))来彼此进行通信,这允许(例如)客户计算机系统处的应用程序执行服务器计算机系统上的程序。例如,电子邮件客户部件可以将消息发送到具有合适的自变量的电子邮件服务器部件,该电子邮件服务器部件返回电子邮件消息。
一些类型的电子邮件服务器被配置成允许经由“零接触”客户(例如,具有Web浏览器的客户计算机系统)而不是专用电子邮件客户来执行电子邮件访问。在这些类型的电子邮件服务器中,Web浏览器与电子邮件服务器相互作用,并通过Web浏览器来执行被要求在客户系统上加以执行的任何功能。例如,客户计算机系统可以下载“超文本标记语言”(“HTML”)指令和正本(由诸如“动态服务器网页”(Active Server Pages)等技术来动态地生成),这些指令和正本使Web浏览器能够适当地与电子邮件服务器相互作用。这样,基于浏览器的零接触客户允许用户访问其电子邮件以及来自与具有该基于浏览器的零接触客户的公用网(例如,万维网(“WWW”))连接的任何服务器计算机系统的其他有关邮件的信息(例如,日历和共享的文件夹)。相应地,也可以使用被用于访问WWW上的其他基于Web的内容的协议(例如,超文本传输协议(“HTTP”)),以便访问电子邮件和其他有关邮件的信息。
但是,对电子邮件和其他有关邮件的信息的基于浏览器的可达性也会导致潜在的安全问题,一些安全问题涉及Web浏览器存储器中的用户证书的超高速缓存。在Web环境中,通常使用HTTP来传送内容和内容请求。例如,访问内容的HTTP请求起源于基于浏览器的客户处的用户,再跨越网络从该基于浏览器的客户那里被加以传送。然后,在服务器计算机系统处的Web服务器处接收该请求,服务器计算机系统对该请求进行处理,以确定是否授权基于浏览器的客户的用户访问所请求的内容。如果授权用户访问所请求的内容,则Web服务器将把该内容送回给HTTP消息中的基于浏览器的客户。
一些版本的HTTP(例如,HTTP/1.0)不属于任何国家。也就是说,在不了解服务器所执行的任何以前的通信(例如,关于电子邮件消息的其他以前的请求)的情况下,可以执行经由HTTP的通信(例如,关于电子邮件消息的请求)。照此,这些版本的HTTP不支持用户将在其中“登录”或“注销”的“通话”的概念。其他版本的HTTP(例如,HTTP/1.1)支持在客户与服务器之间被发送的“使继续”(keep-alive)消息,以尝试使HTTP连接继续。但是,“使继续”消息的使用有些不可靠,即使在使用“使继续”消息时,也无法保证可以使HTTP连接继续。此外,由于客户请求频繁地通过在许多用户之中分享“使继续”链接的中间代理服务器,因此,服务器可能会无法确定所接收的请求是否由以前被授权的客户发送。相应地,无论HTTP通信是不属于任何国家还是使用“使继续”消息,经由HTTP被传送的访问内容的每个请求(在下文中被称作“HTTP请求”)都必须包括合适的HTTP身份认证信息。
相应地,经由被称作“WWW-身份认证头部”并具有格式“WWW-身份认证:[身份认证类型][证书]”的特殊头部的HTTP请求中可以包括HTTP身份认证信息。当Web浏览器首次尝试访问请求身份认证(例如,呈递用户输入的证书)的内容时,Web服务器通常将会拒绝提供所请求的内容,而返回具有状态码401“未被授权”的HTTP消息。该HTTP响应消息包括格式:“WWW-授权:[身份认证方法][区域=区域值][任选信息]”的头部。
当在Web浏览器处被收回时,HTTP响应消息使Web浏览器呈现请求证书(例如,用户名和密码)的对话框。在用户输入证书之后,Web浏览器重新传送原来的HTTP请求以及包括被输入的证书的HTTP WWW-身份认证头部。如果Web服务器承认用户输入的证书有效并返回所请求的内容(例如,电子邮件消息),则Web浏览器在浏览器存储器中对用户输入的证书进行超高速缓存。这样,在对相同的统一资源定位器(“URL”)或与相同内容有关联的对应的导出有关URL的后续请求中,超高速缓存的证书从浏览器存储器中被进行检索,并被包括在对应的HTTP WWW-身份认证头部中。相应地,即使HTTP不属于任何国家,用户也无须根据对相同的或对应的导出有关URL的每个请求来重新输入证书。
遗憾的是,通常,Web浏览器本质上无限期地将超高速缓存的证书保存在浏览器存储器中,直到使Web浏览器退出(通过退出Web浏览器程序或重新引导或关闭计算机系统或客户设备)。这样,在用户不再使用Web浏览器之后,可以在浏览器存储器中对曾访问过受保护内容的特权用户的证书进行超高速缓存。如果该特权用户随后退出计算机系统,则另一个非特权用户可以跟着来使用浏览器的“后退按钮”或“历史特点”,以尝试访问该受保护内容。由于特权用户的证书仍然被超高速缓存在浏览器存储器中,因此,Web浏览器将会检索这些被超高速缓存的证书,并将它们与非特权用户对访问该受保护内容的请求一起提交。这样,非特权用户可以被允许访问受保护内容,而无须在Web浏览器处输入合适的证书。
在具有公共计算机的场所和/或在不允许关闭Web浏览器的计算机系统上,超高速缓存的证书尤其会出现问题。这种计算机系统的一个例子是因特网室(Internet Kiosk)。因特网室经常位于公共场所(例如,图书馆、因特网咖啡馆(Internet cafes)和会议中心),以便使公众能够访问因特网。因特网室的设计允许走向因特网室的任何人能够迅速访问因特网,而无须首先找到并开动Web浏览器。这样,许多因特网室的配置使Web浏览器始终处于运行状态,而不会被关闭。
这提供了对因特网的有效率的访问,但也可能会导致超高速缓存的证书本质上无限期地保留在浏览器存储器中。例如,当特权用户在因特网室中输入证书(例如,以便访问受保护的内容)时,该特权用户的证书被超高速缓存在浏览器存储器中。由于无法关闭Web浏览器,因此,在不撤走对公共Kiosk的电源的条件下,本质上无法取消超高速缓存的证书。这样,即使特权用户已知道如何清除超高速缓存的证书(例如,通过关闭Web浏览器),也可以防止特权用户这样做。
对于基于浏览器的电子邮件应用程序而言,特别关切的是使用超高速缓存的证书来访问受保护的内容。例如,非特权用户可能能够向后翻阅网页,以获得特权用户的电子邮件消息(可包含私人数据)。除了访问该特权用户的电子邮件以外,超高速缓存的证书也可以使非特权用户模仿特权用户。例如,非特权用户可能能够从与特权用户有关联的账户发送电子邮件消息。
对于这个问题的一种可能的解决方案是:每当要求内容时,迫使用户重新进行身份认证。但是,这将会要求用户根据对访问内容的每个HTTP请求而手工重新输入身份认证信息。由于与Web站点的典型的交互作用可包括几十个或甚至几百个HTTP请求,因此,这将会导致用户必须重新输入证书几十或几百次。这样,为每个HTTP请求而重新输入证书将会大大增加访问内容所需要的时间和数据输入的数量。对于大多数用户而言,这种解决方案太麻烦,用户将会更乐于每次通话只输入其证书一次。所以,用于安全地处理被用来访问基于Web的资源的客户证书的系统、方法、计算机程序产品将会很有利。
发明内容
关于该技术的原先状态的前述问题由本发明的原理来克服,这些原理针对用于安全地处理被用于基于Web的资源访问的客户证书的方法、系统、计算机程序产品和数据结构。客户计算机系统(在下文中被称作“客户”)和服务器计算机系统(在下文中被称作“服务器”)被连接到公用网(例如,因特网)。将服务器配置成允许基于Web的资源(例如,电子邮件消息和关联的邮件数据)访问。用浏览器配置客户,该浏览器可以请求访问基于Web的资源并将基于Web的资源呈现给客户处的用户。
客户发送第一个请求,以访问服务器处的资源。例如,客户可以发送请求,以访问被存储在服务器处的电子邮件消息。服务器接收第一个请求,并且,由于客户的身份未经认证,因此,服务器响应于接收第一个请求而使客户重定向到登录网页。使客户重定向可以包括:服务器将一个响应连同到该登录网页的“统一资源标识符”(“URI”)一起发送给客户,该响应包括一个重定向指示符(例如,具有状态码302“临时移动”的超文本传输协议(“HTTP”)消息)。该登录网页可以是“动态服务器网页”(“ASP”)网页,它为客户处的用户提供输入用户证书的界面。客户访问该登录网页并利用该登录网页来将用户证书提交给服务器。例如,通过使用“加密套接字协议层”(“SSL”)来保护HTTP登记,客户可以提交证书。
服务器接收被提交的证书。服务器发送被加密的信息,该信息表示用户证书和取决于时间的数字签名。情况可能是:在将所提交的证书的身份认证授权给被委任执行身份认证的当局之后,服务器发送被加密的信息。服务器通过使用来自旋转密钥存储器的密钥来生成被加密的数据。该旋转密钥存储器中的每个密钥在规定的时间间隔(例如,10分钟)之后自动到期。在此规定的时间间隔之后,服务器可以将一个新的密钥旋转入旋转密钥存储器,并使到期的密钥从旋转密钥存储器中旋转出去。旋转密钥存储器中所保存的密钥的数量和所规定的时间间隔可以由网络管理员来进行配置。
当接收用户证书时,服务器使这些用户证书与唯一标识符(例如,“全球唯一标识符”(“GUID”))相关联。服务器通过散列(例如,使用SHA-1或MD-5散列算法)旋转密钥存储器中最当前的密钥、该唯一标识符和第一个恒定字符串的组合来获得签名密钥,可以使用该签名密钥来用计数方法在数据上签字。然后,服务器使用该签名密钥,从唯一标识符和用户证书的组合中得到数字签名(例如,“散列的消息识别码”(“HMAC”))。
服务器也通过散列旋转密钥存储器中最当前的密钥、唯一标识符和第二个恒定字符串的组合来获得加密密钥,可以使用该加密密钥来为数据加密。然后,服务器使用该加密密钥将数字签名和用户证书的组合译成被加密的信息。服务器将唯一标识符和被加密的信息发送给客户。客户接收唯一标识符和被加密的信息,并存储唯一标识符和被加密的信息(例如,存储在对应的Cookies中)。
客户发送第二个请求(包括唯一标识符和被加密的信息),以访问服务器处的资源。服务器接收这第二个请求,并尝试使用旋转密钥存储器中最当前的密钥来证实用户证书。服务器通过散列旋转密钥存储器中最当前的密钥、唯一标识符和第二个恒定字符串的组合来获得解密密钥,可以使用该解密密钥来为数据解密。服务器使用该解密密钥来为被加密的信息解密,从而揭示数字签名和用户证书。服务器通过散列旋转密钥存储器中最当前的密钥、唯一标识符和第一个恒定字符串的组合来获得证实密钥,可以使用该证实密钥来对数据进行认证。服务器使用该证实签名密钥,从唯一标识符和用户证书的组合中得到证实数字签名。
服务器将证实数字签名与数字签名进行比较。当证实数字签名和数字签名匹配时,用户证书被证实。另一方面,当证实数字签名和数字签名不匹配时,该证书没有被证实。当使用旋转密钥存储器中最当前的密钥没有证实用户证书时,可使用旋转密钥存储器中仅次于最当前的密钥来尝试证实用户证书(例如,通过使用仅次于最当前的密钥来生成解密密钥和证实数字签名)。服务器可以尝试使用旋转密钥存储器中的每个密钥来证实用户证书。将被证实的用户证书发送到控制对所请求的资源(例如,电子邮件消息)进行访问的模块(例如,电子邮件服务器)。
当用来自旋转密钥存储器的密钥(不是最当前的密钥)来证实用户证书时,服务器确定:将要获得刷新的被加密的信息。服务器使用旋转密钥存储器中最当前的密钥来获得刷新的被加密的信息(例如,通过从最当前的密钥中得到刷新的数字签名和刷新的加密密钥)。当被证实的用户证书合适时,将所请求的资源和(如果合适的话)同样刷新的被加密的信息返回给客户。客户接收该资源和任何刷新的被加密的信息。客户存储任何刷新的被加密的信息,重写对应于唯一标识符的以前被加密的信息。当无法使用旋转密钥存储器中的任何旋转密钥来证实用户证书时,将客户重定向到可以在其中输入新的用户证书的登录网页。
在一些实施例中,登录网页包括用于选择可以改变HTTP消息的处理方式的通信属性(例如,对于gzip压缩的支持,客户计算机系统是私人客户或非可信的客户,客户是将会更喜欢被简化的内容的高级客户)的界面。在登录网页处选择通信属性,并将这些通信属性发送到通信过滤器,以便向该通信过滤器指出将如何处理与客户的HTTP通信。在服务器处接收所选择的通信属性。
服务器询问客户,以确定所选择的通信属性是否被客户支持,并识别其他有关的通信属性。服务器对通信过滤器进行配置,以便根据任何所选择的通信属性和被客户支持的其他所识别的有关的通信属性来处理与客户的HTTP通信。根据处于非安全场所的客户,服务器可以利用一种不同的旋转密钥存储器,该旋转密钥存储器具有较短的旋转间隔并保存数量减少的密钥。
下文将陈述本发明的额外的特点和优点。通过该描述,这些额外的特点和优点将部分变得显而易见;或者,可以通过实践本发明来了解这些额外的特点和优点。通过所附权利要求书中所特别指出的各种仪器和组合,可以实现并获得本发明的这些特点和优点。通过以下描述和所附权利要求书,本发明的这些和其他的特点将变得更加一目了然;或者,可以通过下文所陈述的本发明的实践来了解这些和其他的特点。
附图说明
为了描述可获得本发明的上述和其他优点和特点的方式,将通过参考在所附附图中有所展示的其特殊的实施例,来呈现以上简要描述的本发明的更特别的说明。理解这些附图只描绘本发明的典型实施例,因此并不被认为是对其范围的限制,将通过使用附图来额外确切、详细地描述和说明本发明。在这些附图中:
图1展示了关于本发明的原理的一种合适的操作环境。
图2A展示了根据本发明的网络系统结构的一个例子,当客户请求访问服务器处的资源时,该网络系统结构促进保护客户方的证书。
图2B展示了根据本发明的网络系统结构的一个例子,该网络系统结构促进利用受保护的客户方的证书来访问服务器处的资源。
图3展示了根据本发明的一种方法的范例流程图,该方法用于当客户请求访问服务器处的资源时对客户方的证书进行保护。
图4展示了根据本发明的一种方法的范例流程图,该方法用于利用受保护的客户方的证书来访问服务器处的资源。
图5展示了根据本发明的原理的一种方法的范例流程图,该方法用于确定与客户有关联的通信属性。
图6展示了根据本发明的原理的范例登录网页,该范例登录网页可以接受证书和通信属性选择。
具体实施方式
本发明的原理规定了安全地处理被用于基于Web的资源访问的客户证书。服务器至少保存一个或多个密钥的一个旋转密钥存储器。旋转密钥存储器中的每个密钥在规定的时间间隔(例如,10分钟)之后自动到期。在所规定的时间间隔之后,服务器将一个新的密钥旋转入旋转密钥存储器,并将到期的密钥从旋转密钥存储器中旋转出去。旋转密钥存储器中所保存的密钥数量和所规定的时间间隔可以由网络管理员来进行配置(例如,每5分钟保存3个密钥并旋转密钥)。服务器通过为用户证书生成数字签名并根据旋转密钥存储器中的密钥为用户证书加密,来保护用户证书。
在客户处呈现具有用于输入用户证书的界面的登录网页。将在客户处所输入的用户证书发送到服务器。响应于接收用户证书,服务器为客户生成唯一通话标识符。服务器根据旋转密钥存储器中最当前的密钥和该唯一通话标识符来获得用户证书的数字签名。然后,服务器根据得自旋转密钥存储器中最当前的密钥的加密密钥以及唯一通话标识符,来为该数字签名和用户证书加密。当在客户处收回被加密的证书时,使用来自旋转密钥存储器的密钥来尝试证实这些证书。如果原来用于为用户证书加密的、来自旋转密钥存储器的密钥已从旋转密钥存储器中旋转出去,则将客户重新重定向到登录网页,以输入新的证书。
本发明的范围以内的实施例包括用于携带或其上存储有计算机可执行指令或数据结构的计算机可读介质。这种计算机可读介质可以是可由通用或专用的计算机系统进行存取的任何可用的介质。举例来讲(不作限制),这种计算机可读介质可以包括物理存储介质(例如,RAM、ROM、EPROM、CD-ROM或其他光盘存储器、磁盘存储器或其他磁性存储设备)或可以被用来携带或存储采取计算机可执行指令、计算机可读指令或数据结构形式的所需程序代码方法以及可以由通用或专用的计算机系统进行存取的任何其他的介质。
在本文和以下的权利要求书中,“网络”被定义为允许在各个计算机系统和/或模块之间传送电子数据的一个或多个数据链路。当在网络或另一通信连接(硬连线、无线,或者硬连线或无线的组合)上将信息传送或提供给计算机系统时,该连接被严格地视作计算机可读介质。这样,任何这类的连接都可以被严格地称为“计算机可读介质”。以上内容的组合应该也被包括在计算机可读介质的范围内。例如,计算机可执行指令包括使通用计算机系统或专用计算机系统执行某项功能或某组功能的指令和数据。例如,这些计算机可执行指令可能是二进制、中间格式指令(例如,汇编语言),或甚至可能是源代码。
在本文和以下的权利要求书中,“计算机系统”被定义为“一起合作来执行对电子数据的操作的一个或多个软件模块、一个或多个硬件模块或其组合”。例如,计算机系统的定义包括个人计算机的硬件部件,以及软件模块(例如,该个人计算机的操作系统)。这些模块的物理布局并不重要。计算机系统可以包括经由网络而被连接的一台或多台计算机。同样,计算机系统可以包括一个单一物理设备(例如,移动电话或个人数字助理“PDA”),在该单一物理设备中,内部模块(例如,存储器和处理器)一起合作来执行对电子数据的操作。
精通该技术领域的人将会理解:可以在具有多种类型的计算机系统配置的网络计算环境中实践本发明,这些网络计算环境包括个人计算机、便携式计算机、手持设备、多处理器系统、基于微处理器的或可编程的消费电子设备、网络PCs、小型计算机、大型计算机、移动电话、PDAs、寻呼机和类似的环境。本发明也可以在分布式系统环境中得到实践;在这些分布式系统环境中,通过网络而被连接(要么通过硬连线数据链路、无线数据链路,要么通过硬连线数据链路和无线数据链路的组合)的本地计算机系统和远程计算机系统都执行任务。在分布式系统环境中,程序模块既可以位于本地记忆存储设备中,也可以位于远程记忆存储设备中。
图1和以下的讨论意在简要、概括地描述可以在其中执行本发明的一种合适的计算环境。虽然未作要求,但是,将在计算机系统正执行的计算机可执行指令(例如,程序模块)的一般上下文中描述本发明。通常,程序模块包括执行特殊任务或执行特殊的抽象数据类型的例行程序、程序、对象、部件、数据结构和类似物。计算机可执行指令、关联的数据结构和程序模块表示用于执行这里所揭示的各种方法的动作的程序代码方法的例子。
参照图1,用于执行本发明的范例系统包括采取计算机系统120形式的一个通用计算设备,该通用计算设备包括处理单元121、系统存储器122,以及将包括系统存储器122的各种系统部件连接到处理单元121的系统总线123。处理单元121可以执行被设计成用于执行计算机系统120的特点(包括本发明的特点)的计算机可执行指令。系统总线123可以是几种类型的总线结构(包括存储总线或存储控制器、外围总线,以及使用各种总线构造中的任何总线构造的局域总线)中的任何一种总线结构。系统存储器包括只读存储器(“ROM”)124和随机存取存储器(“RAM”)125。基本输入/输出系统(“BIOS”)126可以被存储在ROM 124中,基本输入/输出系统126包含有助于在计算机系统120内的各个元件之间传送信息的基本例行程序(例如,在启动期间)。
计算机系统120也可以包括用于从磁性硬盘139读取并对其写入的磁性硬盘驱动器127、用于从可移动的磁盘129读取或对其写入的磁盘驱动器128,以及用于从可移动的光盘131(例如,CD-ROM或其他光学介质)读取或对其写入的光盘驱动器130。磁性硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光驱接口134被连接到系统总线123。这些驱动器及其有关联的计算机可读介质为计算机系统120提供计算机可执行指令、数据结构、程序模块和其他数据的非易失存储。虽然这里所描述的范例环境采用磁性硬盘139、可移动的磁盘129和可移动的光盘131,但是,也可以使用用于存储数据的其他类型的计算机可读介质(包括盒式磁带、快闪存储卡、数字通用磁盘、伯努里式磁带匣、RAMs、ROMs和类似的介质)。
包含一个或多个程序模块的程序代码方法可以被存储在硬盘139、磁盘129、光盘131、ROM 124或RAM 125上,包括操作系统135、一个或多个应用程序136、其他程序模块137和程序数据138。用户可以通过键盘140、定点设备142或其他输入设备(未示出)(例如,话筒、操纵杆、游戏垫、扫描仪或类似的输入设备)将命令和信息输入计算机系统120。可以通过被连接到系统总线123的输入/输出接口146将这些和其他的输入设备连接到处理单元121。输入/输出接口146在逻辑上表示众多不同的接口(例如,串行端口接口、PS/2接口、并行端口接口、通用串行总线(“USB”)接口或“电气和电子工程师协会”(“IEEE”)1394接口(即“火线”(Fire Wire)接口))中的任何接口,或者甚至可以在逻辑上表示不同接口的组合。
监视器147或其他显示设备也经由视频适配器148被连接到系统总线123。扬声器169或其他音频输出设备也经由音频接口149被连接到系统总线123。其他外围输出设备(未示出)(例如,打印机)也可以被连接到计算机系统120。计算机系统120可以被连接到各种网络,例如,办公室范围或企业范围的计算机网络、家庭网络、内联网和/或因特网。计算机系统120可以与各种外部来源(例如,远程计算机系统、远程应用程序和/或这类网络上的远程数据库)交换数据。
计算机系统120包括网络接口153,计算机系统120通过该网络接口从外部来源接收数据并/或将数据传送到外部来源。如图1所示,网络接口153促进经由链路151与远程计算机系统183的数据交换。网络接口153可以在逻辑上表示一个或多个软件模块和/或硬件模块(例如,网络接口卡和对应的“网络驱动器接口规范”(“NDIS”)堆栈)。链路151表示网络的一个部分(例如,一个以太网片段),远程计算机系统183表示该网络的一个节点。例如,远程计算机系统183可以是为计算机系统120提供基于Web的资源(例如,电子邮件消息)访问的服务器计算机系统。另一方面,远程计算机系统183可以是使用基于Web的访问来从计算机系统120获得资源的客户计算机系统。
同样,计算机系统120包括输入/输出接口146,计算机系统120通过该输入/输出接口从外部来源接收数据并/或将数据传送到外部来源。输入/输出接口146经由链路159被连接到调制解调器154(例如,标准调制解调器、电缆调制解调器或数字订户线路(“DSL”)调制解调器),计算机系统120通过该输入/输出接口从外部来源接收数据并/或将数据传送到外部来源。如图1所示,输入/输出接口146和调制解调器154促进经由链路152与远程计算机系统193的数据交换。链路152表示网络的一个部分,远程计算机系统193表示该网络的一个节点。例如,远程计算机系统193可以是为计算机系统120提供基于Web的资源(例如,电子邮件消息)访问的服务器计算机系统。另一方面,远程计算机系统193可以是使用基于Web的访问来从计算机系统120获得资源的客户计算机系统。
图1表示本发明的一种合适的操作环境,可以在能够(如果必要的话,可进行适当的修改)执行本发明的原理的任何系统中采用本发明的原理。图1中所展示的环境只是起说明性的作用,并不表示其中可以执行本发明的原理的众多环境的甚至一个小部分。
可以存储本发明的模块以及关联的程序数据,并可以从与计算机系统120有关联的任何计算机可读介质存取这些模块和程序数据。例如,这类模块的各个部分和关联的程序数据的各个部分可以被包括在操作系统135、应用程序136、程序模块137和/或程序数据138中,用于存储在系统存储器122中。当大规模存储设备(例如,磁性硬盘139)被连接到计算机系统120时,也可以将这类模块和关联的程序数据存储在该大规模存储设备中。在联网环境中,相对于计算机系统120所描绘的程序模块或其各个部分可以被存储在远程记忆存储设备(例如,系统存储器和/或跟远程计算机系统183和/或远程计算机系统193有关联的大规模存储设备)中。如前所述,可以在分布式环境中实施这类模块的执行。
图2展示了网络系统结构200的一个例子,当客户请求访问服务器处的资源时,该网络系统结构促进对客户方的证书进行保护。客户计算机系统201和服务器计算机系统211可以被连接到公用网(例如,局域网(“LAN”)、广域网(“WAN”)或甚至是因特网)。客户计算机系统201包括浏览器202,该浏览器可以被用来请求基于Web的资源访问并呈现在客户计算机系统201处所接收的资源。Cookies 203可以包括存储以前从服务器计算机系统所接收的数据的各个部分的一个或多个Cookies。可以将Cookies 203中的数据发送到对应的服务器计算机系统,以便为服务器计算机系统指出个人化的信息或参数选择,并且/或者使用户无须手工输入所存储的信息的一个部分。
服务器计算机系统211包括电子邮件服务器212,该电子邮件服务器提供对电子邮件资源(例如,电子邮件消息、通讯簿信息和日程排列信息)的访问。为了被授权访问电子邮件资源,用户可以被请求向电子邮件服务器212提供证书,供电子邮件服务器212进行身份认证。电子邮件服务器212可以将所接收的证书与证书数据库213中的经授权的证书进行比较,以确定是否将许可访问电子邮件资源的请求。当用户被授权时,电子邮件服务器212可以将所请求的电子邮件资源返回给请求的客户计算机系统。当用户未被授权时,电子邮件服务器212可以将未经授权的消息(例如,具有状态码401“未经授权”的超文本传输协议(“HTTP”)消息)返回给请求的客户计算机系统。
服务器计算机系统211也包括密钥生成模块214。密钥生成模块214可以生成新的密钥并将它们旋转入旋转密钥220,并且可以将到期的密钥从旋转密钥220中旋转出去。可以将密钥生成模块214配置成保持一个或多个旋转密钥存储器。例如,在网络系统结构200中,密钥生成模块214保持非可信的旋转密钥存储器221和私人旋转密钥存储器231。
旋转密钥时所规定的时间间隔是可以配置的。也就是说,密钥生成模块214可以被配置成按规定的间隔将新近生成的密钥旋转入旋转密钥存储器并将到期的密钥从旋转密钥存储器中除去。例如,密钥生成模块214可以每10分钟将一个新的密钥插入私人旋转密钥存储器231并将到期的密钥从私人旋转密钥存储器231中除去。旋转密钥存储器中所保存的密钥数量也是可以配置的。也就是说,密钥生成模块214也可以被配置成将所规定数量的密钥保存在旋转密钥存储器中。例如,密钥生成模块214可以被配置成将3个密钥保存在非可信的旋转密钥存储器221中。
所保存的密钥和所规定的间隔的数量在各个旋转密钥存储器之间可以有所不同。例如,密钥生成模块214可以将具有所规定的5分钟旋转间隔的3个密钥保存在非可信的密钥存储器221中,并可以将具有所规定的1小时旋转间隔的4个密钥保存在私人密钥存储器231中。根据与客户计算机系统有关联的各种属性,可以利用不同的密钥存储器来实施本发明的原理。在旋转密钥存储器中的密钥下面所描绘的箭头指出:当增加新的密钥时,这些密钥向下旋转,直到到期的密钥最后从旋转密钥存储器中旋转出去。例如,当新的密钥被加入私人旋转密钥存储器231时,密钥232将旋转入密钥233的位置。
服务器计算机系统211也包括登录网页217。登录网页217可以是提供界面的Web网页(例如,“动态服务器网页”(“ASP”)网页),该界面用于提交用户证书并选择与客户计算机系统有关联的通信属性。响应于使用跟登录网页217对应的统一资源标识符(“URI”)的客户计算机系统,服务器计算机系统211可以将登录网页217发送到客户计算机系统。客户方的浏览器可以在客户计算机系统处呈现登录网页217。可以将用户证书和在登录网页217处被提交的通信属性选择发送到服务器计算机系统211。
服务器计算机系统也包括通信过滤器243。通信过滤器243可以截取HTTP通信(例如,被传送到服务器计算机系统211中并从服务器计算机系统211被发送出去的请求、响应和消息)。通信过滤器243可以查阅被加密的Cookies中所包括的客户状态信息,以确定是否应该改变服务器计算机系统211与客户计算机系统之间的HTTP通信(例如,通过修改HTTP头部)。通信过滤器243也可以执行密码算法(利用来自旋转密钥存储器的密钥),以便为用户证书解密并对其进行证实。
服务器计算机系统211也包括登录元素证实器(validator)216。登录元素证实器216可以接收在登录网页217处被输入的所提交的用户证书,并且执行密码算法(利用来自旋转密钥存储器的密钥),以便用计数法在所提交的用户证书上签字并为其加密。登录元素证实器216也可以为请求对服务器计算机系统211的资源进行基于Web的访问的客户计算机系统生成唯一通话标识符(例如,全球唯一标识符(“GUIDs”))。登录元素证实器216可以将唯一通话标识符和被加密的信息(包括用户证书和取决于时间的数字签名)发送到客户计算机系统。例如,登录元素证实器216可以将唯一通话标识符和被加密的用户证书发送到客户计算机系统201,供存储在Cookies 203中。
图3展示了方法300的范例流程图,该方法用于当客户请求访问服务器处的资源时对客户方的证书进行保护。将根据图2A中所描绘的客户计算机系统和服务器计算机系统来描述方法300。方法300包括将第一个请求发送到服务器的动作(动作301)。动作301可以包括:客户计算机系统发送关于对服务器处的资源(例如,电子邮件消息)进行基于Web的访问的第一个请求。
例如,客户计算机系统201可以将请求251(包括邮件服务器URI 267)发送到服务器计算机系统211。邮件服务器URI 267可以是对应于电子邮件服务器212的URI。也就是说,希望访问由电子邮件服务器保存的电子邮件资源的用户可以通过使用邮件服务器URI 267来尝试对电子邮件资源进行基于Web的访问。相应地,情况可能是:客户计算机系统201处的用户将命令输入浏览器202,以便使客户计算机系统201发送请求251。
方法300包括从客户那里接收第一个请求的动作(动作306)。动作306可以包括:服务器计算机系统接收关于对服务器处的资源(例如,电子邮件消息)进行基于Web的访问的第一个请求。例如,服务器计算机系统211可以从客户计算机系统201那里接收请求251(包括邮件服务器URI 267)。通过通信过滤器243的虚线指出:可以将通信过滤器243配置成允许请求251通过,而不会改变请求251。相应地,可以将请求251发送到电子邮件服务器212,而不作修改。
方法300包括一个用于保护客户方的证书的功能结果导向步骤(步骤311)。步骤311可以包括用于保护客户方的证书的任何对应的动作。但是,在图3的所示例子中,步骤311包括响应于第一个请求而使客户重定向到登录网页的一个对应的动作(动作307)。动作307可以包括:服务器计算机系统响应于第一个请求而使客户计算机系统重定向到登录网页。
响应于请求251,电子邮件服务器212可以发送响应252,响应252包括未经授权的指示符272。响应252可以是作为请求251的结果而被返回的具有状态码401“未经授权”的HTTP消息,它不包括用户证书。可以将通信过滤器243配置成截取包括未经授权的指示符的消息。相应地,通信过滤器243可以截取响应252。
通信过滤器243可以修改响应252的内容(例如,通过改变HTTP头部),以便将客户计算机系统201重定向到提供用于输入用户证书的界面的登录网页。例如,通信过滤器243可以从响应252中除去未经授权的指示符272,并将登录网页URI 263和重定向指示符271插入响应252,从而产生响应252A。响应252A可以是具有状态码302“发现”的HTTP消息。登录网页URI 263可以是被用来访问登录网页217的URI。相应地,响应252A可以向客户计算机系统201指出:在登录网页URI 263处访问所请求的资源(例如,电子邮件消息)。
方法300包括被重定向到登录网页的动作(动作302)。动作302可以包括:客户计算机系统被重定向到登录网页,该登录网页提供用于接受用户证书的界面。例如,客户计算机系统201可以被重定向到登录网页217。响应于接收响应252A,客户计算机系统201可以将请求257(包括登录网页URI 263)发送到服务器计算机系统211。响应于请求257,服务器计算机系统211可以将响应258(包括登录网页217)发送到客户计算机系统201。登录网页可以是Web网页(例如,“动态服务器网页”(“ASP”)网页)。
浏览器202可以在客户计算机系统201处呈现登录网页217。离开图3,现在来参考图6,图6展示了范例登录网页600,该范例登录网页可以根据本发明的原理来接受用户证书和通信属性选择。登录网页217可以类似于登录网页600。登录网页600包括可以接受用户标识符的域606和可以接受对应的密码的域607。
可以使用单选按钮601来接受指出“客户方的浏览器是‘高级客户’”的通信属性选择。可以使用单选按钮602来接受指出“客户方的浏览器是‘下层客户’”的通信属性选择。“高级客户”可以包括执行更多高级处理(例如,运行正本或呈现多媒体输出)的功能性。另一方面,“下层客户”可以不包括执行高级处理的功能性。相应地,可以根据客户方的浏览器的各种性能来适当地调整从服务器那里被返回的内容的丰富性。当“高级客户”在减小的带宽和/或长等待时间连接(例如,拨号连接)上被连接到服务器时,选择“下层客户”可以减少从服务器那里被返回的内容的数量。
可以使用单选按钮603来接受指出“客户方的浏览器处于‘非可信的客户计算机系统’”的通信属性选择。可以使用单选按钮604来接受指出“客户方的浏览器处于‘私人客户计算机系统’”的通信属性选择。“私人客户计算机系统”可能是具有有限的(或甚至没有)公共存取的家庭或公司客户计算机系统。“非可信的客户计算机系统”可能是具有增加的公共存取的客户计算机系统(例如,旅馆或机场中的因特网室)。相应地,可以根据客户计算机系统的可信赖性,来适当地调整与从服务器那里被返回的内容有关联的安全性。可以选择按钮608,以便将所输入的用户证书和所选择的通信属性发送到服务器计算机系统。
离开图6,现在来参考图5,图5展示了方法500的范例流程图,方法500用于根据本发明的原理来确定与客户有关联的通信属性。将在网络系统结构200中所描绘的客户计算机系统和服务器计算机系统方面来描述方法500。方法500包括将登录网页发送给客户的动作(动作501)。动作501可以包括:服务器计算机系统发送登录网页,该登录网页包括用于选择可以改变HTTP消息的处理方式的一个或多个通信属性的界面。例如,服务器计算机系统211可以将登录网页600(或类似的登录网页)发送到客户计算机系统201。
方法500包括从服务器接收登录网页的动作(动作505)。动作505可以包括:客户计算机系统接收登录网页,该登录网页包括用于选择可以改变服务器处理HTTP消息的方式的一个或多个通信属性的界面。例如,客户计算机系统201可以接收登录网页600(或类似的登录网页)。方法500包括在客户处呈现该登录网页的动作(动作506)。动作506可以包括:客户计算机系统处的浏览器在该客户计算机系统处呈现该登录网页。例如,浏览器202可以在客户计算机系统201处呈现登录网页600(类似的登录网页)。
方法500包括接收一个或多个通信属性中的至少一个通信属性的选择动作(动作507)。动作507可以包括:客户计算机系统接收登录网页处的一个或多个通信属性中的至少一个通信属性的选择。例如,客户计算机系统201处的用户可以操作输入设备(例如,键盘和/或鼠标),以便将通信属性选择输入登录网页600。登录网页600可以接收用户输入的选择。例如,登录网页600可以接收单选按钮601或单选按钮602的用户输入的选择,以及单选按钮603或单选按钮604的用户输入的选择(可能连同接收域606和607中的用户输入的证书)。
方法500包括将通信属性选择发送到服务器处的通信过滤器的动作(动作508)。动作508可以包括:客户计算机系统将通信属性选择发送到服务器计算机系统处的通信过滤器。例如,客户计算机系统201可以将通信属性选择(例如,和用户输入的证书一起)发送到服务器计算机系统211。方法500包括从客户那里接收至少一个通信属性选择动作(动作502)。动作502可以包括:服务器计算机系统接收可从登录网页中选择的一个或多个可选择的通信属性中的至少一个通信属性的选择。例如,通信过滤器243可以从客户计算机系统201接收一个或多个通信属性选择(例如,在登录网页600中被选择)。
方法500包括一个动作:询问客户,以便确定所接收的至少一个通信属性选择是否被支持,并识别由客户支持的其他有关的通信属性(动作503)。动作503可以包括:服务器计算机系统询问客户计算机系统,以便确定所接收的通信属性选择是否被支持,并识别由客户支持的其他有关的通信属性。例如,服务器计算机系统可以使用“用户代理”HTTP头部和有关客户计算机系统的原先的知识,来确定该客户计算机系统的性能。可以通过登录网页并从在客户计算机系统处的登录网页内部运行的正本(例如,JavaScript正本)中确定客户计算机系统的额外的性能。
另一方面,询问客户计算机系统可以包括:将请求发送到客户计算机系统,从而使客户计算机系统向服务器计算机系统揭示配置信息。例如,服务器计算机系统211可以将请求发送到客户计算机系统201,请求配置浏览器202。作为响应,浏览器202可以指出配置信息(例如,版本号)和浏览器202是否支持HTTP压缩(例如,gzip压缩)。服务器计算机系统211可以根据版本号来确定登录网页600处的“高级客户”的选择是否合适。例如,服务器计算机系统可能能够确定浏览器202的版本不支持正本。这样,即使选择“高级客户”,服务器计算机系统也可以将被简化的内容提供给客户计算机系统201。
简化内容可以包括:减少被传递给客户计算机系统的内容的数量。例如,响应于关于帮助信息的下层客户请求,服务器计算机系统可以返回被减少的(不太罗嗦的)帮助信息。另一方面,响应于关于帮助信息的高级客户请求,服务器计算机系统可能会返回增加的帮助信息(例如,包括搜索正本和其他高级功能性)。服务器计算机系统也可以根据客户计算机系统的可信赖性来改变所传递的内容。例如,服务器计算机系统可以将有关如何访问敏感的公司数据的帮助信息提供给私人客户计算机系统,但可能不会将相同的信息提供给非可信的客户计算机系统。
服务器计算机系统211可能会测试浏览器202,以验证做广告的特点得到适当的支持。例如,当浏览器202指出对gzip压缩的支持时,服务器计算机系统211可以将gzip压缩的内容发送到客户计算机系统201,以确定浏览器202是否适当地处理该gzip压缩内容。客户计算机系统201可能会对指出gzip压缩支持的合适的请求头部进行配置。客户计算机系统201可以包括被发送到服务器计算机系统211并在服务器计算机系统211处被接收的客户请求中的合适的请求头部。作为响应,服务器计算机系统211可以询问客户计算机系统201,以确定客户计算机系统201是否适当地对gzip压缩的内容进行超高速缓存并按不会对基于Web的应用程序的安全性和完整性造成不利影响的方式来处理gzip压缩的内容。
方法500包括根据所选择和所识别的通信属性来配置通信过滤器的动作(动作504)。动作504可以包括:服务器计算机系统根据被客户支持的任何所选择的通信属性和所识别的其他有关的属性,将通信过滤器配置成处理与客户的HTTP通信。例如,服务器计算机系统211可以根据浏览器202的通信属性选择(例如,“高级客户”和“非可信的客户”计算机系统)和所识别的其他有关的通信属性(例如,HTTP压缩支持)来配置通信过滤器243,以便处理与客户计算机系统201的HTTP通信。
当HTTP消息将要从服务器计算机系统211被发送到客户计算机系统201时,通信过滤器243可以改变HTTP报文首部和该HTTP消息的内容,以便使该内容符合客户计算机系统201的通信属性。例如,如果电子邮件服务器212将具有非压缩的电子邮件信息的消息发送到客户计算机系统101,则通信过滤器243可以截取该消息,gzip压缩内容,并改变这些报文首部,以指出该电子邮件信息被gzip压缩。另一方面,服务器计算机系统的其他模块(例如,“因特网信息服务器”(“IIS”)的模块)可以执行gzip压缩。相应地,可以按最好地利用客户计算机系统的性能的方式并根据用户的要求,在该客户计算机系统处呈现内容。
当服务器计算机系统211接收指出“客户方的浏览器处于‘私人客户计算机系统’”的选择时,可以利用私人旋转密钥存储器(例如,私人密钥存储器231)来保护用户证书。另一方面,当服务器计算机系统211接收指出“客户方的浏览器处于‘非可信的客户计算机系统’”的选择时,可以利用非可信的旋转密钥存储器(例如,非可信的密钥存储器221)来保护用户证书。
现在回去参考图3,方法300包括利用登录网页将证书提交给服务器的动作(动作303)。动作303可以包括:客户计算机系统利用登录网页,将证书提交给服务器计算机系统。例如,客户计算机系统201可以利用登录网页217,将证书(可能连同通信属性选择)提交给服务器计算机系统211。用户证书和通信属性选择可以作为登录元素被包括在邮政消息中,该邮政消息被提交给登录元素格式证实器。例如,客户计算机系统201可以将邮政消息254(包括登录元素273)发送到服务器计算机系统。
方法300包括接收曾在登录网页处被提交的用户证书的动作(动作308)。动作308可以包括:服务器计算机系统接收曾在登录网页处被提交的用户证书。例如,服务器计算机系统211可以从客户计算机系统201接收用户证书(可能连同通信属性选择)。证书和通信属性选择可以作为邮政消息中的登录元素来加以接收。例如,服务器计算机系统211可以从客户计算机系统201接收邮政消息254(包括登录元素273)。通过通信过滤器243的虚线指出:可以将通信过滤器243配置成允许邮政消息254通过,而不会改变邮政消息254。相应地,可以将邮政消息254发送到登录元素证实器216,而不作修改。在合适的时候,可以在客户计算机系统与服务器计算机系统之间建立手工认证的连接(例如,使用“传输层安全性”(“TLS”)或“加密套接字协议层”(“SSL”)),以减少怀有恶意的过程或用户“测错”分组的可能性,并减少中间人攻击的可能性。
登录元素证实器216也可以为客户计算机系统201生成唯一标识符(例如,全球唯一标识符(“GUID”))。登录元素证实器216可以使用数字签名和加密算法来保护所接收的用户证书(例如,被包括在登录元素273中)。例如,登录元素证实器216可以生成随后被用于证实所接收的用户证书的数字签名。登录元素证实器216可以通过散列(例如,使用SHA1或MD-5散列算法)旋转密钥存储器中最当前的密钥、所生成的唯一标识符和第一个恒定字符串的组合,来获得签名密钥(可以被用来用计数法在数据上签字)。在一些实施例中,数字签名被表示为“散列消息识别码”。相应地,可以根据公式1来获得签名密钥:
KSIG=SHA-1(KMOST CURRENT ROTATING,GUID,HMACKeyString)
公式1
在公式1中,KMOST CURRENT ROTATING表示合适的旋转密钥存储器中最当前的密钥。例如,当浏览器202处于“私人客户计算机系统”(例如,如通信属性选择所指出)时,KMOSTCURRENT ROTATING表示私人旋转密钥存储器231中最当前的密钥(例如,密钥232)。GUID表示对应于客户计算机系统201的唯一标识符。HMACKeyString表示一个恒定字符串的文本。从KSIG中,可以根据公式2来生成“散列消息识别码”:
Digital Signature=HMACK(KSIG,(GUID,{username;password},Flags))
公式2
在公式2中,HMAC表示“散列消息识别码”算法(例如,如“请求注解”(“RFC”)2104中所描述的)。公式2中的(GUID,{username:password},Flags)部分表示:GUID、用户证书和代表通信属性选择的标记作为到“散列消息识别码”算法的文本输入而被包括在内。在合适的时候,可以将这些用户证书转换成与“散列消息识别码”算法相兼容的文本格式(例如,通过对这些用户证书进行base64编码)。虽然在“散列消息识别码”算法方面有所描述,但是,被用于生成数字签名的算法并不重要,并且实质上可以使用任何数字签名、摘要或识别码算法。
登录元素证实器216可以通过散列旋转密钥存储器中最当前的密钥、唯一标识符和第二个恒定字符串的组合,来获得加密密钥(可以被用来为数据加密)。相应地,可以根据公式3来获得加密密钥:
KENC=SHA-(KMOST CURRENT ROTATING,GUID,EncryptKeyString)
公式3
在公式3中,KMOST CURRENT ROTATING表示来自在签名密钥的生成过程中所使用的旋转密钥存储器的最当前的密钥。这样,如果密钥232曾经被用来生成KSIG,则也可以使用密钥232来生成KENC。GUID表示对应于客户计算机系统201的唯一标识符。EnCryptKeyString表示与HMACKeyString不同的一个恒定字符串的文本。相应地,可以根据公式4来生成被加密的信息:
Encrypted Information=KENC[Digital Signature,{username:password},Flags]
公式4
在公式4中,Digital Signature(数字签名)表示由公式2生成的DigitalSignature(数字签名),{username:password}表示用户证书,Flags表示通信属性选择。
步骤311包括发送表示用户证书的至少一个部分和取决于时间的签名的被加密的信息的一个对应的动作(动作309)动作309可以包括:服务器计算机系统将表示用户证书的至少一个部分和取决于时间的签名的被加密的信息发送到客户计算机系统。例如,登录元素证实器216可以将消息255(包括GUID274和被加密的证书275)发送到客户计算机系统201。如通过通信过滤器243的虚线所指出的,可以将通信过滤器243配置成允许消息255通过,而不会改变消息255。相应地,可以将消息255发送到客户计算机系统201,而不作修改。
方法300包括接收表示用户证书的至少一个部分和取决于时间的签名的被加密的信息的动作(动作304)。动作304可以包括:客户计算机系统从服务器计算机系统那里接收表示用户证书的至少一个部分和取决于时间的签名的被加密的信息。例如,客户计算机系统201可以从服务器计算机系统211接收消息255(包括GUID 274和被加密的证书275)。消息255可以被配置成:使客户计算机系统201将GUID 274和被加密的证书275存储在Cookies 203中。例如,消息255可以被配置如下:
Set-Cookie:sessionid={GUID};path=/
Set-Cookie:creddata={Encrypted Information};path=/
方法300包括发送包括被加密的信息的第二个请求的动作(动作305)。动作305可以包括:客户计算机系统发送关于对资源(例如,在第一个请求中所要求的电子邮件消息)进行基于Web的访问的第二个请求。例如,客户计算机系统201可以将请求256(包括邮件服务器URI 267、GUID 274和被加密的证书275)发送到服务器计算机系统211。方法300包括接收包括被加密的信息的第二个请求的动作(动作310)。动作310可以包括:服务器计算机系统接收关于对资源(例如,在第一个请求中所要求的电子邮件消息)进行基于Web的访问的第二个请求。例如,服务器计算机系统211可以从客户计算机系统201接收请求256(包括邮件服务器URI 267、GUID 274和被加密的证书275)。
在一些实施例中,客户计算机系统已将具有GUID和被加密的信息的对应的Cookies存储在浏览器存储器中。当请求对服务器处的资源(例如,电子邮件数据)进行基于Web的访问时,可以使用所存储的GUID和被加密的信息。图2B展示了根据本发明的网络系统结构200的一个例子,该网络系统结构促进利用受保护的客户方的证书来获得服务器处的资源。图4展示了根据本发明的方法400的范例流程图,该方法用于利用受保护的客户方的证书来获得服务器处的资源。将根据图2B中所描绘的客户计算机系统和服务器计算机系统来描述方法400。
方法400包括发送关于对服务器处的资源进行基于Web的访问的请求(包括通话标识符和被加密的用户证书)的动作(动作401)。动作401可以包括:客户计算机系统发送关于对服务器计算机系统处的资源进行基于Web的访问的请求。例如,客户计算机系统201可以将请求291(包括邮件服务器URI 267、GUID 274和被加密的证书275)发送到服务器计算机系统211。邮件服务器URI267表示提供对电子邮件服务器212所控制的电子邮件资源进行访问的URI。GUID 274表示以前从服务器计算机系统211被发送到客户计算机系统201的唯一通话标识符。被加密的证书275表示以前从服务器计算机系统211被发送到客户计算机系统201的被加密的用户证书和取决于时间的签名。可能已从合适的旋转密钥存储器内的密钥中生成被加密的证书275。
方法400包括接收关于对服务器处的资源进行基于Web的访问的请求(包括通话标识符和被加密的用户证书)的动作(动作404)。动作404可以包括;服务器计算机系统接收关于对服务器计算机系统处的资源进行基于Web的访问的请求。例如,服务器计算机系统211可以从客户计算机系统201接收请求291(包括邮件服务器URI 267、GUID 274和被加密的证书275)。
方法400包括尝试使用旋转密钥存储器中最当前的密钥来证实被加密的用户证书的动作(动作405)。动作405可以包括:服务器计算机系统尝试使用旋转密钥存储器中最当前的密钥来证实用户证书的至少一个部分。例如,当指出浏览器202处于私人客户计算机系统时,服务器计算机系统可以尝试使用密钥232来证实被加密的证书275。另一方面,当指出浏览器202处于非可信的客户计算机系统时,服务器计算机系统可以尝试使用密钥222来证实被加密的证书275。证书证实器237可以通过散列来自合适的旋转密钥存储器的最当前的密钥、唯一通话标识符和第二个恒定字符串(在获得加密密钥时被使用)的组合,来获得可以被用来为数据解密的解密密钥。相应地,可以根据公式5来获得解密密钥:
KDCR=SHA-1(KMOST CURRENT ROTATiNG,GUID,EncryptKeyString)
公式5
在公式5中,KMOST CURRENT ROTATING表示合适的旋转密钥存储器中最当前的密钥(例如,密钥232或密钥222)。GUID表示对应于客户计算机系统201的唯一标识符。EncryptKeyString表示在导出KENC期间所使用的恒定字符串。相应地,证书证实器237可以根据公式6来对被加密的信息进行解密,以揭示表示通信属性选择的Digital Signature(数字签名)、User Credentials(用户证书)和Flags:
Digital Signature,{username:password},Flags=KDCR[Encrypted Information]
公式6
证书证实器237可以通过散列合适的旋转密钥存储器中最当前的密钥、唯一标识符和第一个恒定字符串的组合,来获得可以被用来生成证实数字签名的证实密钥。在一些实施例中,证实数字签名被表示为“散列消息识别码”。相应地,可以根据公式7来获得证实密钥:
KVAL=SHA-1(KMOST CURRENT ROTATING,GUID,HMACKeyString)
公式7
在公式7中,KMOSTCURRENT ROTATING表示合适的旋转密钥存储器中最当前的密钥。GUID表示对应于客户计算机系统201的唯一标识符。HMACKeyString表示在获得签名密钥时所使用的那个恒定字符串的文本。从KVAL中并使用所揭示的用户证书和Flags形式公式6,可以根据公式8来生成“散列消息识别码”:
Validation Digital Signature=HMACK(KVAL,(GUID,{username:password},Flags))
公式8
在公式8中,HMAC表示“散列消息识别码”算法。公式8中的(GUID,{username:password},Flags)表示:表示通信属性选择的GUID、用户证书和标记作为到“散列消息识别码”算法的文本输入而被包括在内。虽然在“散列消息识别码”算法方面已作描述,但是,被用来生成证实数字签名的算法并不重要,并且实质上可以使用任何数字签名、摘要或识别码算法。
当证实数字签名等于数字签名时,证实被加密的证书275中所表示的用户证书。相应地,通信过滤器243建立一个包括这些被证实的用户证书的授权头部(例如,HTTP授权头部)。通信过滤器243可以将该授权头部插入关于基于Web的资源访问的请求。例如,通信过滤器243可以从请求291中除去被加密的证书275,并将证书289插入请求291,从而产生请求291A。
当证实数字签名不等于数字签名时,没有证实用户证书。相应地,证书证实器237根据合适的旋转密钥存储器中仅次于最当前的密钥来重复公式5、6、7和8的功能性。例如,关于处于私人客户计算机系统的客户方的浏览器,证书证实器237可以使用密钥233。另一方面,关于非可信的客户处的客户方的浏览器,证书证实器237可以使用密钥223。证书证实器可以尝试使用合适的旋转密钥存储器中的每个密钥来证实用户证书。被证实的用户证书可以被包括在合适的授权头部中。
在一些实施例中,连同被加密的证书一起包括一个索引,用于指出一个旋转密钥(例如,以前被用来为证书加密的旋转密钥),将使用该旋转密钥来尝试证实被加密的证书。例如,客户计算机系统201可以包括请求291中的一个索引,该索引识别非可信的旋转密钥存储器221或私人旋转密钥存储器231中的旋转密钥。索引可以是对将要被使用的旋转密钥的生成进行识别的数值(例如,0、1、2等)。例如,当客户计算机系统201是私人客户计算机系统时,索引0可以识别密钥232。同样,当客户计算机系统201是非可信的客户计算机系统时,索引2可以识别密钥224。相应地,通过使用索引,可以提高证实过程的效率。当利用在索引中所识别的旋转密钥没有证实证书时,可以使用对应的旋转密钥存储器中的其他密钥来尝试证实这些证书。
方法400包括将请求发送到控制对所请求的资源进行基于Web的访问的模块的动作(动作406)。动作406可以包括:服务器计算机系统将请求发送到控制基于Web的资源访问的模块。例如,通信过滤器243可以将请求291A发送到电子邮件服务器212,请求291A包括邮件服务器URI 267和证书289(如从被加密的证书275中所揭示的)。电子邮件服务器212可能是控制基于Web的电子邮件资源访问的模块。电子邮件服务器212可以将证书289和证书数据库213进行比较,以确定对所请求的电子邮件资源的基于Web的访问是否被加以授权。
方法400包括确定是否应该从旋转密钥存储器中最当前的密钥中获得刷新的被加密的用户证书的动作(动作407)。动作407可以包括:服务器计算机系统确定是否应该从旋转密钥存储器中最当前的密钥中获得表示用户证书和取决于时间的签名的刷新的被加密的信息。当利用来自旋转密钥存储器的密钥(而不是来自该旋转密钥存储器的最当前的密钥)来证实用户证书时,服务器确定:将要获得刷新的被加密的证书。例如,如果证书证实器237利用密钥224来证实被加密的证书,则通信过滤器243可以确定:将要为被加密的证书中所表示的用户证书获得刷新的被加密的证书。
相应地,虚线箭头表示:通信过滤器243可以随意地将cookie刷新请求294发送到登录元素证实器216。登录元素证实器216可以使用合适的旋转密钥存储器中最当前的旋转密钥来获得刷新的被加密的信息(例如,通过从最当前的密钥中获得刷新的数字签名和刷新的加密密钥)。登录元素证实器216可以将更新的GUID和刷新的被加密的证书返回给通信过滤器243。例如,虚线箭头表示:登录元素证实器216将消息295(包括更新的GUID 296和刷新的被加密的证书297)返回给通信过滤器243。
当证书289适合于对电子邮件服务器212处的电子邮件资源进行基于Web的访问时,电子邮件服务器212可以响应于请求291A来返回电子邮件资源。例如,电子邮件服务器212可以将包括资源293(例如,电子邮件消息)的响应292返回给通信过滤器243。另一方面,当证书289不适合对电子邮件服务器212处的电子邮件资源进行基于Web的访问时,电子邮件服务器212可以响应于请求291A来返回未经授权的指示。例如,虚线箭头表示:电子邮件服务器212可以将响应294(包括未经授权的指示符272)返回给通信过滤器243。当通信过滤器243接收未经授权的指示符时,通信过滤器243可以将客户计算机系统201重定向到登录网页217。
当被证实的用户证书合适时,通信过滤器243可以将所请求的资源发送到客户计算机系统201。例如,当利用来自合适的旋转密钥存储器的最当前的密钥来证实被加密的证书275时,在通信过滤器243处接收包括资源293的响应292。通信过滤器243可以将响应292发送到客户计算机系统201。相应地,可以在浏览器202处呈现资源293。
当被证实的用户证书合适时,通信过滤器243也可以将刷新的被加密的证书和更新的GUID连同资源一起发送到客户计算机系统201。例如,当利用来自旋转密钥存储器的密钥(不是该旋转密钥存储器中最当前的密钥)来证实被加密的证书275时,资源293、更新的GUID 296和刷新的被加密的证书297都可以在通信过滤器243处被接收。虚线箭头表示:然后,通信模块243可以将响应276(包括资源293、更新的GUID 296和刷新的被加密的证书297)发送到客户计算机系统201。
方法400包括接收资源连同客户方的浏览器处的更新的通话标识符和刷新的被加密的用户证书的动作(动作402)。动作402可以包括:客户计算机系统接收所请求的资源连同表示用户证书的至少这个部分和刷新的取决于时间的签名的更新通话标识符和刷新的被加密的信息。例如,客户计算机系统201可以从服务器计算机系统201接收响应276(包括资源293、更新的GUID 296和刷新的被加密的证书297。
方法400包括将更新的通话标识符和刷新的被加密的用户证书存储在对应的Cookies中的动作(动作403)。动作403可以包括:客户计算机系统将更新的通话标识符和刷新的被加密的信息存储在客户计算机系统处的对应的Cookies中。例如,更新的GUID 296和刷新的被加密的证书297可以被存储在Cookies 203中的对应的Cookies内,从而重写GUID 274和被加密的证书275。可以在浏览器202处呈现资源293。
在不脱离本发明的精神或本质特征的前提下,本发明可以在其他的特殊形式中得到具体表现。无论从哪方面来看,所描述的实施例都将被认为只起说明性的作用,而不具有限制性的作用。所以,本发明的范围由所附权利要求书(而不是由前面的描述)指明。在权利要求书的相等物的含义和范围以内的所有更改都将被包括在其范围以内。

Claims (30)

1.一种在尝试对服务器计算机系统处的资源进行基于Web的访问的客户计算机系统中用于保护用户证书的方法,其中这些证书将被用来获得关于访问该资源的授权,该方法包括:
客户计算机系统发送关于基于Web的资源访问的第一个请求的动作;
将客户计算机系统重定向到登录网页的动作,该登录网页提供用于接受用户证书的界面;
客户计算机系统利用该登录网页将用户证书提交给服务器计算机系统的动作;
客户计算机系统从服务器计算机系统接收表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的动作,服务器计算机系统从所提交的用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,服务器计算机系统使用取决于时间的加密密钥来生成被加密的信息,从在服务器计算机系统中的旋转密钥存储器内的密钥中获得取决于时间的签名密钥和取决于时间的加密密钥,其中取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;以及,
客户计算机系统发送关于基于Web的资源访问的第二个请求的动作,这第二个请求包括被加密的信息。
2.如权利要求1中所述的方法,其特征在于,客户计算机系统发送关于基于Web的资源访问的第一个请求的动作包括发送以前所接收的被加密的信息和以前所接收的唯一通话标识符的动作。
3.如权利要求2中所述的方法,其特征在于,将客户计算机系统重定向到登录网页的动作,包括当以前所接收的被加密的信息没有被服务器计算机系统证实时,将客户计算机系统重定向到登录网页的动作。
4.如权利要求1中所述的方法,其特征在于,客户计算机系统发送关于基于Web的资源访问的第一个请求的动作,包括发送HTTP消息的动作,该HTTP消息请求对电子邮件服务器处的电子邮件资源进行基于Web的访问。
5.如权利要求1中所述的方法,其特征在于,客户计算机系统接收表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的动作,包括接收该被加密的信息连同唯一通话标识符的动作。
6.如权利要求5中所述的方法,其特征在于,还包括:
将所接收的被加密的信息和所接收的唯一通话标识符存储在客户计算机系统处的对应的Cookies中的动作。
7.如权利要求1中所述的方法,其特征在于,客户计算机系统发送关于基于Web的资源访问的第二个请求的动作包括发送被加密的信息连同唯一通话标识符的动作。
8.如权利要求1中所述的方法,其特征在于,客户计算机系统利用登录网页将用户证书提交给服务器计算机系统的动作,包括客户计算机系统利用登录网页在安全的、手工认证的连接上,将用户证书提交给服务器计算机系统的动作。
9.一种在从客户计算机系统接收请求的服务器计算机系统中用于保护将被用来获得关于访问资源的授权的用户证书的方法,其中这些请求要求对服务器计算机系统处的资源进行基于Web的访问,该方法包括:
服务器计算机系统接收关于基于Web的资源访问的第一个请求的动作,这第一个请求由客户计算机系统发送;
服务器计算机系统响应于第一个请求而将客户计算机系统重定向到登录网页的动作,该登录网页允许客户计算机系统输入用户证书;
服务器计算机系统接收曾在登录网页处被提交的用户证书的动作;
服务器计算机系统发送表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的动作,其中从所提交的用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,使用取决于时间的加密密钥来生成被加密的信息,从旋转密钥存储器内的密钥中获得取决于时间的签名密钥和取决于时间的加密密钥,其中取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;以及,
服务器计算机系统接收关于基于Web的资源访问的第二个请求的动作,这第二个请求从客户计算机系统被发送并包括被加密的信息。
10.如权利要求9中所述的方法,其特征在于,服务器计算机系统接收关于基于Web的资源访问的第一个请求的动作包括接收以前所生成的被加密的信息和以前所生成的唯一通话标识符的动作。
11.如权利要求9中所述的方法,其特征在于,服务器计算机系统响应于第一个请求而将客户重定向到登录网页的动作,包括当以前所生成的被加密的信息没有被服务器计算机系统证实时,服务器计算机系统将客户重定向到登录网页的动作。
12.如权利要求9中所述的方法,其特征在于,服务器计算机系统接收关于基于Web的资源访问的第一个请求的动作包括接收HTTP消息的动作,该HTTP消息请求对电子邮件服务器处的电子邮件资源进行基于Web的访问。
13.如权利要求9中所述的方法,其特征在于,服务器计算机系统发送表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的动作包括发送该被加密的信息连同唯一通话标识符的动作。
14.如权利要求9中所述的方法,其特征在于,服务器计算机系统接收关于基于Web的资源访问的第二个请求的动作包括接收被加密的信息连同唯一通话标识符的动作。
15.一种在客户计算机系统中用于保持被用于对服务器计算机系统处的资源进行基于Web的访问的用户证书的方法,该方法包括:
客户计算机系统发送关于基于Web的资源访问的请求的动作,该请求包括唯一通话标识符和表示用户证书的至少一个部分和取决于时间的签名的被加密的信息,服务器计算机系统从该用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,服务器计算机系统使用取决于时间的加密密钥来生成被加密的信息,从服务器计算机系统中的旋转密钥存储器内的密钥中获得取决于时间的签名密钥和取决于时间的加密密钥,其中取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;
当在被加密的信息的生成过程中使用的密钥不是旋转密钥存储器中最当前的密钥时,客户计算机系统从服务器计算机系统接收所请求的资源连同客户方的浏览器处的更新的唯一通话标识符和刷新的被加密的信息的动作,该刷新的被加密的信息表示用户证书的至少一个部分和刷新的取决于时间的签名,服务器计算机系统从用户证书的至少一个部分和刷新的取决于时间的签名密钥中获得该取决于时间的签名,服务器计算机系统使用刷新的取决于时间的加密密钥来生成被加密的信息,从服务器计算机系统中的旋转密钥存储器内的一个最当前的密钥中获得刷新的取决于时间的签名密钥和刷新的取决于时间的加密密钥,其中刷新的取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,刷新的取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;以及,
客户计算机系统将更新的通话标识符和刷新的被加密的信息存储在客户处的对应的Cookies中的动作。
16.如权利要求15中所述的方法,其特征在于,客户计算机系统发送关于基于Web的资源访问的请求的动作,包括发送HTTP消息的动作,该HTTP消息请求对电子邮件服务器处的电子邮件资源进行基于Web的访问。
17.如权利要求15中所述的方法,其特征在于,客户计算机系统将更新的唯一通话标识符和刷新的被加密的信息存储在客户处的对应的Cookies中的动作,包括唯一通话标识符和刷新的被加密的信息重写浏览器存储器中的唯一通话标识符和被加密的信息的动作。
18.一种在服务器计算机系统中用于确定被用于对服务器计算机系统处的资源进行基于Web的访问的用户证书有效性的方法,该方法包括:
服务器计算机系统接收来自客户机计算机系统的关于对服务器处的资源进行基于Web的访问的请求的动作,该请求包括:
唯一通话标识符,其对于在服务器计算机系统和客户计算机系统之间的通话是唯一的;
表示用户证书的至少一个部分和取决于时间的签名的被加密的信息,其中从该用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,使用从服务器计算机系统的旋转密钥存储器中获得的至少一个密钥以及使用取决于时间的加密密钥来对从客户计算机系统接收到的被加密的信息进行加密,从服务器计算机系统上的旋转密钥存储器内的密钥中获得取决于时间的签名密钥,并且从服务器计算机系统上的旋转密钥存储器内的密钥以及唯一通话标识符中获取取决于时间的加密密钥,其中在服务器计算机系统上的一密钥生成模块生成用于旋转密钥存储器的密钥,并且该密钥被传送到客户计算机系统;
服务器计算机系统尝试使用旋转密钥存储器中最当前的密钥来证实用户证书的至少一个部分,并且使用该旋转密钥存储器中最当前的密钥来确定用户证书的至少一个部分是无效的动作;
服务器计算机系统尝试使用旋转密钥存储器中的其它密钥来证实用户证书的至少一个部分的动作;
服务器计算机系统使用旋转密钥存储器中的不是最当前密钥的密钥来证实用户证书的至少一个部分的动作;
服务器计算机系统将请求发送到控制对所请求的资源进行基于Web的访问的模块的动作;以及,
响应于服务器计算机系统使用旋转密钥存储器中的不是最当前密钥的密钥来证实用户证书的至少一个部分,服务器计算机系统确定将从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作。
19.如权利要求18中所述的方法,其特征在于,还包括:
服务器计算机系统根据旋转密钥存储器中以前所生成的密钥来确定用户证书的至少一个部分是有效的动作,在最当前的密钥之前将这个以前所生成的密钥插入旋转密钥存储器。
20.如权利要求18中所述的方法,其特征在于,服务器计算机系统确定是否应该从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作,包括确定应该从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作。
21.如权利要求20中所述的方法,其特征在于,确定应该从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作,包括确定服务器计算机系统曾根据旋转密钥存储器中以前所生成的密钥来证实用户证书的至少一个部分的动作,在最当前的密钥之前将这个以前所生成的密钥插入旋转密钥存储器。
22.如权利要求20中所述的方法,其特征在于,确定应该从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作,包括确定服务器计算机系统无法利用旋转密钥存储器中的任何密钥来证实用户证书的至少一个部分的动作。
23.如权利要求22中所述的方法,其特征在于还包括:
服务器计算机系统将客户计算机系统重定向到提供用于接收用户证书的界面的登录网页的动作。
24.如权利要求18中所述的方法,其特征在于,服务器计算机系统确定是否将从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的动作,包括从旋转密钥存储器内最当前的密钥中获得刷新的被加密的信息和取决于时间的签名的动作。
25.如权利要求24中所述的方法,其特征在于还包括:
服务器计算机系统将所请求的资源、更新的唯一通话标识符和刷新的被加密的信息发送到客户计算机系统的动作。
26.如权利要求1-25中任一所述的方法,其中提供一数据结构,该数据结构定义用于安全地表示关于基于Web的资源访问的证书信息的格式,该数据结构包括:
表示用户证书的证书域,该用户证书用于认证控制基于Web的资源访问的模块;
表示一个或多个通信属性的标记域,当在该模块与客户计算机系统之间传送HTTP消息时,将使用这一个或多个通信属性,该客户计算机系统提交过证书域中所表示的用户证书;以及,
表示取决于时间的数字签名的散列消息识别码域,可以使用该取决于时间的数字签名来证实证书域中所表示的用户证书和标记域中所表示的通信属性。
27.一种在用于尝试对服务器计算机系统处的资源进行基于Web的访问的客户计算机系统中用于保护将被用来获得访问资源的授权的用户证书的系统,该系统包括:
用于发送关于基于Web的资源访问的第一个请求的装置;
用于被重定向到登录网页的装置,该登录网页提供用于接受用户证书的界面;
用于利用该登录网页将用户证书提交给服务器计算机系统的装置;
用于接收表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的装置,其中从该用户证书的至少一个部分和取决于时间的签名密钥中获得取决于时间的签名,使用取决于时间的加密密钥来生成被加密的信息,从旋转密钥存储器内的密钥中获得取决于时间的签名密钥和取决于时间的加密密钥,其中取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;以及,
用于发送关于基于Web的资源访问的第二个请求的装置,这第二个请求包括被加密的信息。
28.一种在从客户计算机系统接收请求的服务器计算机系统中保护将被用来获得关于访问资源的授权的用户证书的系统,其中这些请求要求对服务器计算机系统处的资源进行基于Web的访问,该系统包括:
用于接收关于基于Web的资源访问的第一个请求的装置,这第一个请求由客户计算机系统发送;
用于响应于第一个请求,将客户计算机系统重定向到登录网页的装置,该登录网页允许客户计算机系统输入用户证书;
用于接收在该登录网页处被提交的用户证书的装置;
用于发送表示所提交的用户证书的至少一个部分和取决于时间的签名的被加密的信息的装置,其中从该用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,使用取决于时间的加密密钥来生成被加密的信息,从旋转密钥存储器内的密钥中获得取决于时间的签名密钥和取决于时间的加密密钥,其中取决于时间的签名密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第一个恒定字符串的组合所获得的,取决于时间的加密密钥是服务器计算机系统通过散列旋转密钥存储器中最当前的密钥、对应于客户计算机系统的唯一标识符和第二个恒定字符串的组合所获得的;以及,
用于接收关于基于Web的资源访问的第二个请求的装置,这第二个请求从客户计算机系统那里被发送并包括被加密的信息。
29.一种在服务器计算机系统中用于确定被用于对该服务器计算机系统处的资源进行基于Web的访问的用户证书的有效性的系统,该系统包括:
用于接收来自客户机计算机系统的关于对服务器处的资源进行基于Web的访问的请求的装置,该请求包括:
唯一通话标识符,其对于在服务器计算机系统和客户计算机系统之间的通话是唯一的;
表示用户证书的至少一个部分和取决于时间的签名的被加密的信息,其中从该用户证书的至少一个部分和取决于时间的签名密钥中获得该取决于时间的签名,使用从服务器计算机系统的旋转密钥存储器中获得的至少一个密钥以及使用取决于时间的加密密钥来对从客户计算机系统接收到的被加密的信息进行加密,从服务器计算机系统上的旋转密钥存储器内的密钥中获得取决于时间的签名密钥,并且从服务器计算机系统上的旋转密钥存储器内的密钥以及唯一通话标识符中获取取决于时间的加密密钥,其中在服务器计算机系统上的一密钥生成模块生成用于旋转密钥存储器的密钥,并且该密钥被传送到客户计算机系统;
用于尝试使用旋转密钥存储器中最当前的密钥来证实该用户证书的至少一个部分并且使用该旋转密钥存储器中最当前的密钥来确定用户证书的至少一个部分是无效的装置;
用于服务器计算机系统尝试使用旋转密钥存储器中的其它密钥来证实用户证书的至少一个部分的装置;
用于服务器计算机系统使用旋转密钥存储器中的不是最当前密钥的密钥来证实用户证书的至少一个部分的装置;
用于将该请求发送到控制对所请求的资源进行基于Web的访问的模块的装置;以及,
用于响应于服务器计算机系统使用旋转密钥存储器中的不是最当前密钥的密钥来证实用户证书的至少一个部分,确定将从旋转密钥存储器内最当前的密钥中获得表示用户证书的至少一个部分和取决于时间的签名的刷新的被加密的信息的装置。
30.如权利要求27-29中任一所述的系统,一定义用于安全地表示关于基于Web的资源访问的证书信息的格式的数据结构被提供,该数据结构包括:
表示用户证书的证书域,该用户证书用于认证控制基于Web的资源访问的模块;
表示一个或多个通信属性的标记域,当在该模块与客户计算机系统之间传送HTTP消息时,将使用这一个或多个通信属性,该客户计算机系统提交过证书域中所表示的用户证书;以及,
表示取决于时间的数字签名的散列消息识别码域,可以使用该取决于时间的数字签名来证实证书域中所表示的用户证书和标记域中所表示的通信属性。
CN200310116481A 2002-11-20 2003-11-20 安全地处理被用于基于web的资源访问的客户证书 Expired - Fee Related CN100581103C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US42815202P 2002-11-20 2002-11-20
US60/428,152 2002-11-20
US10/459,863 2003-06-12
US10/459,863 US7360096B2 (en) 2002-11-20 2003-06-12 Securely processing client credentials used for Web-based access to resources

Publications (2)

Publication Number Publication Date
CN1505309A CN1505309A (zh) 2004-06-16
CN100581103C true CN100581103C (zh) 2010-01-13

Family

ID=32233681

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200310116481A Expired - Fee Related CN100581103C (zh) 2002-11-20 2003-11-20 安全地处理被用于基于web的资源访问的客户证书

Country Status (13)

Country Link
US (1) US7360096B2 (zh)
EP (1) EP1422907B1 (zh)
JP (1) JP4647200B2 (zh)
KR (1) KR101071132B1 (zh)
CN (1) CN100581103C (zh)
AU (1) AU2003257894B8 (zh)
BR (2) BR0305140A (zh)
CA (1) CA2450056C (zh)
DK (1) DK1422907T3 (zh)
ES (1) ES2423824T3 (zh)
MX (1) MXPA03010477A (zh)
RU (2) RU2332711C2 (zh)
SI (1) SI1422907T1 (zh)

Families Citing this family (165)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7350228B2 (en) * 2001-01-23 2008-03-25 Portauthority Technologies Inc. Method for securing digital content
US20030084171A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation User access control to distributed resources on a data communications network
US20030084302A1 (en) * 2001-10-29 2003-05-01 Sun Microsystems, Inc., A Delaware Corporation Portability and privacy with data communications network browsing
US20030084172A1 (en) * 2001-10-29 2003-05-01 Sun Microsystem, Inc., A Delaware Corporation Identification and privacy in the World Wide Web
US7941533B2 (en) * 2002-02-19 2011-05-10 Jpmorgan Chase Bank, N.A. System and method for single sign-on session management without central server
US7412539B2 (en) * 2002-12-18 2008-08-12 Sonicwall, Inc. Method and apparatus for resource locator identifier rewrite
US20060179305A1 (en) * 2004-03-11 2006-08-10 Junbiao Zhang WLAN session management techniques with secure rekeying and logoff
US7805366B2 (en) * 2003-03-21 2010-09-28 Ebay Inc. Method and system to facilitate payments to satisfy payment obligations resulting from purchase transactions
US10535049B2 (en) * 2003-03-21 2020-01-14 Paypal, Inc. Payment transactions via substantially instant communication system
US7809843B1 (en) * 2003-09-18 2010-10-05 Intel Corporation Globally unique identification in communications protocols and databases
US20050138367A1 (en) * 2003-12-19 2005-06-23 Robert Paganetti System and method for storing user credentials on a server copyright notice
US8954420B1 (en) * 2003-12-31 2015-02-10 Google Inc. Methods and systems for improving a search ranking using article information
US7373502B2 (en) * 2004-01-12 2008-05-13 Cisco Technology, Inc. Avoiding server storage of client state
US7665147B2 (en) * 2004-02-05 2010-02-16 At&T Mobility Ii Llc Authentication of HTTP applications
US7680888B1 (en) 2004-03-31 2010-03-16 Google Inc. Methods and systems for processing instant messenger messages
US7725508B2 (en) * 2004-03-31 2010-05-25 Google Inc. Methods and systems for information capture and retrieval
US8386728B1 (en) 2004-03-31 2013-02-26 Google Inc. Methods and systems for prioritizing a crawl
US7333976B1 (en) 2004-03-31 2008-02-19 Google Inc. Methods and systems for processing contact information
US8161053B1 (en) 2004-03-31 2012-04-17 Google Inc. Methods and systems for eliminating duplicate events
US20050234929A1 (en) * 2004-03-31 2005-10-20 Ionescu Mihai F Methods and systems for interfacing applications with a search engine
US7581227B1 (en) 2004-03-31 2009-08-25 Google Inc. Systems and methods of synchronizing indexes
US8346777B1 (en) 2004-03-31 2013-01-01 Google Inc. Systems and methods for selectively storing event data
US8099407B2 (en) * 2004-03-31 2012-01-17 Google Inc. Methods and systems for processing media files
US8275839B2 (en) 2004-03-31 2012-09-25 Google Inc. Methods and systems for processing email messages
US7941439B1 (en) 2004-03-31 2011-05-10 Google Inc. Methods and systems for information capture
US7412708B1 (en) 2004-03-31 2008-08-12 Google Inc. Methods and systems for capturing information
US8631076B1 (en) 2004-03-31 2014-01-14 Google Inc. Methods and systems for associating instant messenger events
US7823192B1 (en) * 2004-04-01 2010-10-26 Sprint Communications Company L.P. Application-to-application security in enterprise security services
US20060016107A1 (en) * 2004-05-18 2006-01-26 Davis Bruce L Photo ID cards and methods of production
US8528078B2 (en) * 2004-07-15 2013-09-03 Anakam, Inc. System and method for blocking unauthorized network log in using stolen password
US7676834B2 (en) 2004-07-15 2010-03-09 Anakam L.L.C. System and method for blocking unauthorized network log in using stolen password
EP1766839B1 (en) * 2004-07-15 2013-03-06 Anakam, Inc. System and method for blocking unauthorized network log in using stolen password
US8296562B2 (en) * 2004-07-15 2012-10-23 Anakam, Inc. Out of band system and method for authentication
US8533791B2 (en) * 2004-07-15 2013-09-10 Anakam, Inc. System and method for second factor authentication services
US20100100967A1 (en) * 2004-07-15 2010-04-22 Douglas James E Secure collaborative environment
US9426651B2 (en) * 2004-08-18 2016-08-23 Sk Planet Co., Ltd. Method for providing contents in a mobile communication system and apparatus thereof
US7483943B2 (en) * 2004-09-21 2009-01-27 Microsoft Corporation Reliable messaging using clocks with synchronized rates
US20060168054A1 (en) * 2004-12-13 2006-07-27 Ebay Inc. Messaging method and apparatus
CA2648523C (en) * 2005-04-21 2018-09-04 Securedpay Solutions, Inc. Portable handheld device for wireless order entry and real time payment authorization and related methods
US7810143B2 (en) * 2005-04-22 2010-10-05 Microsoft Corporation Credential interface
US9621666B2 (en) 2005-05-26 2017-04-11 Citrix Systems, Inc. Systems and methods for enhanced delta compression
US9407608B2 (en) 2005-05-26 2016-08-02 Citrix Systems, Inc. Systems and methods for enhanced client side policy
US8943304B2 (en) 2006-08-03 2015-01-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US9692725B2 (en) 2005-05-26 2017-06-27 Citrix Systems, Inc. Systems and methods for using an HTTP-aware client agent
US7917943B1 (en) * 2006-12-01 2011-03-29 Goodmail Systems, Inc. E-mail Stamping with accredited entity name
WO2006130772A2 (en) * 2005-06-01 2006-12-07 Goodmail Systems, Inc. E-mail stamping with from-header validation
US7877789B2 (en) * 2005-06-01 2011-01-25 Goodmail Systems, Inc. E-mail stamping with from-header validation
US7650505B1 (en) * 2005-06-17 2010-01-19 Sun Microsystems, Inc. Methods and apparatus for persistence of authentication and authorization for a multi-tenant internet hosted site using cookies
US7730523B1 (en) * 2005-06-17 2010-06-01 Oracle America, Inc. Role-based access using combinatorial inheritance and randomized conjugates in an internet hosted environment
CN1929367B (zh) * 2005-09-10 2010-08-25 腾讯科技(深圳)有限公司 一种游戏数据传输方法及系统
US9262446B1 (en) 2005-12-29 2016-02-16 Google Inc. Dynamically ranking entries in a personal data book
GB2434947B (en) 2006-02-02 2011-01-26 Identum Ltd Electronic data communication system
US8332627B1 (en) * 2006-02-08 2012-12-11 Cisco Technology, Inc. Mutual authentication
US8560595B2 (en) 2006-06-23 2013-10-15 Microsoft Corporation Virtualization of mobile device user experience
CN101101687B (zh) * 2006-07-05 2010-09-01 山谷科技有限责任公司 用生物特征进行身份认证的方法、设备、服务器和系统
US7698242B2 (en) * 2006-08-16 2010-04-13 Fisher-Rosemount Systems, Inc. Systems and methods to maintain process control systems using information retrieved from a database storing general-type information and specific-type information
WO2008024742A2 (en) * 2006-08-21 2008-02-28 Scientific Games Holdings Limited System and method for implementing an additional game to players of a lottery game
CN101155028B (zh) * 2006-09-26 2010-09-15 阿里巴巴集团控股有限公司 一种安全登录网站的方法和系统
JP4607082B2 (ja) * 2006-09-27 2011-01-05 株式会社エヌ・ティ・ティ・データ 情報処理装置、管理方法、及びコンピュータプログラム
WO2008108564A1 (en) * 2007-03-02 2008-09-12 Lg Electronics Inc. Method and system for transferring resource
CN101267299B (zh) * 2007-03-14 2010-11-03 阿里巴巴集团控股有限公司 一种安全显示网页中数据的方法和系统
US8763136B2 (en) * 2007-03-22 2014-06-24 Red Hat, Inc. Privacy enhanced browser
US7941405B2 (en) * 2007-03-30 2011-05-10 Data Center Technologies Password protection for file backups
US9319220B2 (en) * 2007-03-30 2016-04-19 Intel Corporation Method and apparatus for secure network enclaves
CN101335622B (zh) * 2007-06-27 2012-08-29 日电(中国)有限公司 使用匿名柔性凭证的用于分布式授权的方法和装置
US8094812B1 (en) * 2007-09-28 2012-01-10 Juniper Networks, Inc. Updating stored passwords
WO2009052533A1 (en) * 2007-10-18 2009-04-23 Goodmail Systems, Inc. Certification of e-mails with embedded code
US8682470B2 (en) * 2008-01-08 2014-03-25 International Business Machines Corporation Data storage drive with target of opportunity recognition
US9349410B2 (en) 2008-01-08 2016-05-24 International Business Machines Corporation Automated data storage library with target of opportunity recognition
US9495561B2 (en) * 2008-01-08 2016-11-15 International Business Machines Corporation Target of opportunity recognition during an encryption related process
CN101247232B (zh) * 2008-03-27 2012-09-26 上海金鑫计算机系统工程有限公司 数据交换传输中基于数字签名的加密技术方法
CN101309278B (zh) * 2008-06-27 2011-07-06 腾讯科技(深圳)有限公司 一种在客户端保存加密数据的方法及系统
US8924362B2 (en) 2008-06-30 2014-12-30 Microsoft Corporation B-file abstraction for efficiently archiving self-expiring data
US8352519B2 (en) * 2008-07-31 2013-01-08 Microsoft Corporation Maintaining large random sample with semi-random append-only operations
US8181861B2 (en) 2008-10-13 2012-05-22 Miri Systems, Llc Electronic transaction security system and method
WO2010043024A1 (en) * 2008-10-19 2010-04-22 Research In Motion Limited Web application framework for enabling optimum rendering performance on a client based upon detected parameters of the client
US20100287231A1 (en) * 2008-11-11 2010-11-11 Esignet, Inc. Method and apparatus for certifying hyperlinks
US8271536B2 (en) * 2008-11-14 2012-09-18 Microsoft Corporation Multi-tenancy using suite of authorization manager components
US20100226526A1 (en) * 2008-12-31 2010-09-09 Modro Sierra K Mobile media, devices, and signaling
US9449195B2 (en) * 2009-01-23 2016-09-20 Avow Networks Incorporated Method and apparatus to perform online credential reporting
EP2401711A4 (en) * 2009-02-25 2016-12-28 Miri Systems Llc PAYMENT SYSTEM AND METHOD
JP5124527B2 (ja) * 2009-05-26 2013-01-23 株式会社日立製作所 メール中継装置
US9178858B1 (en) * 2009-08-05 2015-11-03 West Corporation Method and system for message delivery security validation
CA2783841C (en) 2009-10-05 2023-09-05 Miri Systems, Llc Electronic transaction security system and method
US20110179270A1 (en) * 2010-01-20 2011-07-21 The Provost, Fellows and Scholars of the College of the Holy and Undivided Trinity of Queen Elizab Data Retrieval System
US8442235B2 (en) * 2010-04-14 2013-05-14 Microsoft Corporation Extensible management of self-encrypting storage devices
US9667423B2 (en) 2010-09-27 2017-05-30 Nokia Technologies Oy Method and apparatus for accelerated authentication
US8505083B2 (en) 2010-09-30 2013-08-06 Microsoft Corporation Remote resources single sign on
US8646062B2 (en) * 2010-11-09 2014-02-04 International Business Machines Corporation Remote authentication based on challenge-response using digital certificates
GB2481663B (en) * 2010-11-25 2012-06-13 Richard H Harris Handling encoded information
US8683560B1 (en) * 2010-12-29 2014-03-25 Amazon Technologies, Inc. Techniques for credential generation
WO2012092261A2 (en) * 2010-12-29 2012-07-05 Citrix Systems, Inc. Systems and methods for multi-level tagging of encrypted items for additional security and efficient encrypted item determination
US9838392B2 (en) * 2011-02-28 2017-12-05 Nokia Technologies Oy Method and apparatus for providing proxy-based access controls
US8752208B2 (en) 2011-05-13 2014-06-10 Imperva Inc. Detecting web browser based attacks using browser digest compute tests launched from a remote source
US9864851B2 (en) 2011-07-28 2018-01-09 Blackberry Limited System, device, and method for authentication of a user accessing an on-line resource
US8640210B2 (en) * 2011-09-01 2014-01-28 Microsoft Corporation Distributed computer systems with time-dependent credentials
US9032492B2 (en) 2011-09-01 2015-05-12 Microsoft Corporation Distributed computer systems with time-dependent credentials
US9058467B2 (en) * 2011-09-01 2015-06-16 Microsoft Corporation Distributed computer systems with time-dependent credentials
CN103002439B (zh) * 2011-09-13 2015-06-17 联芯科技有限公司 保密通话的通信方法及用户终端
US9830435B2 (en) * 2011-10-04 2017-11-28 Salesforce.Com, Inc. Method and system for providing login as a service
US8955079B2 (en) * 2011-10-31 2015-02-10 Avaya Inc. Single sign-on for applications
US9298837B2 (en) 2011-11-10 2016-03-29 Room 77, Inc. Efficient indexing and caching infrastructure for metasearch
US10742634B1 (en) 2011-12-27 2020-08-11 Majid Shahbazi Methods for single sign-on (SSO) using optical codes
US8819444B2 (en) * 2011-12-27 2014-08-26 Majid Shahbazi Methods for single signon (SSO) using decentralized password and credential management
US9356924B1 (en) * 2011-12-27 2016-05-31 Majid Shahbazi Systems, methods, and computer readable media for single sign-on (SSO) using optical codes
US8898796B2 (en) * 2012-02-14 2014-11-25 International Business Machines Corporation Managing network data
US9166777B2 (en) * 2012-03-05 2015-10-20 Echoworx Corporation Method and system for user authentication for computing devices utilizing PKI and other user credentials
CN102638580A (zh) * 2012-03-30 2012-08-15 奇智软件(北京)有限公司 一种网页信息处理方法和装置
US9576064B2 (en) * 2012-04-13 2017-02-21 Yahoo! Inc. Third party program integrity and integration control in web-based applications
US8997193B2 (en) * 2012-05-14 2015-03-31 Sap Se Single sign-on for disparate servers
US8880885B2 (en) * 2012-10-09 2014-11-04 Sap Se Mutual authentication schemes
US11178126B2 (en) * 2013-01-15 2021-11-16 Schneider Electric USA, Inc. Systems and methods for securely accessing programmable devices
US9881201B2 (en) * 2013-02-05 2018-01-30 Vynca, Inc. Method and apparatus for collecting an electronic signature on a first device and incorporating the signature into a document on a second device
WO2014126493A1 (ru) * 2013-02-13 2014-08-21 Sherbakov Andrei Yuryevich Способ использования ресурса в компьютерной системе
US9954843B2 (en) * 2013-02-28 2018-04-24 Microsoft Technology Licensing, Llc Web ticket based upon a symmetric key usable for user authentication
JP6323811B2 (ja) * 2013-03-15 2018-05-16 パナソニックIpマネジメント株式会社 コンテンツ配信方法及びソース機器
US9344426B2 (en) 2013-05-14 2016-05-17 Citrix Systems, Inc. Accessing enterprise resources while providing denial-of-service attack protection
CN104217136B (zh) * 2013-06-05 2017-05-03 北京齐尔布莱特科技有限公司 防止网页文本信息被自动抓取的方法和系统
CN103458037A (zh) * 2013-09-06 2013-12-18 南京南自信息技术有限公司 一种在资源受限环境下提供复杂网页应用的方法和设备
US9237019B2 (en) * 2013-09-25 2016-01-12 Amazon Technologies, Inc. Resource locators with keys
US9722801B2 (en) * 2013-09-30 2017-08-01 Juniper Networks, Inc. Detecting and preventing man-in-the-middle attacks on an encrypted connection
US9215064B2 (en) 2013-10-21 2015-12-15 Adobe Systems Incorporated Distributing keys for decrypting client data
CA2930335C (en) 2013-11-14 2023-10-10 Pleasant Solutions Inc. System and method for credentialed access to a remote server
CN104767719B (zh) 2014-01-07 2018-09-18 阿里巴巴集团控股有限公司 确定登录网站的终端是否是移动终端的方法及服务器
US9882884B1 (en) * 2014-01-15 2018-01-30 United States Automobile Association (USAA) Authenticating mobile traffic
US10108168B2 (en) 2014-06-01 2018-10-23 Si-Ga Data Security (2014) Ltd. Industrial control system smart hardware monitoring
US10182046B1 (en) * 2015-06-23 2019-01-15 Amazon Technologies, Inc. Detecting a network crawler
US9489508B2 (en) 2014-11-13 2016-11-08 Seagate Technology Llc Device functionality access control using unique device credentials
US9853977B1 (en) 2015-01-26 2017-12-26 Winklevoss Ip, Llc System, method, and program product for processing secure transactions within a cloud computing system
US10915891B1 (en) 2015-03-16 2021-02-09 Winklevoss Ip, Llc Autonomous devices
US10158480B1 (en) 2015-03-16 2018-12-18 Winklevoss Ip, Llc Autonomous devices
US10165004B1 (en) 2015-03-18 2018-12-25 Cequence Security, Inc. Passive detection of forged web browsers
US11418520B2 (en) 2015-06-15 2022-08-16 Cequence Security, Inc. Passive security analysis with inline active security device
US10290022B1 (en) 2015-06-23 2019-05-14 Amazon Technologies, Inc. Targeting content based on user characteristics
US9887848B2 (en) * 2015-07-02 2018-02-06 Gn Hearing A/S Client device with certificate and related method
US10509900B1 (en) 2015-08-06 2019-12-17 Majid Shahbazi Computer program products for user account management
US11082849B2 (en) * 2015-08-07 2021-08-03 Qualcomm Incorporated Validating authorization for use of a set of features of a device
CN105490813B (zh) * 2015-11-26 2019-03-01 广州华多网络科技有限公司 一种用户安全访问web的方法及装置
US10237080B2 (en) * 2015-12-08 2019-03-19 Verizon Patent And Licensing Inc. Tracking data usage in a secure session
US10931713B1 (en) 2016-02-17 2021-02-23 Cequence Security, Inc. Passive detection of genuine web browsers based on security parameters
US9600656B1 (en) * 2016-03-09 2017-03-21 Sailpoint Technologies, Inc. System and method for domain password reset in a secured distributed network environment
US10461942B1 (en) * 2016-07-20 2019-10-29 United Services Automobile Association Multi-factor authentication with code rotation
US20180145959A1 (en) * 2016-11-22 2018-05-24 Synergex Group Method for determining access privilege using username, IP address, App ID, App Key, and biometric signature sample.
US10805080B2 (en) * 2017-01-06 2020-10-13 Microsoft Technology Licensing, Llc Strong resource identity in a cloud hosted system
SE543061C2 (en) * 2017-01-31 2020-09-29 Telia Co Ab Methods for providing continuity in chatbot communications
US10931686B1 (en) 2017-02-01 2021-02-23 Cequence Security, Inc. Detection of automated requests using session identifiers
PH12017000064A1 (en) * 2017-03-03 2018-09-17 Jr Eugenio S Ynion Access control method, system, device, terminal, and computer program product uisng multimodal authenticity determination
CN108632021A (zh) 2017-03-15 2018-10-09 阿里巴巴集团控股有限公司 一种密钥加密方法、装置和系统
CN108632213B (zh) * 2017-03-20 2021-12-31 腾讯科技(北京)有限公司 设备信息处理方法及装置
CN109286932B (zh) * 2017-07-20 2021-10-19 阿里巴巴集团控股有限公司 入网认证方法、装置及系统
US10891372B1 (en) 2017-12-01 2021-01-12 Majid Shahbazi Systems, methods, and products for user account authentication and protection
US10949564B2 (en) 2018-05-07 2021-03-16 Apple Inc. Contact discovery service with privacy aspect
CN108600266B (zh) * 2018-05-09 2020-09-22 聚龙股份有限公司 一种声明过滤认证方法及认证系统
CN108600268B (zh) * 2018-05-09 2020-09-22 聚龙股份有限公司 一种应用于非授信认证的加密解密方法及非授信认证系统
CN110968413A (zh) * 2018-09-28 2020-04-07 华为技术有限公司 一种数据管理方法、装置和服务器
CN109359252B (zh) * 2018-10-30 2021-11-30 北京小米移动软件有限公司 浏览器选择方法及装置
CN111249740A (zh) * 2020-01-07 2020-06-09 上海米哈游天命科技有限公司 一种资源数据的访问方法及系统
US11398901B2 (en) * 2020-03-26 2022-07-26 Walmart Apollo, Llc Restricted partial key storage
US11552802B2 (en) * 2020-04-15 2023-01-10 Salesforce, Inc. Stateless mutual authentication between services
US11314876B2 (en) 2020-05-28 2022-04-26 Bank Of America Corporation System and method for managing built-in security for content distribution
US11233802B1 (en) 2020-06-11 2022-01-25 Amazon Technologies, Inc. Cookie and behavior-based authentication
CN112417401A (zh) * 2020-11-26 2021-02-26 深圳创维-Rgb电子有限公司 账号验证方法、装置、系统及计算机可读存储介质
US11665002B2 (en) * 2020-12-11 2023-05-30 International Business Machines Corporation Authenticated elevated access request
KR102486585B1 (ko) * 2021-10-21 2023-01-09 주식회사 엔디에스 네트워크를 통한 사용자 자격 검증 방법 및 이에 사용되는 서비스 제공 서버
US11528144B1 (en) * 2022-06-09 2022-12-13 Uab 360 It Optimized access in a service environment

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168520A (en) * 1984-11-30 1992-12-01 Security Dynamics Technologies, Inc. Method and apparatus for personal identification
US4972472A (en) * 1985-03-15 1990-11-20 Tandem Computers Incorporated Method and apparatus for changing the master key in a cryptographic system
US5657388A (en) * 1993-05-25 1997-08-12 Security Dynamics Technologies, Inc. Method and apparatus for utilizing a token for resource access
US5237614A (en) * 1991-06-07 1993-08-17 Security Dynamics Technologies, Inc. Integrated network security system
US6047357A (en) * 1995-01-27 2000-04-04 Digital Equipment Corporation High speed method for maintaining cache coherency in a multi-level, set associative cache hierarchy
US6041357A (en) 1997-02-06 2000-03-21 Electric Classified, Inc. Common session token system and protocol
JP3804245B2 (ja) * 1998-01-22 2006-08-02 富士ゼロックス株式会社 電子チケットシステム
RU2163745C2 (ru) * 1999-04-29 2001-02-27 Щеглов Андрей Юрьевич Система защиты виртуального канала корпоративной сети с аутентифицирующим маршрутизатором, построенной на каналах и средствах коммутации сети связи общего пользования
US6957334B1 (en) 1999-06-23 2005-10-18 Mastercard International Incorporated Method and system for secure guaranteed transactions over a computer network
US6834271B1 (en) * 1999-09-24 2004-12-21 Kryptosima Apparatus for and method of secure ATM debit card and credit card payment transactions via the internet
RU2166792C1 (ru) * 1999-10-25 2001-05-10 Щеглов Андрей Юрьевич Система защиты рабочих станций, информационных и функциональных серверов вычислительных систем и сетей с динамическими списками санкционированных событий
EP1122928B1 (en) * 1999-12-27 2006-03-08 Hewlett-Packard Company A system and method for authentication of electronic messages sent to a network server
US6954799B2 (en) 2000-02-01 2005-10-11 Charles Schwab & Co., Inc. Method and apparatus for integrating distributed shared services system
JP2002117350A (ja) * 2000-07-21 2002-04-19 Hitachi Ltd サービス発行方法並びにサービス提供方法及びそのシステム
US6986040B1 (en) * 2000-11-03 2006-01-10 Citrix Systems, Inc. System and method of exploiting the security of a secure communication channel to secure a non-secure communication channel

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
巧妙运用Cookie技术进行Browser/Server通信. 刘利军,候关士,杨宗煦.计算机工程,第27卷第1期. 2001
巧妙运用Cookie技术进行Browser/Server通信. 刘利军,候关士,杨宗煦.计算机工程,第27卷第1期. 2001 *

Also Published As

Publication number Publication date
EP1422907B1 (en) 2013-07-03
JP2004173285A (ja) 2004-06-17
BRPI0305140B1 (pt) 2018-05-29
EP1422907A2 (en) 2004-05-26
DK1422907T3 (da) 2013-08-26
KR101071132B1 (ko) 2011-10-10
JP4647200B2 (ja) 2011-03-09
RU2008114665A (ru) 2009-10-20
EP1422907A3 (en) 2011-11-23
CA2450056A1 (en) 2004-05-20
CN1505309A (zh) 2004-06-16
AU2003257894B8 (en) 2009-08-13
RU2332711C2 (ru) 2008-08-27
US7360096B2 (en) 2008-04-15
ES2423824T3 (es) 2013-09-24
US20040098609A1 (en) 2004-05-20
KR20040044375A (ko) 2004-05-28
CA2450056C (en) 2013-05-14
RU2003133768A (ru) 2005-05-10
MXPA03010477A (es) 2004-10-15
AU2003257894B2 (en) 2009-07-02
SI1422907T1 (sl) 2013-10-30
BR0305140A (pt) 2004-08-31
AU2003257894A1 (en) 2004-06-10
RU2447490C2 (ru) 2012-04-10

Similar Documents

Publication Publication Date Title
CN100581103C (zh) 安全地处理被用于基于web的资源访问的客户证书
US11777911B1 (en) Presigned URLs and customer keying
JP4864289B2 (ja) ネットワークユーザ認証システムおよび方法
US9673984B2 (en) Session key cache to maintain session keys
JP5009294B2 (ja) 分散シングルサインオンサービス
CN1701295B (zh) 用于对计算机网格进行单次登录访问的方法和系统
CN100534092C (zh) 用于执行认证操作的方法及其装置
JP2007328482A (ja) 通信処理方法及びコンピュータ・システム
EP3673395B1 (en) Systems and methods for authenticated parameterized application installation and launch
CN112560003A (zh) 用户权限管理方法和装置
JP2005222488A (ja) ユーザ認証システム、情報配信サーバ、およびユーザ認証方法
CN115695040A (zh) 用于保护数据的系统和方法
KR20020019668A (ko) 웹서버 시스템, 스트리밍서버 시스템 및 그 파일 제공방법
JP2005346224A (ja) 調査データ分析システム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100113

Termination date: 20191120