The present invention provides method and associated processor for authentication, e.g., log-in, with a remote application server by the processor of a user equipment, including: by the processor, achieving a bootstrapping authorization with a remote operator, obtaining a username and a password for logging in the remote application server according to the bootstrapping authorization, composing a log-in message according to the username and the password, and sending the log-in message to the remote application server.
|
7. A method for authentication with a remote application server by a processor of a user equipment, comprising:
by the processor, sending a first request to log in the remote application server;
receiving a challenge from the remote application server;
after receiving the challenge, sending a second request to a remote operator different from the remote application server, and receiving an operator response generated by the remote operator in response to the second request; wherein the operator response includes a lifetime value and a bootstrapping identifier;
according to the operator response, obtaining a username and a password for logging in the remote application server; wherein the username is obtained according to the bootstrapping identifier;
composing a log-in message according to the username and the password; and
by sending the log-in message to the remote application server, causing the remote application server to:
request and receive a verification response from the remote operator;
calculate an expected log-in response based on said verification response from the remote operator; and
verify log-in of the user equipment by comparing the expected log-in response and a received log-in response included in the log-in message.
13. A method for a network system which comprises a user equipment, a remote operator and a remote application server, and the method comprising:
by the user equipment, sending a first request to log in the remote application server;
by the remote application server, sending a challenge for bootstrapping to the user equipment;
by the user equipment, sending a second request to the remote operator after receiving the challenge; receiving an operator response generated by the remote operator in response to the second request; obtaining a username and a password according to the operator response for logging in the remote application server, wherein the operator response includes a lifetime value and a bootstrapping identifier, and the username is obtained according to the bootstrapping identifier; composing a log-in message according to the username and the password; and
by sending the log-in message to the remote application server, causing the remote application server to: request and receive a verification response from the remote operator, calculate an expected log-in response based on said verification response from the remote operator, and verify log-in of the user equipment by comparing the expected log-in response and a received log-in response included in the log-in message.
1. A processor for a user equipment, comprising:
an interface circuit, and
a processing unit coupled to the interface circuit, and arranged to:
via the interface circuit, send a first request to log in a remote application server;
receive a challenge from the remote application server;
after receiving the challenge, send a second request to a remote operator different from the remote application server, and receive an operator response generated by the remote operator in response to the second request; wherein the operator response includes a lifetime value and a bootstrapping identifier;
according to the operator response, obtain a username and a password for logging in the remote application server; wherein the username is obtained according to the bootstrapping identifier;
compose a log-in message according to the username and the password; and
by sending the log-in message to the remote application server via the interface circuit, cause the remote application server to:
request and receive a verification response from the remote operator;
calculate an expected log-in response based on said verification response from the remote operator; and
verify log-in of the user equipment by comparing the expected log-in response and a received log-in response included in said log-in message.
2. The processor of
after receiving the challenge and before sending the second request, send an authentication request to the remote operator via the interface circuit;
receive an unauthorized response from the remote operator via the interface circuit; and
compose the second request according to the unauthorized response.
3. The processor of
deriving a bootstrapping response according to the unauthorized response; and
including the bootstrapping response in a digest of the second request.
4. The processor of
5. The processor of
6. The processor of
8. The method of
by the processor, after receiving the challenge and before sending the second request, sending an authentication request to the remote operator;
receiving an unauthorized response from the remote operator; and
composing the second request according to the unauthorized response.
9. The method of
by the processor, deriving a bootstrapping response according to the unauthorized request; and
including the bootstrapping response in a digest of the second request.
10. The method of
11. The method of
12. The method of
14. The method of
15. The method of
16. The method of
|
The present invention relates to method and associated processor for authentication, and more particularly, to method and associated processor of a user equipment enabling the processor to perform authentication (e.g., log-in) with a remote application server by leveraging bootstrapping of a remote operator.
Modern life has been enriched and facilitated by various network services, such as social networking services, messenger services, real-time chatting services, on-line shopping, trading and/or bidding services, mail services, calendar and scheduling services, media streaming services, news broadcasting and/or feeding services, forum services, gaming services, cloud storage and/or file sharing services, search engine services, knowledge management and/or learning services, on-line payment, financial and/or banking services, language translation services, monitoring and surveillance services, anti-virus services, locating and navigating services, as well as public government services. As a network service is implemented by a remote application server, a user utilizes a user equipment to communicate with the application server; for example, the user equipment may be a mobile phone, a tablet, a wearable device, etc.
Because network service may be personalized and customized respectively for different users, a user may need to be authenticated by an application server to be identified, and then be allowed to access one's own personalized network service provided by the application server. Prior art for a user to be authenticated by an application server requires the user to log in by manually inputting a username (user identity) and a password, which are embedded in a log-in request message and sent to the application server by a user equipment of the user.
However, as each one of various network services requires a username-password set, a user needs many username-password sets respectively for many network services. It is difficult, inconvenient and infeasible for a user to remember many username-password sets. A user may choose to use a same username-password set for all network services, but will suffer potential security issues; for example, if one of the network services is compromised to leak the username-password set, personal information of all other network services are exposed to malicious eavesdropper. A user may choose to write down or record the username-password sets on paper or in user equipment, but it still has potential security issues, such as peeking.
An object of the invention is providing a processor (e.g., 140 in
In an embodiment, the processing unit may be further arranged to request access (e.g., 202) to the remote application server via the interface circuit, and receive a challenge for bootstrapping (e.g., 204) from the remote application server via the interface circuit; wherein the processing unit may be arranged to achieve the bootstrapping authorization after receiving the challenge for bootstrapping.
In an embodiment, the processing unit may be arranged to achieve the bootstrapping authorization by sending an authentication request (e.g., 206) to the remote operator via the interface, receiving an unauthorized response from the remote operator via the interface circuit, and composing an authorization request (e.g., 212) according to the unauthorized response, sending the authorization request (e.g., 214) to the remote operator via the interface circuit, and receiving a bootstrapping granting response (e.g., 218) from the remote operator via the interface circuit. The processing unit may further be arranged to compose the authorization request (e.g., 212) by deriving a bootstrapping response according to the unauthorized response, and including the bootstrapping response in a digest of the authorization request. In an embodiment, the bootstrapping granting response (e.g., 218) may include a lifetime value and a bootstrapping identifier (e.g., B-TID), and the processing unit may be arranged to obtain the username according to the bootstrapping identifier. In an embodiment, the processing unit may be arranged to obtain the password according to the bootstrapping granting response.
In an embodiment, the bootstrapping authorization may result in a bootstrapping identifier and a bootstrapping key, and the processing unit may be arranged to obtain the username according to the bootstrapping identifier, and obtain the password according to the bootstrapping key. In an embodiment, the processing unit may be arranged to obtain the username and the password without user intervention. In an embodiment, the remote operator and the remote application server are of different IP (Internet Protocol) addresses. In an embodiment, the processing unit may be arranged to compose the log-in message without user intervention.
An object of the invention is providing a method (e.g., 200) for authentication with a remote application server by a processor of a user equipment. The method may comprise: by the processor, initializing an access attempt to the remote application server, achieving a bootstrapping authorization with a remote operator, obtaining a username and a password for logging in the remote application server according to the bootstrapping authorization (e.g., 110 in
An object of the invention is providing a method (e.g., 200) for a network system (e.g., 10 in
Numerous objects, features and advantages of the present invention will be readily apparent upon a reading of the following detailed description of embodiments of the present invention when taken in conjunction with the accompanying drawings. However, the drawings employed herein are for the purpose of descriptions and should not be regarded as limiting.
The above objects and advantages of the present invention will become more readily apparent to those ordinarily skilled in the art after reviewing the following detailed description and accompanying drawings, in which:
Please refer to
The application server 102 may be a provider of a network service. The operator 104 may be a mobile network operator which owns or controls access to a radio spectrum license from a regulatory or government entity, also owns or controls elements of a network infrastructure necessary to provide telecommunication services to subscribers (users) over the licensed spectrum. The user equipment 100 may be identified by the operator 104 as being owned by a subscribed user of the operator 104. For example, the user equipment 100 may include a hardware or virtual SIM (subscriber identification module) for recording secret information (e.g., subscriber key) which is shared with the operator 104 but not exposed to user. On the other hand, the application server 102 and the operator 104 may be of different IP (Internet Protocol) addresses; for example, the application server 102 and the operator 104 may be distinguished by their IP addresses.
As shown in
Along with
Step 202: when user of the user equipment 100 wants to log in the application server 102, the processing unit 142 (
Step 204: in response to the request from the user equipment 100, the application server 102 may send back a challenge for bootstrapping. The challenge for bootstrapping may request the user equipment 100 to leveraging bootstrapping for log-in. For example, the challenge may be an HTTP response message including a header section which may start with a status code “401” for “unauthorized,” as shown in
Step 206: after receiving the challenge for bootstrapping, the processing unit 142 may start to achieve a bootstrapping authorization with the operator 104 by first sending an authentication request to the operator 104 via the interface circuit 144 and the communication circuit 146. For example, the authentication request may be an HTTP message which may start with a “GET” request line, and include a header field “authorization” and associated information for the operator 104 to identify the user equipment 100.
Step 208: the operator 104 may identify user of the user equipment 100 according to the authentication request of step 206, retrieve corresponding personal user profile, and accordingly generate an authentication token.
Step 210: the operator 104 may send an unauthorized response to the user equipment 100, wherein the unauthorized response may include the authentication token generated in step 208. For example, the unauthorized response may be an HTTP message with a status code “401” for “unauthorized,” and include a header field “WWW-authenticate,” with the authentication token being embedded in a string of a “nonce” field. The authentication token may be a string of multiple characters and may include letters (e.g., “a” to “z”) and/or numbers (e.g., “0” to “9”).
Step 212: the processing unit 142 may receive the unauthorized response from the operator 104 via the interface circuit 144 and the communication circuit 146, and compose an authorization request according to the unauthorized response. In an embodiment, the processing unit 142 may verify that the operator 104 is a trustable and designated provider of bootstrapping by checking the authentication token, and then compose the authorization request by deriving a bootstrapping response according to the unauthorized response, and including the bootstrapping response in a digest of the authorization request.
For example, the string of the “nonce” field in the unauthorized response sent by the operator 104 may include two concatenated first partial string and second partial string, the processing unit 142 may extract the second partial string as the authentication token, and derive the bootstrapping response by extracting the first partial string, and applying the first partial string and a subscriber key as two inputs to an authentication and key generation function “f2” described in 3GPP TS 35.206. The authorization request composed by the processing unit 142 may be an HTTP message which may start with a “GET” request line, and include a header field “authorization” followed by the bootstrapping response as a string of a “response” field.
Step 214: the processing unit 142 may send the authorization request to the operator 104 via the interface circuit 144 and the communication circuit 146.
Step 216: the operator 104 may receive the authorization request, and check if the bootstrapping response included in the authorization request matches an expected response calculated by the operator 104 itself. If the two responses match, the operator 104 may generate a bootstrapping identifier B-TID and a lifetime value, and proceed to step 218. For example, the bootstrapping identifier B-TID may be a string of multiple characters, and the lifetime value may indicate how long the bootstrapping remains effective.
Step 218: the operator 104 may sent a bootstrapping granting response to the user equipment 100. For example, the bootstrapping granting response may be an HTTP message with a status code “200” for “OK,” and include a payload recording the bootstrapping identifier B-TID and the lifetime value.
Step 220: the processing unit 142 may receive the bootstrapping granting response from the operator 104 via the interface circuit 144 and the communication circuit 146. By communication in steps 206, 210, 214 and 218, the processing unit 142 may achieve a bootstrapping authorization with the operator 104. According to the bootstrapping authorization, the processing unit 142 may obtain a username and a password for logging in the application server 102. Obtaining the username and the password may be performed automatically. Obtaining the username and the password may be performed without user intervention. For example, the bootstrapping authorization may result in the bootstrapping identifier B-TID (step 216) and a bootstrapping key, and the processing unit 142 may obtain a username according to the bootstrapping identifier B-TID, and obtain the password according to the bootstrapping key. The bootstrapping key may be calculated by, for example, including a subscriber key, which may identify the UE 100, as an input to a key derivation function. In an embodiment, the processing unit 142 may calculate the password by applying the authentication token (steps 208 and 210) and the subscriber key to a hash function. Then the processing unit 142 may compose a log-in message according to the username and the password.
For example, as shown in
As aforementioned, the bootstrapping key utilized to obtain the password may result from the bootstrapping authorization achieved by steps 206, 208, 210, 212, 214, 216 and 218. In an embodiment, the processing unit 142 may (e.g., in step 212) calculate a key Ks as the bootstrapping key according to the unauthorized response of step 210. For example, the processing unit 142 may calculate the key Ks by applying the first partial string (as mentioned in step 212) and the subscriber key as two inputs to an authentication and key generation function “f3” described in 3GPP TS 35.206 to calculate a cipher key CK (not shown), applying the first partial string and the subscriber key as two inputs to an authentication and key generation function “f4” described in 3GPP TS 35.206 to calculate an integrity key IK (not shown), and concatenating the keys CK and IK. In an embodiment, the key Ks may be calculated by the operator 104, and be included in the granting response of step 218 to be sent to the user equipment 100.
In an embodiment, the processing unit 142 may calculate a key Ks_NAF as the bootstrapping key according to the unauthorized response of step 210. For example, the processing unit 142 may (e.g., in step 212) calculate the key Ks_NAF by applying the key Ks, the first partial string (as mentioned in step 212) and an identifier NAF_Id (not shown) as inputs to a key derivation function (KDF) described in 3GPP2 S.S0109, wherein the identifier NAF_Id is used to identify the application server 102. In an embodiment, the key Ks_NAF may be calculated by the operator 104, and be included in the granting response of step 218 to be sent to the user equipment 100.
By steps 206, 208, 210, 212, 214, 216, 218 and 220, step 110 in
Step 222: the processing unit 142 may send the log-in message to the application server 102 via the interface circuit 144 and the communication circuit 146. By step 222, step 120 in
Step 224: according to the log-in message of step 222, the application server 102 may send a bootstrapping verification request to the operator 104. For example, the bootstrapping verification request may include the bootstrapping identifier B-TID.
Step 226: according to the bootstrapping identifier B-TID included in the bootstrapping verification request of step 224, the operator 104 may find the accompanying bootstrapping key, and identify the user equipment 100 which earlier achieves the bootstrapping authorization with the operator 104. Then the operator 104 may include identification of the user equipment 100 and the bootstrapping key in a verification response, and send the verification response to the application server 102.
Step 228: according to the verification response of step 226, the application server 102 may identify and verify log-in of the user equipment 100. To verify the log-in attempt of the log-in message of step 222, the application server 102 may calculate an expected log-in response according to a password obtained from the bootstrapping key included in the verification response of step 226, and then compare the expected log-in response and a received log-in response (e.g., the log-in response string 316) included in the log-in message of step 222. For example, the application server 102 may calculate the expected log-in response according to steps 330, 340 and 350 in
If the expected log-in response calculated according to communication of steps 224 and 226 matches the log-in response received from the log-in message of step 222, the application server 102 may proceed to step 230. By steps 224, 226 and 228, step 130 in
Step 230: the application server 102 may transmit a log-in granting response to the user equipment 100. For example, the log-in granting response may be an HTTP message with a status code “200” for “OK.”
Step 232: the processing unit 142 may receive the log-in granting response of step 230 from the application server 102 via the interface circuit 144 and the communication circuit 146, and then proceed to access network service(s) provided by the application server 102. The network service(s) may be personalized.
In an embodiment, the bootstrapping key and/or the bootstrapping identifier B-TID may be generated by leveraging random number(s), and the username and/or password obtained according to the bootstrapping key and the bootstrapping identifier B-TID may therefore be more secure, e.g., be more infeasible to be compromised by exhaustive brute-force search. As aforementioned, in an embodiment, the bootstrapping identifier and the bootstrapping key resulting from the bootstrapping authorization between the user equipment 100 and the operator 104 may be respectively utilized as a username and a password for logging in the application server 102. In a different embodiment, the user equipment 100 and the application server 102 may derive the username and/or the password by applying the bootstrapping key and/or the bootstrapping identifier (and/or the lifetime value) as input(s) to a predetermined generation function (e.g., a hash function), thus the bootstrapping key and/or the bootstrapping identifier may not need to be directly utilized as the password and/or the username.
After step 230, during communication (transactions) between the user equipment 100 and the application server 102, the user equipment 100 and/or the application server 102 may keep monitoring if a current time exceeds the lifetime value (step 216). If the current time does exceed the lifetime value, the user equipment 100 may repeat step 206 to start a new bootstrapping authorization with the operator 104 by steps 208, 210, 212, 214, 216 and 218, and therefore obtain renewed bootstrapping key, bootstrapping identifier B-TID and lifetime value. Repeating step 206 may be performed automatically. Repeating step 206 may be performed without user intervention. Then the user equipment 100 may repeat step 220 and 222 to renew the username and/or password according to the renewed bootstrapping identifier B-TID and/or bootstrapping key, and log in the application server 102 by the renewed username and password. In response, the application server 102 may repeat step 224 to obtain the renewed bootstrapping key from the operator 104 by repeated step 226, and then renew log-in verification of the user equipment 100 by repeating step 228. In other words, the username and/or password obtained by leveraging bootstrapping may be dynamic and time-varying, and therefore be more secure, e.g., be more infeasible to be compromised by replay attack.
It is noted that one or more steps of the flowchart 200 in
To sum up, the invention provides a technique for a user equipment to perform authentication (e.g., log-in) with a remote application server by leveraging bootstrapping of a remote operator. The authentication can be performed automatically and/or without user intervention. Under bootstrapping, reliable and secure secret(s) shared between a user equipment and an operator may be extended to a third party (the application server), so the user equipment and the application server may share log-in secret(s) (e.g., username and password) by respectively communicating with the operator. The invention may allow user to directly access network services without inconvenient manual keying of username and password, free user from unsecure and disturbing management of username-password sets of different network services, and therefore enhance user experience and improve security of log-in.
While the invention has been described in terms of what is presently considered to be the most practical and preferred embodiments, it is to be understood that the invention needs not be limited to the disclosed embodiment. On the contrary, it is intended to cover various modifications and similar arrangements included within the spirit and scope of the appended claims which are to be accorded with the broadest interpretation so as to encompass all such modifications and similar structures.
Patent | Priority | Assignee | Title |
Patent | Priority | Assignee | Title |
8607306, | Nov 10 2010 | GOOGLE LLC | Background auto-submit of login credentials |
8813200, | Dec 21 2007 | Oracle International Corporation | Online password management |
20030195802, | |||
20080171534, | |||
20110078239, | |||
20110289315, | |||
20120222091, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jul 14 2017 | CHEN, JING-FU | MEDIATEK INC | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 043039 | /0931 | |
Jul 19 2017 | MEDIATEK INC. | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
Jan 08 2024 | M1551: Payment of Maintenance Fee, 4th Year, Large Entity. |
Date | Maintenance Schedule |
Jul 07 2023 | 4 years fee payment window open |
Jan 07 2024 | 6 months grace period start (w surcharge) |
Jul 07 2024 | patent expiry (for year 4) |
Jul 07 2026 | 2 years to revive unintentionally abandoned end. (for year 4) |
Jul 07 2027 | 8 years fee payment window open |
Jan 07 2028 | 6 months grace period start (w surcharge) |
Jul 07 2028 | patent expiry (for year 8) |
Jul 07 2030 | 2 years to revive unintentionally abandoned end. (for year 8) |
Jul 07 2031 | 12 years fee payment window open |
Jan 07 2032 | 6 months grace period start (w surcharge) |
Jul 07 2032 | patent expiry (for year 12) |
Jul 07 2034 | 2 years to revive unintentionally abandoned end. (for year 12) |