Not applicable
Not applicable
1. Field of Invention
This invention relates generally to security in computer networks.
2. Prior Art
An Identity Metasystem is a collection of interoperable computing elements on a computer network which enables users of the services provided by the network to manage and exchange their digital identities. In an Identity Metasystem, an Identity Provider is a network server responsible for authenticating users, and a Relying Party is a network server which requires an authenticated user identity in order to provide service. The Identity Metasystem defines the mechanisms that enable a Relying Party to validate that a user requesting service from that Relying Party has been previously authenticated by an Identity Provider, in which the Relying Party is a web service based on the Simple Object Access Protocol (SOAP), or web server based on the Hypertext Transfer Protocol (HTTP).
The document “A Technical Reference for the Information Card Profile V1.0”, published in December 2006 by Microsoft Corporation, describes the network communication protocols by which an Identity Selector may obtain the token requirements of a Replying Party, then authenticate to an Identity Provider, and finally send a token obtained from an Identity Provider to a Relying Party. The protocols defined in “A Technical Reference for InfoCard v1.0 in Windows” specify a protocol exchange in which the protocols defined in the documents Web Services Security: SOAP Message Security 1.0 (WS-Security 2004), Web Services Trust Language (WS-Trust), Web Services Security Policy Language (WS-SecurityPolicy) and Web Services Metadata Exchange (WS-MetadataExchange), all of which are based on the Simple Object Access Protocol (SOAP), are to be used for the communication between the Identity Selector and the Relying Party. The Simple Object. Access Protocol is typically used only between applications in a web services framework.
The document “A Guide to Supporting InfoCard v1.0 Within Web Applications and Browsers”, published in March 2006 by Microsoft Corporation, describes the network communication protocols by which an Identity Selector may obtain the token requirements of a Relying Party and send a token obtained from an Identity Provider to a Relying Party using the Hypertext Transfer Protocol (HTTP) and Hypertext Markup Language (HTML). The Hypertext Transfer Protocol is typically used by a web browser to communicate with a web server to web application.
In a local area network based on the Institute of Electrical and Electronics Engineers, Inc. (IEEE) Ethernet standards for physical and data link network layers, computer systems are typically attached to the network either through a physical cable connection to a bridge, or to a radio connection to a wireless router. In both cases, the bridge and the wireless router function as a media access control device. A media access control device implements control functions that determine whether a computer system that has been attached to a port on the device is permitted to communicate on the network. Recent devices implement the IEEE standard 802.1X-2004 Port-Based Network Access Control, which specifies how the media access control device can prevent unauthorized access by computer systems. The device, termed the authenticator, will authenticate a computer system when that computer system, termed the supplicant, connects to it. If the supplicant successfully completes authentication with the authenticator, the supplicant will then be permitted to communicate with other computer systems on the network. If the supplicant does not complete authentication, the supplicant will not be permitted to further communicate with other computer systems on the network. IEEE standard 802.1X-2004 defines an encapsulation technique to carry protocol data units (PDUs) of the Extensible Authentication Protocol (EAP) over the LAN connection between the supplicant and the authenticator.
EAP is defined in IETF RFC 3748 “Extensible Authentication Protocol (EAP)” as an authentication framework intended for use with data link protocols. Within the EAP framework, the Protected Extensible Authentication Protocol (PEAP) encapsulates the authentication information within an encrypted Transport Layer Security (TLS) tunnel between the supplicant and the authenticator.
Existing prior art implementations of 802.1X with EAP and PEAP have been designed to have the network server forward the EAP PDUs it receives from supplicants to a local authentication server (46). As illustrated in
In some prior art implementations of 802.1X with EAP, the supplicants do not have accounts on the local database, and instead, the local authentication server will forward the authentication credentials to a remote authentication server via the Remote Authentication Dial In User Service (RADIUS) protocol. This protocol requires a pre-established trust relationship between the local authentication server and the remote authentication server.
A limitation of these prior art implementations is that they do not define how a user whose computer is connecting to an access point that requires 802.1X authentication can specify their identity provider. Furthermore, these prior art implementations are limited as they require the organizations which maintain the authentication credentials of users in their user community to provide RADIUS servers accessible on the Internet to authenticate their users, and establish RADIUS trust relationships between the local authentication server and remote authentication server. Also, as the PDUs of the RADIUS protocol are carried in the UDP protocol above IP, they cannot be protected from eavesdropping or modification while in transit on the Internet using the Secure Sockets Layer (SSL) or Transport Layer Security (TLS) protocols.
This invention describes a method and system for authentication of a network supplicant when that network supplicant attaches to a media access control device. In this invention, the InfoCard protocols are carried in EAP PDUs from the supplicant to the authenticator, and then carried in SOAP and other HTTP-based protocols to the identity provider.
10 Client
12 Network supplicant
14 Identity selector
16 User
17 Relying party
18 Network access server
20 Local authentication server
22 Administrator
24 Local authentication server database
25 Identity provider
26 Identity provider responder
28 Identity provider database
30 Certification authority
40 Client
41 User
42 Network supplicant
44 Network access server
46 Local authentication server
48 Administrator
50 Database
62 EAP Expanded PDU
62 Parameter TLV PDU
64 Link IPv4 Address and Policy PDU
66 Sealed token PDU
68 Encapsulated DNS PDU
70 Encapsulated IP PDU
72 Completed PDU
240 Client computer
242 Relying party
244 Administrative console workstation computer
246 Wireless access point
248 LAN switch
252 Firewall router
254 ISP
256 Local authentication server computer
270 Identity provider
272 Administrative console workstation computer
274 ISP
276 Firewall router
278 DMZ switch
280 Internal firewall
282 Internal switch
284 Frontend web server computer
286 Application server computer
288 Database server computer
300 Computer
302 CPU
304 Hard disk interface
306 System bus
308 BIOS ROM
310 Hard disk
312 Operating system software on hard disk
314 Application software on hard disk
316 RAM
318 Operating system software in memory
320 Application software in memory
322 Network interface
324 LAN switch
340 Computer
342 CPU
344 Monitor
346 Video interface
348 System bus
350 USB interface
352 Keyboard
354 Mouse
356 Hard disk interface
358 BIOS ROM
360 Hard disk
362 Operating system on hard disk
364 Application on hard disk
366 RAM
368 Operating system in memory
370 Application in memory
372 Wireless network interface
380 Wireless access point
382 CPU
384 Flash memory
386 System bus
388 RAM
390 Wireless network interface
392 Network interface
394 LAN switch
400 Local user table
402 Identity provider table
404 Authorization table
410 User table
The components of the system described in this invention are:
The client (10) is typically a single computer system, such as a laptop or other mobile device.
The network supplicant (12) is a component of the operating system of the client (10). The supplicant will start negotiation when it is notified by the data link layer of the client that a packet has been received over an Ethernet connection from an authenticator. The network supplicant will handle the negotiation of authentication over this connection, and if the authentication is successfully completed, the authenticator will grant the client access to the network.
The identity selector (14) is a component of the operating system of the client (10). The identity provider implements the client role of the InfoCard protocols, and authenticates the user to the user's identity provider.
The network access server (18) is a component of a computer or device attached to the network of the relying party. It may be integrated with a media access control device, or alternatively a media access control device may forward EAP PDUs to the network access server. Typically in a large enterprise network there may be one or more network access servers for each network with an attached network access point, such as a wireless access point. When a supplicant connects to a port on a media access control device, the network access server will send an EAP-Request/EAP-Type=Identity PDU to the supplicant, and the supplicant will reply with an EAP-Response/EAP-Type=Identity PDU. The network access server will send this and subsequent EAP PDUs to a local authentication server (20).
The local authentication server (20) is a component of a computer or device attached to the network of the relying party.
The local authentication server database (24) can be implemented as a relational database. The tables of this database are the local user table (400), the identity provider table (402) and the authorization table (404).
The local user table (400) in the local authentication server database has one row for each user whose identity account is managed locally by the relying party. The primary key of this table is the USER UNIQUE ID column. The columns of this table are:
The identity provider table (402) in the local authentication server database has one row for each identity provider supported for use in authentication by the relying party. The primary key of this table is the IDP ID column. The columns of this table are:
The authorization table (404) in the local authentication server database has one row for each identity provider or user with special access rights in the relying party. The columns of this table are:
The identity provider responder (26) is a network service offered to relying parties by an identity provider. The behavior of this service is described in the document “A Technical Reference for the Information Card Profile V1.0”.
The identity provider database (28) can be implemented as a relational database. There is one table in this database, the user table (410).
The user table (410) in the identity provider database has one row for each user whose identity account is managed by the identity provider. The columns of this table are:
The certification authority (30) issues X.509 public key certificates to the identity provider responder and local authentication server. It is necessary for the identity provider responder and the local authentication server to have X.509 certificates for use as TLS server certificates. The identity selector needs to have a copy of the certification authority's certificate as a trusted certificate to be able to perform a validation of the identity provider responder's certificate and the local authentication server's certificate. Prior to the authentication process, the identity provider responder and the local authentication server will each have generated a public and private key pair, and the certification authority will have generated X.509 public key certificates which sign the identity and public key of each of these servers using the private key of the certification authority.
The diagram of
The client (10) can be implemented as software on the client computer (240). The client computer uses a radio link to the wireless access point (246) of the relying party.
The network access server (18) can be implemented as software running on a wireless access point (246).
The local authentication server (20) can be implemented as server software running on a local authentication server computer (256). The local authentication database (24) can be implemented as database software also running on that local authentication server computer (256).
The interface for the administrator (22) to manage the local authentication server can be implemented as software running on an administrative console workstation computer (244).
The diagram of
The identity provider responder (26) can be implemented as server software running on an application server computer (286).
The identity provider database (28) can be implemented by database software running on a database server computer (288).
The diagram of
The diagram of
The diagram of
This invention defines several PDUs which can be carried in an EAP Expanded Type PDU (60), as illustrated in
In the Link IPv4 address and policy PDU (64), the Vendor-Type is 8, and two TLV parameters are present as the Vendor-Data: a link IP address parameter of MR-Type 2 and length 4, and a policy parameter of MR-Type 8. The value of the link IP address parameter is an IP address that the client should use as its own address in encapsulated IP PDUs. The value of the policy parameter is an XML document with the structure specified by WS-SecurityPolicy.
In the Sealed token PDU (66), the Vendor-Type is 9, and one TLV parameter is present as the Vendor-Data: a sealed token parameter of MR-Type 9. The value of the sealed token parameter is an XML document based on XML Encryption, which contains an encrypted symmetric key, and a token encrypted with that symmetric key.
In the Encapsulated DNS PDU (68), the Vendor-Type is 6, and one TLV parameter is present as the Vendor-Data: a DNS parameter of MR-Type 6. The value of the DNS parameter is a DNS message, as defined by the document “DOMAIN NAMES—IMPLEMENTATION AND SPECIFICATION” (RFC 1035) by Paul Mockapetris in November 1987.
In the Encapsulated IP PDU (70), the Vendor-Type is 5, and one TLV parameter is present as the Vendor-Data: an IP parameter of MR-Type 5. The value of the IP parameter is an Internet Protocol PDU, as defined by the document “INTERNET PROTOCOL” (RFC 791) by John Postel in September 1981.
In the Completed PDU (72), the Vendor-Type is 4, and the Vendor-Data is empty.
The behavior of a client in this invention is illustrated by the flowchart of
At step 92, if the policy is not acceptable, the authentication process will have failed. Otherwise, if the policy is acceptable, at step 94 the client will establish a virtual network interface on the local system, with the local IP address set to the IP address provided in the link IP address field of the EAP Expanded PDU (64). The virtual network will advertise a default route to the Internet. While the virtual network is in place, IP packets sent to this interface will be wrapped in an encapsulated IP EAP Expanded PDU (70). DNS packets will be wrapped in an encapsulated DNS EAP Expanded PDU (68).
At step 96, the client will launch an identity selector. The identity selector will present the user with a set of InfoCards. If the policy sent by the network access server included a set of required claims, only those cards meeting those claims will be displayed. If the policy sent by the network access server included a list of identity providers, only InfoCards issued by one of those identity providers will be displayed. At step 104, if no cards meet the requirements, or the user does not select a card and cancels the interaction, then the authentication process will have failed.
Otherwise, at step 105, the identity selector will establish a connection to the identity provider over the virtual interface. At step 106, if the identity provider is not available, then the authentication process will have failed. At step 108, the identity selector will authenticate the user at the identity provider, and provide the public key of the local authentication server obtained from the TLS certificate. If the identity provider indicates that the user could not be authenticated, then at step 110 the authentication process will fail.
If the authentication is successful, then at step 112 the identity selector will obtain from the identity provider, using the WS-Trust protocol, a token sealed for the local authentication server. At step 114, the client will then terminate the encapsulated network interface. At step 118, if no sealed token was returned, then the authentication process will have failed.
If a sealed token was returned, then at step 120 the client will send the sealed token to the local authentication server using an EAP Expanded request with a “sealed token” parameter (66). At step 122, if the local authentication server responds with an EAP Expanded response with a completed parameter (72), then at step 124 the client will terminate the TLS channel and await an EAP Success message. At step 126, if the EAP Success message is received, the authentication has succeeded and the 802.1x process will complete successfully. If however the local authentication server did not send an EAP Expanded response with a completed parameter (74), or did not send an EAP Success message before a timeout is reached, then the authentication process will have failed.
The behavior of a listening thread in a local authentication server is illustrated by the flowchart of
The behavior of an association thread in a local authentication server is illustrated by the flowchart of
If the client identity is not found for a local user, then at step 168 the thread will negotiate the PEAP and PEAP-TLS mechanisms. In the negotiation procedure, the thread will send an EAP-Request/EAP-Type=PEAP PDU with version=2, PEAP Start, and S bit set to the supplicant; the supplicant will reply with an EAP-Response/EAP-Type=PEAP PDU with version=2 and a TLS client_hello; the thread will send an EAP-Request/EAP-Type=PEAP PDU with version=2, a TLS server_hello, a TLS certificate, a TLS server_hello_done; the supplicant will reply with an EAP-Response/EAP-Type=PEAP PDU with version=2, with a TLS client_key_exchange, a TLS change_cipher_spec, and a TLS finished. At step 170, if the TLS channel could not be established, then at step 172 the thread will fail the authentication.
At step 174, the thread will complete the TLS negotiation and send the authentication policy and IP address to the client. The thread will send an EAP-Request/EAP-Type=PEAP PDU with a TLS change_cipher_spec and a TLS finished, and within the TLS channel, an EAP-Payload TLV with a EAP-Request/EAP-Type=EXPANDED, with two parameters: a link IP address parameter, and a policy parameter (64). At step 182, the thread will establish an encapsulation tunnel for the client using a network address translation, and start a timer.
At step 184, the thread will wait for incoming EAP PDUs, incoming PDUs from the Internet that are replies from earlier requests, or a timer expiration event. At step 188, the thread will check whether the incoming PDU is an encapsulated DNS query (68) received from the client. If it is, then at step 190 the thread will perform a DNS lookup as requested by the client, and respond to the client. At step 192, the thread will check whether the incoming PDU is an encapsulated IP packet (70). If it is, then at step 194 the thread will send the contents of the PDU to the Internet (194). At step 196, the thread will check whether the incoming PDU was received from the Internet. If it is, then at step 198 the thread will encapsulate the IP packet (70) and send it to the supplicant.
If the thread receives a sealed token PDU (66) from the client, an error occurred, or the thread timed out the association, then at step 200 the thread will terminate the encapsulation tunnel. If the thread timed out the association, then the thread will terminate the TLS channel and fail the authentication. Otherwise, at step 212 the thread will unseal and parse the token. The sealed token is an XML document based on XML Encryption, which contains an encrypted symmetric key, and a token encrypted with that symmetric key. The thread will decrypt the symmetric key, using the private key for its TLS certificate's public key. The thread will next decrypt the token using this symmetric key. The token is a Security Assertion Markup Language (SAML) assertion, in a format defined in the document “Assertions and Protocols for the OASIS Security Assertion Markup Language (SAML) V2.0”, edited by Scott Cantor, John Kemp, Rob Philpott and Eve Maler. At step 213, the thread will validate the SAML assertion. The thread will lookup the identity provider in the identity provider table (402) by finding a row in which the issuer attribute of the SAML assertion matches a value in the ISSUER URL column. If the token could not be decoded, the assertion is not properly formatted, or is not from a recognized identity provider, then at step 214 the thread will terminate the TLS channel and fail the authentication. At step 216, the thread will check the user's identity and authorization, by looking for a row in the authorization table (404) in which the identity provider unique identifier from the identity provider table matches a value of the IDP ID column, and a row in the authorization table in which the identity provider unique identifier from the identity provider table matches a value of the IDP ID column and the user unique identifier supplied by the identity provider in the SAML assertion matches a value of the USER ID column. At step 218, if the thread could not locate rows which grant access rights to the user, or the access rights do not permit authentication upon network attachment, then the thread will terminate the TLS channel and fail the authentication. Otherwise, at step 220, the thread will send a completion message (72) to the client and terminate the TLS channel. At step 224, the thread will send an EAP Success PDU to the client and complete the authentication, signaling to the network access server to allow the client access to the network.
Many different embodiments of this invention may be constructed without departing from the scope of this invention. While this invention is described with reference to various implementations and exploitations, and in particular with respect to systems for authentication in computer networks, it will be understood that these embodiments are illustrative and that the scope of the invention is not limited to them.
This application claims the benefit of PPA Ser. No. 60/906,102 filed Mar. 9, 2007 by the present inventor, which is incorporated by reference.
Number | Date | Country | |
---|---|---|---|
60906102 | Mar 2007 | US |