Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
A METHOD FOR GENERATING A MODIFIED ONE-TIME PASSWORD ALLOWING TO AUTHENTICATE THE USER FOR WHICH IT HAS BEEN GENERATED
Document Type and Number:
WIPO Patent Application WO/2018/024603
Kind Code:
A1
Abstract:
The invention related to a method for generating by a first device (330) a modified one-time password (303), the first device being operated by a user, the method comprising the steps of: providing a first one-time password OTP_P (303) generated by a generator (300) implemented by the first device and using a piece of data (302) as an input; providing by the user an authentication password (304); applying (305) a post-treatment function F which uses said one-time password OTP_P (303) and said authentication password (304) as inputs in order to generate as an output a modified one-time password M_OTP having the same format as OTP_P, the function F being chosen such that OTP_P is recoverable from said modified one-time password by applying the inverse function of F and if only the same authentication password as the one used for generating M_OTP is used as an input of said inverse function.

Inventors:
PETIT SEBASTIEN (FR)
RUFFIER BENJAMIN (FR)
LE CARDINAL DANIEL (FR)
Application Number:
PCT/EP2017/069024
Publication Date:
February 08, 2018
Filing Date:
July 27, 2017
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
GEMALTO SA (FR)
International Classes:
H04L29/06; H04L9/32; H04W12/06
Domestic Patent References:
WO2000048064A12000-08-17
Foreign References:
US20130124292A12013-05-16
US20110113245A12011-05-12
Other References:
None
Attorney, Agent or Firm:
DELAVAL, Guillaume (FR)
Download PDF:
Claims:
CLAIMS

1 . A method for generating by a first device (330) a modified one-time password (303), the first device being operated by a user, the method comprising the steps of:

providing a first one-time password OTP_P (303) generated by a generator (300) implemented by the first device and using a piece of data (302) as an input;

- providing by the user an authentication password (304);

applying (305) a post-treatment function F which uses said one-time password OTP_P (303) and said authentication password (304) as inputs in order to generate as an output a modified one-time password M_OTP having the same format as OTP_P, the function F being chosen such that OTP_P is recoverable from said modified one-time password by applying the inverse function of F and if only the same authentication password as the one used for generating M_OTP is used as an input of said inverse function.

2. A method according to claim 1 , wherein the authentication password is of PIN code type.

3. A method according to any of the preceding claims, wherein the one-time password OTP_P (303) is generated by a generator (300) using a secret (301 , 310) that is shared between the first (330) and second (340) devices.

4. A method according to any of the preceding claims, wherein the function F is adapted such that is the one-time passwords OTP_P taken as input arguments are integers in a range of [0,N[, then for all authentication password values, F(PIN_P, OTP_P) is an integer in the range [0,N[.

5. A method according to any of the preceding claims, wherein the function F is adapted such that for all authentication password values PIN, F(PIN,.) is a permutation from [0,N[ to [0,N[ and F is a bijection. 6. A method according to any of the preceding claims, wherein the function

F is adapted such that knowing F(PIN_P,OTP_P) provides no information allowing the recovery of PIN_P and OTP_P.

7. A device configured to generate modified one-time password according to the method as claimed in claims 1 to 3.

8. A method for verifying by a second device (340) that a one-time password is provided by a authenticated user before authorizing a transaction, the method comprising the steps of:

- receiving (306) a modified one-time password M_OTP generated by a first device (330) according to the method as claimed in any of claims 1 to 6;

providing an authentication password (324) from a database accessible by the second device and associated to the user which is deemed to have operated the first device to generated M_OTP;

- providing a locally generated one-time password OTP_V (321 ) generated by a generator (312) identical to the one (300) used for generating the first one-time password OTP_P (303) and using as an input a piece of data (31 1 ) identical to the one used for generating the first one-time password OTP_P (303);

recovering a one-time password from the modified one-time password M_OTP by applying the inverse of function F to said modified one-time password M_OTP using the provided authentication password (324) as an input;

comparing the recovered one-time password with the locally generated one-time password OTP_V, and if those are identical, authorizing the transaction.

9. A device configured to authorize a transaction implementing the method as claimed in claim 8.

Description:
A METHOD FOR GENERATING A MODIFIED ONE-TIME PASSWORD ALLOWING TO AUTHENTICATE THE USER FOR WHICH IT HAS BEEN

GENERATED

TECHNICAL FIELD

The present invention relates to a method for generating a modified one-time password allowing to authenticate the user for which it has been generated. It applies to the technical field of one-time password (OTP) generation.

BACKGROUND OF THE INVENTION In current mobile authentication solutions based on one-time password (OTP), a personal identification number (PIN) or a password is used to decrypt a shared secret that is involved into the OTP computation. For explanatory purposes, it is referred to PIN codes or numbers in the sequel. At the time of authentication, when a user enters a wrong PIN number, an invalid shared secret is then generated leading to the generation of an invalid OTP value. The server which is in charge of verifying the OTP value, designated in this description as the authentication server, will then reject the OTP value received from the user. In that case, the user is not authenticated due to a bad PIN entry.

There is a need of an efficient method to protect authentication by password or PIN number while allowing the use of a generic OTP generator. SUMMARY OF THE INVENTION

The invention relates to a method for generating by a first device a modified one-time password, the first device being operated by a user, the method comprising the steps of:

providing a first one-time password OTP_P generated by a generator implemented by the first device and using a piece of data as an input;

providing by the user an authentication password;

applying a post-treatment function F which uses said one-time password OTP_P and said authentication password as inputs in order to generate as an output a modified one-time password M_OTP having the same format as OTP_P, the function F being chosen such that OTP_P is recoverable from said modified one-time password by applying the inverse function of F and if only the same authentication password as the one used for generating M_OTP is used as an input of said inverse function.

The authentication password is for example of PIN code type.

As an example, the one-time password OTP_P can be generated by a generator using a secret that is shared between the first and second devices.

The function F is for example adapted such that is the one-time passwords OTP_P taken as input arguments are integers in a range of [0,N[, then for all authentication password values, F(PIN_P, OTP_P) is an integer in the range [0,N[. As an example, the function F can be adapted such that for all authentication password values PIN, F(PIN,.) is a permutation from [0,N[ to [0,N[ and F is a bijection.

According to one embodiment of the invention, the function F is adapted such that knowing F(PIN_P,OTP_P) provides no information allowing the recovery of PIN_P and OTP P. The invention also relates to a device configured to generate a modified onetime password according to the above method.

The invention also relates to a method for verifying by a second device that a one-time password is provided by an authenticated user before authorizing a transaction. This method comprises the steps of:

receiving a modified one-time password M_OTP generated by a first device according to the method for generating a modified one-time password;

providing an authentication password from a database accessible by the second device and associated to the user which is deemed to have operated the first device to generated M_OTP;

providing a locally generated one-time password OTP_V generated by a generator identical to the one used for generating the first one-time password OTP_P and using as an input a piece of data identical to the one used for generating the first one-time password OTP_P;

recovering a one-time password from the modified one-time password M_OTP by applying the inverse of function F to said modified one-time password M_OTP using the provided authentication password as an input;

comparing the recovered one-time password with the locally generated one-time password OTP_V, and if those are identical, authorizing the transaction.

The invention also related to a device configured to authorize a transaction implementing the above method for verifying by a second device that a one-time password is provided by an authenticated user before authorizing a transaction.

BRIEF DESCRIPTION OF THE DRAWINGS

Additional features and advantages of the invention will be more clearly understandable after reading a detailed description of one preferred embodiment of the invention, given as an indicative and non-limitative example, in conjunction with the following drawings: Figure 1 provides a diagram of a well-known method of OTP authentication in which a PIN number in managed on the mobile side;

Figure 2 provides an example of an OTP authentication technique in which the PIN numbers are managed by an authentication server;

- Figure 3 illustrates a new technique for OTP authentication using a post- treatment;

Figures 4 is an example of decomposition of a PIN value into bit groups.

DETAILED DESCRIPTION

In order to better understand the interest of the invention, Figure 1 and Figure 2 first illustrate two techniques belonging to the state of the art Figure 1 provides a diagram of a well-known method of OTP authentication in which a PIN number in managed on the mobile side.

In this description, the user associated with its mobile device is designated as the mobile side 130, 230, 330 and the authentication server is designated as the verifier 140, 240, 340.

According to this example, the verifier 140 doesn't need to know the value of the PIN number as it is not used by the verifier's algorithm. This technique involves a management of the PIN number locally on the mobile side 130 that is to say by the user with its mobile device or hardware token. The process of changing the PIN number needs to be implemented locally on the mobile side 130. If a user owns several devices, he will need to handle several PIN numbers, typically one per device, or synchronize them manually which is not convenient.

According to this example, the OTP generator 100 is the central part of the process and uses several inputs to generate an OTP. Those inputs are: A piece of data 101 , for example related to a given transaction;

A secret 102 that is stored enciphered and which is deciphered when the user enters correctly a PIN number PIN_P 103 that via the interface of its mobile device.

Taking those inputs into account, the OTP generator 100 then does its job and generates the OTP 104 noted OTP_P which can be transmitted to the verifier 140 via a mobile network for example. On the verifier side 140, once the OTP_P is received, it is compared 105 with an OTP 106 named OTP_V that is generated by the verifier 140. If OTP_P and OTP_V are identical, the transaction is accepted, if not, the transaction is rejected. OTP_V is generated using an OTP generator 106 that is identical to the one 100 used on the mobile side 130. For OTP_P and OTP_V to be identical, the generator 106 needs to use the same inputs 107, 108 as those 101 , 102 employed to generated OTP_P, that is to say the same piece of data and the same shared secret. The shared secret 108 is stored in a database 109 accessible by the verifier 140.

Actors such as banks or enterprises often allow their user to have several devices. At the same time, they enforce usage of one common PIN number for all of them. The management of PIN numbers then needs to be transferred to the verifier side 140. The process of changing the PIN number is implemented on the back-end side and there will be no need of manual synchronization of PIN for all the devices. Figure 2 provides an example of an OTP authentication technique in which the

PIN numbers are managed by an authentication server.

Instead of using the PIN number to decrypt the shared secret as it was the case in the example of Figure 1 , the PIN number is part of the transaction data signed by the OTP algorithm. If the user enters a PIN number PIN_P different than the one PIN_V known by the verifier 240 then the generated OTP_P and OTP_V will not match and the user will not be authenticated. According to this example, the OTP generators 200, 210 use several inputs to generate an OTP. Those inputs are:

A piece of data 201 , 21 1 , for example related to a given transaction; A secret 202, 212;

- On the mobile side 230, a PIN number PIN_P 203 that is entered by the user via an interface of its mobile device;

On the verifier side 240, a PIN number PIN_V that is stored 220 or accessible to the authentication server. Taking those inputs into account, the OTP generator 200 implemented on the mobile side is able to generate an OTP noted OTP_P which can be transmitted 219 to the verifier 240 via a mobile network for example.

On the verifier side 240, once the OTP_P is received, it is compared 204 with an OTP 215 named OTP_V that is generated by the verifier 240. If OTP_P 205 and OTP_V 215 are identical, the transaction is accepted, if not, the transaction is rejected.

OTP_V is generated using an OTP generator 210 implemented by the verifier which is identical to the one 200 used on the mobile side 230.

For OTP_P and OTP_V to be identical, the generator 210 needs to use the same inputs as those employed to generate OTP_P, that is to say the same piece of data 201 , 21 1 and the same shared secret 202, 212. Furthermore, the PIN number PIN_V 213 stored 220 by the verifier 240 for this user shall be identical to the PIN number PIN_P 203 entered by the user.

In this scheme, the process of changing the PIN numbers is implemented only on the back-end side, for example by the authentication sever. However, this technique is not supported by all standardized OTP algorithms such as OATH-HOTP and OATH- TOTP. Figure 3 illustrates a new technique for OTP authentication using a post- treatment.

The following embodiment of the invention is described using PIN codes as passwords used for authenticating a user. However, the skilled person will understand that the invention is applicable when using any kind of authentication password. In other word, an authentication password using in the context of this invention is not necessarily restrained to a sequence of numbers as it is the case for PIN codes. One of the important characteristics of the technique described hereafter is the introduction of a generic post-treatment that is applied on the generated OTPs. This post-treatment is adapted to take into account authentication passwords such as PIN numbers without interfering with the OTP generation process. The OTP is generated 300 on the mobile side 330 from a shared secret 301 and optionally using a piece of data 302. For that purpose, a generator 300 is used. This generator can be standardized.

On the mobile side 330 a post-treatment 305 is then applied to the generated OTP 303. A PIN number PIN_P 304 entered by the user is used as an input of this post-treatment. At this stage, PIN_P can be correctly entered or not. In both cases the post-treatment provides a value M_OTP which corresponds to a modified one-time password. This value is then sent 306 to the verifier 340. M_OTP can be expressed as follow:

MJOTP = F(PIN_P, OTP_P)

The verifier 340 computes an OTP from the shared secret 310 and optionally the same piece of data 31 1 than the one 302 used on the mobile side 330. An OTP generator 312 similar to the one 300 used on the mobile side 330 is used for that purpose. The verifier 340 is configured to memorize the shared secrets attributed to the users of the system into a storage area 320 or is configured to access to a database memorizing said shared secrets. The verifier 340 computes the candidate OTP_V as follow:

OTP_P = F ~1 (PIN_P, F(PIN_V , OTP V ))

For that purpose, it uses the PIN number PIN_V that is attributed to the user and known by the verifier 340. The verifier 340 or a database 325 accessible by the verifier 340 stores the PIN numbers attributed the users of the system.

Once OTP_P is received and OTP_V 321 is calculated, the verifier 340 is able to make a comparison 322. OPT_P and OTP_V will be equal if and only if PIN_P 304 and PIN_V 324 are equal. If OTP_P and OTP_V are identical, this means that the user has entered the correct PIN number and is authenticated.

The post-treatment function F can be chosen in such a way that it has the following properties:

Property P 1 : if the one-time passwords are integers in a range [0,N[, then for all PIN values, F(PIN, OTP) is an integer in the range [0,N[. Advantageously, this will allow the user to keep the same user-experience as if he was using an non- modified one-time password;

Property P2: for all PIN values, F(PIN,.) is a permutation from [0,N[ to [0,N[. Further, F must be a bijection for the verifier to revert back the OTP value from both F(PIN_P,OTP_P) and PIN_V;

Property P3: F is adapted such that knowing F(PIN_P,OTP_P) provides no information allowing to get back PIN_P and OTP_P.

Figure 4 is an example of decomposition of a PIN value into bit groups.

OTP are generally integers comprising n digits, with N = 10 n , OTP ε [0; N[. PIN numbers are generally integers of p digits with P = 10 p , PIN ε [0; P [.

An example of post-treatment function is provided below:

F (PIN, OTP) = g (PIN). OTP [N]

F is the product of a derivate of PIN and OTP modulo N fulfilling properties P1 , P2 and P3 if and only if ,g(Pin) _1 [N] exists, that is to say if and only if g(Pin) and N are relatively prime. [. ] refers to the modulo operation.

As N = 10 n = 2 N S N , it is always possible to construct a function g(.) based on a primes list (but not 2 and 5) to enforce g(PIN) is always relatively prime to N.

As PIN numbers are integers, their binary representation can be split into groups of bits. Figure 4 presents an example from the decimal PIN value '20145' separated into groups of three bits.

If g(PIN) = 3P° '. 7P 1 Al ?2 Λ3^ 3 . 11^ then for any PIN, g(PIN) is relatively prime to N. g(.) can be built from more primes in order to be adapted to the number of PIN values P.

In the example provided on Figure 4, one have:

#(20145) = 3 1 . 7 6 . 11 2 . 13 7 . 17 4 .

Then, for OTP_P='123045', one have:

M_OTP = OTP_P . g(PIN) . [10 6 ] = '597 0155'

g- 1 (PIN).[10 6 ] = '562839'

and therefore M_OTP * g "1 (PIN).[10 6 ] = OTP_P

According to a preferred embodiment, the invention is used for OTP generators that produce uniformly distributed OTPs or OTPs with a negligible bias. This is the case for example for OATH-HOTP and OATH-TOTP.