EP2311218B1 - Verwaltung von http-authentifizierung und -autorisierung - Google Patents
Verwaltung von http-authentifizierung und -autorisierung Download PDFInfo
- Publication number
- EP2311218B1 EP2311218B1 EP09801062.2A EP09801062A EP2311218B1 EP 2311218 B1 EP2311218 B1 EP 2311218B1 EP 09801062 A EP09801062 A EP 09801062A EP 2311218 B1 EP2311218 B1 EP 2311218B1
- Authority
- EP
- European Patent Office
- Prior art keywords
- epoch
- data
- user
- request
- processing node
- 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.)
- Active
Links
- 238000013475 authorization Methods 0.000 title claims description 146
- 238000012545 processing Methods 0.000 claims description 213
- 238000000034 method Methods 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 45
- 230000009471 action Effects 0.000 claims description 9
- 235000014510 cooky Nutrition 0.000 claims description 6
- 238000005259 measurement Methods 0.000 claims description 3
- 238000010200 validation analysis Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 40
- 239000003795 chemical substances by application Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 29
- 230000004044 response Effects 0.000 description 28
- 238000001514 detection method Methods 0.000 description 24
- 238000004590 computer program Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 11
- 238000007689 inspection Methods 0.000 description 5
- 230000002265 prevention Effects 0.000 description 5
- 241000700605 Viruses Species 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000005304 joining Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000007935 neutral effect Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000000246 remedial effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000005641 tunneling Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3234—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
-
- 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/0442—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 asymmetric encryption, i.e. different keys 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/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
-
- 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
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/102—Entity profiles
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3297—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving time stamps, e.g. generation of time stamps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/121—Timestamp
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4523—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using lightweight directory access protocol [LDAP]
Definitions
- This disclosure relates to security provisioning.
- An enterprise that implements the security system can require a user to be authenticated and authorized before using the network.
- the authentication and authorization checks in the security system are prone to processing inefficiencies and can require many resources within the enterprise to maintain the systems.
- the security system may require multiple analysis of the request to determine if the user that submitted the request is authenticated and authorized.
- the authentication and authorization data that maintains the state of the user can be subject to replay attacks by unauthorized users. For example, an unauthorized user can attempt to generate fraudulent authorization or authentication data. Other unauthorized users can attempt to improperly obtain authentication and authorization data that is directed to a valid user through theft.
- WO 01/72009 A2 describes a single sign-on method for accessing services distributed over a network in which authentication-related functionality is separated from the services, and in which authentication needs not be renegotiated for access to a new service from a plurality of services during a session.
- US 2006/0212520 A1 describes a method for authenticating and validating messages, whereby asymmetric encryption is used.
- WO 2005/088896 A1 describes a domain manager device for managing a network.
- the manager issues to a new device joining the network a number of symmetric authentication keys, and preferably, a number of authentication tickets.
- Each respective authentication key allows the new device to communicate securely with one respective other device comprised in the network.
- Security processing for an enterprise can, for example, be provided external to a network edge of the enterprise.
- one aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving at a processing node a request for a domain from a client browser; determining at the processing node whether the request includes domain authorization data for the requested domain; if the request for the domain includes the domain authorization data, allowing the request; if the request for the domain does not include the domain authorization data, requesting authorized user data from the client browser; in response to the request for the authorized user data, determining if the client browser provided the authorized user data; if the client browser provided the authorized user data, generating at the processing node the domain authorization data, providing the domain authorization data to the client browser, and allowing the request for the domain; and if the client browser did not provide the authorized user data, requesting user authorization from the client browser.
- Other implementations of this aspect include corresponding systems, apparatus, and computer program products.
- Another aspect of the subject matter described in this specification can be embodied in methods that include the actions of receiving at a processing node a first request for a domain from a client browser, the client browser associated with a first communication address; identifying a first authorized user data associated with the first request; identifying at the processing node the first communication address associated with the client browser; associating at the processing node the first communication address of the client browser with the first authorized user data; encrypting at the processing node the first authorized user data and the associated first communication address to generate a first associated authorization data; and providing the first associated authorization data to the client browser at the first communication address.
- Other implementations of this aspect include corresponding systems, apparatus, and computer program products.
- Another aspect of the subject matter described in this specification can be embodied in methods that include the actions receiving authenticated user data at an authority node; defining a plurality of epochs, each epoch identified by an epoch ID; associating the authenticated user data with a current epoch ID for a current epoch; obtaining a current epoch key pair for the current epoch, the current epoch key pair comprising a current public epoch key and a current private epoch key, wherein one attribute of the current public epoch key is the current epoch ID; encrypting the associated authenticated user data with the current private epoch key to generate authentication data; providing the current public epoch key to an external security service; and providing the authentication data to the external security service.
- Other implementations of this aspect include corresponding systems, apparatus, and computer program products.
- Another aspect of the subject matter described in this specification can be embodied in methods that include the actions receiving at a processing node a current public epoch key of a current epoch key pair, wherein one attribute of the current public epoch key is a current key epoch ID that identifies the current epoch of the current public epoch key; receiving at the processing node authorized user data associated with a request; decrypting at the processing node the authorized user data using the public epoch key; determining if the decryption of the authorized user data was successful; if the decryption of the authorized user data was successful, identifying at the processing node a user epoch ID from the decrypted authorized user data; comparing at the processing node the user epoch ID to the current key epoch ID of the current public epoch key; determining at the processing node whether the user epoch ID is a valid epoch ID; if the user epoch ID is a
- Fig. 1 is a block diagram of a distributed security system 100.
- the system 100 can, for example, be implemented as an overlay network in a wide area network (WAN), such as the Internet.
- the system 100 includes content processing nodes 110 that detect and preclude the distribution of security threats, e.g., malware, spyware, and other undesirable content sent from or requested by an external system.
- Example external systems can include an enterprise 200, a computer device 220, and a mobile device 230, or other network and computing systems.
- each processing node 110 can include a decision system, e.g., data inspection engines that operate on a content item, e.g., a web page, a file, an e-mail message, or some other data or data communication that is sent from or requested by one of the external systems.
- a decision system e.g., data inspection engines that operate on a content item, e.g., a web page, a file, an e-mail message, or some other data or data communication that is sent from or requested by one of the external systems.
- all data destined for or received from the Internet is processed through a processing node 110.
- specific data specified by each external system e.g., only e-mail, only executable files, etc., is processed through a processing node 110.
- Each decision vector can identify a threat classification, e.g., clean, spyware, malware, undesirable content, innocuous, unknown, etc.
- the output of each element of the decision vector D can be based on the output of one or more data inspection engines.
- the threat classification can be reduced to a subset of categories e.g., violating, non-violating, neutral, unknown. Based on the subset classification, a processing node 110 may allow distribution of the content item, preclude distribution of the content item, allow distribution of the content item after a cleaning process, or perform threat detection on the content item.
- the actions taken by a processing node 110 can be determinative on the threat classification of the content item and on a security policy of the external system to which the content item is being sent from or from which the content item is being requested by.
- Each processing node 110 can be implemented by a plurality of computer and communication devices, e.g., server computers, gateways, switches, etc.
- the processing nodes 110 can serve as an access layer 150.
- the access layer 150 can, for example, provide external system access to the security system 100.
- each processing node 110 can include Internet gateways and a plurality of server computers, and the processing nodes 110 can be distributed through a geographic region, e.g., throughout a country. According to a service agreement between a provider of the system 100 and an owner of an external system, the system 100 can thus provide security protection to the external system at any location throughout the geographic region.
- Data communications can be monitored by the system 100 in a variety of ways, depending on the size and data requirements of the external system.
- an enterprise 200 may have multiple routers that are used to communicate over the Internet, and the routers may be configured to establish communications through the nearest (in traffic communication time) processing node 110.
- a mobile device 230 may be configured to communication to a nearest processing node 110 through any available wireless access device, such as an access point, or a cellular gateway.
- a single computer device 220 such as a consumer's personal computer, may have its browser and e-mail program configured to access the nearest processing node 110, which, in turn, serves as a proxy for the computer device 220.
- an Internet provider may have all of its customer traffic processed through processing nodes 110.
- the processing nodes 110 can communicate with one or more authority nodes 120.
- the authority nodes 120 can store policy data for each external system and can distribute the policy data to each processing node 110.
- the policy data can, for example, define security policies for a protected system, e.g., security policies for the enterprise 200.
- Example policy data can define access privileges for users, web sites and/or content that is disallowed, restricted domains, etc.
- the authority nodes 120 can distribute the policy data to the processing nodes 110.
- each authority node 120 can be implemented by a plurality of computer and communication devices, e.g., server computers, gateways, switches, etc.
- the authority nodes 110 can serve as an application layer 160.
- the application layer 160 can, for example, manage and provide policy data, threat data, and data inspection engines 117 and dictionaries for the processing nodes.
- the user interface front-end 130 provides a user interface through which users of the external systems can provide and define security policies, e.g., whether e-mail traffic is to be monitored, whether certain web sites are to be precluded, etc.
- logging nodes 140 Another application capability that can be provided through the user interface front-end 130 is security analysis and log reporting.
- the underlying data on which the security analysis and log reporting functions operate are stored in logging nodes 140, which serve as a data logging layer 170.
- Each logging node 140 can store data related to security operations and network traffic processed by the processing nodes 110 for each external system.
- the logging node 140 data can be anonymized so that data identifying an enterprise is removed or obfuscated.
- identifying data can be removed to provide an overall system summary of security processing for all enterprises and users without revealing the identity of any one account.
- identifying data can be obfuscated, e.g., provide a random account number each time it is accessed, so that an overall system summary of security processing for all enterprises and users can be broken out by accounts without revealing the identity of any one account.
- the identifying data and/or logging node 140 data can be further encrypted, e.g., so that only the enterprise (or user if a single user account) can have access to the logging node 140 data for its account.
- Other processes of anonymizing, obfuscating, or securing logging node 140 data can also be used.
- an access agent 180 can be included in the external systems.
- an access agent 180 is deployed in the enterprise 200.
- the access agent 180 can, for example, facilitate security processing by providing a hash index of files on a client device to a processing node 110, or can facilitate authentication functions with a processing node 110, e.g., by assigning tokens for passwords and sending only the tokens to a processing node so that transmission of passwords beyond the network edge of the enterprise is minimized.
- Other functions and processes can also be facilitated by an access agent 180.
- the processing node 110 may act as a forward proxy that receives user requests to external servers addressed directly to the processing node 110. In other implementations, the processing node 110 may access user requests that are passed through processing node 110 in the transparent mode.
- a protected system e.g., enterprise 200, can, for example, choose one or both of these modes.
- a browser may be configured either manually or through an access agent 180 to access a processing node 110 in a forward proxy mode. In the forward proxy mode, all accesses are addressed to processing node 110.
- an enterprise gateway can be configured so that user requests are routed through the processing node 110 by establishing a communication tunnel between enterprise gateway and the processing node.
- existing protocols such as generic routing encapsulation (GRE), layer two tunneling protocol (L2TP), or IP security protocols may be used.
- the processing nodes 110 can be deployed at Internet service provider (ISP) nodes.
- ISP Internet service provider
- the ISP nodes can redirect subject traffic to the processing nodes 110 in a transparent proxy mode.
- Protected systems such as the enterprise 200, can use a multiprotocol label switching (MPLS) class of service for indicating the subject traffic that is to be redirected.
- MPLS multiprotocol label switching
- an access agent 180 can be configured to perform MPLS labeling.
- a protected system such as the enterprise 200, may identify a processing node 110 as a next hop router for communication with the external servers.
- Fig. 2 is a block diagram of the system of Fig. 1 in which the components of Fig. 1 are illustrated in more detail. Although only one representative component processing node 110, authority node 120 and logging node 140 are illustrated, there can be many of each of the component nodes 110, 120 and 140 present in the system 100.
- a wide area network (WAN) 101 such as the Internet, or some other combination of wired and/or wireless networks, connects in data communication the processing node 110, authority node 120 and logging node 140.
- the external systems 200, 220 and 230 likewise communicate over the WAN 101 with each other or other data providers and publishers. Some or all of the data communication of each of the external systems 200, 220 and 230 can be processed through the processing node 110.
- Fig. 2 also shows the enterprise 200 in more detail.
- the enterprise 200 can, for example, include a firewall 202 protecting an internal network that can include one or more enterprise servers 206, a lightweight director access protocol (LDAP) server 212, and other data or data stores 214.
- Another firewall 203 can protect an enterprise subnet that can include user computers 206 and 208 (e.g., laptop and desktop computers).
- the enterprise 200 may communicate with the WAN 101 through one or more network devices, such as a router, gateway, etc.
- the LDAP server 104 may store, for example, user login credentials for registered users of the enterprise 200 system. Such credentials can include a user identifiers, login passwords, and a login history associated with each user identifier.
- the other data 214 can include sensitive information, such as bank records, medical records, trade secret information, or any other information warranting protection by one or more security measures.
- a server access agent 180 can facilitate authentication functions with a processing node 110, e.g., by assigning tokens for passwords and sending only the tokens to a processing node 110 so that transmission of passwords beyond the network edge of the enterprise is minimized. Other functions and processes can also be facilitated by the server access agent 180.
- the computer device 220 and the mobile device 230 can also store information warranting security measures, such as personal bank records, medical information, and login information, e.g., login information to the server 216 of the enterprise 200, or to some other secured data provider server.
- information warranting security measures such as personal bank records, medical information, and login information, e.g., login information to the server 216 of the enterprise 200, or to some other secured data provider server.
- the processing nodes 110 are external to network edges of the external systems 200, 220 and 230. Each processing node 110 stores security policies 113 received from the authority node 120 and monitors content items requested by or sent from the external systems 200, 220 and 230. In some implementations, each processing node 110 can also store a detection process filter 112 and/or threat data 114 to facilitate the decision of whether a content item should be processed for threat detection.
- a processing node manager 118 can manage each content item in accordance with the security policy data 113, and the detection process filter 112 and/or threat data 114, if stored at the processing node 110, so that security policies for a plurality of external systems in data communication with the processing node are implemented external to the network edges for each of the external systems 200, 220 and 230. For example, depending on the classification resulting from the monitoring, the content item can be allowed, precluded, or threat detected. In general, content items that are already classified as "clean” or not posing a threat can be allowed, while those classified as "violating" can be precluded. Those content items having an unknown status, e.g., content items that have not been processed by the system 100, can be threat detected to classify the content item according to threat classifications.
- the processing node 110 can include a state manager 116a.
- the state manager 116a can be used to maintain the authentication and the authorization states of users that submit requests to the processing node. Maintenance of the states through the state manager 116a can minimize the number of authentication and authorization transactions that are necessary to process a request.
- An example of a state manager 116a is described in Fig. 3 - 6 .
- the processing node 110 can include an epoch processor 116b.
- the epoch processor 116b can be used to analyze authentication data that originated at an authority node 120.
- the epoch processor 116b can use an epoch ID to further validate the authenticity of authentication data.
- An example of an epoch processor 116b is described in Fig. 7 .
- the processing node can include a source processor 116c.
- the source processor 116c can be used to verify the source of authorization and authentication data.
- the source processor 116c can identify improperly obtained authorization and authentication data, enhancing the security of the network.
- An example of a source processor 116c is described in Fig. 7 .
- the detection processing filter 112 can be used as the first stage of an information lookup procedure.
- the detection processing filter 112 can be used as a front end to a looking of the threat data 114.
- Content items can be mapped to index values of the detection processing filter 112 by a hash function that operates on an information key derived from the information item.
- the information key is hashed to generate an index value (i.e., a bit position).
- a value of zero in a bit position in the guard table can indicate, for example, absence of information, while a one in that bit position can indicate presence of information. Alternatively, a one could be used to represent absence, and a zero to represent presence.
- Each content item can have an information key that is hashed.
- the processing node manager 118 may identify the URL address of a URL requests as the information key and hash the URL address; or may identify the file name and the file size of an executable file information key and hash the file name and file size of the executable file. Hashing an information key to generate an index and checking a bit value at the index in the detection processing filter 112 generally requires less processing time than actually searching threat data 114. The use of the detection processing filter 112 can improve the failure query (i.e., responding to a request for absent information) performance of database queries and/or any general information queries.
- failure query performance has a greater effect on the time required to process information searches for very rarely occurring items, e.g., the presence of file information in a virus scan log or a cache where many or most of the files transferred in a network have not been scanned or cached.
- the worst case additional cost is only on the order of one, and thus its use for most failure queries saves on the order of m log m, where m is the number of information records present in the threat data 114.
- the detection processing filter 112 can thus improve performance of queries where the answer to a request for information is usually negative. Such instances can include, for example, whether a given file has been virus scanned, whether content at a given URL has been scanned for inappropriate (e.g., pornographic) content, whether a given fingerprint matches any of a set of stored documents, and whether a checksum corresponds to any of a set of stored documents. Thus, if the detection processing filter 112 indicates that the content item has not been processed, then a worst case null lookup operation into the threat data 114 is avoided, and a threat detection can be implemented immediately. The detection processing filter 112 thus complements the threat data 114 that capture positive information.
- the detection processing filter 112 can be a Bloom filter implemented by a single hash function.
- the Bloom filter can be sparse table, i.e., the tables include many zeros and few ones, and the hash function is chosen to minimize or eliminate false negatives which are, for example, instances where an information key is hashed to a bit position and that bit position indicates that the requested information is absent when it is actually present.
- the authority node 120 includes a data store that stores master security policy data 123 for each of the external systems 200, 220 and 230.
- An authority node manager 128 can be used to manage the master security policy data 123, e.g., receive input from users of each of the external systems defining different security policies, and can distribute the master security policy data 123 to each of the processing nodes 110.
- the processing nodes 110 then store a local copy of the security policy data 113.
- the authority node 120 can also store a master detection process filter 122.
- the detection processing filter 122 can include data indicating whether content items have been processed by one or more of the data inspection engines 116 in any of the processing nodes 110.
- the authority node manager 128 can be used to manage the master detection processing filter 122, e.g., receive updates from a processing nodes 110 when a processing node 110 has processed a content item and update the master detection processing filter 122.
- the master detection processing filter 122 can be distributed to the processing nodes 110, which then store a local copy of the detection processing filter 112.
- the authority node 120 can include an epoch manager 126.
- the epoch manager 126 can be used to generate authentication data associated with an epoch ID.
- the epoch ID of the authentication data is a verifiable attribute of the authentication data that can be used to identify fraudulently created authentication data.
- An example of a epoch manager 126 is described in Fig. 7 .
- the detection processing filter 122 can be a guard table.
- the processing node 110 can, for example, use the information in the local detection processing filter 112 to quickly determine the presence and/or absence of information, e.g., whether a particular URL has been checked for malware; whether a particular executable has been virus scanned, etc.
- the authority node 120 can also store master threat data 124.
- the master threat data 124 can classify content items by threat classifications, e.g., a list of known viruses, a list of known malware sites, spam e-mail domains, etc.
- the authority node manager 128 can be used to manage the master threat data 124, e.g., receive updates from a processing nodes 110 when a processing node 110 has processed a content item and update the master threat data 124 with any pertinent results.
- the master threat data 124 can be distributed to the processing nodes 110, which then store a local copy of the threat data 114.
- the authority node 120 can also monitor the health of each processing node 110, e.g., the resource availability in each processing node 110, detection of link failures, etc. Based on the observed health of each process node 110, the authority node 120 can redirect traffic among processing nodes 110 and/or balance traffic among the processing nodes 110. Other remedial actions and processes can also be facilitated by the authority node 110.
- Fig. 3 is a state diagram 300 of the different states maintained by the state manager 116a.
- Each state of the state diagram 300 identifies a different level of authentication and authorization of a user.
- the state manager 116a can maintain these different states and process requests to the processing node 110 based on the state of the user.
- a request to the processing node 110 is processed by the stage manager 116a based on the level of authentication and/or authorization the user has obtained.
- authentication refers to the validation of the identity of the user.
- User credentials can be used to validate the identity of a user.
- a user may be authenticated by supplying a user name and password.
- Authorization can refer to the eligibility of a validated user to complete an action.
- an authenticated user can may be eligible to request content from domains that provide informational content, but not from domains associated with file sharing. Thus, the user is authorized for the domains associated with provision of informational content, but not for the domains associated with file sharing.
- the UA state 302 means that the user (or a client device being used by the user) has not provided any verified credentials to the state manager 116a, and thus the user must be authenticated before the request can be processed. The user can obtain authentication by providing credentials to the state manager 116a.
- the state manager 116a If the state manager 116a is able to verify the user credentials, the user has obtained authentication and can be assigned to the authenticated for a location (AL) state 304.
- a user in the AL state 304 is authenticated to transmit requests to the domain of the processing node 110.
- the state manager 116a has validated the identity of the users in the AL state 304 and can attempt to process requests from the users.
- the authorization level of a user in the AL state has not been determined. Thus, a user must obtain authorization before it can request content from the processing node 110.
- the AL state 304 is a transient state that is reached after the user has been authenticated, but before the user has been authorized to request content from any domain.
- the AL state 304 is maintained through the component responsible for the authentication, e.g., the access agent 180 and/or the authority node 120. Accordingly, state manager 116a may not be responsible for assigning a user to the AL state 304. However, the state manager 116a can identify when the user is in the AL state 304 and obtain the authorization necessary to move the user to the authenticated user state 306.
- the state manager 116a assigns the user to the authenticated user (AU) state 306.
- the AU state 306 means that the identity of the user has already been validated, and that processing node 110 is able to determine what level of authorization the user has.
- the processing node 110 can authorize requests of the user.
- the AU state does not enable the user to request content directly from domains, such as the domain of a target site. In order for the user to obtain content from the domain directly rather than through the processing node 110, the user must be authorized for the specific domain that is subject to the request.
- the AD state 306 means that the identity of the user has already been validated, the validated user is an authorized user of the processing node 110 such that the processing node 110 can determine whether a request is to be allowed, and that processing node 110 has already determined the validated user is authorized to request content from the authorized domain.
- the state diagram 300 identifies how the state manager 116a maintains the states of the user.
- the state manager 116a does not require each request transmitted by the user to originate in the UA state 302. Rather, the state manager 116a maintains the authorization state of the user by interpreting data that is transmitted with each request.
- the data (or lack of data) transmitted by the user can identify the user as in the UA state 302, the AL state 304, the AU state 306, or the AD state 308. Accordingly, the state manager 116a can identify the state of the user submitting the request, and the effort to authenticate and authorize users is minimized.
- the state manager 116a determines if the user that submitted the request is in AU state 306 or the AL state 304. Depending on what state the user is in when the request is received, the state manager 116a can minimize the transactions needed to authorize the user's request.
- Fig. 4 is a timing diagram 400 of the management of an unauthenticated and unauthorized request by the state manager 116a.
- a client browser 402 submits a request 406, e.g. an HTTP request that includes a Uniform Resource Locator (URL) for content accessible at a domain, e.g., target site 304.
- the state manager 116a of the processing node 110 determines whether to allow the request 406 based on the state of the user that submitted the request. For example, the state manager 116a can allow a request for content at a domain if the user is in a state that is authorized to request content from that domain.
- a request 406 e.g. an HTTP request that includes a Uniform Resource Locator (URL) for content accessible at a domain, e.g., target site 304.
- the state manager 116a of the processing node 110 determines whether to allow the request 406 based on the state of the user that submitted the request. For example, the state manager 116a can allow a
- the state manager 116a can determine the state of the user based on the data transmitted with the request by the client browser 402. The state manager 116a can make this determination because with any request to a domain, the client browser 402 transmits data applicable to the domain. Included in the data transmitted is authentication and authorization data for the domain that was provided by the state manager 116a. For example, when a user visits an Email Site on Domain E, the client browser 402 transmits any authentication and/or authorization data provided by the state manager 116a for the Domain E.
- One method of storing data to ensure that the data for a domain is transmitted to that domain with each request is by storing the data as an http cookie assigned to the domain. Other methods of storing the data can also be used.
- the state manager 116a can determine whether to allow the request, or whether to obtain additional authentication and/or authorization. Because the client browser 402 is the interface for the user, the state of the user is equivalent to the state of the client browser 402 that submitted the user request. Thus, in the diagram 400, the state of the client browser 402 is used to refer to the state of the user.
- a request from a client browser 402 in the UA state 302 is not processed by the processing node 110 because the user has not been authenticated.
- the state manager 116a can determine that the client browser 402 is in the UA state 302 by determining that the client browser 402 is not in the AL state 304, the AU state 306 or the AD state 308. In some implementations, the state manager 116a must first determine that the client browser 402 is not in the AD state 308, then the AU state 306. This method is used because the AD state 308 inherently includes the AU state 306.
- the state manager 116a can determine if the client browser 402 is in the AD state 308 for a domain by identifying domain authorization data submitted with a request for the domain.
- the domain authorization data can be data that indicates that the client browser 402 has been authorized by the state manager 116a to submit requests to the domain of a target site. If the client browser 402 is in the AD state 308 for the domain of the requested content, the client browser 402 provides domain authorization data with its request. If there is no domain authorization data submitted with a request for content from a domain, the client browser 402 is not in the AD state 308 for that domain.
- the client browser 402 can submit a request 406 for content at the target site. Because the request 406 is directed to the target site, the request 406 includes the URL of the target site. However, no data is passed in the request 406 that indicates that the client browser 402 is authorized to visit the domain of the target site. Thus, the state manager 116a can determine that the client browser 402 is not in the AD state 308 for the domain of the target site.
- the state manager 116a can determine if the client browser 402 is in the AU state 306.
- the client browser 402 can be determined to be in the AU state 306 if the client browser 402 can provide authorized user data to the state manager 116a.
- the authorized user data can be data that indicates that the client browser 402 has been authorized by the state manager 116a to submit requests to the domain of the processing node 110.
- the authorized user data can be used by the processing node to identify the user policy of the user.
- the authorized user data is associated with the domain of the processing node.
- the state manager 116a can solicit this authorized user data by sending the client browser 402 a redirect request 408.
- the state manager 116a submits the redirect response 408 to the client browser 402 after determining that the client browser 402 is not in the AD state 308 for the requested domain.
- the response 408 requires the client browser 402 to submit a request 410 for the target site 404 to the state manager 116a of the processing node 110.
- the request 410 seeks the contents of the target site 404 from the processing node 110, thus the original URL of the target site 404 is submitted as a query parameter of the request 410.
- the target domain of the request 410 is the domain of the processing node 110.
- the state manager 116a identifies any data submitted with the request 410 to the domain of the state manager 116a.
- the state manager 116a can determine that the client browser 402 is not in the AU state 306 because no authorized user data is submitted from the client browser 402 with the request 410 to the processing node 110.
- the state manager 116a determines if the client browser 402 is in the AL state 304.
- the AL state 304 is a transient state that is maintained by the node responsible for authentication, e.g., access agent 180, the state manager 116a can still determine when the client browser 402 is assigned to the AL state 304 by an access agent.
- the state manager 116a can determine that the client browser 402 is in the AL state when the client browser 402 submits a request with authentication data, e.g., a user authentication ticket.
- the user authentication ticket can be data that indicates that the client browser 402 has been authenticated by the access agent 180.
- the user authentication ticket can be used to identify the user policy of the client browser 402.
- the state manager 116a can determine that neither the request 406 nor the request 410 included any authentication data. Thus, the state manager 116a can determine that the client browser is not in the AL state 304. Based on this the state manager 116a can determine that the client browser is in the only remaining state, the UA state 302.
- the processing node 110 cannot process any request from the client browser 402. Instead, the client browser 402 must obtain authentication for the processing node 110 to process the requests from the client browser 402. If the client browser 402 obtains authentication and is able to submit the obtained authentication data to the state manager 116a, the state manager 116a can modify the state of the client browser 402 to the AL state 304. The state manager 116a can trigger the authentication by redirecting the client browser 402 to the access agent 180.
- the state manager 116a can submit a redirect response 412 to the client browser 402 to obtain authentication.
- the redirect response 412 requires the client browser 402 to submit a request 414 to the access agent 180.
- the access agent 180 can respond to a request 414 by notifying the client browser 402 that it is not authenticated.
- the access agent 180 can request authentication information from the client browser 402.
- the client browser 402 can prompt the user for authorization, and the user credentials can be passed to the access agent through a request 418.
- the access agent 180 receives the request 418, and if the user credentials are verified, the client browser 402 can be authenticated. Where a client browser 402 is authenticated, the access agent 180 can transmit authentication data back to the client browser 402.
- the access agent 180 can obtain the user policy associated with the user credentials in the form of the authentication data, provided by the authority node 120 of Fig. 1 , as discussed in Section 5.0 and Section 5.1.
- the access agent 180 can transmit the authentication data back to the client browser 402.
- the client browser 402 now possesses the authentication data, and is in the AL state 304.
- the state manager 116a can attempt to authorize the client browser 402. Because the AL state 304 is a transient state encountered prior to the AU state 306, the access agent 180 provides the authentication data to the client browser 402 as a parameter of a redirect response 420. The state manager 116a can verify the identity of the client browser 402 with the authentication data, and attempt to authorize the client browser 402. If the client browser 402 is authorized, the state manager 116a assigns the client browser 402 to the AU state 306.
- the client browser 402 can receive from the access agent 180 a redirect response 420 to the processing node 110.
- the redirect response 420 requires the client browser 402 to present the authentication data to the state manager 116a of the processing node 110.
- the state manager 116a of the processing node 110 receives the redirected request from the client browser, e.g. request 422. Because the request 422 includes authentication data, the state manager 116a can determine that the client browser is in the AL State 304.
- the state manager 116a can verify the use the data in the user authorization ticket to determine if the client browser 402 is an authorized user of the state manager 116a. If the client browser 402 is an authorized user, the state manager 116a can generate authorized user data based on the authentication data.
- the client browser 402 now possesses the authorized user data, and is in the AU state 306.
- the client browser 402 is authorized to submit requests to the processing node 110.
- a request cannot be directly to the target site 404, but rather the request is directed to the processing node 110 with the target site 404 as a query parameter.
- the processing node 110 can determine whether the client browser is authorized to request content from the target site 404, e.g., by examining the policy data 113 that specifies access privileges for the user. If the client browser 402 is authorized, the processing node 110 redirects the request of the client browser 402 back to the target site 404, with domain authorization data that indicates the client browser is authorized.
- the client browser 402 is in the AU state 306. Because the initial request 406 has still not been processed, as part of the response 424, the processing node 110 instructs the client browser 402 through a redirect request to submit a request to the target site 404.
- the redirected request e.g., request 426, is directed to the target site 404 of the original URL, and includes the domain authorization data as a query parameter.
- the redirected request from the client browser 402 is directed to the target site 404, but the processing node 110 still examines every request. Because the request has the domain authorization data as a query parameter, the processing node 110 allows the request after stripping the query parameter that include the domain authorization data, e.g., the data passed in the ticket query parameter of the request 426.
- the response from the target site 404 is also communicated through the processing node 110.
- the request 426 redirected the client browser 404 to the target site 404.
- the processing node 110 forwards the request to the target site 404 through request 328.
- the response from the target site 404 is sent back to the processing node 110, e.g., response 330.
- the state manager 116a Upon receiving the response from the target site 404, the state manager 116a transmits the domain authorization data back to the client browser 402 in a format that can be stored by the client browser and associated with the target site 404. For example, the response 432 from the processing node 110 can send the domain authorization data back as an http cookie for the domain of the target site 404.
- the client browser 402 now possesses the domain authorization data for the domain of the target site 404, and is in the AD state 308 for the domain.
- Fig. 5 is an example timing diagram 500 of the management of a subsequent request to an authorized domain by the state manager 116a.
- the processing node 110 processes a request for a domain from a client browser 402 in the AD state 308 for the domain.
- the processing node 110 is able to process the request without requesting additional authentication or authorization from the client browser.
- the client browser 402 can receive a subsequent request for the target site 404 on the same domain.
- the client browser 402 can also receive a subsequent request for a different target site on the same domain.
- the state manager 116a of the processing node 110 can recognize that the client browser 402 is in the AD state 308 based on the data passed with the subsequent request.
- the client browser 402 may have obtained authorization to visit Company A Shopping Site on Domain 1.
- the client browser 402 has stored domain authorization data for Domain 1.
- Request 502 can be a subsequent request to the Company A Shopping Site on Domain 1.
- the request 502 can be a subsequent request to a different site on the Domain 1, e.g., Company A Consumer Reviews Site on Domain 1.
- the domain authorization data is associated Domain 1, for either of these requests the client browser 402 can submit the domain authorization data with the request.
- the state manager 116a can determine that the client browser 402 is in the AD state 308 for Domain 1 because the client browser 402 submitted domain authorization data with the request.
- the state manager 116a identifies the request as a request from a client browser in the AD state 308, the state manager 116a allows the request without further authorization or authentication. For example, because the client browser is in the AD state 308 for Domain 1, the state manager 116a forwards a request for the URL to the target site 404, e.g., request 504, after stripping the domain authorization data, e.g., the data of the Authorization Token for Domain 1. The target site 404 can then respond to the client browser 402 through the processing node 110, e.g., response 506 and response 508.
- the target site 404 can then respond to the client browser 402 through the processing node 110, e.g., response 506 and response 508.
- Fig. 6 is an example timing diagram 600 for the management of a request to an unauthorized domain by an authorized user by the state manager 116a.
- the processing node 110 processes a request for a domain from a client browser in the AU state 306.
- the processing node 110 is able to process the request without requesting authentication from the client browser, and the authorization is obtained in one transaction with the processing node.
- the client browser 402 can request content from a target site 608 that is on a different domain than the domain of the AD state 308.
- the client browser 402 can also be in the AU state 306 only, and not in the AD state 308 for any domain.
- the client browser may be in the AD state 308 for Domain 1 when the client browser 402 submits a request for content from Domain 2.
- the client browser 402 can be in the AU state 306 only and not in the AD state 308 for any domain.
- the state manager 116a of the processing node 110 can recognize that the client browser 402 is not in the AD state 308 for the requested domain of target site 620 based on the data passed with the request. For example, because the client browser 402 is not in the AD state 308 for the Domain 2, the client browser 402 does not have any domain authorization data to submit with the request 602. Based on the lack domain authorization data for Domain 2 submitted with request 602, the state manager 116a of the processing node 110 can determine that the client browser 402 is not in the AD state 308 for the Domain 2.
- the state manager 116a can then determine whether the client browser 402 is in the AU state by soliciting domain authorization data for the domain of the state manager 116a, e.g., the domain of the processing node 110. For example, the state manager 116a can send a response 604 to the client browser 402, which requires the client browser 402 to send a redirected request to the processing node 110. Because the client browser 402 has authorized user data for the domain of the processing node 110, the client browser 402 can submit the authorized user data with redirected request 606. Based on the authorized user data submitted with the request 606, the state manager 116a can determine that the client browser 402 is in the AU state 306.
- the state manager 116a can handle the request from the client browser 402 as it would any request from a client browser in the AU state 306.
- the state manager 116a can redirect the client browser 402 to submit a request to the target site 620 with the domain authorization data passed as a query parameter.
- the state manager 116a can send response 608 back to the client browser 402.
- the response 608 redirects the client browser 402 to request the content directly from the target site 606, e.g., Company B Site on Domain 2.
- the state manager 116a can process the request, and forward it to the target site 606.
- the client browser 402 can submit the request 610 to the Company B Site on Domain 2 as required by the response 608.
- the state manager 116a at the processing node 110 can process the request 610, and forward it to the target site 606 as request 612.
- the target site 606 can respond back to the client browser 402 through the processing node 110, and the state manager 116a can assign the client browser 402 to the AD state 308 for the domain of target site 606.
- the Company B site on Domain 2 can send response 614 to the client browser 402.
- the processing node 110 receives the response 614, and forwards the response as response 616.
- the state manager 116a can submit the domain authorization data for Domain 2 with the response 616 in the form of an http cookie. Other forms to transmit the domain authorization data can also be used.
- the client browser 402 can pass data that is associated with the domain but that is not authentication or authorization data created by the processing node 110.
- This authentication or authorization data is not data that is generated at the target domain, but rather that is generated either by or for the state manager 116a.
- the target site is a shopping site
- the client browser 402 can store as the contents of a shopping cart for the shopping site.
- the contents of the shopping cart can be passed by the client browser 402 as an http cookie with each request to the domain, along with domain authorization data for that domain.
- the http cookie for the shopping cart was generated at the domain of the target site, and is not considered authentication or authorization data.
- the domain authorization data for that domain in the request is stripped by the processing node 110, and thus the target site does not receive the domain authorization data. Accordingly, in some implementations, the domain authorization data for each domain is only transmitted between the processing node 110 and the client browser 402.
- the authentication and/or authorization data submitted by the client browser 402 with each request determines whether the client browser 402 can request content from a target site. Without authentication and authorization data, a client browser 402 cannot request content through the network. However, unauthorized client browsers may still attempt to obtain unauthorized access to the network. For example, the data can be subject to a replay attack that can compromise the security of the network. In particular, an unauthorized client browser can either attempt to fraudulently create the authentication and/or authorization data, or attempt to utilize authentication and/or authorization data that was intended for a different client browser. The incidents of replay attacks can be minimized by identifying fraudulently created authentication or authorization data and identifying the theft of authentication or authorization data. In some implementations, the epoch manager 126, the epoch processor 116b and the source processor 116c can be used to minimize these kinds of replay attacks.
- Fig. 7 is an example communication flow 700 across a secured network.
- authentication and authorization data is passed through a network that utilizes an epoch manager 126, an epoch processor 116b, and a source processor 116c to minimize the replay attacks.
- the epoch manager 126 and the epoch processor 116b can be used to identify fraudulently generated authentication or authorization data.
- the source processor 116c can be used to identify the incidents of theft of authentication or authorization data.
- authentication data 706 can be generated by the authority node 120 when the client browser 402 requests authentication. For example, if the client browser 402 submits an unauthenticated request 702 to the processing node 110, the processing node 110 may require the client browser 402 to obtain authentication. The processing node 110 can redirect the client browser 402 to the access agent 180, which can authenticate the user. In turn, the access agent 180 can provide the authority node 120 with the authenticated user data 706, e.g., authorized user credentials. For example, if a client browser 402 provides the access agent with a user ID and password that is validated, the access agent can provide the validated user ID to the authority node.
- the authority node 120 can generate authentication data 708, e.g., a user authentication ticket, based on the authenticated user data 706 provided to the authority node.
- the authentication data 708 can be transmitted through a network and allows the processing node 110 to identify the authenticated user from the authentication data 708, and in some implementations, determine the user policy associated with the authenticated user data 706.
- the epoch manager 126 can be used by the authority node 120 to encrypt the authentication data 708 using a public epoch key of an epoch key pair.
- the epoch manager 126 can reduce the ability of an unauthorized client browser to synthetically generate the encrypted authentication data 708 by maintaining the epoch key pair only for a defined epoch.
- An epoch can be a period of time, a number of processed requests, or any other measurement of a period.
- An epoch ID 712 can be any quasi-unique or unique value that identifies a specific epoch.
- the authority node For each epoch, the authority node creates an epoch key pair.
- the epoch key pair includes a private epoch key and a public epoch key, e.g., public key 704. Data encrypted by a private epoch key can only be decrypted by the public epoch key for the same epoch as the private epoch key.
- a new epoch key pair is created that is used to encrypt the authentication data 708.
- the authority node 120 creates epoch key pair 1.
- the authority node 120 can use the private epoch key of epoch 1 to generate encrypted authentication data 708 during epoch 1.
- the authentication data 708 generated during epoch 1 can only be decrypted by the public epoch key of epoch 1.
- the epoch manager 126 modifies the authenticated user data 706 before generating the authentication data 708.
- the epoch manager 126 can associate an epoch ID 712 for the current epoch with the authenticated user data 706 to generate associated authenticated user data.
- the associated authenticated user data can be used to create an encrypted authentication data 708 that is associated with the current epoch.
- the authentication data 708 can be associated with the epoch during it was created.
- the associated authenticated user data is "UserA”
- the associated authenticated user data would be a combination of the authenticated user data and the epoch ID, e.g., "UserA1.”
- the associated authenticated user data during epoch 2 would be "UserA2.”
- the associated authenticated user data can be encrypted to generate the authentication data 708. Other combination schemes can also be used.
- the authentication data 708 can only be decrypted by the public epoch key, e.g., public key 704, for the same epoch as the private epoch key that was used to encrypt the authenticated user data. Additionally, after the authentication data 708 is decrypted, the resulting data can be the authenticated user data 706 followed by an epoch ID 712 of the period in which the authentication data 708 was encrypted. This generation of authentication data 708 that is associated with an epoch reduces the ability to create fraudulent authentication data 708. Because the authentication data 708 can be the basis of the authorization data 710, e.g., the authorized user data and the domain authorization data, the authorization data is also difficult to fraudulently create. Fraudulently created authentication data 708 or authorization data 710 can be identified by the epoch processor 116b.
- the epoch processor 116b can be at the processing node 110, and thus can be used to identify fraudulently created authentication data 708 or authorization data 710 submitted with a request.
- the epoch manager 126 After the epoch manager 126 generates an epoch key pair, the epoch manager 126 transmits the public epoch key 704 of the epoch key pair to the epoch processor 116b of the processing node 110.
- the epoch ID 712 of the public epoch key 704 is also transmitted to the epoch processor 116b.
- the authority node 120 transmits the authentication data 708 back to the access agent 180 to be stored by the client browser 402.
- the epoch processor 116b of the processing node 110 analyzes the data.
- the epoch processor 116b attempts to decrypt the data using a valid public epoch key stored at the epoch processor 116b.
- the epoch processor 116b can try to decrypt authentication data 708 or authorization data 710 using the public epoch key 704 for epoch 1.
- a valid public epoch key is the current public epoch key 704 stored at the epoch processor 116b.
- a public epoch key is a valid public epoch key if the public epoch key was generated within some defined range of epochs of the current public epoch key. This epoch window allows authenticated users that have not accessed the processing node 110 for a time period less than the epoch window to not be required to re-authenticate if their current authentication data 708 or authorization data 710 is encrypted according to a previous epoch within the epoch window.
- the epoch processor 116b can attempt to decrypt the data using any valid public epoch key. For example, if the range of valid epochs is three epochs, then during the epoch 3, the public epoch keys of epoch 2 and epoch 1 remain valid. Thus, If the range of valid epochs is three epochs, and the epoch processor 116b can attempt to decrypt the data using the public epoch key of the epoch 1, epoch 2, and epoch 3, even though the current epoch is epoch 3. However, the public epoch key of epoch 1 is not used to decrypt the data when the current epoch is the epoch 4.
- Some fraudulently created authentication data 708 or authorization data 710 can be identified by failed decryptions. However, it is possible for an unauthorized user to fraudulently generate authentication data 708 or authorization data 710 that is decrypted by a valid public epoch key. In this scenario, the epoch processor 116b will attempt to parse the decrypted value into user authorization data and an epoch ID.
- the epoch processor 116b If the epoch processor 116b is able to parse an epoch ID from the decrypted data, the epoch ID parsed from the decrypted value must match the epoch ID attributed to the public epoch key that was used to decrypt the data. If the user epoch ID parsed from the decrypted does not match the key epoch ID, i.e., the epoch ID attribute to the public epoch key, the decryption is not successful and the epoch processor 116b does not accept the authorization data 708 or authentication data 710.
- an unauthorized client browser may have been able to create encrypted authorization data that when decrypted by the public epoch key of epoch 5, produces an authenticated user ID "UserA.”
- the value "UserA” cannot be parsed to identify the epoch ID of "5.”
- the decryption by the epoch processor 116b fails.
- the encrypted authorization data can be decrypted by the public epoch key 704 of epoch 5 to produce the user ID "UserA1
- the user epoch ID parsed from the decrypted data is 1.
- the user epoch ID does not match the epoch ID of 5 that was attributed to the public key that was used to decrypt the data.
- the decryption by the epoch processor 116b fails.
- the epoch processor 116b can modify the authentication data 708 to associate the authentication data 708 with the current public epoch key.
- any authorization data 710 based on the authentication data 708 can be modified as well. This modification of the epoch associated with the authentication and authorization data can be done by the epoch processor 116b without requiring a reauthentication by the client browser.
- the epoch processor 116b can receive authentication data 708 or authorization data 710 that can be successfully decrypted by the public epoch key of epoch 1. If the current public epoch key is of epoch 2, the epoch processor 116b can request an updated authentication data 708 for the epoch 2 from the access agent 180 or the authority node 120. The epoch processor 116b can then reissue the authentication data 708 or authorization data 710 for the user for the current epoch.
- An unauthorized client browser can attempt to intercept authorization data 710 intended for the client browser 402 or the processing node 110. The unauthorized client browser can then attempt to transmit the improperly obtained authorization data 710 on behalf of the unauthorized client, in an attempt to bypass the authorization requirements of the processing node 110. This type of theft can be prevented using the source processor 116c of the processing node 110.
- the source processor 116c utilizes an associate token 714 to maintain the source an initial request for authentication, and can require subsequent requests for authorization to originate from the same source as the initial request.
- the source processor 116c can identify the source of the authentication data 708 received by the processing node. For example, when the authentication data 708 is transmitted by the client browser 402 to the processing node 110, a unique communication address of the client browser 402 can be determined by the source processor 116c, e.g., the port number the client browser 402 communicates on, the MAC address of the client browser 402, etc.
- the source processor 116c can associate the communication address identified by the source processor 116c with the authentication data 708 that was transmitted in the initial request. For example, the source processor 116c can create a token containing the port number the client browser 402 uses to communicate to the processing node 110, and the authentication data 708. The data associated together by the source processor 116c can be encrypted to generate an associate token 714. The associate token 714 can be provided to the client browser 402 by the processing node 110, along with the authorization data 710 that is provided by the processing node 110.
- Subsequent requests to the processing node 110 must contain the associate token 714. If the associate token 714 is not transmitted with a subsequent request, authorization is not granted by the processing node 110. If the associate token 714 is transmitted with the subsequent authorization, but the communication address specified in the associate token 714 does not match the communication address from which the subsequent request was transmitted, authorization is not granted.
- the source processor 116c may only grant authorization where an authorized request is sent from the same communication address that requested the authentication.
- Fig. 8A is a flow diagram of an example process 800 for preventing authorization data from being improperly obtained.
- the process 800 can, for example, be implemented by the source processor 116c of Fig. 1 , and as described in Fig. 7 .
- Stage 802 receives a request for a domain from a client browser.
- the source processor 116c can receive a URL request from a client browser.
- the URL points to a domain.
- the source processor 116c can receive a request for a domain.
- Stage 804 identifies authorized user data associated with the request.
- the source processor 116c can identify any authorized user data transmitted with the request for the domain.
- Stage 806 identifies the communication address of the request.
- the source processor 116c can identify the port that the client browser 402 uses to communicated with the source processor 116c.
- Stage 808 associates the communication address of the request with the authorized user data.
- the source processor 116c associates the identified port with the authorization data transmitted in the request.
- Stage 810 encrypts the authorized user data and the associated communication address of the request to generate associated authorization data.
- the source processor 116c encrypts into the associate token the authorization data and the port associated with the authorization data.
- Stage 810 provides the associated authorization data to the client browser at the communication address of the request.
- the source processor 116c provides the associate token to the client browser 402 at the identified port.
- Fig. 8B is a flow diagram of an example process 850 for preventing authorization data from being improperly obtained.
- the process 850 can, for example, be implemented by the source processor 116c of Fig. 1 , and as described in Fig. 7 .
- Stage 852 receives a request for a domain from a client browser and associated authorization data.
- the source processor 116c can receive a request for a URL request from a client browser. The URL points to a domain.
- the source processor 116c can receive a request for a domain.
- the source processor 116c can also receive with the request an associate token that is comprised of associated authorization data.
- Stage 854 identifies a source communication address associated with the client browser.
- the source processor 116c can identify the port that the client browser 402 uses to communicated with the source processor 116c.
- Stage 856 decrypts the associated authorization data into authorized user data and a request communication address.
- the source processor 116c can decrypt the associate token into authorized user data, e.g., authorization data, and a request communication address, e.g., a port associated with the authorization data.
- Stage 858 determines whether the source communication address is the same as the request communication address. For example, the source processor 116c can compare the port identified by stage 854 with the port identified by stage 856.
- stage 860 allows the request. For example, if the source processor 116c determines that the port identified by stage 854 is the same as the port identified by stage 856, then the request is allowed.
- stage 862 requests user authorization from the client browser at the request communication address. For example, if the source processor 116c determines that the port identified by stage 854 is not the same as the port identified by stage 856, then source processor 116c can request authorization from the client browser 402. In some implementations, the source processor 116c can trigger an external security service, e.g., the access agent 180 or the authority node 120, to obtain authorization from the client browser 402.
- an external security service e.g., the access agent 180 or the authority node 120
- Fig. 9 is a flow diagram of an example process 900 for generating authentication data associated with an epoch.
- the process 900 can, for example, be implemented by the epoch manager 126 of Fig. 1 , and as described in Fig. 7 .
- Stage 902 receives authenticated user data at an authority node.
- the epoch manager 126 can receive authenticated user credentials at the authority node 120.
- Stage 904 defines a plurality of epochs.
- the epoch manager 126 can define that every fifteen minute interval is associated with an epoch.
- Each epoch can be identified by an identifier.
- the first fifteen minute interval is epoch 1, followed by epoch 2, etc.
- Stage 906 associates the authenticated user data with the current epoch.
- the epoch manager 126 can associate the user credentials with the current fifteen minute interval. If the current interval is the second fifteen minute interval, the epoch manager can accomplish this by associating the user credentials with epoch 2.
- Stage 908 obtains an epoch key pair for the current epoch.
- the epoch manager 126 can generate an epoch key pair for each epoch.
- the epoch manager 126 can obtain the epoch key pair for epoch 2.
- Stage 910 encrypts the associated authenticated data with a private epoch key for the current epoch to generate authentication data.
- the epoch manager 126 can use the private epoch key for epoch 2 to encrypt the association from stage 906.
- the encrypted association can become the authentication data associated with epoch 2.
- Stage 912 provides a public epoch key for the current epoch and the authentication data to an external security service.
- the epoch manager 126 can provide the public epoch key for epoch 2 to the processing node 110, which is a component of the external security service.
- the epoch manager 126 can provide the authentication data associated with epoch 2 to the access agent 180 or the processing node 110.
- Stage 914 determines if the current epoch has expired. For example, the epoch manager 126 can determine that the second fifteen minute interval has expired, and that the third fifteen minute interval is the new current epoch, i.e., epoch 3.
- stage 914 determines that the current epoch has not expired, stage 914 continues to monitor the current epoch to determine when the epoch does expire.
- the epoch manager 126 of Fig. 1 can continue to execute the stage 914 as defined above.
- stage 912 obtains a new epoch key pair for the new epoch.
- the epoch manager 126 can obtain a new epoch key pair for epoch 3.
- Stage 918 associated the authenticated user data with the new epoch.
- the epoch manager 126 can associate the user credentials with the third fifteen minute interval. The epoch manager can accomplish this by associating the user credentials with epoch 3.
- Stage 920 then encrypts the associated authentication data with a new private epoch key for the new epoch to generate new authentication data.
- the epoch manager 126 can use the private epoch key for epoch 3 to encrypt the association from stage 918.
- the encrypted association can become the authentication data associated with epoch 3.
- Stage 922 then provides a new public epoch key for the new epoch and the new authentication data to an external security service.
- the epoch manager 126 can provide the public epoch key for epoch 3 to the processing node 110, which is a component of the external security service.
- the epoch manager 126 can provide the authentication data associated with epoch 3 to the access agent 180 or the processing node 110.
- Fig. 10 is a flow diagram of an example process 1000 for handling authentication data associated with an epoch.
- the process 1000 can, for example, be implemented by the epoch processor 116b of Fig. 1 , and as described in Fig. 7 .
- Stage 1002 receive a public epoch key.
- the epoch processor 116b can receive a public epoch key for an epoch.
- the epoch processor 116b can also receive as an attribute of the public epoch key an epoch ID.
- the epoch ID can identify the epoch in which the public epoch key (and a corresponding private epoch key) was created.
- Stage 1004 receives authorized user data.
- the epoch processor 116b can receive authorized user data in the form of an authorization token.
- Stage 1006 decrypts the authorized user data with the public epoch key.
- the epoch processor 116b can use the public epoch key it received in stage 1002 to decrypt the authorized user data from the authorization token received in stage 1004.
- Stage 1008 determines if the decryption of stage 1006 was valid. For example, if the epoch processor 116b can decrypt the authorized user data using the public epoch key of stage 1002, the decryption of stage 1006 was valid. If the epoch processor 116b is unable to decrypt the authorized user data using the public epoch key of stage 1002, the decryption of stage 1006 is not valid.
- stage 1010 determines if the decrypted data contains a valid epoch ID. For example, if the decrypted value that resulted from the decryption of stage 1006 can be parsed to identify an epoch ID, e.g. a user epoch ID, the epoch processor 116b can determine whether the user epoch ID is the same as the epoch ID of the public key, e.g., the key epoch ID, that was used to decrypt the data. If the user epoch ID is the same and the key epoch ID, stage 1010 determines that the decrypted data contains a valid epoch ID. If the user epoch ID is not the same as the key epoch ID, stage 1010 determines that the decrypted data does not contain a valid epoch ID.
- an epoch ID e.g. a user epoch ID
- the epoch processor 116b can determine whether
- stage 1012 allows the request. For example, where the user epoch ID is the same as the key epoch ID, the epoch processor 116b can determine that the authorized user data is not fraudulent and allow the request.
- stage 1014 attempts to decrypt the authorized user data with previous public epoch keys in the range of valid epochs.
- the epoch processor 116b can use a previous public epoch key stored at the epoch processor 116b to decrypt the authorized user data from the authorization token received in stage 1004.
- a previous public epoch key can be used if the previous epoch key pair was generated within a range of valid epochs.
- Stage 1016 determines if the decryption of stage 1014 was valid. For example, if the epoch processor 116b can decrypt the authorized user data using a previous public epoch stored at the epoch processor 116b, the decryption of stage 1014 was valid. If the epoch processor 116b is unable to decrypt the authorized user data using a previous public epoch key stored at the epoch processor, the decryption of stage 1014 is not valid.
- stage 1020 determines if the decrypted data contains a valid epoch ID. For example, if the decrypted value that resulted from the decryption of stage 1014 can be parsed to identify an epoch ID, e.g. a user epoch ID, the epoch processor 116b can determine whether the user epoch ID is within an acceptable range of epochs as the epoch ID of the public epoch key, e.g., the key epoch ID, that was used to decrypt the data.
- an epoch ID e.g. a user epoch ID
- the epoch processor 116b can determine whether the user epoch ID is within an acceptable range of epochs as the epoch ID of the public epoch key, e.g., the key epoch ID, that was used to decrypt the data.
- stage 1020 determines that the decrypted data contains a valid epoch ID. If the user epoch ID is not the within an acceptable range of epochs as the key epoch ID, stage 1020 determines that the decrypted data does not contain a valid epoch ID.
- stage 1022 renews the authorized user data. For example, if the epoch processor 116b can determine that the decrypted data contains a valid epoch ID using a previous public epoch key, the authorized user data is associated with a previous epoch ID that is still valid.
- the epoch processor 116b can request the access agent 180 or the authority node 120 to provide a current authorized user data associated with the current epoch.
- the epoch processor 116b substitute the authorized user data received at stage 1004 with the current authorized user associated with the current epoch.
- Stage 1024 then allows the request.
- the epoch processor 116b has determined that the authorized user data is not fraudulent, and can allow the request.
- stage 1010 determines that the decrypted data of stage 1006 does not contain a valid epoch ID, or if stage 1020 determines that the decrypted data of stage 1016 does not contain a valid ID, stage 1018 reauthorizes the user. For example, if the epoch processor 116b has determined that the decrypted data does not contain an valid ID, the epoch processor 116b can require reauthorization by the user.
- Fig. 11 is a flow diagram of an example process for handling authorized and unauthorized requests at a processing node.
- the process 1100 can, for example, be implemented by the state manager 116a of Fig. 1 , and as described in Fig. 4-6 .
- Stage 1102 receives a request for a domain.
- the stage manager 116a can receive a request for a New Site 1 at Domain N.
- Stage 1104 determines whether the request includes domain authorization data. For example, the state manager 116a can determine whether the request included domain authorization data for Domain N.
- stage 1106 allows the request. For example, if the state manager 116a determines that the request includes domain authorization data for Domain N, the state manager 116a can allow the request to Domain N for New Site 1.
- stage 1108 requests authorized user data from the client browser 402. For example, if the state manager 116a determines that the request did not includes domain authorization data for Domain N, the state manager 116a can request authorized user data from the client browser 402.
- Stage 1110 determines whether the client browser 402 provided authorized user data. For example, the state manager 116a can determine if the client browser provided the authorized user data.
- stage 1112 If stage 1110 determines that client browser 402 provided authorized user data, stage 1112 generates domain authorization data. For example, if the state manager 116a determines that the client browser provided user authorization data, the state manager 116a can generate domain authorization data for Domain N based on the authorized user data.
- Stage 1114 allows the request.
- the state manager 116a can allow the request to Domain N for New Site 1.
- Stage 1116 then provides the domain authorization data to the client browser.
- the state manager 116a can provide domain authorization data to the client browser 402 with the response from Domain N.
- stage 1118 requests user authorization from the client browser. For example, if the state manager 116a determines that the client browser 402 did not provide authorized user data, the state manager 1116a can request authorization from the client browser 402. In some implementations, the state manager 116a can trigger an external security service, e.g., the access agent 180 or the authority node 120, to obtain authorization from the client browser 402.
- an external security service e.g., the access agent 180 or the authority node 120
- Embodiments of the subject matter and the functional operations described in this specification can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structures disclosed in this specification and their structural equivalents, or in combinations of one or more of them.
- the computer readable medium can be a machine readable storage device, a machine readable storage substrate, a memory device, a composition of matter effecting a machine readable propagated signal, or a combination of one or more of them.
- a computer program (also known as a program, software, software application, script, manager, processor, or code) can be written in any form of programming language, including compiled or interpreted languages, or declarative or procedural languages, and it can be deployed in any form, including as a stand alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment.
- a computer program does not necessarily correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks.
- a computer need not have such devices.
- Computer readable media suitable for storing computer program instructions and data include all forms of non volatile memory, media and memory devices, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto optical disks; and CD ROM and DVD ROM disks.
- semiconductor memory devices e.g., EPROM, EEPROM, and flash memory devices
- magnetic disks e.g., internal hard disks or removable disks
- magneto optical disks e.g., CD ROM and DVD ROM disks.
- the processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry.
- Embodiments of the subject matter described in this specification can be implemented in a computing system that includes a back end component, e.g., as a data server, or that includes a middleware component, e.g., an application server, or that includes a front end component, e.g., a client computer having a graphical user interface or a Web browser through which a user can interact with an implementation of the subject matter described is this specification, or any combination of one or more such back end, middleware, or front end components.
- the components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet.
- LAN local area network
- WAN wide area network
- the computing system can include clients and servers.
- a client and server are generally remote from each other and typically interact through a communication network.
- the relationship of client and server arises by virtue of computer programs running on the respective computers and having a client server relationship to each other.
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)
- Computer And Data Communications (AREA)
Claims (14)
- Computerimplementiertes Verfahren, das umfasst:Empfangen, an einem Verarbeitungsknoten (110), eines aktuellen öffentlichen Epoch-Keys eines aktuellen Epoch-Key-Paars, wobei ein Attribut des aktuellen öffentlichen Epoch-Keys eine aktuelle Key-Epoch-ID ist, die die aktuelle Epoche des aktuellen öffentlichen Epoch-Keys identifiziert, wobei eine Epoche eine Messung eines Zeitraums umfasst;Empfangen, an dem Verarbeitungsknoten (110), von autorisierten Nutzerdaten, die einer Anforderung von einem Nutzer nach Inhalt aus einem externen System zugeordnet sind, wobei das externe System außerhalb des Nutzers und außerhalb des Verarbeitungsknotens ist, die autorisierten Nutzerdaten auf Authentifizierungsdaten basieren, wobei sich die Authentifizierungsdaten auf eine Validierung der Benutzeridentität beziehen und wobei sich die Autorisierungsdaten auf eine Berechtigung des Nutzers zur Erledigung einer Aktion entsprechend den Sicherheitsrichtlinien beziehen, und wobei der Verarbeitungsknoten über das Internet durch einen Tunnel, einen Transparent-Proxy, einen Forward-Proxy oder durch Umleitung zu dem Verarbeitungsknoten kommunikativ mit dem Nutzer gekoppelt ist und sämtliche Kommunikationen des Nutzers durch den Verarbeitungsknoten laufen;Entschlüsseln, an dem Verarbeitungsknoten (110), der autorisierten Nutzerdaten unter Verwendung des öffentlichen Epoch-Keys;Bestimmen, ob die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war;wenn die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Identifizieren, an dem Verarbeitungsknoten (110), einer Nutzer-Epoch-ID aus den entschlüsselten autorisierten Nutzerdaten;wenn die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Bestimmen an dem Verarbeitungsknoten (110), ob die Nutzer-Epoch-ID in einem Bereich von gültigen Epoch-IDs liegt, um die Gültigkeit der Authentifizierungsdaten und der Autorisierungsdaten zu bestimmen, wobei der Bereich von gültigen Epoch-IDs eine Vielzahl von gültigen Epoch-IDs für die aktuelle Epoche und für eine vorhergehende Epoche vor der aktuellen Epoche umfasst;Bestimmen einer betrügerischen Erstellung der Authentifizierungsdaten oder der Autorisierungsdaten auf der Basis einer fehlgeschlagenen Entschlüsselung oder wenn die Entschlüsselung erfolgreich ist und die Nutzer-Epoch-ID aus der Entschlüsselung nicht die gültige Epoch-ID ist; undwenn die Nutzer-Epoch-ID im Bereich von gültigen Epoch-IDs liegt und die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Verarbeiten der entschlüsselten Nutzerdaten und der Anforderung.
- Verfahren nach Anspruch 1, bei dem eine Epoch-ID ein Zeitstempel ist.
- Verfahren nach Anspruch 1, bei dem der öffentliche Epoch-Key zum Entschlüsseln von Daten, die unter Verwendung des privaten Epoch-Keys verschlüsselt worden sind, verwendet wird.
- Verfahren nach Anspruch 1, bei dem die autorisierten Nutzerdaten in Form eines http-Cookies vorliegen.
- Verfahren nach Anspruch 1, das ferner umfasst:wenn die Entschlüsselung der autorisierten Nutzerdaten nicht erfolgreich ist, Anfordern einer Nutzerautorisierung von dem Client-Browser (402).
- Verfahren nach Anspruch 1, das ferner umfasst:wenn die Nutzer-Epoch-ID keine gültige Epoch-ID ist, Anfordern einer Nutzerautorisierung von dem Client-Browser (402).
- Verfahren nach Anspruch 1, bei dem das Verarbeiten der entschlüsselten Nutzerdaten und der Anforderung umfasst:Bestimmen an dem Verarbeitungsknoten (110) auf der Basis der Nutzerdaten, ob die Anforderung autorisiert ist;wenn die Anforderung autorisiert ist, Genehmigen der Anforderung.
- Verfahren nach Anspruch 1, bei dem das Bestimmen an einem Verarbeitungsknoten (110), ob die Nutzer-Epoch-ID eine gültige Epoch-ID ist, das Bestimmen an dem Verarbeitungsknoten (110), umfasst, ob die Nutzer-Epoch-ID die aktuelle Epoch-ID ist.
- Verfahren nach Anspruch 1, bei dem das Bestimmen an einem Verarbeitungsknoten (110), ob die Nutzer-Epoch-ID eine gültige Epoch-ID ist, das Bestimmen an dem Verarbeitungsknoten (110), umfasst, ob bestimmt worden ist, dass die Nutzer-Epoch-ID in einem Bereich von gültigen Epoch-IDs liegt.
- Verfahren nach Anspruch 1, bei dem der Bereich von gültigen Epoch-IDs die aktuelle Epoch-ID und eine Epoch-ID einer Epoche vor der aktuellen Epoche umfasst.
- Verfahren nach Anspruch 9, bei dem das Verarbeiten der entschlüsselten Nutzerdaten und der Anforderung umfasst:Bestimmen, ob die Nutzer-Epoch-ID die aktuelle Epoch-ID ist;wenn die Nutzer-Epoch-ID nicht die aktuelle Epoch-ID ist, Anfordern von aktuellen autorisierten Nutzerdaten, die der aktuellen Epoch-ID zugeordnet sind;Liefern der aktuellen autorisierten Nutzerdaten zu dem Client-Browser (402).
- Verfahren nach Anspruch 1, bei dem das Identifizieren, an dem Verarbeitungsknoten (110), einer Nutzer-Epoch-ID aus den entschlüsselten autorisierten Nutzerdaten umfasst:Identifizieren, aus den entschlüsselten autorisierten Nutzerdaten, einer vorbestimmten Zuweisung der autorisierten Nutzerdaten zu Nutzeranmeldeinformationen; undIdentifizieren der Nutzeranmeldeinformationen aus den entschlüsselten autorisierten Nutzerdaten.
- Verfahren nach Anspruch 12, das ferner umfasst:Identifizieren einer Nutzer-Epoch-ID aus dem Teil der entschlüsselten autorisierten Nutzerdaten, die nicht den Nutzeranmeldeinformationen zugewiesen sind.
- Software, die auf einem computerlesbaren Medium gespeichert ist und Anweisungen umfasst, die von einem Datenverarbeitungssystem ausführbar sind und bei einer solchen Ausführung bewirken, dass das Datenverarbeitungssystem (110) Operationen durchführt, die umfassen:Empfangen eines aktuellen öffentlichen Epoch-Keys eines aktuellen Epoch-Key-Paars, wobei ein Attribut des aktuellen öffentlichen Epoch-Keys eine aktuelle Key-Epoch-ID ist, die die aktuelle Epoche des aktuellen öffentlichen Epoch-Keys identifiziert, wobei eine Epoche eine Messung eines Zeitraums umfasst;Empfangen, von einem Nutzer, einer Anforderung nach Inhalt aus einem relativ zu dem Datenverarbeitungssystem externen System und autorisierter Nutzerdaten, die der Anforderung zugeordnet sind, wobei die autorisierten Daten auf Authentifizierungsdaten basieren, wobei sich die Authentifizierungsdaten auf eine Validierung der Benutzeridentität beziehen und wobei sich die Autorisierungsdaten auf eine Berechtigung des Nutzers zur Erledigung einer Aktion entsprechend den Sicherheitsrichtlinien beziehen;Entschlüsseln der autorisierten Nutzerdaten unter Verwendung des öffentlichen Epoch-Keys;wenn die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Identifizieren einer Nutzer-Epoch-ID aus den entschlüsselten autorisierten Nutzerdaten;wenn die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Bestimmen, ob die Nutzer-Epoch-ID in einem Bereich von gültigen Epoch-IDs liegt, um die Gültigkeit der Authentifizierungsdaten und der Autorisierungsdaten zu bestimmen, wobei der Bereich von gültigen Epoch-IDs eine Vielzahl von gültigen Epoch-IDs für die aktuelle Epoche und für eine vorhergehende Epoche vor der aktuellen Epoche umfasst;Bestimmen einer betrügerischen Erstellung der Authentifizierungsdaten oder der Autorisierungsdaten auf der Basis einer fehlgeschlagenen Entschlüsselung oder wenn die Entschlüsselung erfolgreich ist und die Nutzer-Epoch-ID aus den entschlüsselten autorisierten Nutzerdaten nicht die gültige Epoch-ID ist; undwenn die Nutzer-Epoch-ID in einem Bereich von gültigen Epoch-IDs liegt und die Entschlüsselung der autorisierten Nutzerdaten erfolgreich war, Verarbeiten der entschlüsselten Nutzerdaten und der Anforderung;wobei sich das Datenverarbeitungssystem im Internet außerhalb des externen Systems und außerhalb des Nutzers befindet und wobei das Datenverarbeitungssystem über das Internet durch einen Tunnel, einen Transparent-Proxy, einen Forward-Proxy oder durch eine Umleitung zu dem Verarbeitungsknoten kommunikativ mit dem Nutzer gekoppelt ist und sämtliche Kommunikationen des Nutzers durch das Datenverarbeitungssystem laufen.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/179,377 US8806201B2 (en) | 2008-07-24 | 2008-07-24 | HTTP authentication and authorization management |
PCT/US2009/051676 WO2010011916A2 (en) | 2008-07-24 | 2009-07-24 | Http authentication and authorization management |
Publications (3)
Publication Number | Publication Date |
---|---|
EP2311218A2 EP2311218A2 (de) | 2011-04-20 |
EP2311218A4 EP2311218A4 (de) | 2013-03-20 |
EP2311218B1 true EP2311218B1 (de) | 2018-12-26 |
Family
ID=41569695
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP09801062.2A Active EP2311218B1 (de) | 2008-07-24 | 2009-07-24 | Verwaltung von http-authentifizierung und -autorisierung |
Country Status (3)
Country | Link |
---|---|
US (1) | US8806201B2 (de) |
EP (1) | EP2311218B1 (de) |
WO (1) | WO2010011916A2 (de) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7748034B2 (en) * | 2005-10-12 | 2010-06-29 | Cisco Technology, Inc. | Strong anti-replay protection for IP traffic sent point to point or multi-cast to large groups |
US9065850B1 (en) | 2011-02-07 | 2015-06-23 | Zscaler, Inc. | Phishing detection systems and methods |
US9117061B1 (en) * | 2011-07-05 | 2015-08-25 | Symantec Corporation | Techniques for securing authentication credentials on a client device during submission in browser-based cloud applications |
JP6248641B2 (ja) * | 2014-01-15 | 2017-12-20 | 株式会社リコー | 情報処理システム及び認証方法 |
US20160330233A1 (en) * | 2015-05-07 | 2016-11-10 | Cyber-Ark Software Ltd. | Systems and Methods for Detecting and Reacting to Malicious Activity in Computer Networks |
US10135826B2 (en) | 2015-09-04 | 2018-11-20 | Cisco Technology, Inc. | Leveraging security as a service for cloud-based file sharing |
US10903999B1 (en) | 2019-09-11 | 2021-01-26 | Zscaler, Inc. | Protecting PII data from man-in-the-middle attacks in a network |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6263432B1 (en) * | 1997-10-06 | 2001-07-17 | Ncr Corporation | Electronic ticketing, authentication and/or authorization security system for internet applications |
US6779118B1 (en) * | 1998-05-04 | 2004-08-17 | Auriq Systems, Inc. | User specific automatic data redirection system |
WO1999059058A1 (fr) * | 1998-05-14 | 1999-11-18 | Sega Enterprises, Ltd. | Processeur d'informations, procede de traitement d'informations, support d'enregistrement d'informations et systeme de traitement d'informations |
JP3644579B2 (ja) * | 1998-10-29 | 2005-04-27 | 富士通株式会社 | セキュリティ強化方法及び装置 |
US6954799B2 (en) * | 2000-02-01 | 2005-10-11 | Charles Schwab & Co., Inc. | Method and apparatus for integrating distributed shared services system |
US20010044786A1 (en) * | 2000-03-14 | 2001-11-22 | Yoshihito Ishibashi | Content usage management system and method, and program providing medium therefor |
WO2001072009A2 (en) * | 2000-03-17 | 2001-09-27 | At & T Corp. | Web-based single-sign-on authentication mechanism |
AU2001259075A1 (en) * | 2000-04-17 | 2001-10-30 | Circadence Corporation | System and method for web serving |
US6961776B1 (en) * | 2000-12-22 | 2005-11-01 | Nortel Networks Limited | Architecture for multiple channel access to applications |
US6986047B2 (en) * | 2001-05-10 | 2006-01-10 | International Business Machines Corporation | Method and apparatus for serving content from a semi-trusted server |
US7231661B1 (en) * | 2001-06-21 | 2007-06-12 | Oracle International Corporation | Authorization services with external authentication |
US6993596B2 (en) * | 2001-12-19 | 2006-01-31 | International Business Machines Corporation | System and method for user enrollment in an e-community |
GB2384331A (en) * | 2002-01-19 | 2003-07-23 | Hewlett Packard Co | Access control using credentials |
US6845452B1 (en) * | 2002-03-12 | 2005-01-18 | Reactivity, Inc. | Providing security for external access to a protected computer network |
US7373662B2 (en) * | 2002-08-27 | 2008-05-13 | Hewlett-Packard Development Company, L.P. | Secure resource access |
US20040088349A1 (en) * | 2002-10-30 | 2004-05-06 | Andre Beck | Method and apparatus for providing anonymity to end-users in web transactions |
US7926103B2 (en) * | 2003-06-05 | 2011-04-12 | Hewlett-Packard Development Company, L.P. | System and method for preventing replay attacks |
KR100553273B1 (ko) * | 2003-11-14 | 2006-02-22 | 주식회사 넷츠 | 엑스트라넷 액세스제어 장치 및 방법 |
US7636941B2 (en) * | 2004-03-10 | 2009-12-22 | Microsoft Corporation | Cross-domain authentication |
JP2007528658A (ja) * | 2004-03-11 | 2007-10-11 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 改良されたドメインマネージャ及びドメイン装置 |
KR100610872B1 (ko) | 2004-05-07 | 2006-08-08 | 주식회사 케이티프리텔 | 와이파이 단말기의 사용자 서비스 인증 방법 및 장치 |
US20060021004A1 (en) * | 2004-07-21 | 2006-01-26 | International Business Machines Corporation | Method and system for externalized HTTP authentication |
KR20070083597A (ko) * | 2004-08-28 | 2007-08-24 | 스트림어웨어 엘엘씨 | 링크 분석 방법 및 시스템 |
US8141142B2 (en) * | 2005-02-14 | 2012-03-20 | International Business Machines Corporation | Secure authentication of service users of a remote service interface to a storage media |
US7650383B2 (en) * | 2005-03-15 | 2010-01-19 | Aol Llc | Electronic message system with federation of trusted senders |
US8887233B2 (en) * | 2005-04-08 | 2014-11-11 | Netapp, Inc. | Cookie-based acceleration of an authentication protocol |
US8397287B2 (en) * | 2006-08-21 | 2013-03-12 | Citrix Systems, Inc. | Method and system for authorizing a level of access of a client to a virtual private network connection, based on a client-side attribute |
US8194859B2 (en) * | 2005-09-01 | 2012-06-05 | Qualcomm Incorporated | Efficient key hierarchy for delivery of multimedia content |
KR20070108315A (ko) * | 2005-12-07 | 2007-11-09 | 한국전자통신연구원 | 서명된 콜백 유알엘 메시지를 이용한 개인정보 공유 서비스제공 장치 및 방법 |
US7904725B2 (en) * | 2006-03-02 | 2011-03-08 | Microsoft Corporation | Verification of electronic signatures |
US7936878B2 (en) * | 2006-04-10 | 2011-05-03 | Honeywell International Inc. | Secure wireless instrumentation network system |
EP2011301B1 (de) * | 2006-04-10 | 2011-06-22 | Trust Integration Services B.V. | Anordnung und verfahren zur sicheren datenübertragung |
US8086842B2 (en) * | 2006-04-21 | 2011-12-27 | Microsoft Corporation | Peer-to-peer contact exchange |
US20080195740A1 (en) * | 2007-02-12 | 2008-08-14 | Mobitv, Inc. | Maintaining session state information in a client server system |
JP4600408B2 (ja) * | 2007-03-19 | 2010-12-15 | 株式会社日立製作所 | コンテンツ再生方法及び記録再生装置 |
US8254582B2 (en) * | 2007-09-24 | 2012-08-28 | Research In Motion Limited | System and method for controlling message attachment handling functions on a mobile device |
US20090132713A1 (en) * | 2007-11-20 | 2009-05-21 | Microsoft Corporation | Single-roundtrip exchange for cross-domain data access |
US20090228357A1 (en) * | 2008-03-05 | 2009-09-10 | Bhavin Turakhia | Method and System for Displaying Relevant Commercial Content to a User |
US8045708B2 (en) * | 2008-05-21 | 2011-10-25 | Apple Inc. | Discrete key generation method and apparatus |
US8719572B2 (en) * | 2008-07-16 | 2014-05-06 | Disney Enterprises, Inc. | System and method for managing authentication cookie encryption keys |
-
2008
- 2008-07-24 US US12/179,377 patent/US8806201B2/en active Active
-
2009
- 2009-07-24 EP EP09801062.2A patent/EP2311218B1/de active Active
- 2009-07-24 WO PCT/US2009/051676 patent/WO2010011916A2/en active Application Filing
Non-Patent Citations (1)
Title |
---|
None * |
Also Published As
Publication number | Publication date |
---|---|
US20100023762A1 (en) | 2010-01-28 |
WO2010011916A2 (en) | 2010-01-28 |
EP2311218A2 (de) | 2011-04-20 |
US8806201B2 (en) | 2014-08-12 |
EP2311218A4 (de) | 2013-03-20 |
WO2010011916A3 (en) | 2010-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11368490B2 (en) | Distributed cloud-based security systems and methods | |
US10298610B2 (en) | Efficient and secure user credential store for credentials enforcement using a firewall | |
US10425387B2 (en) | Credentials enforcement using a firewall | |
US8010085B2 (en) | Traffic redirection in cloud based security services | |
US10432588B2 (en) | Systems and methods for improving HTTPS security | |
US9003186B2 (en) | HTTP authentication and authorization management | |
US7793094B2 (en) | HTTP cookie protection by a network security device | |
US8869259B1 (en) | Cloud based inspection of secure content avoiding man-in-the-middle attacks | |
US9300629B1 (en) | Password constraint enforcement used in external site authentication | |
US9154475B1 (en) | User authentication and authorization in distributed security system | |
US20030217148A1 (en) | Method and apparatus for LAN authentication on switch | |
US20080098457A1 (en) | Identity controlled data center | |
EP2311218B1 (de) | Verwaltung von http-authentifizierung und -autorisierung | |
US8656462B2 (en) | HTTP authentication and authorization management | |
US20020129239A1 (en) | System for secure communication between domains | |
CN106576050B (zh) | 三层安全和计算架构 | |
US9419800B2 (en) | Secure network systems and methods | |
Kuzminykh et al. | Mechanisms of ensuring security in Keystone service | |
US20240223534A1 (en) | Stateless cloud authentication for security services | |
CN117134907A (zh) | 安全控制方法、装置、存储介质及电子装置 | |
Ouyang et al. | MLCC: A Multi Layered Correlative Control Mechanism for the VPN Topology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20110222 |
|
AK | Designated contracting states |
Kind code of ref document: A2 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA RS |
|
DAX | Request for extension of the european patent (deleted) | ||
A4 | Supplementary search report drawn up and despatched |
Effective date: 20130214 |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 29/06 20060101AFI20130208BHEP Ipc: H04L 29/08 20060101ALI20130208BHEP Ipc: H04L 9/32 20060101ALI20130208BHEP |
|
17Q | First examination report despatched |
Effective date: 20140113 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: ZSCALER, INC. |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: EXAMINATION IS IN PROGRESS |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602009056425 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: H04L0009320000 Ipc: H04L0029060000 |
|
GRAP | Despatch of communication of intention to grant a patent |
Free format text: ORIGINAL CODE: EPIDOSNIGR1 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: GRANT OF PATENT IS INTENDED |
|
RIC1 | Information provided on ipc code assigned before grant |
Ipc: H04L 9/32 20060101ALI20180621BHEP Ipc: H04L 29/06 20060101AFI20180621BHEP Ipc: H04L 29/08 20060101ALI20180621BHEP Ipc: H04L 29/12 20060101ALI20180621BHEP |
|
INTG | Intention to grant announced |
Effective date: 20180705 |
|
GRAS | Grant fee paid |
Free format text: ORIGINAL CODE: EPIDOSNIGR3 |
|
GRAA | (expected) grant |
Free format text: ORIGINAL CODE: 0009210 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE PATENT HAS BEEN GRANTED |
|
AK | Designated contracting states |
Kind code of ref document: B1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO SE SI SK SM TR |
|
REG | Reference to a national code |
Ref country code: GB Ref legal event code: FG4D |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: EP |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: REF Ref document number: 1082955 Country of ref document: AT Kind code of ref document: T Effective date: 20190115 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R096 Ref document number: 602009056425 Country of ref document: DE |
|
REG | Reference to a national code |
Ref country code: IE Ref legal event code: FG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LV Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: HR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: FI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: BG Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190326 Ref country code: NO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190326 Ref country code: LT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: NL Ref legal event code: MP Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: LT Ref legal event code: MG4D |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: GR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190327 Ref country code: SE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: AT Ref legal event code: MK05 Ref document number: 1082955 Country of ref document: AT Kind code of ref document: T Effective date: 20181226 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: NL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: PL Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: ES Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: PT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190426 Ref country code: CZ Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: IT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: SK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: EE Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: SM Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: IS Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20190426 Ref country code: RO Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R097 Ref document number: 602009056425 Country of ref document: DE |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: AT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: DK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
PLBE | No opposition filed within time limit |
Free format text: ORIGINAL CODE: 0009261 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT |
|
26N | No opposition filed |
Effective date: 20190927 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MC Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: SI Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: CH Ref legal event code: PL |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: TR Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
REG | Reference to a national code |
Ref country code: BE Ref legal event code: MM Effective date: 20190731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: LU Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190724 Ref country code: BE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190731 Ref country code: LI Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190731 Ref country code: CH Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190731 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: IE Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES Effective date: 20190724 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: CY Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MT Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 Ref country code: HU Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT; INVALID AB INITIO Effective date: 20090724 |
|
REG | Reference to a national code |
Ref country code: DE Ref legal event code: R079 Ref document number: 602009056425 Country of ref document: DE Free format text: PREVIOUS MAIN CLASS: H04L0029060000 Ipc: H04L0065000000 |
|
PG25 | Lapsed in a contracting state [announced via postgrant information from national office to epo] |
Ref country code: MK Free format text: LAPSE BECAUSE OF FAILURE TO SUBMIT A TRANSLATION OF THE DESCRIPTION OR TO PAY THE FEE WITHIN THE PRESCRIBED TIME-LIMIT Effective date: 20181226 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: GB Payment date: 20240620 Year of fee payment: 16 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: FR Payment date: 20240619 Year of fee payment: 16 |
|
PGFP | Annual fee paid to national office [announced via postgrant information from national office to epo] |
Ref country code: DE Payment date: 20240619 Year of fee payment: 16 |