Leveraging a persistent connection to access a secured service

Information

  • Patent Grant
  • 9461981
  • Patent Number
    9,461,981
  • Date Filed
    Wednesday, July 2, 2014
    10 years ago
  • Date Issued
    Tuesday, October 4, 2016
    7 years ago
Abstract
Leveraging a persistent connection to provide a client access to a secured service may include establishing a persistent connection with a client in response to a first request from the client, and brokering a connection between the client and a secured service based on a second request from the client by leveraging the persistent connection with the client. The brokering may occur before the client attempts to connect to the secured service directly and the connection may be established between the client and the secured service without provision by the client of authentication information duplicative or additional to authentication information provided by the client to establish the persistent connection.
Description
TECHNICAL FIELD

This invention relates to providing access to a secured service.


BACKGROUND

A secured service may require the provision of authentication information before allowing a connection to be established from a client seeking access. Various secured services may be accessed simultaneously by one client, each generally requiring the accessing client to provide authentication information that is duplicative or additional to the authentication information provided to the other secured services before allowing access to be established. For instance, a client may establish a connection with a first secured service by providing the first secured service with first authentication information. Thereafter, the same client seeking access to other secured services may be required again to provide those other secured services with second authentication information that is duplicative and/or additional to the first authentication information provided to the first secured service.


SUMMARY

In one general aspect, leveraging a persistent connection to provide a client access to a secured service includes establishing a persistent connection with the client in response to a first request from the client, and brokering a connection between the client and a secured service based on a second request from the client by leveraging the persistent connection with the client. The brokering may occur before the client attempts to connect to the secured service directly and the connection may be established between the client and the secured service without provision by the client of authentication information duplicative or additional to authentication information provided by the client to establish the persistent connection.


Implementations may include one or more of the following features. For example, establishing the persistent connection may include receiving keystone authentication information from the client, authenticating the client based on the keystone authentication information to provide a keystone authentication, and establishing the persistent connection with the client based on the keystone authentication.


Leveraging the persistent connection may include receiving the second request from the client for connection to the secured service after the persistent connection to the client is established. Leveraging the persistent connection also may include providing a leveraged authentication that may be used to establish the connection with the secured service and that is based on the keystone authentication associated with the persistent connection. The keystone authentication also may be used to provide the leveraged authentication without provision by the client of authentication information duplicative or additional to the keystone authentication information used to establish the persistent connection.


The persistent connection may be established between the client and a persistent connection service while the connection between the client and the secured service may be brokered by a broker service. The broker service may receive from the persistent connection service at a connection request address a communication based on the second request from the client, and the persistent connection service may authenticate the client to the broker service by leveraging the persistent connection.


Brokering the connection to the secured service may include communicating as an intermediary with the client and the secured service based on the second request from the client so that the client may obtain authorization information that may be used to establish the connection to the secured service. For example, in one implementation brokering includes determining the authorization information based on the second request from the client, and communicating to the secured service an indication that the client desires to connect to the secured service, in which the indication includes the authorization information. A response is received from the secured service indicating that the client may be allowed to establish the connection to the secured service by presenting the authorization information to the secured service, and the authorization information is communicated to enable the client to present the authorization information to the secured service to establish the connection with the secured service.


In another implementation, brokering includes communicating to the secured service an indication that the client desires to connect to the secured service, receiving a response from the secured service indicating that the secured service may accept a connection from the client, in which the response includes the authorization information, and communicating the authorization information to enable the client to present the authorization information to the secured service to establish the connection with the secured service. The authorization information may be determined by the secured service.


The authorization information may be ineffective to establish a connection with the secured service if the connection constraints are not satisfied by the constraint information. The connection constraints may include, for example, a constraint to limit the number of uses for the authorization information to a predetermined number (e.g., a one-time-use password), and/or information indicating a number of uses to which the authorization information has been put. The connection constraints also may include a constraint that the authorization information be used within a predetermined time window, and/or a constraint that the authorization information be presented to the secured service by a client for whom the connection was brokered.


These general and specific aspects may be implemented using a method, a system, or a computer program, or any combination of systems, methods, and computer programs.


Other features will be apparent from the description, the drawings, and the claims.





DESCRIPTION OF DRAWINGS


FIG. 1 is a is a schematic diagram of a system configured to provide a client having an established persistent connection with access to a secured service.



FIG. 2 is a schematic diagram illustrating a system, as in FIG. 1, in which the secured service is an IMAP mail service.



FIG. 3 is a schematic diagram illustrating a system, as in FIG. 1, in which the secured service is a synchronization service.



FIG. 4 is a schematic flow diagram illustrating a systematic process implementable by the system of FIG. 1 for providing a client having an established persistent connection with access to a secured service.



FIG. 5 is a schematic flow diagram illustrating a connection process that may be used to establish a persistent connection, as provided generally in FIG. 4.



FIGS. 6 and 7 are schematic flow diagrams illustrating processes that may be used to broker a connection with a secured service, as provided generally in FIG. 4.



FIG. 8 is a schematic flow diagram illustrating a process that may be used to establish the brokered connection with the secured service, as provided generally in FIG. 4.





Like reference symbols in the various drawings may indicate like elements.


DETAILED DESCRIPTION

For illustrative purposes, a process is described for leveraging a persistent connection to provide access to a secured service, and systems and software for implementing the process also are described. For clarity of exposition, the description generally proceeds from an account of general elements and their high level relationship to a detailed account of illustrative roles, configurations, and components of the elements.


Referring to FIG. 1, a generalized system 100 may be used to permit a client 110 to leverage a persistent connection 101 to a persistent connection service 130 by which access may be gained to a secured service 170, in which gaining access to the secured service 170 may or may not include establishing another persistent connection with the secured service 170. Exemplary components of the system 100 are described in greater detail below.


The system 100 of FIG. 1 generally includes the client 110, the persistent connection service 130, a broker service 150, and one or more secured services 170.


The client 110 generally may include any device, system, and/or piece of code that relies on another service to perform an operation. For example, the client 110 may include a Web browser, an email client, a synchronization client (e.g., a calendar synchronization client, a task list synchronization client), an instant messaging (IM) client, a software productivity application (e.g., a word processor, a spreadsheet), and/or an operating system or operating system kernel. The client 110 also may be configured to access data that may be stored, for example, in a magnetic and/or an optical storage medium and/or any other acceptable storage medium accessible to the client 110 (e.g., storage medium 111).


The persistent connection service 130 may include, for example, an IM service, an email service (e.g., an IMAP service), a login service, an authentication service, an authorization service, and/or any other service or combination of services configured to provide a persistent connection, while the broker service 150 may include, for example, any device, system, and/or piece of code configured to broker a connection as hereinafter described between a client with a persistent connection and a secured service.


A secured service 170 generally may include, for example, any device, system, and/or piece of code configured to perform an operation requested by a client 110 (e.g., a Web browser, another service). For example, the secured service 170 may include an email service, a synchronization service (e.g., a calendar synchronization service, a task list synchronization service), a print service, a file access service, an IM service, an operating system, an operating system kernel, an authentication service, an authorization service, and/or any combination of these services. The secured service 170 also may include a persistent connection service.


One or more other services may be included in the components of system 100 and/or these components (hereinafter the system services) may be included as part of one or more other services. For example, the system services may include or be included in a general-purpose or a special-purpose computer (e.g., a personal computer, a personal digital assistant (PDAs), or a device specifically programmed to perform certain tasks), at least one Local Area Network (LAN), and/or at least one Wide Area Network (WAN). Either way, the response to and execution of instructions received by any or all of the system services may be controlled by, for example, a program, a piece of code, an instruction, a device, a computer system, or a combination thereof, for independently or collectively instructing the services to interact and operate as described herein.


A persistent connection 101 may be established between the client 110 and the persistent connection service 130 and the persistent connection service 130 may be configured to communicate with the broker service 150, or the broker service 150 may be included as a component of the persistent connection service 130. The broker service 150 and the client 110 may be configured to communicate with the one or more secured services 170.


The persistent connection between the client 110 and the persistent connection service 130 as well as other communications between the system services generally occur over a communications network. The communication network typically allows direct or indirect communication between the system services (e.g., between the client 110, the persistent connection service 130, the broker service 150, and/or the secured services 170), irrespective of physical or logical separation. The communication network may include a secured communication network (e.g., a communication network protected by a firewall) that may include communication paths 151 and 153 over which the broker service 150 may communicate with the persistent connection service 130 and/or the secured services 170, respectively. The secured communication network, for example, may isolate the broker service 150 from the client 110 so that the broker service 150 is not visible to the client 110.


The communication network may include various mechanisms for delivering voice and/or non-voice data, such as, for example, the transport connection protocol (TCP), the Internet protocol (IP), the World Wide Web, one or more local area networks (LANs) and/or one or more wide area networks (WANs). The communication network also may include analog or digital wired and wireless telephone networks, e.g., public switched telephone networks (PSTN), integrated services digital networks (ISDN), various types of digital subscriber lines (xDSL), advance mobile telephone service (AMPS), global system for mobile communications (GSM), code division multiple access (CDMA), radio, cable, satellite, and/or other delivery mechanisms for carrying voice or non-voice data.


To communicate voice and/or non-voice data, the system services may include one or more communications systems in addition to the components described above, such as, for example, an analog, a digital, or a cellular telephone, whether wired or wireless, a program, a piece of code, an instruction, a device, a computer, a computer system, or a combination thereof, for independently or collectively sending or receiving communications. Implementations of communications systems may exist permanently or temporarily in any type of machine, component, physical or virtual equipment, storage medium, or propagated signal capable of sending or receiving voice communications.



FIGS. 2 and 3 describe systems generally similar to system 100 of FIG. 1 but that illustrate the inclusion of specific secured services (i.e., an email service and a synchronization service, respectively) that may be accessed by the client 110.


Referring to FIG. 2, a system 200 is illustrated in which the client 110 and the broker service 150 may communicate with a secured service 170 that includes an email service 210. The email service 210 may be used to transmit and to receive electronic messages and may include a mailbox 211 in which received messages may be stored. The email service 210 also may include a mail transfer protocol service 213 that may be used to send an electronic message, using a protocol such as, for example, the simple mail transfer protocol (SMTP). The email service 210 also may include a retrieval service used to retrieve email messages from the mailbox 211 under a protocol, such as, for example, the Internet message access protocol (IMAP), and/or the post office protocol (POP) 215.


Referring to FIG. 3, a system 300 is illustrated in which the client 110 is configured to access data A′ (e.g., a modified calendar, a modified task list) that may, for example, include a modified version of original data A (e.g., an original calendar, an original task list). Data A′ may be stored, for example, in a magnetic and/or an optical storage medium and/or any other acceptable storage medium accessible to the client 110 (e.g., storage medium 111), whether internal or external to the client 110. The client 110 and the broker service 150 may communicate with a secured service 170 that includes a synchronization service 310 (e.g., the calendar synchronization service or the task list synchronization service mentioned above). The synchronization service 310 may include a sync service 311 that may be configured, for example, to access original data A and to synchronize that original data A with modified data A′. Data A may be stored, for example, in a disk array (e.g., disk array 313) and/or any other acceptable storage medium accessible to the sync service 311, whether internal or external to the sync service 311.



FIG. 4 illustrates a systematic process 400 that may be implement by the system of FIG. 1 to provide a client 110 having an established persistent connection 101 with access to a secured service 170. Process 400 provides that the client 110 may establish a persistent connection 101 with the persistent connection service 130 and the persistent connection service 130 may authenticate the client 110 (hereinafter referred to as keystone authentication) based on authentication information provided by the client 110 (step 411). The persistent connection service 130 may or may not include the broker service 150.


Later, after the persistent connection 101 is established, the client 110 may request access to a desired secured service 170 (step 413). For example, the client 110 may request the connection to the secured service 170 by sending the request for that access to the persistent connection service 130.


When embodied separately from the broker service, the persistent connection service 130 typically forwards the connection request to the broker service 150 at a connection request address associated with the broker service 150. The persistent connection service 130 may leverage the keystone authentication to authenticate the client 110 to the broker service 150, without requiring the client 110 to provide duplicative or additional authentication information.


Following receipt of the connection request, the broker service 150 may search for and determine an acceptable secured service 170 (e.g., an email service if the client 110 wishes to send or receive an electronic message) (step 420) and may broker a connection with the secured service 170 (examples of brokering are described in detail with respect to FIGS. 6 and 7) (step 431). Authorization information (described in greater detail below) may be determined during the brokering of the connection (step 431) and the keystone authentication may be leveraged to authenticate the client 110 to the secured service 170.


If the broker service 150 is unable to broker a connection with the determined secured service 170 (step 433), then the broker service 150 may perform a recovery procedure (step 440). The recovery procedure (step 440) may include determining whether it is appropriate to retry brokering with the secured service 170 (e.g., a retry may occur where brokering has failed less than a predetermined threshold of times) (step 441), and, if determined appropriate, the broker service 150 may attempt again to broker a connection with the secured service 170 (step 431). Otherwise, the broker service 150 may determine whether to search for another secured service 170 with which to broker a connection (e.g., another secured service 170 may be sought where less than a predetermined threshold of time has elapsed since the client 110 requested access to a secured service 170) (step 443). If determined appropriate, the broker service 150 may search for a different secured service 170 (step 420), or, if not, the broker service 150 may communicate to the client 110 a failure successfully to broker a connection with a secured service 170 (step 445) after which the client may or may not request the broker service to broker another connection (step 413).


If, however, the broker service 150 successfully brokered a connection to the secured service 170 (step 433), then the broker service 150 may provide the authorization information determined during the brokering process to the client 110 (step 435). The authorization information may be used by the client 110 to contact the secured service 170. The secured service 170 may receive the authorization information and may determine if the authorization information satisfies one or more connection constraints (examples of constraints are described below and with respect to FIG. 8) (step 453).


If the connection constraints are not satisfied (step 453), then the secured service 170 may not accept the authorization information and may refuse the connection. Upon refusal of the connection by the secured service 170, the client 110 may determine whether it is appropriate to retry connecting using the authorization information (step 460). For instance, it may be appropriate to retry where the authorization information has been refused less than a predetermined number of times and/or where the connection constraints associated with the authorization information are not known to be violated. If determined appropriate, the client 110 may again provide the authorization information to the secured service 170 (step 451). Otherwise, the client 110 may or may not receive a report of the failed connection (step 470) and/or request that the broker service 150 broker a connection with another secured service 170 (step 413).


By contrast, if the secured service 170 determines that the authorization information satisfies the connection constraints (step 453), then the secured service 170 may accept the authorization information and may permit the client 110 to connect to the secured service 170 (step 455).


The connection constraints, mentioned above with respect to step 453, may include, for example, a constraint that the authorization information has been used (e.g., received by the secured service 170 and/or accepted by the secured service 170) no more than a predetermined number of times (e.g., once), a constraint that the authorization information should be used within a predetermined time window (e.g., thirty-seconds from the time of determination of the authorization information), and/or a constraint that the authorization information be received from the same client 110 for whom the connection was brokered.


The authorization information may include constraint information that may be used to determine if the authorization information satisfies the connection constraints. Moreover, the authorization information may include a password and the password may include some or all of the constraint information. The constraint information may include an indication of a number of uses for which the authorization information may be considered valid (e.g., 1, 2, 3), an indication of a time when the authorization information was determined (e.g., a time stamp), and/or an indication of a window of time relative to the time stamp during which the authorization information may be considered valid. The constraint information also may include information indicative of an identity of the client 110 for whom the authorization information was determined.


For example, the password may include constraint information, such as, a screen name, a login name, a biometric signature, and/or a digital signature of the client 110, or any combination of these. The password also may contain constraint information indicating that the password is valid for only one use, is valid only if used within thirty-seconds of determination of the password, and/or is valid only if received from the client 110 for whom the password was determined (e.g., a one-time use, time-limited, designated-user password, hereinafter a constrained password).



FIG. 5 illustrates a process 410 by which the client 110 may establish a persistent connection 101 and may request a connection to a secured service 170, and that may be used in one implementation of the process of FIG. 4. The process 410 includes establishing a persistent connection 101 between the client 110 and a persistent connection service 130 (step 505). Before allowing the client 110 to establish the persistent connection 101, the persistent connection service 130 may require that the client 110 provide authentication information by which the persistent connection service 130 may authenticate the client 110 (the keystone authentication). Thereafter, the client 110 may communicate a request to the persistent connection service 130 to connect to a secured service 170, which request may include information indicating a secured service 170 to which connection is desired (step 510). The persistent connection service 130 may forward the connection request to the broker service 150 (step 515) and also may leverage the keystone authentication to authenticate the client 110 to the broker service 150, e.g., without provision of duplicative or additional authentication information by the client 110.



FIG. 6 illustrates an exemplary implementation of the process 430 of FIG. 4 that may be used to broker a connection to the secured service 170. As illustrated by FIG. 6, the broker service 150 may authenticate the client 110 based on the persistent connection 101 of the client 110 to the persistent connection service 130 (e.g., by leveraging the keystone authentication) (step 605). The broker service 150 then may generate/determine a constrained password (step 610) and also may generate a request-to-honor for the constrained password that may include the constrained password (step 615). The broker service 150 may submit the request-to-honor to the secured service 170 and may leverage the persistent connection 101 of the client 110 to authenticate the client 110 to the secured service 170 (step 620). The secured service 170 may reject the request-to-honor (step 625), which may cause the broker service 150 to perform a recovery procedure (step 630) that generally may be similar to recovery procedure 440 of FIG. 4. Otherwise, if the request to honor is accepted by the secured service 170 (step 625), then the secured service 170 may store the constrained password and reply to the broker service 150 with a target connection point (step 635), such as, for example, an IP address, a World Wide Web address, a port, a socket, and/or any combination of these. The broker service 150 may communicate the target connection point and the constrained password to the client 110 (e.g., by communicating the target connection point and the constrained password to the persistent connection service 130 to forward to the client 110) (step 640).



FIG. 7 illustrates another process 430 that may be used to broker a connection to the secured service 170 and to implement the process of FIG. 4. The broker service 150 may authenticate the client 110 based on the persistent connection 101 of the client 110 to the persistent connection service 130 (e.g., by leveraging the keystone authentication) (step 705). The broker service 150 then may generate a connection authorization request (step 710) and may submit the connection authorization request to the secured service 170 while leveraging the persistent connection 101 of the client 110 to authenticate the client 110 to the secured service 170 (step 715). The secured service 170 may reject the connection authorization request (step 720), which may cause the broker service 150 to perform a recovery procedure (step 725) that generally may be similar to recovery procedure 440 of FIG. 4. Otherwise, if the connection authorization request is accepted by the secured service 170 (step 720), then the secured service 170 may reply to the authorization request by providing to the broker service 150 a constrained password and/or a target connection point that the secured service 170 also may retain and store (step 730). The broker service 150 may communicate the target connection point and the constrained password to the client 110 (e.g., by communicating the target connection point and the constrained password to the persistent connection service 130 to forward to the client 110) (step 735).



FIG. 8 illustrates a process for establishing a connection to the secured system by presenting the constrained password to the secured system that may be used in one implementation of the process of FIG. 4. The client 110 may present the constrained password to the secured service 170 at the connection point (step 805) and the secured service 170 may receive the constrained password at the connection point (step 810). Thereafter, the secured service 170 may determine if the constrained password satisfies the connection constraints, such as, for example, a constraint that the constrained password match the constrained password previously stored, that the constrained password has not previously been presented and/or used (e.g., the constrained password may be a one-time use password), that the constrained password is presented within an acceptable time window (e.g., the constrained password may be a time limited password) (step 810). The secured service 170 may refuse the connection if the constrained password does not satisfy the connection constraints, and the client 110 then may execute a retry procedure (step 815) that may correspond generally to step 460 of the process of FIG. 4. Otherwise, if the constrained password does satisfy the connection constraints (step 810), then the secured service 170 may allow the connection to be established (step 820).


Other implementations are within the scope of the following claims.

Claims
  • 1. A method, comprising: receiving, at a server and from a client, a request to access a secured service that is separate from the server;receiving, from the client, authentication information to authenticate the client with the server;authenticating, based on the authentication information, the client with the server by the server negotiating authorization information with the secured service;sending, based on an authentication of the client with the server, the negotiated authorization information to the client to enable the client to access the secured service independent of the server.
  • 2. The method as recited in claim 1, wherein the server negotiating authorization information with the secured service comprises negotiating the authorization information with the secured service via a broker service in communication with the secured service.
  • 3. The method as recited in claim 1, further comprising authenticating, based on the authentication information, the client with the secured service.
  • 4. The method as recited in claim 3, wherein authenticating the client with the secured service comprises leveraging only the authentication information from the client to authenticate the client with the secured service.
  • 5. The method as recited in claim 3, wherein authenticating the client with the secured service comprises requesting the negotiated authorization information from the secured service.
  • 6. The method as recited in claim 1, wherein the negotiated authorization information comprises information stored by the secured service.
  • 7. The method as recited in claim 6, wherein the negotiated authorization information comprises information indicative of an identity of the client.
  • 8. The method as recited in claim 1, wherein the negotiated authorization information comprises a password and a request-to-honor for the password.
  • 9. The method as recited in claim 1, wherein the negotiated authorization information comprises a connection authorization request comprising a target connection point for the secured service.
  • 10. The method as recited in claim 1, wherein the negotiated authorization information comprises constraint information for determining whether the negotiated authorization information satisfies at least one connection constraint associated with the secured service.
  • 11. A method, comprising: receiving, at a secured service and from an intermediary system that is separate from the secured service, a request for a client to access the secured service;receiving, from the intermediary system, authentication information for the client;authenticating, based on the authentication information from the intermediary system, the client with the secured service by the secured service negotiating authorization information for the client with the intermediary system; andproviding, to the client and in response to receiving the negotiated authorization information from the client, access to the secured service.
  • 12. The method as recited in claim 11, wherein the authentication information from the intermediary system comprises authentication information used to establish a connection between the client and the intermediary system.
  • 13. The method as recited in claim 11, further comprising sending the negotiated authorization information to the intermediary system to provide to the client.
  • 14. The method as recited in claim 13, wherein the negotiated authorization information comprises information stored by the secured service.
  • 15. The method as recited in claim 13, wherein the negotiated authorization information comprises a connection authorization request comprising a target connection point for the secured service.
  • 16. The method as recited in claim 13, wherein the negotiated authorization information comprises constraint information for determining whether the authorization information satisfies at least one connection constraint associated with the secured service.
  • 17. The method as recited in claim 16, wherein the constraint information includes at least one of an indication of a number of uses for using the negotiated authorization information, an indication of a time when the negotiated authorization information was determined, an indication of a time window for using the negotiated authorization information, or information indicative of an identity of the client.
  • 18. A system, comprising: at least one server; andat least one non-transitory computer readable storage medium storing instructions thereon that, when executed by the at least one server, cause the system to:receive, from a client, a request to access a secured service that is separate from the at least one server;receive, from the client, authentication information to authenticate the client with the at least one server;authenticate, based on the authentication information, the client with the at least one server by the server negotiating the authorization information with the secured service;send, based on an authentication of the client with the at least one server, the negotiated authorization information to the client to enable the client to access the secured service independent of the at least one server.
  • 19. The system as recited in claim 18, further comprising instructions that, when executed by the at least one server, cause the system to negotiate the authorization information with the secured service via a broker service in communication with the secured service.
  • 20. The system as recited in claim 18, further comprising instructions that, when executed by the at least one server, cause the system to authenticating, based on the authentication information, the client with the secured service.
CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent application Ser. No. 14/320,119, filed Jun. 30, 2014 now abandoned, which is a continuation of U.S. patent application Ser. No. 13/620,822, filed Sep. 15, 2012 now issued as U.S. Pat. No. 8,769,645, which is a continuation of U.S. patent application Ser. No. 13/453,178, filed Apr. 23, 2012 now issued as U.S. Pat. No. 8,689,312, which is a continuation of U.S. patent application Ser. No. 12/720,959, filed Mar. 10, 2010 now issued as U.S. Pat. No. 8,176,541, which is a continuation of U.S. application Ser. No. 11/767,680, filed Jun. 25, 2007 now issued as U.S. Pat. No. 7,707,627, which is a continuation of U.S. application Ser. No. 09/894,919, filed Jun. 29, 2001 now issued as U.S. Pat. No. 7,237,257, which claims priority from U.S. application No. 60/282,857, filed Apr. 11, 2001 now expired. Each of the aforementioned patent(s) and application(s) are hereby incorporated by reference in their entirety.

US Referenced Citations (225)
Number Name Date Kind
5233655 Shapiro Aug 1993 A
5241594 Kung Aug 1993 A
5349643 Cox Sep 1994 A
5455953 Russell Oct 1995 A
5481720 Loucks et al. Jan 1996 A
5506961 Carlson et al. Apr 1996 A
5535276 Ganesan Jul 1996 A
5537474 Brown et al. Jul 1996 A
5542046 Carlson et al. Jul 1996 A
5544322 Cheng Aug 1996 A
5557518 Rosen Sep 1996 A
5560008 Johnson et al. Sep 1996 A
5586260 Hu Dec 1996 A
5590199 Krajewski, Jr. Dec 1996 A
5592553 Guski et al. Jan 1997 A
5604490 Blakley et al. Feb 1997 A
5621797 Rosen Apr 1997 A
5649099 Theimer et al. Jul 1997 A
5661807 Guski et al. Aug 1997 A
5684950 Dare Nov 1997 A
5689638 Sadovsky Nov 1997 A
5706427 Tabuki Jan 1998 A
5717756 Coleman Feb 1998 A
5737419 Ganesan Apr 1998 A
5748735 Ganesan May 1998 A
5757920 Misra et al. May 1998 A
5774551 Wu Jun 1998 A
5774670 Montulli Jun 1998 A
5781550 Templin Jul 1998 A
5793966 Amstein et al. Aug 1998 A
5812784 Watson et al. Sep 1998 A
5815574 Fortinsky Sep 1998 A
5826242 Montulli Oct 1998 A
5864843 Carino, Jr. Jan 1999 A
5878219 Vance et al. Mar 1999 A
5923756 Shambroom Jul 1999 A
5935212 Kalajan Aug 1999 A
5944794 Okamoto et al. Aug 1999 A
5944824 He Aug 1999 A
5999711 Misra et al. Dec 1999 A
6003136 Schanze Dec 1999 A
6009175 Schanze Dec 1999 A
6026166 LeBourgeois Feb 2000 A
6031977 Pettus Feb 2000 A
6032260 Sasmazel Feb 2000 A
6047268 Bartoli Apr 2000 A
6047376 Hosoe Apr 2000 A
6055637 Hudson et al. Apr 2000 A
6055639 Schanze Apr 2000 A
6067623 Blakley, III May 2000 A
6073176 Baindur Jun 2000 A
6073242 Hardy et al. Jun 2000 A
6081508 West et al. Jun 2000 A
6088451 He et al. Jul 2000 A
6119228 Angelo et al. Sep 2000 A
6134591 Nickles Oct 2000 A
6134592 Montulli Oct 2000 A
6138239 Veil Oct 2000 A
6148404 Yatsukawa Nov 2000 A
6157953 Chang et al. Dec 2000 A
6161185 Guthrie et al. Dec 2000 A
6163771 Walker et al. Dec 2000 A
6175920 Schanze Jan 2001 B1
6178511 Cohen Jan 2001 B1
6205479 Dulai et al. Mar 2001 B1
6216231 Stubblebine Apr 2001 B1
6219790 Lloyd Apr 2001 B1
6223289 Wall Apr 2001 B1
6226752 Gupta et al. May 2001 B1
6240091 Ginzboorg et al. May 2001 B1
6243816 Fang et al. Jun 2001 B1
6278993 Kumar et al. Aug 2001 B1
6279111 Jensenworth et al. Aug 2001 B1
6286104 Buhle et al. Sep 2001 B1
6292896 Guski et al. Sep 2001 B1
6314520 Schell et al. Nov 2001 B1
6324648 Grantges, Jr. Nov 2001 B1
6341312 French Jan 2002 B1
6401211 Brezak et al. Jun 2002 B1
6405312 Ly Jun 2002 B1
6411309 Ly Jun 2002 B1
6430602 Kay et al. Aug 2002 B1
6453362 Bittinger Sep 2002 B1
6463474 Fuh Oct 2002 B1
6477648 Schell et al. Nov 2002 B1
6480958 Harrington Nov 2002 B1
6484174 Wall Nov 2002 B1
6490358 Geer et al. Dec 2002 B1
6490579 Gao et al. Dec 2002 B1
6490620 Ditmer Dec 2002 B1
6490679 Tumblin et al. Dec 2002 B1
6538996 West Mar 2003 B1
6546425 Hanson Apr 2003 B1
6578151 Nilsen Jun 2003 B1
6584505 Howard et al. Jun 2003 B1
6587880 Saigo et al. Jul 2003 B1
6609198 Wood et al. Aug 2003 B1
6615348 Gibbs Sep 2003 B1
6636975 Khidekel et al. Oct 2003 B1
6643774 McGarvey Nov 2003 B1
6658573 Bischof et al. Dec 2003 B1
6668253 Thompson et al. Dec 2003 B1
6668322 Wood et al. Dec 2003 B1
6678731 Howard Jan 2004 B1
6678733 Brown Jan 2004 B1
6691232 Wood et al. Feb 2004 B1
6711610 Harris Mar 2004 B1
6715082 Chang et al. Mar 2004 B1
6721890 Shrikhande Apr 2004 B1
6728884 Lim Apr 2004 B1
6731731 Ueshima May 2004 B1
6732269 Baskey et al. May 2004 B1
6763468 Gupta et al. Jul 2004 B2
6775692 Albert Aug 2004 B1
6792534 Medvinsky Sep 2004 B2
6801946 Child et al. Oct 2004 B1
6823456 Dan et al. Nov 2004 B1
6826696 Chawla Nov 2004 B1
6850985 Giloi et al. Feb 2005 B1
6859527 Banks et al. Feb 2005 B1
6892307 Wood et al. May 2005 B1
6898711 Bauman et al. May 2005 B1
6959336 Moreh et al. Oct 2005 B2
6966004 Jin et al. Nov 2005 B1
6968571 Devine et al. Nov 2005 B2
6975728 Eye Dec 2005 B1
6983377 Beesley et al. Jan 2006 B1
6986040 Kramer et al. Jan 2006 B1
6996841 Kadyk et al. Feb 2006 B2
7024692 Schanze Apr 2006 B1
7032002 Rezvani Apr 2006 B1
7039714 Blakley, III May 2006 B1
7039946 Binding May 2006 B1
7062781 Shambroom Jun 2006 B2
7065574 Saulpaugh et al. Jun 2006 B1
7076797 Loveland Jul 2006 B2
7099933 Wallace et al. Aug 2006 B1
7113994 Swift Sep 2006 B1
7117359 Wood et al. Oct 2006 B2
7117529 O'Donnell et al. Oct 2006 B1
7124203 Joshi Oct 2006 B2
7137006 Grandcolas Nov 2006 B1
7174565 Kadyk et al. Feb 2007 B2
7181017 Nagel et al. Feb 2007 B1
7225341 Yoshino et al. May 2007 B2
7228291 Seamons et al. Jun 2007 B2
7234057 Park Jun 2007 B2
7237257 Hirsh Jun 2007 B1
7249110 Kimura et al. Jul 2007 B1
7266821 Polizzi Sep 2007 B2
7305478 Willins et al. Dec 2007 B2
7340600 Corella Mar 2008 B1
7395549 Perlman et al. Jul 2008 B1
7409543 Bjorn Aug 2008 B1
7424538 Igarashi et al. Sep 2008 B2
7437552 Shin Oct 2008 B2
7458082 Slaughter et al. Nov 2008 B1
7464143 Pieper et al. Dec 2008 B2
7472273 Haverinen Dec 2008 B2
7522632 La Porta et al. Apr 2009 B2
7539310 Mitchell et al. May 2009 B2
7558866 Choe et al. Jul 2009 B2
7707627 Hirsh Apr 2010 B2
7716492 Saulpaugh et al. May 2010 B1
7716722 Swift et al. May 2010 B2
7865596 Grosner Jan 2011 B2
7954144 Ebrahimi May 2011 B1
7991694 Takayama Aug 2011 B2
8176541 Hirsh May 2012 B1
8261271 Polizzi Sep 2012 B2
8689312 Hirsh Apr 2014 B2
8769645 Hirsh Jul 2014 B2
20010005890 Nitaki Jun 2001 A1
20010013096 Luckenbaugh et al. Aug 2001 A1
20010020274 Shambroom Sep 2001 A1
20010037466 Fukutake Nov 2001 A1
20010045451 Tan Nov 2001 A1
20010047484 Medvinsky et al. Nov 2001 A1
20020007460 Azuma Jan 2002 A1
20020023122 Polizzi Feb 2002 A1
20020023158 Polizzi Feb 2002 A1
20020035685 Ono Mar 2002 A1
20020049912 Honjo et al. Apr 2002 A1
20020052954 Polizzi May 2002 A1
20020061003 Sumner May 2002 A1
20020062345 Guedalia May 2002 A1
20020062384 Tso May 2002 A1
20020073150 Wilcock Jun 2002 A1
20020073208 Wilcock Jun 2002 A1
20020073210 Low Jun 2002 A1
20020075879 Ramey Jun 2002 A1
20020083340 Eggebraaten Jun 2002 A1
20020091832 Low Jul 2002 A1
20020099829 Richards Jul 2002 A1
20020124116 Yaung Sep 2002 A1
20020130764 Hayakawa Sep 2002 A1
20020138596 Darwin Sep 2002 A1
20020143964 Guo Oct 2002 A1
20020144119 Benantar Oct 2002 A1
20020147813 Teng Oct 2002 A1
20020156901 Erickson et al. Oct 2002 A1
20020156906 Kadyk et al. Oct 2002 A1
20020157019 Kadyk et al. Oct 2002 A1
20020178271 Graham Nov 2002 A1
20030018913 Brezak et al. Jan 2003 A1
20030046391 Moreh Mar 2003 A1
20030050918 Pilkington Mar 2003 A1
20030105854 Thorsteinsson Jun 2003 A1
20030110374 Yamamoto et al. Jun 2003 A1
20030115341 Sinha et al. Jun 2003 A1
20030149854 Yoshino et al. Aug 2003 A1
20040059797 Velen et al. Mar 2004 A1
20040078571 Haverinen Apr 2004 A1
20040088260 Foster et al. May 2004 A1
20040254848 Golan Dec 2004 A1
20050065950 Chaganti et al. Mar 2005 A1
20050114531 Kadyk et al. May 2005 A1
20050131583 Ransom Jun 2005 A1
20050216773 Mitchell et al. Sep 2005 A1
20050235345 Mitchell et al. Oct 2005 A1
20060225132 Swift Oct 2006 A1
20090150989 Hoey et al. Jun 2009 A1
20110231555 Ebrahimi Sep 2011 A1
20140317695 Hirsh Oct 2014 A1
20150113611 Hirsh Apr 2015 A1
Foreign Referenced Citations (1)
Number Date Country
0217101 Feb 2002 WO
Non-Patent Literature Citations (24)
Entry
U.S. Appl. No. 14/586,823, filed Dec. 30, 2014, Hirsh.
U.S. Appl. No. 14/586,833, Mail Date Feb. 24, 2014, Office Action.
U.S. Appl. No. 14/586,823, Mail Date Apr. 1, 2015, Office Action.
U.S. Appl. No. 14/320,119, Mail Date Jun. 4, 2015, Office Action.
U.S. Appl. No. 14/586,823, Mail Date Jul. 27, 2015, Notice of Allowance.
Explanation of the web of trust of PGP, Session Jun. 1998; www.rubin.ch/pgp/weboftrust.en.html.
Unix Network Programming, W. Richard Stevens, Security; Section 9.3 Kerberos, 1990; pp. 430-436.
Menezes et al., Handbook of Applied Cryptography, 1997, CRC Press, Chapter 10, pp. 385-424.
U.S. Appl. No. 09/894,919, Mail Date Dec. 9, 2004, Office Action.
U.S. Appl. No. 09/894,919, Mail Date Jun. 3, 2005, Office Action.
U.S. Appl. No. 09/894,919, Mail Date Jul. 26, 2006, Office Action.
U.S. Appl. No. 09/894,919, Mail Date Feb. 20, 2007, Notice of Allowance.
U.S. Appl. No. 11/767,680, Mail Date Jul. 15, 2009, Office Action.
U.S. Appl. No. 11/767,680, Mail Date Dec. 24, 2009, Notice of Allowance.
U.S. Appl. No. 12/720,959, Mail Date Aug. 5, 2011, Office Action.
U.S. Appl. No. 12/720,959, Mail Date Jan. 10, 2012, Notice of Allowance.
U.S. Appl. No. 13/453,178, Mail Date Jun. 4, 2013, Office Action.
U.S. Appl. No. 13/453,178, Mail Date Oct. 30, 2013, Notice of Allowance.
U.S. Appl. No. 13/453,178, Mail Date Dec. 13, 2013, Notice of Allowance.
U.S. Appl. No. 13/620,822, Mail Date Aug. 12, 2013, Office Action.
U.S. Appl. No. 13/620,822, Mail Date Nov. 7, 2013, Office Action.
U.S. Appl. No. 13/620,822, Mail Date Jan. 22, 2014, Notice of Allowance.
U.S. Appl. No. 13/620,822, Mail Date Mar. 14, 2014, Notice of Allowance.
U.S. Appl. No. 14/586,833, Mail Date Aug. 14, 2015, Notice of Allowance.
Related Publications (1)
Number Date Country
20150012985 A1 Jan 2015 US
Provisional Applications (1)
Number Date Country
60282857 Apr 2001 US
Continuations (6)
Number Date Country
Parent 14320119 Jun 2014 US
Child 14322699 US
Parent 13620822 Sep 2012 US
Child 14320119 US
Parent 13453178 Apr 2012 US
Child 13620822 US
Parent 12720959 Mar 2010 US
Child 13453178 US
Parent 11767680 Jun 2007 US
Child 12720959 US
Parent 09894919 Jun 2001 US
Child 11767680 US