CN1906883A - 实现基于无状态服务器的预共享私密 - Google Patents
实现基于无状态服务器的预共享私密 Download PDFInfo
- Publication number
- CN1906883A CN1906883A CNA2005800013852A CN200580001385A CN1906883A CN 1906883 A CN1906883 A CN 1906883A CN A2005800013852 A CNA2005800013852 A CN A2005800013852A CN 200580001385 A CN200580001385 A CN 200580001385A CN 1906883 A CN1906883 A CN 1906883A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- key
- state information
- encrypted
- 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
- 238000000034 method Methods 0.000 claims abstract description 61
- 230000015654 memory Effects 0.000 claims abstract description 32
- 238000009795 derivation Methods 0.000 claims description 31
- 230000005540 biological transmission Effects 0.000 claims description 8
- 230000000295 complement effect Effects 0.000 claims 3
- 230000007246 mechanism Effects 0.000 abstract description 12
- 238000013475 authorization Methods 0.000 abstract description 6
- 238000004891 communication Methods 0.000 description 20
- 230000006870 function Effects 0.000 description 16
- 230000004044 response Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 238000012384 transportation and delivery Methods 0.000 description 5
- 230000000875 corresponding effect Effects 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 108010022579 ATP dependent 26S protease Proteins 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000005611 electricity Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
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/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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/0435—Network 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
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- 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
- 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/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
- H04L9/0841—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
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)
- Storage Device Security (AREA)
- Telephonic Communication Services (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种用于实现基于无状态服务器的预共享私密的方法。基于客户端不知道的本地密钥,服务器对客户端的状态信息进行加密。客户端的状态信息例如可以包括客户端的认证凭证、客户端的授权特性和客户端用于导出会话密钥的共享私密密钥。利用多种机制中的任意一种,经加密的客户端状态信息被提供给客户端。服务器可以腾出曾存储客户端的状态信息的存储器。当服务器需要客户端的状态信息时,客户端向服务器发送客户端存储的经加密的状态信息。服务器利用本地密钥对经加密的客户端状态信息解密。由于每个客户端以加密形式存储了该客户端自己的状态信息,因此服务器无需永久存储任意客户端的状态信息。
Description
技术领域
本发明一般地涉及计算机网络的认证、授权和安全机制。更具体而言,本发明涉及用于实现基于无状态服务器的预共享私密(secret)的方法和装置。
背景技术
本部分中描述的方法可被获得,但这些方法不一定是先前已经设想到或已经获得的方法。因此,除非这里另外指示,否则在本部分中描述的方法不是针对本申请中的权利要求的现有技术,并且不会由于包括在本部分中而被承认是现有技术。
为了维持私有计算机网络的安全性,客户端计算机(“客户端”)可能被要求通过经由服务器计算机(“服务器”)进行认证以及建立到网络的授权来访问网络。在授予客户端对网络的访问权限之前,服务器可能要求客户端向服务器提供认证凭证,以使服务器能够确信客户端实际上是客户端所声称的的实体。客户端的认证凭证指示客户端的身份。如果客户端的认证凭证与存储在服务器中的认证凭证不匹配,服务器则拒绝客户端访问网络。即使在客户端已成功认证其自身之后,服务器也可以基于与客户端相关的以及存储在服务器中的授权特性来限制服务器对网络资源的访问和/或客户端可以对网络资源执行的操作。
未经授权的计算机尝试窃听在经授权的客户端和服务器之间传输的信息的情况并不罕见。为了防止未经授权的计算机利用未经授权的计算机不应接收的信息,客户端和服务器可以采用加密机制来保护将在客户端和服务器之间传输的信息。根据一种加密机制,客户端和服务器都从仅被客户端和服务器拥有的共享私密密钥导出一个或多个会话密钥。在彼此发送消息之前,客户端和服务器利用会话密钥对消息加密。利用会话密钥,客户端和服务器可以对它们从彼此接收到的经加密的消息进行解密。不具有共享私密密钥的计算机无法导出会话密钥,因此无法对在客户端和服务器之间传输的消息进行解密。
多个客户端可能通过同一服务器来访问专用网络。为了防止一个客户端伪装成另一客户端,不同的客户端通常与不同的认证凭证相关联。不同的客户端可能与不同的授权特性相关联。为了防止一个客户端利用专用于另一客户端的信息,不同的客户端通常具有不同的共享私密密钥。总的来讲,客户端的认证凭证、授权特性和共享私密密钥被称为客户端的状态信息。
根据一种方法,服务器针对每个客户端存储独立的客户端状态信息。当存在很多客户端时,存储每个客户端的独立的客户端状态信息的操作要使用大量存储器。服务器的成本与服务器要求用于存储客户端状态信息的存储器的量成正比。
很多现有网络设备不包含足以存储大量客户端的客户端状态信息的存储器。例如,某些网络路由器可获得的相对较少量的存储器使这些网络路由器在大量客户端将访问网络时无法执行上述服务器功能。很多网络路由器没有足够的存储器来同时存储很多不同的认证凭证、授权特性和共享私密密钥。
在当今不断增长的无线世界中,存储器限制不是与客户端状态信息的存储相关的唯一关注点。无线客户端可以从一个位置漫游到另一位置。当无线客户端离开一个位置而进入另一位置时,无线客户端可能试图通过不同服务器访问同一专用网络。如果客户端试图通过其来进行访问的服务器不具有客户端的状态信息,服务器则将无法授予客户端对网络的访问权限。
解决上述问题的一种可能方法可能是以如下方式管理一组服务器:将存储在一个服务器中的客户端状态信息复制在域中的所有服务器上。但是,当存在很多客户端和很多服务器时,在所有服务器上复制所有客户端状态信息的操作是一项繁重的任务,尤其是在新的客户端被持续添加到客户端池的情况下。如果域中的每个服务器都需要装配非常大量的存储器来存储所有客户端的所有客户端状态信息,那么域管理员的花费可能是无法承受的。毫无疑问,如果客户端的数目以相当快速的步调增长,管理员则可能发现无法跟上这种增长。
附图说明
在附图中以示例方式而非限制方式示出了本发明,并且附图中的相似标号指示类似元素,在附图中:
图1是示出客户端状态信息被主要存储在客户端上而非服务器上的系统的概况的框图;
图2是示出用于避免客户端状态信息存储在服务器上的方法的一个实施例的高级概况的流程图;
图3A和图3B是示出用于避免客户端授权特性存储在服务器上的方法的一个实施例的流程图;
图4A和图4B是示出用于替换存储在客户端上的经加密客户端状态信息的方法的一个实施例的流程图;
图5A和图5B是示出用于修改存储在客户端上的经加密客户端状态信息的方法的一个实施例的流程图;
图6是示出用于消除相同客户端状态信息的冗余存储的方法的一个实施例的流程图;
图7A和图7B是示出用于避免共享私密密钥存储在服务器上的方法的一个实施例的流程图;
图8是示出用于在多个服务器间共享经加密的客户端状态信息的方法的一个实施例的流程图;
图9是示出客户端可用以向服务器传输客户端的PAC Opaque的方法的一个实施例的流程图;以及
图10是示出可在其上实现实施例的计算机系统的框图。
具体实施方式
用于避免在服务器上存储客户端状态的方法和装置被描述。在以下描述中,出于说明的目的,提出了多个具体细节,以便提供对本发明的全面理解。但是,将会发现,本领域技术人员无需这些具体细节也可以实现本发明。在其他实例中,以框图形式示出了公知的结构和设备,以避免不必要地模糊本发明。
这里根据以下大纲来描述实施例:
1.0总体概况
2.0结构和功能概况
3.0实现示例
3.1避免在服务器上存储授权特性
3.2更新存储在客户端上的经加密客户端状态信息
3.3消除相同客户端状态信息的冗余存储
3.4避免在中间设备上存储会话状态信息
3.5避免在服务器上存储共享私密密钥
3.6在多个服务器间共享客户端状态信息
3.7利用传输层安全性协议(TLS)扩展来避免客户端状态信息的服务器存储
3.7.1EAP-FAST概况
3.7.2隧道建立阶段
4.0实现机制——硬件概况
5.0扩展和替换
---
1.0总体概况
在本发明中实现了前述背景技术中标识的需求以及将从以下描述中发现的其他需求和目的,本发明在其一个方面中包括用于避免在服务器上存储客户端状态信息的方法。基于客户端不知道的本地密钥,服务器对客户端的状态信息进行加密。客户端的状态信息例如可以包括客户端的认证凭证、客户端的授权特性和在服务器与客户端之间共享以使客户端和服务器可以相互导出新的会话密钥的私密密钥。
利用多种机制中的任意一种,经加密的客户端状态信息被提供给客户端。例如,服务器可以通过网络向客户端发送经加密的状态信息。因为客户端不具有本地密钥,因此客户端无法对经加密的状态信息解密。因此,经加密的信息对客户端来说是“模糊的(opaque)”。这种模糊性例如使客户端无法改变客户端的授权特性。
客户端存储客户端的经加密的状态信息。在客户端存储了经加密的客户端状态信息之后,服务器不再需要存储客户端的状态信息。因此,服务器可以腾出曾存储客户端的状态信息的存储器。服务器可以将存储器用于其它目的。
当服务器需要客户端的状态信息时,例如当服务器需要导出会话密钥或需要确定客户端的授权特性时,服务器可以向客户端请求客户端的经加密的状态信息。响应于服务器的请求,客户端可以向服务器发送客户端之前存储的经加密的状态信息。可替换地,即使不存在来自服务器的请求,客户端也可以在客户端发起与服务器的通信时将客户端的经加密的状态信息发送到服务器。
在接收到来自客户端的经加密的客户端状态信息之后,服务器利用本地服务器密钥来解密客户端状态信息。在服务器已解密出客户端状态信息之后,服务器可以将客户端状态信息用于服务器通常将客户端状态信息用于的任何目的。当服务器使用完客户端状态信息时,服务器可以再一次腾出存储客户端状态信息的存储器。因为每个客户端以加密形式存储了客户端本身的状态信息,因此服务器无需永久存储任何客户端的状态信息。
在其他方面,本发明包含被配置用于执行前述步骤的计算机装置和计算机可读介质。
2.0结构和功能概况
图1是示出系统100的概况的框图,其中客户端状态信息主要存储在客户端而非服务器上。系统100包括专用网络102、服务器104A-N、服务器106A-N、公共网络108、客户端110A-N和客户端112A-N。专用网络102可以是计算机网络,例如局域网(LAN)或广域网(WAN)。从专用网络102外部对专用网络102的访问只能通过服务器104A-N和服务器106A-N来获得。
服务器104A-N和服务器106A-N可以是诸如充当认证、授权和计费服务器(即AAA服务器)的网络路由器、网络交换机或网桥之类的计算机或网络元件。服务器104A-N通信地耦合到专用网络102。服务器104A-N还可以通信地耦合到公共网络108。公共网络108可以是诸如LAN或WAN之类的计算机网络。公共网络108可以包含因特网。公共网络108可能是服务器104A-N或客户端110A-N不信任的网络。另外,服务器104A-N中的一个或多个可能直接耦合到客户端110A-N中的一个或多个。
服务器106A-N通信地耦合到专用网络102。服务器106A-N可以通过无线介质与客户端112A-N通信。无线介质采用连接到服务器106A-N的无线接入点(WAP)114A-N;WAP提供对客户端112A-N的无线网络访问。类似地,客户端112A-N可以通过无线介质(包括WAP 114A-N)与服务器106A-N通信。
客户端110A-N和客户端112A-N可以是个人计算机或无盘工作站。客户端110A-N和客户端112A-N可以是诸如膝上型计算机之类的移动设备。客户端110A-N可以通信地耦合到公共网络108。另外,客户端110A-N中的一个或多个可能直接耦合到服务器104A-N中的一个或多个。
客户端110A-N和客户端112A-N中的每一个对应于不同的客户端状态信息。客户端的状态信息例如可以包括客户端的认证凭证、客户端的授权特性和客户端与服务器相互使用以导出新的会话密钥的共享私密密钥。客户端的认证凭证可以指示客户端的唯一身份。客户端的认证凭证可以包括用户名和密码。客户端的授权特性可以指示允许客户端在专用网络102内访问的资源。客户端的授权特性可以指示允许客户端在专用网络102内对资源执行的操作。
服务器104A-N和服务器106A-N中的每一个存储任意客户端110A-N和客户端112A-N都不知道的本地密钥。在一个实施例中,每个服务器的本地密钥不同于所有其他服务器的本地密钥。在另一实施例中,每个服务器的本地密钥是相同的。利用它们的本地密钥,服务器104A-N和服务器106A-N对与客户端110A-N和客户端112A-N相对应的客户端状态信息进行加密。利用多种机制中的任意一种,每个客户端的经加密的客户端状态信息被提供给该客户端。
客户端110A-N和客户端112A-N中的每一个存储该客户端的经加密的状态信息。在一个实施例中,客户端110A-N和客户端112A-N在经加密的客户端状态信息与对该客户端状态信息进行了加密的服务器之间建立关联。例如,服务器104A和服务器104B都可以加密客户端110A的客户端状态信息。客户端110A可以分开存储由服务器104A加密的经加密的客户端状态信息和由服务器104B加密的经加密的客户端状态信息。客户端110A可以分开建立服务器104A和经服务器104A加密的经加密的状态信息之间的关联,以及服务器104B和经服务器104B加密的经加密的状态信息之间的关联。
由于客户端110A-N和客户端112A-N存储了经加密的客户端状态信息,因此服务器104A-N和服务器106A-N无需永久存储客户端状态信息。服务器104A-N和服务器106A-N可以腾出曾存储客户端状态信息的存储器以用于其它目的。
当服务器104A-N或服务器106A-N中的任意一个需要客户端110A-N或客户端112A-N中的任意一个的客户端状态信息时,服务器可以请求来自该客户端的客户端的经加密的状态信息。当客户端110A-N或客户端112A-N中的任意一个接收到这样的请求时,该客户端可以将与该服务器相关联的经加密的状态信息发送到服务器。可替换地,即使不存在来自服务器的请求,客户端110A-N或客户端112A-N中的任意一个也可以在该客户端发起与服务器之间的通信时将客户端的经加密的状态信息发送到服务器。
当服务器104A-N或服务器106A-N中的任意一个接收到来自客户端的经加密的客户端状态信息时,服务器利用服务器的本地密钥对客户端状态信息进行解密。在服务器已解密出客户端状态信息之后,服务器可以将客户端状态信息用于服务器通常将客户端状态信息用于的任何目的。当服务器使用完客户端状态信息之后,服务器可以腾出存储客户端状态信息的存储器。因此,即使在存在很多不同客户端时,服务器104A-N和服务器106A-N也可以利用相对较少量存储器来执行认证和授权功能。
图2是示出用于避免在服务器上存储客户端状态信息的方法的一个实施例的高级概况的流程图200。在框202中,服务器使用服务器的本地密钥对客户端的状态信息进行加密。客户端不具有对服务器的本地密钥的访问权限。例如,服务器104A可以利用服务器104A的本地密钥对客户端110A的客户端状态信息进行加密。另外,服务器104A也可以利用服务器104A的本地密钥对客户端110B的客户端状态信息进行加密。
客户端110A和110B的经加密的客户端状态信息可以被分别提供到客户端110A和110B。在接收到经加密的客户端状态信息之后,客户端110A和110B可以存储经加密的客户端状态信息。
在框204中,服务器从客户端接收客户端的经加密的状态信息。继续该示例,服务器104A可以从客户端110A接收客户端110A的经加密的客户端状态信息。另外,服务器104A可以从客户端110B接收客户端110B的经加密的客户端状态信息。
在框206中,服务器利用服务器的本地密钥对客户端的经加密的状态信息解密。继续该示例,服务器104A可以利用服务器104A的本地密钥对接收自客户端110A的经加密的客户端状态信息进行解密。另外,服务器104A可以利用服务器104A的本地密钥对接收自客户端110B的经加密的客户端状态信息进行解密。服务器104A可以以与服务器104A在本地连续存储客户端状态信息的情况下服务器104A使用客户端状态信息的方式相同的方式来使用经解密的客户端110A和110B的客户端状态信息。但是,服务器104A不需要连续地存储任意客户端状态信息。
下面将描述前述一般方法的详细示例性实现方式。
3.0实现示例
3.1避免在服务器上存储授权特性
根据一个实施例,当客户端110A-N或客户端112A-N中的任意一个向服务器104A-N或服务器106A-N中的任意一个发送请求时,客户端将客户端的经加密的状态信息与请求一起发送给服务器。服务器可以根据包括在客户端的经加密的状态信息中的授权特性确定客户端的请求应该被满足还是拒绝。客户端110A-N和客户端112A-N中的每一个可以与不同的授权特性相关联。
图3A和图3B是示出用于避免在服务器上存储客户端授权特性的方法的一个实施例的流程图300。在一个实施例中,服务器104A-N和服务器106A-N中的每一个存储不同的本地密钥集合。服务器可以利用服务器的本地密钥集合中的任意本地密钥来加密客户端状态信息。通过在不同时刻使用不同的本地密钥,安全性被提高。每个本地密钥与一个不同的索引值相关联,该索引值是来自被称为安全性参数索引(SPI)的总的字段的一个子字段内容。在框302中,服务器从服务器的本地密钥集合中选出一个特定的本地密钥。例如,服务器可以是服务器104A-N或服务器106A-N之一。
在框304中,服务器基于客户端的经加密的状态信息和所述特定本地密钥计算出认证代码。客户端的状态信息包括客户端授权特性。客户端的状态信息还指示客户端的唯一身份。认证代码是服务器的身份、客户端的经加密状态信息和该特定本地密钥的组合的函数。该函数通常是用于防止敌方识别出受函数保护的原始文本的单向散列函数。
在框306中,利用该特定本地密钥,服务器对客户端的状态信息和寿命值的组合进行加密。该寿命值指示服务器应该将客户端的状态信息视为过期的未来时刻。该寿命值可以是一个绝对日期,也可以例如通过将一个常量值添加到服务器时钟的的当前值来计算。加密和认证代码的结果在这里一起被称为经加密的信息。
在框308中,服务器既向客户端发送经加密的信息和服务器的身份,还向客户端发送与该特定本地密钥相关的SPI。例如,客户端可以是客户端110A-N或客户端112A-N之一。客户端存储经加密的信息、服务器的身份以及SPI,并在服务器和经加密的信息之间建立关联和在经加密的信息与对应于特定服务器的SPI之间建立关联。在客户端存储了该信息之后,服务器可以腾出曾以明文形式和以加密形式存储客户端的状态信息的服务器的存储器。
此后,当客户端向服务器发送请求时,客户端还发送与服务器相关的经加密信息以及与服务器和经加密信息两者相关的SPI。在框310中,服务器从客户端接收经加密的信息、服务器的身份、SPI和请求。
在框312中,服务器利用与SPI相关的本地密钥来核实客户端提供的服务器的身份,提取出认证代码,并对接收自客户端的经加密的信息进行解密。解密和认证代码的结果在这里一起被称为经解密的信息。
经解密的信息至少包含认证代码、客户端状态信息和寿命值。在框314中,服务器利用服务器在框304中使用的相同函数来计算新的认证代码。新的认证代码是包含在经解密的信息中的经加密客户端状态信息、服务器的身份和特定本地密钥的组合的函数。
在框316中,服务器确定新的认证代码是否与包含在经解密的信息中的认证代码匹配。如果认证代码匹配,则控制传递到框318。如果认证代码不匹配,则控制传递到框324。以这种方式,服务器认证包含在经解密的信息中的信息。
在框318中,通过将当前时间值与包含在经解密的信息中的寿命值相比较,服务器判断包含在经解密的信息中的客户端状态信息是否已经过期。如果当前时间值小于包含在经解密的信息中的寿命值,则控制传递到框320。如果当前时间值不小于包含在经解密的信息中的寿命值,则控制传递到框324。
在框320中,服务器基于包含在经解密的信息中的授权特性来判断在框310中接收到的请求是否已被授权。如果该请求已被授权,则控制传递到框322。如果请求未被授权,则控制传递到框324。
在框322,服务器满足该请求。
可替换地,在框324中,服务器拒绝该请求。
在服务器已经满足或拒绝了请求之后,服务器可以腾出曾以明文形式和以加密形式存储客户端的状态信息的服务器的存储器。因此,服务器可以避免永久存储客户端状态信息(包括授权特性),而是仅仅临时、非连续地存储客户端状态信息。
3.2更新存储在客户端上的经加密的客户端状态信息
在一个实施例中,客户端110A-N和客户端112A-N中的每一个被配置为遵守下述关于经加密的客户端状态信息的规则。当客户端从服务器接收到经加密的客户端状态信息时,客户端存储经加密的客户端状态信息。例如,客户端可以在客户端的随机访问存储器(RAM)和/或客户端硬盘驱动器上存储值。
当客户端从服务器接收到更新的经加密的客户端状态信息时,客户端存储更新的经加密的客户端状态信息。客户端可以用最近接收自服务器的经加密的客户端状态信息来替换先前存储的与服务器相关的经加密的客户端状态信息。该规则允许服务器改变客户端的授权特性,刷新客户端和服务器用于导出新的会话密钥的私密密钥,或者更新任意相关的客户端状态信息。
当客户端从服务器接收到附加的经加密的客户端状态信息时,客户端将附加的经加密的客户端状态信息附接到先前存储的与服务器相关的经加密的客户端状态信息。该规则允许服务器向客户端的现有授权特性添加授权特性,而无需客户端将先前存储的经加密的客户端状态信息发送到服务器。
在一个实施例中,服务器指示客户端是应该用新接收到的经加密的客户端状态信息替换当前存储的经加密的客户端状态信息,还是应该将新接收到的经加密的客户端状态信息附接到当前存储的经加密的客户端状态信息。
图4A和图4B是示出用于替换存储在客户端上的经加密的客户端状态信息的方法的一个实施例的流程图400。在框402中,服务器利用本地密钥对客户端的状态信息进行加密。例如,服务器可以是服务器104A-N或服务器106A-N之一。加密结果下面被称为第一经加密信息。
在框404中,服务器向客户端发送第一经加密信息。例如,客户端可以是客户端110A-N或客户端112A-N之一。客户端存储第一经加密信息并建立服务器和其自身之间的关联。
客户端向服务器发送第一请求和第一经加密信息。在框406中,服务器从客户端接收第一请求和第一经加密信息。
在框408中,服务器利用本地密钥对在框406中接收自客户端的经加密信息进行解密,并核实认证代码。解密结果在下面被称为第一经解密信息。
在框410中,服务器基于包含在第一经解密信息中的授权特性来确定第一请求是否已被授权。如果第一请求已被授权,则控制传递到框412。如果第一请求未经授权,则控制传递到框414。
在框412中,服务器满足第一请求。控制传递到框416。
可替换地,在框414中,服务器拒绝第一请求。服务器可以拒绝来自客户端的所有后续请求。
在框416中,利用本地密钥,服务器加密针对客户端的更新的客户端状态信息。加密结果在下面被称为第二经加密信息。
在框418中,服务器向客户端发送第二经加密信息。客户端存储第二经加密信息,建立服务器和其自身之间的关联并利用第二经加密信息来更新其状态。客户端对第二经加密信息的接收使第一经加密信息变为无效。客户端可以用第二经加密信息替换第一经加密信息。
客户端向服务器发送第二请求和第二经加密信息。在框420中,服务器从客户端接收第二请求和第二经加密信息。
在框422中,服务器利用本地密钥对在框420中接收自客户端的经加密的信息进行解密并核实认证代码。解密结果在下面被称为第二经解密信息。
在框424中,服务器基于包含在第二经解密信息中的授权特性来判断第二请求是否已被授权。如果第二请求已被授权,则控制传递到框426。如果第二请求未经授权,则控制传递到框428。
在框426中,服务器满足第二请求。
可替换地,在框428中,服务器拒绝第二请求。服务器可以拒绝来自客户端的所有后续请求。
图5A和图5B是示出用于修改存储在客户端上的经加密的客户端状态信息的方法的一个实施例的流程图500。在框502中,服务器利用本地密钥加密客户端的状态信息。例如,服务器可以是服务器104A-N或服务器106A-N之一。加密结果下面被称为第一经加密信息。
在框504中,服务器向客户端发送第一经加密信息。例如,客户端可以是客户端110A-N或客户端112A-N之一。客户端存储第一经加密信息并建立服务器和第一经加密信息之间的关联。
客户端向服务器发送第一请求和第一经加密信息。在框506中,服务器从客户端接收第一请求和第一经加密信息。
在框508中,服务器使用本地密钥对在框506中接收自客户端的经加密的信息进行解密并核实认证代码。解密的结果下面被称为第一经解密信息。
在框510中,服务器基于包含在第一经解密信息中的授权特性判断第一请求是否已被授权。如果第一请求已被授权,则控制传递到框512。如果第一请求未经授权,控制则传递到框514。
在框512中,服务器满足第一请求。控制传递到框516。
可替换地,在框514中,服务器拒绝第一请求。服务器可以拒绝来自客户端的所有后续请求。
在框516中,服务器利用本地密钥对针对客户端的附加客户端状态信息进行加密。加密结果下面被称为第二经加密信息。
在框518中,服务器将第二经加密信息发送到客户端。客户端存储第二经加密信息并建立服务器和其自身之间的关联,从而将第二加密信息与第一加密信息一起存储。客户端对第二经加密信息的接收不会使第一经加密信息无效。客户端不用第二经加密信息替换第一经加密信息。
客户端向服务器发送第二请求、第一经加密信息和第二经加密信息。在框520中,服务器从客户端接收第二请求、第一经加密信息和第二经加密信息。
在框522中,服务器利用本地密钥对在框520中接收自客户端的第一经加密信息进行解密。解密结果下面被称为第二经解密信息。
在框524中,服务器利用本地密钥对在框520中接收自客户端的第二经解密信息进行解密。解密结果下面被称为第三经解密信息。
在框526中,服务器基于第二和第三认证值中的有效认证代码、包含在第二经解密信息中的授权特性和包含在第三经解密信息中的授权特性来判断第二请求是否已被授权。如果第二请求已被授权,控制传递到框528。如果第二请求未经授权,则控制传递到框530。
在框528中,服务器满足第二请求。
可替换地,在框530中,服务器拒绝第二请求。服务器可以拒绝来自客户端的所有后续请求。
利用上述方法,服务器可以将新的授权特性发布给客户端或取消客户端的现有授权特性。
以上参考流程图500所述的方法可针对客户端110A-N和客户端112A-N中的多个客户端被使用。多个客户端中的每一个向给定服务器发送包含该客户端的授权特性的经加密的信息。每个客户端的授权特性可能不同于其他客户端的授权特性。
3.3消除相同客户端状态信息的冗余存储
在一个实施例中,多个服务器可以向一个客户端提供认证和授权服务。如果每个服务器向客户端发布单独的经加密状态信息,客户端则可能存储多个相同客户端状态信息的拷贝;其中每个拷贝是在不同服务器的本地密钥下被加密的。如果客户端状态信息很大,则这种冗余性会浪费客户端的大量存储资源。
为了避免相同客户端状态信息的这种冗余存储,客户端状态信息可以利用通用服务器密钥来加密,该通用服务器密钥可被所有服务器访问,但不能被任何客户端访问。每个服务器可以利用该服务器的本地密钥来加密该通用服务器密钥。当服务器向客户端发送经加密的客户端状态信息时,服务器还发送利用该服务器的本地密钥加密了的通用服务器密钥。客户端可以存储多个经加密的通用服务器密钥(一个密钥针对一个服务器),而仅存储经加密的客户端状态信息的一个拷贝。对于每个服务器,客户端可以建立服务器、该服务器的经加密的通用服务器密钥、以及经加密的客户端状态信息之间的关联。因为每个经加密的通用服务器密钥大大小于经加密的客户端状态信息,因此这种存储方法保留了客户端的存储资源。
当客户端向服务器发送请求时,客户端还发送与该服务器相关联的经加密的通用服务器密钥和与经加密的通用服务器密钥相关联的经加密的客户端状态信息。接收到经加密的通用服务器密钥的服务器可以对经加密的通用服务器密钥解密,以获得经解密的通用服务器密钥。利用经解密的通用服务器密钥,服务器可以解密经加密的客户端状态信息。
图6是示出用于消除相同客户端状态信息的冗余存储的方法的一个实施例的流程图600。在框602中,客户端存储通过基于通用服务器密钥对客户端的状态信息加密而生成的经加密的客户端状态信息。例如,客户端110A可以存储服务器104A利用客户端110A无法访问的通用服务器密钥加密后的经加密的客户端状态信息。
在框604中,客户端存储第一服务器通过利用与该第一服务器相关联的第一本地密钥对通用服务器密钥加密而生成的第一经加密密钥信息。继续该示例,服务器104A可以利用服务器104A的本地密钥对通用服务器密钥加密以产生第一经加密密钥信息。服务器104A可以向客户端110A发送第一经加密密钥信息。客户端110A可以接收第一经加密密钥信息并存储第一经加密密钥信息。
在框606中,客户端建立第一服务器和第一经加密密钥信息之间的关联。继续该示例,客户端110A可以建立第一经加密密钥信息和服务器104A之间的关联。
在框608中,客户端存储第二服务器通过利用与第二服务器相关联的第二本地密钥加密通用服务器密钥而生成的第二经加密密钥信息。继续该示例,服务器104B可以利用服务器104B的本地密钥对通用服务器密钥加密,以产生第二经加密密钥信息。服务器104B可以向客户端110A发送第二经加密密钥信息。客户端110A可以接收第二经加密密钥信息并存储第二经加密密钥信息。
在框610中,客户端建立第二服务器和第二经加密密钥信息之间的关联。继续该示例,客户端110A可以建立第二经加密密钥信息和服务器104B之间的关联。
第一本地密钥可能不同于第二本地密钥。第一本地密钥可能无法被除了第一服务器之外其他服务器所访问。第二本地密钥可能无法被除了第二服务器之外其他服务器所访问。因此,在上述示例中,服务器104A可能无法解密第二经加密密钥信息,而服务器104B可能无法解密第一经加密密钥信息。
在框612中,客户端向第一服务器发送经加密的客户端状态信息和与第一服务器相关联的经加密密钥信息。继续该示例,客户端110A可以向服务器104A发送经加密的客户端状态信息和第一经加密密钥信息。利用服务器104A的本地密钥,服务器104A可以对第一经加密密钥信息解密以获得通用服务器密钥。使用通用服务器密钥,服务器104A可以对经加密的客户端状态信息解密。
在框614中,客户端向第二服务器发送经加密的客户端状态信息和与第二服务器相关联的经加密密钥信息。继续该示例,客户端110A可以向服务器104B发送经加密的客户端状态信息和第二经加密密钥信息。利用服务器104B的本地密钥,服务器104B可以解密第一经加密密钥信息以获得通用服务器密钥。利用通用服务器密钥,服务器104B可以对经加密的客户端状态信息解密。
结果,在上述示例中,客户端110A可以仅存储属于客户端110A的经加密的客户端状态信息的一个拷贝。这节省了客户端110A的存储资源。
3.4避免在中间设备上存储会话状态信息
上述方法可能适用于避免在中间设备上存储会话状态信息。一种这样类型的中间设备被称为“应答器”。应答器是一种响应于第一设备对参与与第二设备之间的会话的请求的设备。
应答器的一个示例是在题为“METHOD NAD APPARATUS FORSECURELY EXCHANGING CRYPTOGRAPHIC IDENTITIES THROUGHA MUTUALLY TRUSTED INTERMEDIARY”的共同未决美国申请No.10/411,964中描述的“引导者设备”。如该申请所述,引导者设备辅助“请求者设备”和“权力设备”之间密码身份的安全交换,其中所述“请求者设备”和“权力设备”都已经信任引导者设备。
如果应答器被要求存储会话状态信息,应答器则可能暴露于拒绝服务攻击。为了避免在应答器上存储会话状态信息,可以对会话状态信息加密。应答器可以将经加密的会话状态信息与第一和第二设备通过应答器向彼此发送的其他信息一道转发。第一和第二设备可以将经加密的会话状态信息与期望应答器处理的其他信息一道发送到应答器。第一和第二设备可以向应答器返回第一和第二设备从应答器接收的任意经加密的会话状态信息。因此,经加密的会话状态信息可以被称为“回声(echo)”。当应答器接收到回声时,应答器可以检查回声上的保护。
回声可以包括指示相关会话何时过期的寿命值。应答器可以将该寿命值与应答器时钟的当前值相比较以判断会话是否已经过期。
当使用密码协议时,应答器可以发布随机现时(nonce),然后存储该现时以用于处理应答器未来将接收到的消息。例如,应答器可以在参与质询/响应协议时发布随机现时。为了避免在应答器上存储现时,现时可以被包括在回声中。其他信息(例如标识符、网络地址和用于选择协议选项的数据)也可被包括在回声中。
3.5避免在服务器上存储共享私密密钥
客户端110A-N和客户端112A-N中的每一个可能关联到具有不同共享私密密钥的服务器。客户端110A-N和客户端112A-N可以使用它们与服务器服务器104A-N和服务器106A-N共享的私密密钥来相互导出会话密钥,该会话密钥可能被客户端用于对客户端发送到服务器104A-N和服务器106A-N以及从服务器104A-N和服务器106A-N接收的消息进行加密和解密。以这种方式,可以在客户端和服务器之间建立安全的“隧道”。但是,为了让服务器104A-N和服务器106A-N建立这些安全隧道,服务器104A-N和服务器106A-N还需要具有对共享私密密钥的访问权限以使服务器也能够导出会话密钥。当存在很多客户端时,存储每个单独的客户端的不同的共享私密密钥的操作所需要的存储器量实际上没有网络元件可能拥有。
因此,根据一个实施例,当客户端110A-N或客户端112A-N中的任意一个发起与服务器104A-N或服务器106A-N中的任意一个的通信时,服务器指示客户端将客户端的经加密的状态信息发送到服务器。在响应中,客户端将该客户端的经加密状态信息发送到服务器。客户端的经加密的状态信息包含客户端的共享私密密钥。
服务器可以使用服务器的本地密钥来解密客户端的经加密的状态信息并核实认证代码,从而获得客户端的共享私密密钥。服务器可以从客户端的共享私密密钥导出一个或多个会话密钥。利用这一个或多个会话密钥,服务器可以对发送到客户端和接收自客户端的消息进行加密和解密。当服务器已经完成与客户端的通信时,服务器可以腾出服务器曾用于存储客户端的共享私密密钥和任意相应会话密钥的存储器以用于其它目的。因此,不要求服务器同时存储具有访问专用网络102的权限的所有客户端的不同的共享私密密钥。
图7A和图7B是示出用于避免在服务器上存储共享私密密钥的方法的一个实施例的流程图700。在一个实施例中,服务器104A-N和服务器106A-N中的每一个存储不同的本地密钥集合。服务器可以使用服务器的本地密钥集合中的任意本地密钥对客户端状态信息加密。通过在不同时刻利用不同的本地密钥,安全性被提高。每个本地密钥与不同的SPI相关联。在框702中,服务器从服务器的本地密钥集合中选出一个特定的本地密钥。例如,服务器可以是服务器104A-N或服务器106A-N之一。
在框704中,服务器基于服务器的身份、客户端的经加密的状态信息和该特定本地密钥来计算认证代码。客户端的状态信息包括客户端的共享私密密钥。客户端的状态信息还指示客户端的唯一身份。认证代码是服务器的身份、客户端的经加密状态信息和该特定本地密钥的组合的函数。该函数可被实现为用于防止敌方识别出受函数保护的原始文本的单向散列函数。
在框706中,利用该特定本地密钥,服务器对客户端的状态信息和寿命值的组合加密。该寿命值指示服务器应该将客户端的状态信息视为过期的未来时刻。该寿命值可以是一个绝对时间,也可以例如通过将一个恒定值添加到服务器时钟的的当前值来计算。认证代码和加密的结果在这里一起被称为经加密的信息。
在框708中,服务器既向客户端发送经加密的信息和服务器的身份,还向客户端发送与该特定本地密钥相关的SPI。例如,客户端可以是客户端110A-N或客户端112A-N之一。客户端存储经加密的信息和针对所指定的服务器的SPI,并利用经加密的信息在其自身和服务器之间建立关联。在客户端存储了该信息之后,服务器可以腾出服务器曾以明文形式和以加密形式存储客户端的状态信息的存储器。
当客户端发起与服务器的通信时,服务器可以指示客户端向服务器发送经加密的信息。在响应中,客户端可以将经加密的信息和相关的SPI两者发送到服务器。在框710中,服务器从客户端接收经加密的信息和SPI。
在框712中,利用与SPI相关联的本地密钥,服务器对接收自客户端的经加密的信息进行解密并核实认证代码。解密结果在这里被称为经解密的信息。
经解密的信息至少包含认证代码、客户端状态信息和寿命值。在框714中,服务器利用与服务器在框704中使用的函数相同的函数来计算新的认证代码。新的认证代码是特定本地密钥和包含在经解密的信息中的客户端经加密状态信息的组合的函数。
在框716中,服务器判断新的认证代码是否与包含在经解密的信息中的认证代码匹配。如果认证代码匹配,则控制传递到框718。如果认证代码不匹配,则控制传递到框720。以这种方式,服务器认证包含在经解密的信息中的信息。
在框718中,通过将当前时间值与包含在经解密的信息中的寿命值相比较,服务器判断包含在经解密的信息中的客户端状态信息是否已经过期。如果当前时间值小于包含在经解密的信息中的寿命值,则控制传递到框722。如果当前时间值不小于包含在经解密的信息中的寿命值,则控制传递到框724。
在框720中,服务器拒绝接收自客户端的经加密的信息。服务器可以拒绝从客户端发送的所有后续数据。
客户端可以从共享的私密密钥导出一个或多个会话密钥。利用这样的会话密钥,客户端可以对消息加密并将经加密的消息发送到服务器。在框722中,服务器从客户端接收已经利用从共享私密密钥导出的密钥被加密的消息。
包含在经解密的信息中的客户端状态信息包括共享私密密钥。在框724中,服务器从共享私密密钥导出一个或多个会话密钥。
在框726中,利用这样的会话密钥,服务器对从客户端发送的经加密的消息解密。利用从共享私密密钥导出的会话密钥,服务器可以加密另一消息并将经加密的消息发回客户端。因此,利用从共享私密密钥导出的会话密钥,客户端和服务器可以对它们彼此传输的消息进行加密和解密,从而建立安全的“隧道”。
在客户端和服务器完成通信之后,服务器可以腾出服务器曾以明文形式和加密形式存储客户端的状态信息的存储器。因此,服务器可以避免永久存储客户端状态信息(包括共享私密密钥),而是仅仅临时、非连续地存储客户端状态信息。
以上参考流程图700所描述的方法对于客户端110A-N和客户端112A-N中的多个客户端也可使用。多个客户端中的每一个可以向给定服务器发送包含针对该客户端的共享私密密钥的经加密信息。每个客户端的共享私密密钥不同于其他客户端的共享私密密钥。
3.6在多个服务器间共享客户端状态信息
如上所述,无线客户端(例如客户端112A)可以从一个位置漫游到另一位置。当无线客户端离开一个位置而进入另一位置时,无线客户端可能试图通过不同服务器访问同一专用网络。例如,在一个位置,客户端112A可能通过服务器106A访问专用网络102。如果服务器106A具有客户端112A的共享私密密钥,服务器106A则可以通过安全隧道与客户端112A通信。但是,如果客户端112A移动到服务器106B服务而非服务器106A服务的区域,客户端112A则可能试图通过服务器106B而非服务器106A来访问专用网络102。在现有方法下,服务器106B可能不具有客户端112A的共享私密密钥。在此情况下,服务器106B将无法通过安全隧道与客户端112A通信。
幸运的是,根据一个实施例,多个服务器可以存储同样的本地密钥。当一组服务器具有对同样本地密钥的访问权限时,如果客户端的状态信息是利用本地密钥来加密的,则该组中的每个服务器可以对包含客户端状态信息(包括客户端的共享私密密钥)的经加密的信息进行解密。
例如,根据一个实施例,所有服务器106A-N可能存储相同的一个或一组本地密钥。服务器106A可以利用这样的本地密钥对客户端112A的客户端状态信息加密,然后将经加密的客户端状态信息发送到客户端112A。客户端112A可以存储经加密的客户端状态信息。当客户端112A需要与服务器106A-N中的任意一个通信时,客户端112A可以将同样的经加密的客户端状态信息发送到该服务器。由于所有服务器服务器106A-N都具有对被用于加密经加密的客户端状态信息的本地密钥的访问权限,因此服务器106A-N中的任意一个可以利用本地密钥对接收到的经加密的客户端状态信息进行解密。因此,服务器106A-N中的任意一个可以获得客户端112A的共享的私密密钥并建立与客户端112A之间的安全隧道。
当新的服务器被添加到服务器106A-N时,新服务器此时不需要被提供以系统100中的所有客户端的共享私密密钥。相反,新服务器可被提供以本地密钥或本地密钥的集合。此后,新服务器可以按照需要从发起与新服务器之间的通信的客户端获得经加密的客户端状态信息。因为每个客户端存储其自己的经加密的客户端状态信息,因此在客户端和服务器已经完成彼此之间的通信之后,没有服务器需要继续存储任意客户端的状态信息。
图8是示出用于在多个服务器间共享经加密的客户端状态信息的方法的一个实施例的流程图800。在框802中,客户端存储通过利用本地密钥对包括共享私密密钥的客户端状态信息进行加密而生成的经加密的客户端状态信息。例如,客户端112A可以存储利用本地密钥加密的经加密的客户端状态信息,该本地密钥可被服务器106A-N中的每一个访问,而不能被客户端112A访问。经加密的客户端状态信息可以包括客户端112A的共享私密密钥。
在框804中,客户端将经加密的客户端状态信息发送到存储本地密钥的第一服务器。继续该示例,客户端112A可以将经加密的客户端状态信息发送到服务器106A。服务器106A可以利用本地密钥对经加密的客户端状态信息解密并从包含在客户端状态信息中的共享私密密钥导出一个或多个会话密钥。服务器106A可以利用这样的会话密钥对消息加密并将经加密的消息发送到客户端112A。客户端112A可以接收来自服务器106A的经加密的消息。客户端112A可以从同一共享私密密钥导出同样的会话密钥并对经加密的消息解密。
在框806中,客户端将经加密的客户端状态信息发送到存储本地密钥的第二服务器。继续该示例,客户端112A可以将经加密的客户端状态信息发送到服务器106B。服务器106B可以利用本地密钥对经加密的客户端状态信息解密,并从包含在客户端状态信息中的共享私密密钥导出一个或多个会话密钥。服务器106B可以利用这样的会话密钥对消息加密并发送经加密的消息到客户端112A。客户端112A可以接收来自服务器106B的经加密消息。客户端112A可以从同一共享私密密钥导出相同的会话密钥并对经加密的消息解密。
因此,在上述示例中,所有服务器106A-N可以建立与客户端112A之间的安全通信隧道。上述示例可应用到任意客户端112A-N。
3.7利用传输层安全性(TLS)协议扩展来避免客户端状态信息的服务器存储。
传输安全性层(TLS)协议在因特网工程任务组(IETF)请求注释(RFC)2245中有所描述。对TLS协议的扩展在IETF RFC 3546中被描述。如上所述,TLS协议扩展可被用于避免在服务器上存储客户端状态信息。另外,下述方法消除了对公共密钥认证机制的需求。根据一个实施例,TLS协议可被用于以密码方式保护客户端和多个服务器之间的可扩展的认证协议(EAP)连接。EAP在IETF RFC 2284中被描述。
3.7.1EAP-FAST概况
根据一个实施例,提供了一种可扩展构架以允许客户端和服务器彼此安全地通信。该可扩展构架这里被称为“EAP-FAST”。EAP-FAST通过使用共享私密密钥建立安全隧道来实现相互认证。隧道可被用于保护相对较弱的认证技术(例如基于密码的那些认证技术)。共享私密密钥可被称为“受保护访问凭证”密钥(PAC密钥)。PAC密钥可被用于相互认证建立了安全隧道的客户端和服务器。
EAP-FAST包含三个阶段:预备阶段、隧道建立阶段和认证阶段。下面描述每个阶段。
在预备阶段中,服务器利用客户端无法访问的本地密钥对PAC密钥加密。所产生的经加密的信息被称为“PAC模糊体”,这是因为缺乏本地密钥的客户端无法解密该经加密的信息。PAC密钥和PAC模糊体两者都包括在PAC中。PAC可以包括附加信息,例如生成PAC模糊体和SPI的服务器的身份。SPI可以指示使用哪个本地密钥和哪种加密算法来生成PAC模糊体。
客户端和服务器共同参与经认证的密钥协定,以便建立受保护隧道。例如,经认证的密钥协定可以遵循Diffie-Hellman密钥协定协议。Diffie-Hellman密钥协定协议在W.Diffie和M.E.Hellman在IEEE Transactions OnInformation Theory,vol.22,第644-654页中发表的文章“New DirectionsIn Cryptography”中有所描述。客户端向服务器认证其自身。在客户端已经向服务器认证其自身之后,服务器通过作为经认证的密钥协定的结果建立的受保护隧道向客户端发送客户端的PAC。
在替换实施例中,PAC可使用其他“带外”机制而被提供给客户端。例如,用户可以从服务器或信息技术(IT)管理员直接获得PAC并将PAC存储在客户端上。
在隧道建立阶段中,客户端和服务器利用PAC来彼此认证。客户端向服务器发送PAC模糊体。利用本地密钥,服务器对PAC模糊体解密以获得客户端的PAC密钥。利用该PAC密钥,客户端和服务器建立隧道密钥。客户端和服务器使用隧道密钥来以密码方式保护在客户端和服务器之间发送的消息。受隧道密钥保护的消息可被称为位于隧道会话内。
在认证阶段期间,客户端和服务器参与隧道会话内的认证协议。认证协议还可以建立其他密钥材料,该密钥材料被以密码方式绑定到隧道会话密钥以确保会话完整性。在认证协议期间,客户端和服务器可以相互导出一个或多个会话密钥。客户端和服务器可以使用这些会话密钥将认证协议会话绑定到隧道建立会话以确保会话完整性。
在EAP-FAST中,信息以分组形式传输,这里被称为“EAP-FAST分组”。EAP-FAST分组被封装在EAP分组内,EAP分组通过诸如远程认证拨入用户服务(RADIUS)协议和直径(Diameter)协议之类的运载协议来运载。EAP-FAST分组封装TLS分组。TLS分组封装认证信息。因此,EAP-FAST消息使用分层模型,其中每一层封装其下面那一层。
TLS分组包含EAP-Type-Length-Value(TLV)对象。EAP-TLV对象在客户端和服务器之间运载参数。
3.7.2隧道建立阶段
在一个实施例中,在隧道建立阶段,服务器和客户端协商EAP参数。服务器可以向客户端发送EAP请求/身份分组,而客户端可以以EAP响应/身份分组作出响应。EAP响应/身份分组包含客户端的相关用户名。客户端可以使用匿名用户名来保护客户端的身份。
在服务器接收到客户端的身份并确定EAP-FAST认证将会发生之后,EAP服务器向客户端发送EAP-FAST/开始分组。EAP-FAST/开始分组是一种EAP请求分组,其中的EAP类型被设置为“EAP-FAST”而“开始”位被置位。EAP-FAST/开始分组还包括向客户端标识服务器的服务器身份。客户端接收EAP-FAST/开始分组并在响应中发送EAP响应分组到服务器。EAP响应分组的EAP类型被设置为“EAP-FAST”。
EAP响应分组的数据字段包含经EAP-FAST封装的TLS ClientHello握手消息。在该消息的扩展数据字段中,ClientHello消息包含客户端的PAC模糊体。ClientHello消息还包含客户端的随机现时。在一个实施例中,客户端可以缓存客户端与之通信的每个不同服务器的不同PAC模糊体。每个PAC模糊体可能与不同的服务器身份相关联。从多个PAC模糊体中,客户端可以选出与包含在EAP-FAST/开始分组中的服务器身份相关联的PAC模糊体,并在ClientHello消息的扩展数据字段中将该PAC模糊体发送到服务器。
服务器接收封装了TLS ClientHello握手消息的EAP-FAST分组。服务器从ClientHello消息的扩展数据字段中获得PAC模糊体。服务器利用被用于加密PAC模糊体的本地密钥对PAC模糊体解密。服务器从客户端的随机现时、服务器的随机现时和包含在PAC模糊体中的共享私密密钥导出隧道密钥。服务器使用隧道密钥来计算嵌入在TLS完成消息中的消息摘要。
响应于从客户端接收到EAP-FAST分组,服务器向客户端发送EAP类型被设置为“EAP-FAST”的EAP请求分组。EAP请求分组的数据字段至少封装了TLS ServerHello消息和TLS完成消息。ServerHello消息包含被用于导出隧道密钥的服务器的随机现时。TLS完成消息包含已根据所协商的算法、密钥和私密被保护的消息。
客户端接收包含TLS ServerHello消息的EAP请求分组。客户端从包含在ServerHello消息中的服务器的随机现时、客户端的随机现时和共享私密密钥(即PAC密钥)导出隧道密钥。客户端生成其消息摘要并将其嵌入TLS完成消息中。客户端以TLS完成消息响应于服务器。
此后,在认证阶段期间,客户端和服务器可以利用隧道会话密钥对消息加密和解密。
图9是示出客户端可以用以向服务器传送客户端的PAC模糊体的方法的一个实施例的流程图900。在框902中,服务器利用客户端无法访问的本地密钥对客户端的状态信息进行加密,从而生成PAC模糊体。客户端的状态信息(例如PAC模糊体)包括共享的私密密钥。
PAC模糊体可以通过多种机制中的任意机制被存储在客户端上。在发起与服务器之间的通信的情况下,客户端向服务器发送PAC模糊体。PAC模糊体被包含在TLS握手协议扩展ClientHello消息的扩展数据字段中。在框904中,服务器从客户端接收在扩展的ClientHello消息的扩展数据字段中包含PAC模糊体的TLS握手协议扩展ClientHello消息。
在框906中,利用本地密钥,服务器对接收自客户端的PAC模糊体解密,从而获得共享的私密密钥。客户端和服务器可以从共享的私密密钥导出一个或多个密钥。客户端和服务器可以利用这样导出的密钥对消息加密和解密。因此,利用对TLS握手协议的扩展,服务器可以接收客户端的状态信息并基于客户端的状态信息建立与客户端之间的安全通信信道。由于客户端存储了客户端的状态信息,因此服务器无需永久而连续地存储客户端的状态信息。因为客户端的状态信息利用客户端无法访问的本地密钥被加密,因此客户端无法修改客户端的状态信息。客户端的状态信息像客户端的状态信息被存储在服务器上而非客户端上时一样安全。
4.0实现机制——硬件概况
图10是示出可以在其上实现本发明的实施例的计算机系统1000的框图。该优选实施例是利用运行在计算机或诸如提供认证、授权和计费(AAA)服务的路由器设备之类的网络元件上的一个或多个计算机程序来实现的。因此,在该实施例中,计算机系统1000是路由器。
计算机系统1000包括总线1002或其它用于传输信息的机制,以及与总线1002耦合的用于处理信息的处理器1004。计算机系统1000还包括耦合到总线1002的用于存储信息或将由处理器1004执行的指令的随机访问存储器(RAM)、闪存或其它动态存储设备。主存储器1006还可被用于在执行将被处理器1004执行的指令期间存储临时变量或其它中间信息。计算机系统1000还包括耦合到总线1002的用于存储用于处理器1004的指令和静态信息的只读存储器(ROM)1008或其他静态存储设备。存储设备1010(例如磁盘、闪存或光盘)被提供并耦合到总线1002,以用于存储信息和指令。
通信接口1018可被耦合到总线1002以用于向处理器1004传送信息和命令选择。接口1018是诸如RS-232或RS-422接口之类的传统串行接口。外部终端1012或其他计算机系统连接到计算机系统1000并利用接口
1014向其提供命令。运行在计算机系统1000中的固件或软件提供终端接口或基于字符的命令接口,以使外部命令能够被赋予计算机系统。
交换系统1016被耦合到总线1002并具有到一个或多个外部网络元件的输入接口1014和输出接口1019。外部网络元件可以包括耦合到一个或多个主机1024的本地网络1022或具有一个或多个服务器1030的诸如因特网之类的全球网络1028。交换系统1016根据公知的预定协议和规范将到达输入接口1014的信息流量交换到输出接口1019。例如,交换系统1016可以与处理器1004协作确定到达输入接口1014的数据分组的目的地并利用输出接口1019将其发送到正确的目的地。目的地可以包括主机1024、服务器1030、其他最终台站或在本地网络1022或因特网1028上的其他路由和交换设备。
本发明涉及用于避免在计算机系统1000上存储客户端状态的计算机系统1000的使用。根据本发明的一个实施例,计算机系统1000响应于处理器1004执行包含在主存储器1006中的一个或多个指令的一个或多个序列来提供这样的更新。这样的指令可以从诸如存储设备1010之类的另一计算机可读介质读取到主存储器1006中。包含在主存储器1006中的指令序列的执行致使处理器1004执行这里所描述的过程步骤。在多处理布置中的一个或多个处理器也可被采用以执行包含在主存储器1006中的指令序列。在替换实施例中,硬连线的电路可被用于取代软件指令或与软件指令相结合来实现本发明。因此,本发明的实施例并不局限于硬件电路和软件的任意特定组合。
这里使用的术语“计算机可读介质”指的是参与向处理器1004提供指令以用于执行的操作的任何机制。这样的介质可以采取很多形式,包括但不局限于,非易失性介质、易失性介质和传输介质。非易失性介质例如包括诸如存储设备1010之类的光盘或磁盘。易失性介质包括动态存储器,例如主存储器1006。传输介质包括同轴电缆、铜电线和光纤,其中包括包含总线1002的电线。传输介质还可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的那些。
计算机可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任意其他磁介质、CD-ROM、任意其他光介质、打孔卡、纸带、具有孔形图案的任意其他物理介质、RAM、PROM和EPROM、FIASH-EPROM、任意其他存储器芯片或卡带、下面将描述的载波或任意其他计算机可以从其读取的介质。
在向处理器1004运载用于执行的一个或多个指令的一个或多个序列时,可以涉及各种形式的计算机可读介质。例如,指令可能最初在远程计算机的磁盘上承载。远程计算机可以将指令加载到其动态存储器中并利用调制解调器通过电话线来发送指令。位于计算机系统1000本地的调制解调器可以接收电话线上的数据并使用红外发射器将数据转换成红外信号。耦合到总线1002的红外检测器可以接收红外信号中运载的数据并将数据放置在总线1002上。总线1002将数据运载到主存储器1006中,处理器1004从主存储器1006获取并执行指令。由主存储器1006接收到的指令可以可选地在由处理器1004执行前或执行后被存储在存储设备1010上。
通信接口1018还提供耦合到连接到本地网络1022的网络链路1020的双向数据通信。例如,通信接口1018可以是综合业务数字网络(ISDN)或调制解调器,以向相应类型的电话线提供数据通信连接。作为另一示例,通信接口1018可以是局域网(LAN)卡,用于提供到可兼容的LAN的数据通信连接。无线链路也可以被实现。在任意这样的实现方式中,通信接口1018发送和接收运载代表各种类型信息的数字数据流的电、电磁或光信号。
网络链路1020通常通过一个或多个网络提供到其它数据设备的数据通信。例如,网络链路1020可以提供通过本地网络1022到主机计算机1024或由因特网服务提供商(ISP)1026操作的数据装备的连接。ISP1026又通过现在一般称为“因特网”1028的世界范围的分组数据通信网络来提供数据通信服务。本地网络1022和因特网1028都是用运载数字数据流的电、磁和光信号。通过各种网络的信号和网络链路1020上的信号和通过通信接口1018的信号运载去往或来自计算机系统1000的数字数据,这些信号都是传输信息的载波的示例性形式。
计算机系统1000可以通过网络、网络链路1020和通信接口1080来发送消息和接收数据,包括程序代码。在因特网示例中,服务器1030可能通过因特网1028、ISP 1026、本地网络1022和通信接口1018来发送针对应用程序所请求的代码。如这里所述,根据本发明,一种这样下载的应用用于避免在服务器上存储客户端状态。
处理器1004可以执行它接收到的和/或存储在存储设备1010或其他非易失性存储设备以待随后执行的接收到的代码。以这种方式,计算机系统1000可以以载波形式获得应用代码。
5.0扩展和替换
在之前的说明书中,已经参考本发明的特定实施例描述了本发明。但是,将会发现,在不脱离本发明更宽精神和范围的情况下,可以对其执行各种修改和改变。因此,说明书和附图将被看作示例性的,而非限制性的。
Claims (29)
1.一种用于避免在服务器上存储客户端状态的方法,该方法包括计算机实现的以下步骤:
基于第一客户端不知道的第一本地密钥对第一客户端状态信息加密以产生第一经加密信息,其中所述第一客户端状态信息包括第一共享私密密钥;
在第一时间从所述第一客户端接收所述第一经加密信息;
基于所述第一本地密钥来核实随所述第一经加密信息接收到的认证代码并对接收自所述第一客户端的所述第一经加密信息进行解密,从而产生第一经解密信息;
接收已基于从所述第一共享私密密钥导出的第一导出密钥加密后的第一消息;
从包括在所述第一经解密信息中的共享私密密钥导出第二导出密钥;以及
基于所述第二导出密钥来进一步保护随之发生在所述第一客户端和所述服务器之间的会话。
2.如权利要求1所述的方法,还包括以下步骤:
在所述第一时间前从服务器存储器中移除所述第一客户端状态信息;以及
在所述第一时间前从服务器存储器中移除所述第一经加密信息。
3.如权利要求1所述的方法,还包括以下步骤:
在将所述第一经加密信息发送到所述第一客户端之前,基于所述第一本地密钥、服务器的身份和经加密的客户端状态信息来计算第一认证代码;以及
在将所述第一经加密信息发送到所述第一客户端之前,加密所述第一客户端状态信息并将所述认证代码与所述第一客户端状态信息的加密结果包括在一起以产生所述第一经加密信息。
4.如权利要求3所述的方法,还包括以下步骤:
在对接收自所述第一客户端的所述第一经加密信息进行解密之后,基于所述第一本地密钥和包括在所述第一经解密信息中的经加密的客户端状态信息来计算第二认证代码;以及
判断所述第二认证代码是否与包括在所述第一经解密信息中的认证代码相匹配。
5.如权利要求4所述的方法,其中所述第一客户端状态信息包括唯一地标识所述第一客户端的值。
6.如权利要求1所述的方法,还包括以下步骤:
在将所述第一经加密信息发送到所述第一客户端之前,将第一寿命值和所述第一客户端状态信息一起加密以产生所述第一经加密信息。
7.如权利要求6所述的方法,还包括以下步骤:
在对接收自所述第一客户端的所述第一经加密信息进行解密之后,基于第二时间值和包括在所述第一经解密信息中的寿命值来判断所述第一客户端状态信息是否已经过期。
8.如权利要求1所述的方法,还包括以下步骤:
从多个密钥中选出所述第一本地密钥,其中所述多个密钥中的每个密钥与不同索引值和所述服务器的身份相关联;以及
将与所述第一本地密钥相关联的索引值发送到所述第一客户端。
9.如权利要求8所述的方法,还包括以下步骤:
从所述第一客户端接收与所述第一本地密钥相关联的索引值和所述服务器的身份;
其中所述对第一经加密信息进行解密的步骤包括基于与接收自所述第一客户端的索引值相关联的密钥对所述第一经加密信息进行解密的步骤。
10.如权利要求1所述的方法,其中第一服务器执行对所述第一客户端状态信息加密以产生所述第一经加密信息的步骤,其中所述方法还包括以下步骤:
第二服务器基于所述第一客户端不知道的第二本地密钥对所述第一客户端状态信息进行加密,以产生第二经加密信息,其中所述第二服务器不同于所述第一服务器,并且其中所述第二本地密钥不同于所述所述第一本地密钥;
所述第二服务器从所述第一客户端接收所述第二经加密信息;
所述第二服务器核实随所述第二经加密信息接收到的认证代码并对接收自所述第一客户端的第二经加密信息进行解密,从而产生第二经解密信息;
接收已基于从所属第一共享私密密钥导出的第三导出密钥加密后的第二消息;
从包括在所述第二经解密信息中的共享私密密钥导出第四导出密钥;以及
基于所述第四导出密钥来进一步保护随之发生在所述第一客户端和所述第二服务器之间的会话。
11.一种避免在服务器上存储客户端状态的方法,该方法包括以下计算机实现的步骤:
从客户端不知道的多个密钥中选出本地密钥,其中所述多个密钥中的每个密钥与不同的索引值相关联;
基于客户端的经加密状态信息、所述服务器的身份和所述本地密钥来计算第一认证代码,其中所述客户端状态信息包括共享私密密钥和唯一地标识所述客户端的值;
基于所述本地密钥对所述客户端状态信息和第一寿命值进行加密并将加密结果与所述认证代码组合在一起,从而产生经加密信息;
向所述客户端发送所述经加密信息和与所述本地密钥相关联的特定索引值;
接收所述经加密信息和所述特定索引值;
基于与针对所述服务器身份的所述特定索引值相关联的特定密钥对所述接收到的经加密信息进行解密,从而产生经解密信息;
基于包括在所述经解密信息中的客户端的经加密状态信息、所述服务器的身份和所述特定密钥来计算第二认证代码;
判断所述第二认证代码是否与包括在所述经解密信息中的认证代码相匹配;
基于当前时间值和包括在所述经解密信息中的寿命值来判断所述客户端状态信息是否已经过期;
接收已基于从所述共享私密密钥导出的第一导出密钥加密后的消息;
从包括在所述第一经解密信息中的共享私密密钥导出第二导出密钥;以及
基于所述第二导出密钥来进一步保护随之发生在所述客户端和所述服务器之间的会话。
12.一种在客户端上存储客户端状态的方法,该方法包括以下计算机实现的步骤:
安全地存储通过基于本地密钥对包括共享私密密钥的客户端状态信息和服务器的身份进行加密而生成的经加密客户端状态信息;
将所述经加密客户端信息发送到存储所述本地密钥的第一服务器;以及
将相同的经加密客户端信息发送到存储所述本地密钥的第二服务器;
其中所述第二服务器不同于所述第一服务器,但是由相同的服务器身份所标识。
13.如权利要求12所述的方法,还包括以下步骤:
从所述第一服务器接收已基于从所述共享私密密钥导出的导出密钥加密后的消息;以及
从所述第二服务器接收已基于从所述共享私密密钥导出的导出密钥加密后的消息。
14.一种在客户端上存储客户端状态的方法,该方法包括以下计算机实现的步骤:
安全地存储通过基于本地密钥对包括共享私密密钥的客户端状态信息和服务器的身份进行加密而生成的经加密客户端状态信息;
将所述经加密客户端信息发送到存储所述本地密钥的第一服务器,其中所述本地密钥由所述第一服务器的身份所标识;以及
将所述经加密客户端信息发送到存储所述本地密钥的第二服务器,其中所述本地密钥由所述第二服务器的身份所标识;
其中所述第二服务器不同于所述第一服务器,并且所述第二服务器由服务器身份来唯一地标识。
15.如权利要求14所述的方法,还包括以下步骤:
从所述第一服务器接收已基于从所述共享私密密钥导出的导出密钥加密后的消息;以及
从所述第二服务器接收已基于从所述共享私密密钥导出的导出密钥加密后的消息。
16.一种从客户端接收客户端状态的方法,该方法包括以下计算机实现的步骤:
基于客户端不知道的本地密钥来加密客户端状态信息,以产生经加密信息,其中所述客户端状态信息包括共享私密密钥;
从所述客户端接收传输安全性层(TLS)握手协议扩展ClientHello消息,该消息在其扩展数据字段中包含了所述经加密信息;以及
基于所述本地密钥对接收自所述客户端的所述经加密信息进行解密,从而产生包括所述共享私密密钥的经解密信息。
17.一种承载了用于避免在服务器上存储客户端状态的一个或多个指令序列的计算机可读介质,当所述指令被一个或多个处理器执行时,致使所述一个或多个处理器执行以下步骤:
基于第一客户端不知道的第一本地密钥对第一客户端状态信息加密以产生第一经加密信息,其中所述第一客户端状态信息包括第一共享私密密钥;
在第一时间从所述第一客户端接收所述第一经加密信息;
基于所述本地密钥对接收自所述第一客户端的所述第一经加密信息进行解密,从而产生第一经解密信息;
接收已基于从所述第一共享私密密钥导出的第一导出密钥加密后的第一消息;
从包括在所述第一经解密信息中的共享私密密钥导出第二导出密钥;以及
基于所述第二导出密钥来进一步保护随之发生在所述第一客户端和所述服务器之间的会话。
18.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
在所述第一时间前从存储器中移除所述第一客户端状态信息;以及
在所述第一时间前从存储器中移除所述第一经加密信息。
19.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
在将所述第一经加密信息发送到所述第一客户端之前,基于所述本地密钥、服务器的身份和客户端经加密态信息来计算第一代码;以及
在将所述第一经加密信息发送到所述第一客户端之前,将所述第一代码与包括所述第一客户端状态信息的加密结果包括在一起以产生所述第一经加密信息。
20.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
在对接收自所述第一客户端的所述第一经加密信息进行解密之后,基于包括在所述第一经解密信息中的客户端经加密状态信息、所述本地密钥和所述服务器的身份来计算第二认证代码;以及
判断所述第二认证代码是否与包括在所述第一经解密信息中的认证代码相匹配。
21.如权利要求19所述的计算机可读介质,其中所述第一客户端状态信息包括唯一地标识所述第一客户端的值。
22.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
在将所述第一经加密信息发送到所述第一客户端之前,将第一寿命值和所述第一客户端状态信息一起加密以产生所述第一经加密信息。
23.如权利要求22所述的计算机可读介质,还包括用于执行以下步骤的指令:
在对接收自所述第一客户端的所述第一经加密信息进行解密之后,基于第二时间值和包括在所述第一经解密信息中的寿命值来判断所述第一客户端状态信息是否已经过期。
24.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
从多个密钥中选出所述本地密钥,其中所述多个密钥中的每个密钥与不同索引值相关联;以及
将与所述本地密钥相关联的索引值发送到所述第一客户端。
25.如权利要求24所述的计算机可读介质,还包括用于执行以下步骤的指令:
从所述第一客户端接收与所述本地密钥相关联的索引值;
其中所述对第一经加密信息进行解密的步骤包括基于与接收自所述第一客户端的索引值相关联的密钥对所述第一经加密信息进行解密的步骤。
26.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
生成所述服务器的身份;
基于所述本地密钥对第二客户端状态信息进行加密以产生第二经加密信息,其中所述第二客户端状态信息包括不同于所述第一共享私密密钥的第二共享私密密钥,并且其中所述本地密钥不被不同于所述第一客户端的第二客户端所知;
从所述第二客户端接收所述第二经加密信息;
基于所述本地密钥对接收自所述第二客户端的所述第二经加密信息进行解密,从而产生第二经解密信息;
接收已基于从所述第二共享私密密钥导出的第三导出密钥加密后的第二消息;
从包括在所述第二经解密信息中的共享私密密钥导出第四导出密钥;以及
基于所述第四导出密钥来进一步保护随之发生在所述第二客户端和所述服务器之间的会话。
27.如权利要求17所述的计算机可读介质,还包括用于执行以下步骤的指令:
基于从包括在所述第一经解密信息中的共享私密密钥导出的第三导出密钥来加密第二消息,以产生经加密的消息;以及
将所述经加密的消息发送到所述第二客户端。
28.一种用于避免在服务器上存储客户端状态的装置,包括:
用于基于客户端不知道的本地密钥对客户端状态信息加密以产生经加密信息的装置,其中所述客户端状态信息包括共享私密密钥;
用于从所述客户端接收所述经加密信息的装置;
用于基于所述本地密钥对接收自所述客户端的所述经加密信息进行解密,从而产生经解密信息的装置;
用于接收已基于从所述共享私密密钥导出的第一导出密钥加密后的消息的装置;
用于从包括在所述经解密信息中的共享私密密钥导出第二导出密钥的装置;以及
用于基于所述第二导出密钥来解密所述消息的装置。
29.一种用于避免在服务器上存储客户端状态的装置,包括:
耦合到数据网络的用于从其接收一个或多个分组流的网络接口;
处理器;
一个或多个已存储的指令序列,该指令序列被所述处理器执行时致使所述处理器执行以下步骤:
计算所述服务器的身份;
基于客户端不知道的本地密钥对客户端状态信息进行加密以产生经加密信息,其中所述客户端状态信息包括共享私密密钥;
从所述客户端接收所述经加密信息;
基于所述本地密钥对接收自所述客户端的所述经加密信息进行解密,从而产生经解密信息;
接收已基于从所述共享私密密钥导出的第一导出密钥加密后的消息;
从包括在所述经解密信息中的共享私密密钥导出第二导出密钥;以及
基于所述第二导出密钥来进一步保护随之发生在所述客户端和所述服务器之间的会话。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/756,634 US7346773B2 (en) | 2004-01-12 | 2004-01-12 | Enabling stateless server-based pre-shared secrets |
US10/756,634 | 2004-01-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1906883A true CN1906883A (zh) | 2007-01-31 |
CN100591003C CN100591003C (zh) | 2010-02-17 |
Family
ID=34739879
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200580001385A Active CN100591003C (zh) | 2004-01-12 | 2005-01-10 | 实现基于无状态服务器的预共享私密 |
Country Status (6)
Country | Link |
---|---|
US (2) | US7346773B2 (zh) |
EP (1) | EP1706956B1 (zh) |
CN (1) | CN100591003C (zh) |
AU (1) | AU2005204576B2 (zh) |
CA (1) | CA2548229C (zh) |
WO (1) | WO2005067685A2 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527708B (zh) * | 2008-03-04 | 2012-10-03 | 华为技术有限公司 | 恢复连接的方法和装置 |
US8842616B2 (en) | 2008-11-20 | 2014-09-23 | Huawei Technologies Co., Ltd. | Method, network device and system for determining resource mapping in coordinated multi-point transmission |
Families Citing this family (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2358083A1 (en) * | 2001-09-28 | 2003-03-28 | Bridgewater Systems Corporation | A method for session accounting in a wireless data networks using authentication, authorization and accounting (aaa) protocols (such as ietf radius or diameter) where there is no session handoff communication between the network elements |
US7574604B2 (en) * | 2003-03-04 | 2009-08-11 | Sony Corporation | Network device registration |
US7451305B1 (en) | 2003-04-10 | 2008-11-11 | Cisco Technology, Inc. | Method and apparatus for securely exchanging cryptographic identities through a mutually trusted intermediary |
US7373502B2 (en) * | 2004-01-12 | 2008-05-13 | Cisco Technology, Inc. | Avoiding server storage of client state |
CA2584525C (en) | 2004-10-25 | 2012-09-25 | Rick L. Orsini | Secure data parser method and system |
JP4551202B2 (ja) * | 2004-12-07 | 2010-09-22 | 株式会社日立製作所 | アドホックネットワークの認証方法、および、その無線通信端末 |
US7350227B2 (en) * | 2005-04-26 | 2008-03-25 | Cisco Technology, Inc. | Cryptographic peer discovery, authentication, and authorization for on-path signaling |
US7716360B2 (en) | 2005-09-21 | 2010-05-11 | Sap Ag | Transport binding for a web services message processing runtime framework |
US7716279B2 (en) * | 2005-09-21 | 2010-05-11 | Sap Ag | WS addressing protocol for web services message processing runtime framework |
US8001584B2 (en) | 2005-09-30 | 2011-08-16 | Intel Corporation | Method for secure device discovery and introduction |
US7587045B2 (en) * | 2005-10-03 | 2009-09-08 | Kabushiki Kaisha Toshiba | System and method for securing document transmittal |
US8184811B1 (en) * | 2005-10-12 | 2012-05-22 | Sprint Spectrum L.P. | Mobile telephony content protection |
US9069869B1 (en) | 2005-10-31 | 2015-06-30 | Intuit Inc. | Storing on a client device data provided by a user to an online application |
ES2658097T3 (es) | 2005-11-18 | 2018-03-08 | Security First Corporation | Método y sistema de análisis de datos seguro |
US8495380B2 (en) * | 2006-06-06 | 2013-07-23 | Red Hat, Inc. | Methods and systems for server-side key generation |
US20080072292A1 (en) * | 2006-09-01 | 2008-03-20 | Narjala Ranjit S | Secure device introduction with capabilities assessment |
EP1903740A1 (en) * | 2006-09-21 | 2008-03-26 | Irdeto Access B.V. | Method for implementing a state tracking mechanism in a communications session between a server and a client system |
US8332520B2 (en) * | 2007-01-19 | 2012-12-11 | International Business Machines Corporation | Web server for managing session and method thereof |
US20080195740A1 (en) * | 2007-02-12 | 2008-08-14 | Mobitv, Inc. | Maintaining session state information in a client server system |
US8467527B2 (en) | 2008-12-03 | 2013-06-18 | Intel Corporation | Efficient key derivation for end-to-end network security with traffic visibility |
US9319220B2 (en) * | 2007-03-30 | 2016-04-19 | Intel Corporation | Method and apparatus for secure network enclaves |
US20080244268A1 (en) * | 2007-03-30 | 2008-10-02 | David Durham | End-to-end network security with traffic visibility |
US8234385B2 (en) | 2007-05-16 | 2012-07-31 | Microsoft Corporation | Format negotiation for media remoting scenarios |
US8131994B2 (en) | 2007-06-01 | 2012-03-06 | Cisco Technology, Inc. | Dual cryptographic keying |
US8122482B2 (en) * | 2008-01-24 | 2012-02-21 | Cisco Technology, Inc. | Cryptographic peer discovery, authentication, and authorization for on-path signaling |
FR2926939A1 (fr) * | 2008-01-30 | 2009-07-31 | Canon Kk | Procede de transmission de donnees avec anticipation des acquittements, dispositif d'entree, produit programme d'ordinateur et moyen de stockage correspondants |
US8560858B2 (en) * | 2008-05-29 | 2013-10-15 | Red Hat, Inc. | Secure session identifiers |
US8121061B2 (en) * | 2008-06-26 | 2012-02-21 | Microsoft Corporation | Efficient file management through granular opportunistic locking |
US20090327704A1 (en) * | 2008-06-27 | 2009-12-31 | Microsoft Corporation | Strong authentication to a network |
EP2335177A4 (en) * | 2008-10-06 | 2012-06-20 | Ericsson Telefon Ab L M | DIGITAL RIGHTS MANAGEMENT IN A USER-CONTROLLED ENVIRONMENT |
US11042816B2 (en) * | 2009-10-30 | 2021-06-22 | Getaround, Inc. | Vehicle access control services and platform |
CA2781872A1 (en) * | 2009-11-25 | 2011-06-09 | Security First Corp. | Systems and methods for securing data in motion |
WO2011150346A2 (en) | 2010-05-28 | 2011-12-01 | Laurich Lawrence A | Accelerator system for use with secure data storage |
EP3920465B1 (en) * | 2010-10-08 | 2023-12-06 | Brian Lee Moffat | Private data sharing system |
US8472348B2 (en) | 2011-07-05 | 2013-06-25 | Cisco Technology, Inc. | Rapid network formation for low-power and lossy networks |
US20130077641A1 (en) * | 2011-09-22 | 2013-03-28 | Harley F. Burger, Jr. | Systems, Circuits and Methods for Time Stamp Based One-Way Communications |
US8935523B1 (en) * | 2012-07-18 | 2015-01-13 | Dj Inventions, Llc | Cryptographic protected communication system with multiplexed cryptographic cryptopipe modules |
US9176838B2 (en) | 2012-10-19 | 2015-11-03 | Intel Corporation | Encrypted data inspection in a network environment |
US9288186B2 (en) | 2013-06-04 | 2016-03-15 | Cisco Technology, Inc. | Network security using encrypted subfields |
US9697061B1 (en) * | 2013-12-18 | 2017-07-04 | Amazon Technologies, Inc. | Parameter delegation for encapsulated services |
EP4027576B1 (en) | 2014-01-13 | 2023-11-22 | Visa International Service Association | Efficient methods for protecting identity in authenticated transmissions |
AU2015277000C1 (en) | 2014-06-18 | 2019-11-28 | Visa International Service Association | Efficient methods for authenticated communication |
CN106797311B (zh) | 2014-08-29 | 2020-07-14 | 维萨国际服务协会 | 用于安全密码生成的系统、方法和存储介质 |
SG11201704984SA (en) | 2015-01-27 | 2017-07-28 | Visa Int Service Ass | Methods for secure credential provisioning |
WO2016131056A1 (en) | 2015-02-13 | 2016-08-18 | Visa International Service Association | Confidential communication management |
US10019718B2 (en) | 2015-05-12 | 2018-07-10 | Bank Of America Corporation | Customer-based associate interfaces |
US10158487B2 (en) | 2015-07-16 | 2018-12-18 | Cisco Technology, Inc. | Dynamic second factor authentication for cookie-based authentication |
JP6610124B2 (ja) * | 2015-09-25 | 2019-11-27 | 富士ゼロックス株式会社 | 情報処理装置及びプログラム |
US10498762B1 (en) * | 2015-10-22 | 2019-12-03 | Versafe Ltd. | Methods for hypertext markup language (HTML) input field obfuscation and devices thereof |
US9876783B2 (en) | 2015-12-22 | 2018-01-23 | International Business Machines Corporation | Distributed password verification |
CA3009229A1 (en) | 2015-12-24 | 2017-06-29 | Haventec Pty Ltd | Method for storing data |
AU2017277523A1 (en) | 2016-06-07 | 2018-10-04 | Visa International Service Association | Multi-level communication encryption |
CN110383755B (zh) * | 2017-01-05 | 2022-04-19 | 皇家飞利浦有限公司 | 网络设备和可信第三方设备 |
US10554689B2 (en) * | 2017-04-28 | 2020-02-04 | Cisco Technology, Inc. | Secure communication session resumption in a service function chain |
US10749689B1 (en) * | 2017-06-29 | 2020-08-18 | Salesforce.Com, Inc. | Language-agnostic secure application development |
US11163910B2 (en) * | 2017-06-29 | 2021-11-02 | Salesforce.Com, Inc. | Methods and systems for data migration |
US10581948B2 (en) | 2017-12-07 | 2020-03-03 | Akamai Technologies, Inc. | Client side cache visibility with TLS session tickets |
US20210092103A1 (en) * | 2018-10-02 | 2021-03-25 | Arista Networks, Inc. | In-line encryption of network data |
US11019034B2 (en) | 2018-11-16 | 2021-05-25 | Akamai Technologies, Inc. | Systems and methods for proxying encrypted traffic to protect origin servers from internet threats |
US11146558B2 (en) | 2020-03-11 | 2021-10-12 | International Business Machines Corporation | Stateless multi-party authorization system in web applications |
EP4030323A1 (en) * | 2021-01-18 | 2022-07-20 | Deutsche Telekom AG | Method for realizing an access management of a plurality of computing devices or functionalities or software applications executed thereon, system, computing device or functionality or software application executed thereon, access management entity, program and computer-readable medium |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5268962A (en) | 1992-07-21 | 1993-12-07 | Digital Equipment Corporation | Computer network with modified host-to-host encryption keys |
US5774670A (en) * | 1995-10-06 | 1998-06-30 | Netscape Communications Corporation | Persistent client state in a hypertext transfer protocol based client-server system |
US5961601A (en) * | 1996-06-07 | 1999-10-05 | International Business Machines Corporation | Preserving state information in a continuing conversation between a client and server networked via a stateless protocol |
US6196932B1 (en) * | 1996-09-09 | 2001-03-06 | Donald James Marsh | Instrumented sports apparatus and feedback method |
US6065117A (en) * | 1997-07-16 | 2000-05-16 | International Business Machines Corporation | Systems, methods and computer program products for sharing state information between a stateless server and a stateful client |
US6226750B1 (en) * | 1998-01-20 | 2001-05-01 | Proact Technologies Corp. | Secure session tracking method and system for client-server environment |
US6263437B1 (en) * | 1998-02-19 | 2001-07-17 | Openware Systems Inc | Method and apparatus for conducting crypto-ignition processes between thin client devices and server devices over data networks |
US6253326B1 (en) * | 1998-05-29 | 2001-06-26 | Palm, Inc. | Method and system for secure communications |
JP3493141B2 (ja) * | 1998-06-12 | 2004-02-03 | 富士通株式会社 | ゲートウェイシステムおよび記録媒体 |
TW545605U (en) * | 2000-04-19 | 2003-08-01 | First Int Computer Inc | Upper lid of wrist resting area for a notebook computer |
US20040015725A1 (en) * | 2000-08-07 | 2004-01-22 | Dan Boneh | Client-side inspection and processing of secure content |
WO2002087146A1 (fr) * | 2001-04-18 | 2002-10-31 | Pumpkin House Incorporated | Systeme de chiffrement et procede de commande dudit systeme |
US7286671B2 (en) * | 2001-11-09 | 2007-10-23 | Ntt Docomo Inc. | Secure network access method |
US7100049B2 (en) * | 2002-05-10 | 2006-08-29 | Rsa Security Inc. | Method and apparatus for authentication of users and web sites |
EP2116915A1 (en) * | 2002-09-05 | 2009-11-11 | Panasonic Corporation | Group management system, group management device, and member device |
US7571463B1 (en) * | 2003-01-24 | 2009-08-04 | Nortel Networks Limited | Method an apparatus for providing a scalable and secure network without point to point associations |
US7725934B2 (en) * | 2004-12-07 | 2010-05-25 | Cisco Technology, Inc. | Network and application attack protection based on application layer message inspection |
US7350227B2 (en) * | 2005-04-26 | 2008-03-25 | Cisco Technology, Inc. | Cryptographic peer discovery, authentication, and authorization for on-path signaling |
-
2004
- 2004-01-12 US US10/756,634 patent/US7346773B2/en active Active
-
2005
- 2005-01-10 AU AU2005204576A patent/AU2005204576B2/en active Active
- 2005-01-10 EP EP05722407.3A patent/EP1706956B1/en active Active
- 2005-01-10 CN CN200580001385A patent/CN100591003C/zh active Active
- 2005-01-10 WO PCT/US2005/000812 patent/WO2005067685A2/en not_active Application Discontinuation
- 2005-01-10 CA CA2548229A patent/CA2548229C/en active Active
-
2007
- 2007-08-22 US US11/843,292 patent/US8166301B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101527708B (zh) * | 2008-03-04 | 2012-10-03 | 华为技术有限公司 | 恢复连接的方法和装置 |
US8793494B2 (en) | 2008-03-04 | 2014-07-29 | Huawei Technologies Co., Ltd. | Method and apparatus for recovering sessions |
US8842616B2 (en) | 2008-11-20 | 2014-09-23 | Huawei Technologies Co., Ltd. | Method, network device and system for determining resource mapping in coordinated multi-point transmission |
Also Published As
Publication number | Publication date |
---|---|
EP1706956B1 (en) | 2016-12-14 |
US20070288743A1 (en) | 2007-12-13 |
WO2005067685A3 (en) | 2006-07-27 |
CA2548229C (en) | 2010-05-11 |
AU2005204576A1 (en) | 2005-07-28 |
EP1706956A4 (en) | 2012-04-04 |
EP1706956A2 (en) | 2006-10-04 |
WO2005067685A2 (en) | 2005-07-28 |
AU2005204576B2 (en) | 2009-03-19 |
US20050154873A1 (en) | 2005-07-14 |
CA2548229A1 (en) | 2005-07-28 |
US7346773B2 (en) | 2008-03-18 |
CN100591003C (zh) | 2010-02-17 |
US8166301B2 (en) | 2012-04-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1906883A (zh) | 实现基于无状态服务器的预共享私密 | |
EP1473869B1 (en) | Universal secure messaging for cryptographic modules | |
CN1268088C (zh) | 基于pki的vpn密钥交换的实现方法 | |
CN101053199A (zh) | Rfid应答器信息安全方法、系统和装置 | |
CN1751533A (zh) | 在移动无线电系统中形成和分配加密密钥的方法和移动无线电系统 | |
CN1631000A (zh) | 因特网上用于安全内容递送的密钥管理协议与认证系统 | |
CN1701561A (zh) | 基于地址的验证系统及其装置和程序 | |
CN100337175C (zh) | 移动终端加入域和获取版权对象的方法、系统和相关设备 | |
CN1669265A (zh) | 在计算机系统中使用的隐藏的链接动态密钥管理器 | |
CN1539106A (zh) | 互联网协议的模块化鉴权和授权方案 | |
CN1708942A (zh) | 设备特定安全性数据的安全实现及利用 | |
CN1788263A (zh) | 登录系统和方法 | |
CN1829144A (zh) | 加密通信系统及方法 | |
CN1689367A (zh) | 安全装置的安全和保密性增强 | |
US20130219166A1 (en) | Hardware based identity manager | |
CN1684410A (zh) | 加密备份方法以及解密恢复方法 | |
US20130007457A1 (en) | Exchange of key material | |
CN101044490A (zh) | 将光盘用作智能密钥装置的方法和系统 | |
CN1502186A (zh) | 在计算机网络中有控制地分发应用程序代码和内容数据 | |
CN1615632A (zh) | 用于支持有线和无线客户端和服务器端认证的方法的机制 | |
CN1808966A (zh) | 安全数据处理方法及其系统 | |
CN1934564A (zh) | 使用证书撤销列表进行数字权限管理的方法和设备 | |
CN1310464C (zh) | 一种基于公开密钥体系的数据安全传输的方法及其装置 | |
CN1659922A (zh) | 用于询问-应答用户鉴权的方法和系统 | |
CN1898624A (zh) | 在使用授权证书时维护私密性 |
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 |