METHOD AND SYSTEM FOR GENERATING ENCRYPTION KEYS FOR TRANSACTION OR CONNECTION DATA
20220400105 · 2022-12-15
Assignee
Inventors
Cpc classification
H04W12/02
ELECTRICITY
H04L63/0435
ELECTRICITY
International classification
Abstract
Per CFR 1.121, Applicant hereby amends the abstract of the application by substitute abstract, by submitting: (i) instruction for the cancellation of the previous version of the abstract; and (ii) a substitute abstract in compliance with 37 CFR § 1.121(b)(2)(ii). RE i)
Please cancel the previous version of the abstract. RE ii)
A clean version of the substitute Abstract is set forth on the following page. No new matter has been added.
Claims
1. A system comprising a server comprising secret keys each associated with an identifier (ID1) of a user, computer entity or terminal, or terminal application, characterized in that said server is configured to generate and communicate, on demand with the identifier (ID1), and remotely, a dynamic public key (6, DPUK) from a secret key (Kshared), and a variable or a challenge, said dynamic public key (6, DPUK) serving as a dynamic encryption/decryption key or as a basis for obtaining a dynamic data encryption/decryption key.
2. The system according to claim 1, characterized in that said variable or challenge is known to the terminal or computing entity.
3. The system according to claim 2, characterized in that said dynamic key comprises an one-time password (OTP), a HMAC based OTP (HOTP) or a Time-based OTP (TOPT).
4. The system according to claim 1, characterized in that said server is an authentication server.
5. A data communication system between at least one terminal and a computing entity said system comprising an authentication server according to claim 4, a service computing entity, and terminals, said system being configured to: authenticate each terminal or user with the authentication server based on a key shared (Kshared) between each terminal and said authentication server, request the authentication server the terminal to generate a dynamic encryption key (DPUK) from said terminal shared key, and from a challenge or variable, and use said dynamic key (DPUK) to encrypt, or decrypt said data exchanged between said terminal and said computing entity.
6. A communication system of claim 5, characterized in that each terminal is configured with a memory comprising a shared encryption/decryption key (Kshared) distinct from that of another terminal and shared with said authentication server.
7. A method for communicating data between at least one terminal and a computing entity, said method implementing a system comprising said authentication server according to claim 4, a service computing entity and terminals, said method comprising steps for: configuring said system to authenticate each terminal or user with the authentication server based on a key shared (Kshared) between each terminal and said authentication server, requesting the authentication server or the terminal to generate a dynamic encryption key (DPUK) from said shared key (Kshared) corresponding to the terminal, and from a challenge and/or variable, using said dynamic key (DPUK) to encrypt or decrypt an exchange of data between said terminal and said computing entity.
8. The method according to claim 7, characterized in that said data exchange is distinct from an authentication data exchange comprising a one-time numerical password (OTP) exchanged between said terminal and said authentication server or said communication entity.
9. The method according to claim 8, characterized in that said dynamic encryption key (DPUK) is generated by said authentication server, in response to a specific standard or certified command issued by said communication computing entity.
10. The method of claim 9, characterized in that said dynamic encryption key comprises an OTP or HMAC based OTP (HOTP) or Time-based OTP (TOTP).
11. The method of claim 10, wherein said dynamic encryption key is dynamic because its value or its calculation depends on a variable such as an elapsed time value (either a timestamp or clock value), a counter value (in particular with regular or non-regular incrementing, in particular event-based), or a value of a challenge that may change or be randomly selected with each transaction.
12. The method of claim 10, wherein said dynamic encryption key depends on a fixed shared value such as a key that is one among a kshared, a secret value, and an encryption key.
Description
BRIEF DESCRIPTION OF THE FIGURES
[0064]
[0065]
[0066]
DESCRIPTION
[0067]
[0068] A transaction is an exchange of data between two software or hardware entities. It can be used for different purposes, in particular for logging in to a service or for logical or physical access, or for financial transactions, payment, enrollment, registration, financial transfers, exchanging sensitive data, etc.
[0069] The method may implement or advantageously use an already-existing system comprising an authentication server, a service computing entity (transaction server 3) and client terminals 1; This system may already be configured to authenticate each terminal or user with the authentication server on the basis of a key shared between each terminal and said authentication server.
[0070] Thus, deployment of the invention is facilitated if the system already provides such functions and hardware.
[0071] The transaction 10 comprises a step of encrypting the sensitive data with an encryption key,
[0072] According to one feature of the preferred embodiment of the invention, the method comprises the steps of configuring at least one client terminal and authentication server to generate a dynamic authentication key based on a shared key, a challenge, and (optionally) an identifier corresponding to each terminal;
[0073] The server requires an identifier from the terminal or user or an application to retrieve the same key or shared secret from a database in order to retrieve the same dynamic key.
[0074] The sending terminal does not necessarily need its own identifier or one relating to an application it hosts or to the user in order to generate the same key. In contrast, the terminal communicates an identifier to the key server to retrieve the same shared secret.
[0075] Thus, the method may implement steps to request the authentication server for a dynamic encryption key generation based on the above elements.
[0076] As for the terminal, the method may require the same thing, but the terminal may be without an identifier, because the terminal might have only one shared key whereas the server may have many shared keys corresponding to each terminal or user of the system.
[0077] The server can retrieve the corresponding shared key based on a user and/or terminal identifier (for example, mobile phone IMEI)
[0078] In the example, the authentication server 5 may be linked to or comprise a hardware security module (HSM) that stores, in a secure memory, encryption keys (kshared) that can be associated with users or user terminals (or communicating computing entities or remote computers) and shared with client applications 1 for authentication purposes; An authentication server generally comprises any hardware and software means necessary for the security of the information it contains.
[0079] However, the authentication server 5 may be any equivalent remote computer with strong secure communication and storage capabilities, as well as high-level encryption keys dedicated to authentication. The storage can be done in particular in security elements (SE), associated USB keys, or other hardware media connected or soldered on a server printed circuit as long as the security level is guaranteed.
[0080] The authentication server can preferably include network communication interfaces (internet, intranet) to be accessible in the cloud via any telecommunication network, Wifi, Bluetooth, NFC, mobile telecommunication. Preferably, mutual authentication or secure communication procedures can be implemented such as HTTPS.
[0081] The authentication server can be dedicated to the transactions to be performed by the method or system. However, advantageously, it is not dedicated but part of a separate pre-established authentication system.
[0082] In particular, the authentication system may be designed for purposes entirely other (distinct) than those for which it is used in the invention. Rather, it is used exclusively to authorize connections following authentication of a user wishing to access an online service or operation via a user communication device transmitting a code, preferentially of an OTP (one-time numerical password). It may not be intended or dedicated to any transaction service.
[0083] The authentication server may therefore be separate from or unrelated to a banking, electronic financial transaction or e-Commerce service, which is preferentially covered by the field of application of the invention.
[0084] According to a characteristic, the transaction 10 is distinct from an authentication operation, in particular using a one-time numerical password (OTP). Such an OTP allows a comparison with an OTP issued or generated in parallel in the authentication server for authentication.
[0085] The authentication system can exclusively make it possible to provide a network service for validating information such as a user's name and password, for granting a login, for verifying certificates to authenticate people, for verifying one-time passwords (OTP) generated remotely by a user's device, or for sending an OTP to a user which that user must return to the authentication server via a channel parallel to that by which it was received in order to allow a login to a remote server, or any other access.
[0086] Furthermore, in the example, the client software applications 1 may comprise mobile applications hosted on mobile terminals, or client applications of personal computers, tablets, personal digital assistants, etc.
[0087] According to one feature of the preferred embodiment, the method provides for requesting a dynamic authentication key from the authentication server 5 and/or the user terminal 1;
[0088] Indeed, both the server and the terminal are able to initiate an encryption of sensitive data and to communicate to the other the encrypted result with, in particular, a challenge for dynamic encryption and an identifier to find the shared key.
[0089] According to another feature of the preferred embodiment, the method provides for the use of the dynamic key DPUK for encrypting or decrypting sensitive data exchanged between said terminal and said computing entity.
[0090] Indeed, this dynamic key will not be used here to authenticate oneself as with an OTP, but to encrypt all the sensitive data to be exchanged.
[0091] The authentication server 5 comprises memories (or a secure storage database) for storing encryption keys 6, DPUK or kshared. These keys 6, DPUK, kshared are shared with/common to dedicated client software applications 16 for authentication purposes in client terminals of a user; According to another feature of the preferred embodiment, the transaction system 2 of the invention is also configured to encrypt said sensitive data 7 with said dynamic encryption key (Dpuk).
[0092] In fact, according to the invention, the authentication server does not perform this encryption operation. It merely provides the “Dpuk” key, in a manner known per se by means of a normal command provided per se in the state of the art exclusively for purposes distinct from an electronic transaction).
[0093] However, this “Dpuk” key is used, thanks to the invention, for electronic transaction purposes (particularly banking) by a server 4, 3 of the transaction system 2.
[0094] In this case, the transaction server may be single, multiple or, in this case, double, since it comprises the server 3 (or an online site on the Internet) of a service provider, for example a bank or financial institution. That website or those computers are associated or linked by any means of communication to a back-end server 4 (or mainframes) of a service provider, for example here, a financial service provider of a bank or financial institution.
[0095] In operation, the authentication server 5 of an authentication system SA receives a dynamic key command 140 from a transaction server 4 of a transaction system 2; And in response, the authentication server 5 proceeds to generate a dynamic encryption key (Dpuk);
[0096] The authentication system includes an authentication server/client and uses shared or diversified encryption keys with dedicated client applications for authentication purposes; The transaction system 2 is of the server/client type and uses the same encryption keys 6, DPUK, “Kshared” shared with (or diversified among) dedicated client application keys for transaction purposes,
[0097] According to one feature of the preferred embodiment, the dynamic encryption key (DPUK) is generated by the authentication server 5 in response to a specific command or request 40 of a standard or certified type, issued by the transaction server 3 or a server or computer 4 associated with or linked to the transaction server 3 or website of a service provider.
[0098] With reference to
[0102] The challenge (and/or variable) is transmitted with an identifier ID1 (for example, an identifier of the terminal such as IMEI or of an application hosted by the terminal, or an identifier of the user) and/or another identifier related to the shared key (Kshared) of the user terminal. Alternatively, this identifier ID1 may be part of the challenge, which could comprise the identifier itself as a fixed part and a variable part complementing the identifier to form the challenge as a whole (for example, a fixed radical forms the identifier and a variable challenge completes the identifier as a suffix).
[0103] The authentication server 5 may be independent of the bank's transaction system but may remain accessible, on request, according to a preferably well-defined or secure procedure, to any external communication system, particularly a client-server type system. An HTTPS connection can be set up or another connection via VPN for example.
[0104] For this purpose, the bank's computers or server 4 can be configured (including the IP address of the authentication server, or other connection procedure) to establish a connection 40 and exchanges 60 with the server 5 according to a predefined connection procedure in response to the request 20 from the banking site 3. [0105] In step 50, in response to the DPUK request 40, the authentication server identifies the shared key corresponding to the user's terminal based on an identifier accompanying the challenge, generates a dynamic key DPUK with a shared key (Kshared) based on the challenge as a parameter; The DPUK element may be calculated based on a standard OTP (HOTP in the invention—based on counter incrementing) returned by the authentication server. Other versions of OTPs can be considered such as: TOTP or challenge/response known to the person skilled in the art.
[0106] The authentication server can be configured to allow a connection with a list of servers or computers previously identified and authorized to request a dynamic key according to a pre-established process. The server therefore contains a list of server or computer identifiers and connection data (such as MAC addresses, IP addresses, domain names, associated passwords).
[0107] A mutual authentication procedure between the entities 5 and (3 or 4) may be followed to allow access to the authentication server 5, (for example: JWT (Json web token) or in the invention a JSESSIONID). [0108] In step 60, the dynamic key 6 (or element) DPUK is transmitted back by the server 5 to the requesting entity 4, in this case the bank, via the secure communication channel, in this case the cloud (C); [0109] In step 70, the entity 4 has received DPUK and in response calculates an encryption key (Kenc) based on DPUK and a formatting key (Kpre); This key (Kpre) makes it possible to change the data format or the number of bits (from 8 to 16 bits for example) and is known by both the server entity and the user's terminal (that is mobile application). This key does not necessarily have to be secure. The formatting step with the formatting key is not essential to the principle of the invention.
[0110] Here we perform an encryption calculation with a symmetric encryption algorithm such as AES, but other algorithms can of course be considered (DES, 3DES, etc.) [0111] In step 80 of the method or program in the hardware and software entity 4, an AES (or, as before, DES or 3DES) encryption of the transaction data (TrsData) using the key (Kenc) obtained previously is provided for subsequently to obtain an encryption of the transaction data (TrsDataEnc) with a dynamic key; [0112] In step 90, the above dynamically obtained encrypted transaction data (TrsDataEnc) may preferably (but not necessarily) be transformed into a 2D code (or QR code) format by also including the challenge (chall) in the transformation to obtain QRCodeData=Chall+TrsDataEnc; Alternatively, the values or data (TrsDataEnc) and the challenge can be transmitted in any other format known to the skilled person, in particular digital, binary, alphanumeric, analog signal, image. [0113] In step 100, the bank entity 4 can finally return information comprising the dynamically encrypted transaction data, optionally in the form of a QR code or 2D code (QRCode Data). This information is the response to the initial request 20 from the bank's website 3 (or other service provider or computer system or computer requiring a dynamic DPUK element as secure as an OTP) and is intended to make the user's 1 transaction request 10 secure. [0114] In step 110, the bank's website 3 displays, on a web page, the transaction information including the transaction data, in particular for verification or control by the user (QRCode Data); This information may be presented in the form of a QR code (or other possible form).
[0115] In
[0117] This can be done with a secure mobile device, such as the one offered by the applicant “Gemalto CAP”, or a smart mobile phone equipped with special “Gemalto Mobile Protector” software. It may also have another device such as a “Gemalto token” to decrypt the transaction data that could be displayed in alphanumeric form and entered by the user manually.
[0118] In the example, the user uses a device 6bis (mobile phone) with a mobile (or software) application 16 (Gemalto Mobile Protector); [0119] In step 130, the above device processes the photograph or scan of the QR code displayed on the screen of its communication terminal (personal computer) connected to the bank to read it and extract the data (formatted in this form) comprising the transaction data and the challenge (TrsDataEnc+Chall);
[0120] The device 6bis (for example, the mobile phone) also includes a secure software development kit (SDK) such as “Gemalto Mobile Protector” configured to generate a dynamic DPUK element similar to that generated by the authentication server in response to a request from the mobile application 16. The device 6bis (telephone) also contains the Kshared key shared with the authentication server 5.
[0121] The secret unique key, Kshared, can be securely exchanged during user enrollment; It can be securely stored and protected in the mobile device, for example, by advanced encryption and obfuscation methods, and be accessible via a secure access management process and access rights management mechanism. The corresponding protection processes are certified. The key can be protected and stored in particular according to a WBC (White-Box Cryptography) encryption method, homomorphic encryption.
[0122] The key may have been stored in the device for the purpose of enabling authentication of the user as part of an authentication procedure using an authentication server 5.
[0123] Such a procedure may comprise the steps of generating an OTP in the device 6bis based on a challenge received from the server 5 and the stored key 6 Kshared; and then a step of transmitting the OTP calculated by the device 6bis to the server 5 for authentication purposes after verification by the server of this calculated OTP. Conversely, an OTP can be generated in the device and then sent to the authentication server with an identifier linked to the shared secret key. This OTP is compared to an OTP calculated in the server based on the same shared key found with the identifier in the authentication server. A challenge may be a piece of information related to a counter that runs identically in the device 6bis and in the authentication server without there having been a transmission of that challenge from one to the other.
[0124] Alternatively, the challenge in the examples of the invention need not be transmitted in the exchanges. The identifier ID1 makes it possible to find an identical internal challenge in the server 5 and in the phone 6bis for example by sharing the same algorithm or calculation or determination method to generate a challenge or variable. [0125] In step 140, the mobile application 16 makes a DPUK request to the software development kit 7; [0126] In step 150, the Kit 7 generates a dynamic key DPUK in a similar way to the one generated in step 50 above in the server 5 with the extracted challenge or identical to the one of the server used to calculate DPUK; [0127] In step 160, the DPUK is transmitted to application 16 of device 6bis, [0128] In step 170, the mobile application 16 calculates the dynamic encryption key (Kenc) in the same manner as in step 70 above; [0129] In step 180, the mobile application 16 can finally decrypt the encrypted transaction data (TrsDataEnc) using the encryption/decryption key (Kenc) to obtain the plaintext transaction data TrsData.
[0130] The user can view and control the data of their TrsData transaction. If that data match the ones they sent earlier, then they can continue the transaction and finalize it.
[0131] Alternatively, the invention and in particular, the dynamic keys of an authentication server can be diverted to make a connection by any means of communication to a communication entity (server 3, 4, internet site of any service provider, intranet site of a company, etc.).
[0132] Thus, for example, a user opens a login page of any communication entity or access portal. They enter their user identifier ID1 and password on an application of their mobile terminal, the application requests a dynamic DPUK key from the SDK of the terminal 6bis based on an internal challenge that it attaches to its request. The terminal SDK calculates and returns to the terminal application a dynamic DPUK key based on the challenge.
[0133] The terminal application encrypts sensitive connection data (user name, password, etc.), (optionally puts them in the form of a 2D code) and transmits them to the site (or communication entity) to be logged into, preferably accompanied by the challenge (or without challenge if the server can compute such a challenge on its own side) and an identifier of the terminal and/or another identifier linked to the shared key (Kshared). Alternatively, this identifier is part of the challenge as a fixed part and a variable part completes the identifier to form the challenge (for example, fixed radical and variable challenge as a suffix).
[0134] Upon receiving the dynamically encrypted connection data and the (optional) challenge, the communication entity (internet/intranet site or other computer to be connected), makes a DPUK request based on the (optional) challenge and the ID1 identifier via the computing cloud (C) to the authentication server 5. The authentication server 5 has a database of keys each shared with a user terminal.
[0135] The server 5 finds the corresponding secret key with an identifier ID1 of the user terminal (or user identifier) and the received challenge (or challenge obtained internally in a synchronized way or according to a method shared with the terminal), then in turn generates a DPUK having the same value as the one generated by the mobile terminal. Using this DPUK, the website 3, 4 (or any communication entity) decrypts the initial message to retrieve the connection data that can now be used to authenticate the user and grant the connection requested by the user.
[0136] In all examples and figures, the transmission of a challenge or variable (Chall) is a preferred embodiment but may be optional. The important thing is that the terminal 6bis or computing entity 4 understands or uses the same variable or challenge to obtain the same dynamic key DPUK.
[0137] The DPUK can be a HOTP (Event-based One-Time Password) or TOTP (Time-based One-Time Password). In our preferred example, it is a HOTP.
[0138] The HOTP and TOTP type OTP calculations are known per se.
[0139] The dynamic key in the sense of the invention is dynamic because its value or its calculation may depend on a variable such as an elapsed time value (timestamp, clock value), a counter value (in particular with regular or non-regular incrementing, in particular event-based), a value of a challenge that may change or be randomly selected with each transaction. It may depend on a combination of several variables that may or may not comprise a challenge.
[0140] The dynamic key also depends on a fixed shared value such as a key (kshared, a secret value, an encryption key).
[0141] Each of them can determine on its own end, by shared convention or according to the same algorithm or a shared rule, the same challenge (or the same variable). This may be, for example, a list of pre-established challenges previously saved (10 to 1000) in the authentication server and in each terminal (or computing entity 4) and selected in an order agreed in advance. An occasional synchronization between the server and the entities or terminals may be necessary in case of a problem or error.
[0142] Thus, the challenge or variable does not need to be generated or transmitted in steps 30, 40, 90, 130.
[0143] The challenge may be provided by the software application or determined by the SDK application to be generated in step 150 (
[0144] Similarly, the “Kshared” key is preferably shared, but not necessarily in all use cases as below.
[0145] Beyond the description of an application of the invention to the encryption of transaction data, the inventors thought of the potential of an authentication server as such. They thought that the authentication server (5) could be used (independently of any client-server system, in particular a banking system) as an on-demand service server for any system or terminal wishing to obtain a DPUK for encryption or decryption purposes in particular.
[0146] This server can be hosted for example in an organization or entity, which may be a trusted institution or linked to a national government.
[0147] The server would include secret keys each associated with an identifier of a person, computer entity, or terminal.
[0148] According to one feature, this authentication server is configured to generate and communicate, upon request 50) and remotely, a dynamic key (6, DPUK) from a secret key and a variable or challenge: the dynamic key serving as a dynamic encryption/decryption key or base key for obtaining a dynamic data encryption/decryption key (with or without a change in format key, for example).
[0149] According to one feature, the variable (or said challenge) may be known to the terminal or computing entity. Thus, the same DPUK can be found and the information or data transmitted in each terminal or computer entity can be found in plaintext.
[0150] In an even simpler mode of operation, terminals or entities may not necessarily have the counterpart (similar functions) of the server to calculate a DPUK using an SDK application.
[0151] The invention (hijacked authentication server) would work as follows: a terminal 6bis wanting to encrypt data to be transferred to a terminal titer (not shown but which may be identical or similar to the terminal 6bis), makes a DPUK request to the authentication server on the basis of an identifier ID1 of the user of the terminal or an identifier ID1 of the terminal.
[0152] The server 5 retrieves from its HSM database a secret key (not shared) but associated with the identifier ID1, then generates a DPUK (dynamic variable value) with a challenge or generates an OTP;
[0153] This DPUK or OTP is transmitted to the terminal 6bis to encrypt, or serve as the basis for calculating an encryption key for the information or data. This data or information is encrypted with the encryption key and transmitted to the terminal 6ter with an identifier ID1 of the terminal or user.
[0154] The terminal or entity 6ter receives the encrypted information and upon receipt requires an OTP or DPUK identical to that obtained by the terminal 6bis from the authentication server 5 on the basis of the identifier ID1. The server 5 transmits this DPUK or OTP to the terminal 6ter, which enables the terminal to calculate an encryption/decryption key on the basis of this OTP or DPUK, which will be used to decrypt the information received from the terminal 6bis.
[0155] If necessary, a challenge can be transmitted to the server by the terminal 6bis to be integrated in the DPUK or OTP calculation within the server 4.
[0156] If necessary, this challenge can be integrated by the terminal 6bis in the calculation of the encryption key; it can be communicated to the terminal 6ter at the same time as the ID1 identifier to enable the same encryption/decryption key used by the terminal 6bis to be recalculated.
[0157] Thus, we see the potential of the authentication server used in the sense of the invention, as a provider of a key service or OTP(s), on demand. This request may come from any entity or computer processing or communication terminal, for the purpose of encrypting or decrypting any data or information.
[0158] Thus, the server 5 of the invention may only be used to authenticate a terminal using an OTP and may furthermore be used to provide OTPs or DPUKs to be used to encrypt or decrypt data.
[0159] Alternatively, the server 5 may not be an authentication server already deployed in the field, which is given a second use completely distinct from that of an authentication via OTP. It can instead be a dynamic key server deployed at least for the purpose of encrypting or decrypting data or information (without necessarily being an authentication server).
[0160] In
[0165] Next, the terminal 6ter can request a DPUK key or an OTP from the server 5 based on the ID1 of the terminal 6bis, to decrypt the data received from the terminal 6bis directly or after calculating the encryption key based on the DPUK or the OTP.
[0166] Thus, the invention can envisage covering any computer or communication system that has access to the key server for encryption or decryption according to a general aspect of the invention and is able to request DPUK (or OTP) keys on demand. The server can be accessed via the cloud. Preferably, the invention provides for the reuse of authentication servers already deployed in the field for an authentication function of terminals or other computing devices or entities in order to implement the encryption or decryption function very quickly and at low cost.
[0167] For example, there is no need to enroll and re-provision each user's endpoint with keys shared between each endpoint and each user.
[0168] It is well understood that the invention has the advantage of being immediately applicable when reusing an existing infrastructure comprising an authentication server.
TERMINOLOGY
[0169] TrsData=The data of the transaction being exchanged with the client mobile application, for example for a money transfer; [0170] TrsDataEnc=encrypted transaction data; [0171] Chall=random challenge (Challenge); [0172] Kshared=Shared secret key stored in a secure memory area; Exchanged during an enrollment process (the key described in the context); [0173] HOTP=HMAC based on an OTP (one-time password) algorithm; [0174] TOTP=Time-based one-time password algorithm; [0175] DPUK=Dynamic PUK, calculated as TOTP(KEY, DATA) or HOTP(KEY, DATA); To generalize we use DPUK(KEY,DATA); [0176] Kpre (or Kpredefined)=Predefined key, a fixed random key obfuscated in the mobile application and known by the back-end of the bank: [0177] Kenc=Dynamic encryption key