WO2014037740A1 - Method and system for verifying an access request - Google Patents
Method and system for verifying an access request Download PDFInfo
- Publication number
- WO2014037740A1 WO2014037740A1 PCT/GB2013/052346 GB2013052346W WO2014037740A1 WO 2014037740 A1 WO2014037740 A1 WO 2014037740A1 GB 2013052346 W GB2013052346 W GB 2013052346W WO 2014037740 A1 WO2014037740 A1 WO 2014037740A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- password
- data
- received
- generated
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 59
- 238000010200 validation analysis Methods 0.000 claims abstract description 18
- 230000004044 response Effects 0.000 claims description 25
- 230000001360 synchronised effect Effects 0.000 claims description 23
- 239000002131 composite material Substances 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000001010 compromised effect Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000003825 pressing Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000000704 physical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000036962 time dependent Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/34—User authentication involving the use of external additional devices, e.g. dongles or smart cards
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
- G06F21/725—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits operating on a secure reference time value
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2151—Time stamp
Definitions
- the present invention relates to a method and system for verifying an access request, and is particularly, but not exclusively suitable for verifying a request for access to data or services or assets.
- the person will establish the aforementioned credentials for use by the data provider in identifying and authenticating the person for future requests.
- credentials may include information that uniquely identifies the parson (e.g. personally identifiable information (PII)) and a secret (e.g. a password) for use in verifying the identity of the person.
- PII personally identifiable information
- the data provider will require the person to register themselves as the owner of a device used to access the data. The registered association between the device and the owner of the device can be used by the data provider as an additional validation factor. For example, in the case that a data provider receives a request for access to an account on behalf of a particular person from a particular device that is not the device registered for the person, the data provider may determine to trust that the request was made by the person registered for the account.
- OTP One-time passwords
- An authentication server uniquely assigns an OTP generation key to the registered owner of a device, the OTP generation key being for use in generating and validating OTPs.
- An authentication server typically holds hundreds or thousands of OTP generation keys, each having been uniquely assigned to, or registered in respect of, a different person.
- the authentication server configures an OTP token in the possession of the registered owner with his assigned OTP generation key.
- These OTP tokens may, for example, use the OTP generation key to generate a different password each time a new password is requested by the registered user or as another example, may use the OTP generation key to generate new passwords at regular time intervals.
- a user In order to access user-restricted data via a device, a user provides the OTP generated by the OTP token to the data provider along with the credentials that uniquely identify the owner of the device. Typically, the data provider will then identify the owner of the device and pass on the received OTP to the authentication server. The authentication server will look up the OTP generation key associated with the identified person and will use the key to determine whether the received OTP corresponds to the OTP that would have been/was generated by the OTP token held by the owner of the device. The authentication server will then indicate to the data provider whether the received OTP is valid. If the correct OTP was sent to the data provider, then it can be determined that the user of the device is in possession of the OTP token.
- authentication servers are vulnerable to compromise thereby facilitating the unauthorised distribution to other entities and enabling anyone with (illegitimate) access to a distributed OTP generation key to access data on behalf of the person associated with that key.
- US 7,721, 107 discloses a particular method of verifying whether the user of a device is a human.
- a user of a device requesting access to an OTP is presented with "interaction instructions" via a first area of a user interface of the device.
- the user is instructed to enter a series of numbers into a second area of the user interface; in another example, the user is instructed to perform a physical action, such as tracing a curve within a second area of the user interface (e.g. a touch screen).
- the device determines whether the user has entered the correct numbers/traced the correct curve etc., and, if so, the device provides the requested OTP to the user.
- a user might be able to make a connection to the device and thereby be able to fraudulently authenticate himself to the device by accessing the interaction instructions and responding to them appropriately.
- a system for use in verifying a request for access to data comprising: a first module arranged to generate a password and output the generated password via an interface of the first module; a second module arranged to receive a password associated with the request for data, validate the received password, and enable access to the requested data, wherein said received password is received via an interface of the second module and corresponds to the password generated by the first module, wherein the first and second modules share a secret that has been uniquely assigned to the first and second modules for use in generation and validation of a said password, and, wherein the first module is communicatively disconnected from the second module.
- the shared secret enables the second module to determine whether a password received from a user of the second module matches a password that has been generated by the first module, and thereby enables the second module to validate the received password.
- this secret is uniquely assigned to the first and second modules (i.e. there is a one-to-one mapping between the secret and the module for generating the password and also a one-to one mapping between the secret and the module for validating the password), then in the event that the secret is compromised, only those two modules need to be reconfigured with a new secret.
- OTP key will typically be stored both on a number of OTP tokens and also at the authentication server, establishing a new OTP key can be quite burdensome on the authentication server, as the authentication server is required both to reassign that person a new OTP generation key and to configure a new set of OTP tokens with the new OTP generation key.
- said second module is arranged to validate passwords associated with a further module with which it has been paired during a configuration process in which a secret is assigned to the second module and the further module.
- the further module may be a module of a third party and in this case, the secret may be associated with a particular user who is known by the third party. The second module is therefore able to use the secret to verify whether the user of the second module is the user known by the third party.
- said first module and said second module are composite parts of a device.
- a user of the second module is able to retrieve a password from the first module and enter it into the second module, it is very likely that the user of the second module is in possession of the first module, and is therefore also in possession of the second module.
- the second module validates a password received from a user of the second module, it is very likely that that user is in possession of the second module. In other words, it is likely that the user of the device is not controlling the device remotely.
- said first module said second module are integrated within the device. For example, the modules could share a battery.
- said device has a unique device identifier and said generated and received passwords are generated and validated in dependence upon the unique device identifier. This provides additional assurance that the user of the second module is in possession of the device.
- said shared secret is stored in a secure element of the second module. This prevents a user of the second module accessing the secret used to validate received passwords in order to determine the password that would be generated by the first module.
- said shared secret is stored in a secure element of the first module. This prevents a user of the first module accessing the secret used to generate passwords.
- the second module is arranged to send data for use in enabling access to the requested data, whereby to enable access to the requested data. This is particularly useful in the case that the requested data is held externally by a third party, or in the specific case that the passwords are generated and validated in dependence upon the time, but the second module does not have a clock that is synchronised with the clock of a first module.
- the first module is arranged to generate said generated password in response to an input related to said request for access to data.
- the first module is arranged to generate a subsequent password in response to a subsequent input related to a request for access to data, the subsequently generated password being different from a previously generated password.
- the remote user observes (via an interface of the second module for example) a password entered by a user who is in possession of both the first and second modules, the remote user will not be able to reuse the observed password in order to access further data, as the validity of the password will have expired.
- the first module is arranged to generate passwords at regular time intervals, each successively generated password being different from a previously generated password.
- a particular generated password is only valid for a predetermined time period, and therefore a remote user who has observed a password entered by a user who is in possession both the first and second modules will not be able to reuse that password outside of the predetermined time period.
- said passwords are generated and validated in dependence upon at least said shared secret and the current time.
- the first module comprises a first clock for use in generating a password and the second module comprises a second clock for use in validating a received password, the first and second clocks being synchronised.
- the first module comprises a clock for use in generating a password and the second module is arranged to receive a timestamp for use in validating a received password, the timestamp being received from a third party that has a clock that is synchronised with the clock of the first module.
- the first module comprises a clock for use in generating a password and the second module is arranged to receive a timestamp for use in validating a received password, and said data sent by the second module for use in enabling access to data is sent to a third party that has a clock synchronised with the clock of the first module and comprises an indication of the timestamp used to validate said received password.
- said data sent by the second module for use in enabling access to data comprises data indicative of a determination that the received password is valid.
- the second module may comprise a user interface and be arranged to receive the request for access to data from a user of the second module via that user interface.
- the second module is further arranged to receive information via the user interface of the second module that uniquely identifies a human, and said data sent by the second module for use in enabling access to data comprises data that uniquely identifies said human.
- a method of verifying a request for access to data comprising: generating at a first module a password and outputting the generated password via an interface of the first module; receiving at a second module a password associated with the request for data via an interface of the second module, said received secret corresponding to the password generated by the first module, validating at the second module said received password, and enabling access to the requested data at the second module, wherein the first and second modules share a secret that has been uniquely assigned to the first and second modules for use in generation and validation of a said password, and wherein the first module is communicatively disconnected from the second module.
- a system for use in verifying a request for data received at a device as a request originating from a human in possession of the device comprising: a first module arranged to generate a password and output the generated password via an interface of the first module; a second module arranged to receive a password associated with the request for data and validate the received password, and to enable access to data, wherein said received password is received via an interface of the second module and corresponds to the password generated by the first module, wherein the first module and the second module are composite parts of the device, and wherein the first module is communicatively disconnected from the second module.
- the first and second modules are communicatively disconnected from each other, if a user of the second module is able to retrieve the password generated by the first module, it is likely that the user of the second module is in possession of the first module. Further, if the first and second modules are composite parts of a single device, then if the user of the second module is in possession of the first module, then that user must also be in possession of the second module.
- the password generated by the first module is displayed via a user interface of the first module and is received via a user interface of the second module, the second module is able to determine to a reasonable level of confidence that the request for access to data originated from a human who is in possession of the device.
- the first module is communicatively disconnected from the second module, there is no means to automatically transfer the password generated by the first module to the second module and thus the password has to be read from a user interface of the first module and input manually via the user interface of the second module.
- said first module and said second module are integrated within the device.
- the first and second modules share a secret for use in generation and validation of a said password.
- the second module may be able to determine whether a password received from a user of the second module matches a password that was/would have been generated by the first module without having to use a third party.
- the second module is arranged to send the received password to a third party and to receive an indication from the third party that the received password is valid, whereby to validate the received password.
- the second module is not required to be configured with a secret.
- the second module is arranged to validate the received password by comparing the received password to a password generated by a third module.
- the first module is arranged to generate said password in response to an input related to said request for access to data.
- the first module is arranged to generate a subsequent password in response to a subsequent input related to a request for access to data, the subsequently generated password being different from a previously generated password.
- the first module is arranged to generate passwords at regular time intervals, each successively generated password being different from a previously generated password.
- a method of verifying a request for data received at a device as a request originating from a human in possession of the device comprising: generating at a first module a password and outputting the generated password via an interface of the first module; receiving at a second module a password associated with the request for data via an interface of the second module, said received secret corresponding to the password generated by the first module; validating at the second module the received password; and enabling access to data at the second module, wherein the first module and the second module are composite parts of the device, and wherein the first module is communicatively disconnected from the second module.
- Figure 1 shows a block diagram of a system according to an embodiment of the present invention
- Figure 2 shows schematically a method according to an embodiment of the present invention
- Figure 3 shows a block diagram of a system according to an embodiment of the present invention
- Figure 4 shows schematically a method according to an embodiment of the present invention
- Figure 5 shows schematically a method according to an embodiment of the present invention
- Figure 6 shows schematically a method according to an embodiment of the present invention.
- Figure 7 shows schematically a method according to an embodiment of the present invention.
- Fig. 1 shows a block diagram of a system 10 according to an embodiment of the present invention.
- the system 10 comprises a first module 20 and a second module 30.
- the first module 20 is arranged to generate passwords
- the second module 30 is arranged to receive passwords from a user of the system 10 and validate the received passwords.
- the first and second modules 20,30 each comprise a respective user interface 21,31.
- User interfaces 21,31 typically comprise at least one input or output.
- An input of a user interface of a device may be, for example, a keyboard, a mouse, a touch screen, a microphone or any other component that allows the user to provide an input to the device.
- An output of a user interface of a device may be, for example, a screen, a speaker, or any other component capable of outputting information from the device to a user of the user interface.
- the user interface 21 of the first module 20 is configured to provide a generated password to a user of the first module 20 and the user interface 31 of the second module 30 is configured to receive a password from a user of the second module 30.
- the first module 20 and the second module 30 are separate devices that are collectively configured to determine whether it is likely that a request for access to data originated from a user in possession of the second module 30.
- the two modules 20,30 may be manufactured and sold together, and in the possession of a particular person.
- the second module 30 may, in one example, be a wireless device (or a component of a wireless device). In one arrangement, the first and second modules 20,30 may be components of a single wireless device.
- the second module 30 may operate under the control of a user who is in possession of the second module 30 via the user interface 31 of the second module 30 or may operate under the control of a remote entity having a communications link to the second module 30.
- the first module 20 can be controlled via the user interface 21 of the first module 20 and is communicatively disconnected from the second module 30, as will be described in more detail below, and therefore cannot be controlled via the user interface 31 of the second module 31.
- the second module 30 may be a composite part of a device that stores confidential data associated with a particular person only.
- the second module 30 may store user-restricted cryptographic keys for decrypting data.
- the second module 30 may provide or facilitate access to confidential data that is stored externally by a third party.
- the third party may only allow access to the data if it is determined that the data is being provided to a particular person (in other words, the data may be user-restricted).
- the third party may require that the owner of a device registers an association between the device and the owner.
- the third party may then only send data, which is intended to be received by a particular person, to the device that is associated with that person.
- the second module 30 may have a registered association with a particular person, and thus access to data that is intended for the owner of the second module 30 can be accessed via the second module 30 only.
- the second module 30 comprises a communications module
- an unauthorised person could make a connection to the second module 30 and remotely control the second module 30 to send a request to the third party holding the confidential data.
- the second module 30 can determine that the request for access to data was made by a user in possession of the second module 30 or by a user remote from the second module 30, it can take an appropriate responsive action e.g. disallow further use of the second module 30 upon a determination that the request was made by a remote user.
- the first and second modules 20,30 are configured with a shared secret that is for use in both generating passwords and validating passwords.
- the first module 20 comprises circuitry and/or software that is constructed and configured to generate a password based on the secret
- the second module 30 comprises circuitry and/or software that is constructed and configured to determine, based on the secret, whether a password received from a user of the second module 30 matches the password that was generated by the first module 20.
- this secret is uniquely assigned to the first and second modules 20,30.
- the secret is associated with the first and second modules 20,30 only.
- the first and second modules 20,30 are tamper-resistant, i.e. the secret stored in the first and second modules 20,30 and the algorithm used to generate the password cannot be altered.
- the system 10 is configured such that the first module 20 is communicatively disconnected from the second module 30.
- the system 10 is constructed and configured such that there are no means of communicating (either directly or indirectly) between the two modules 20,30.
- communication between the two modules 20,30 is prevented by the modules 20,30 being physically disconnected from each other. It will be understood however, that the two modules 20,30 could be physically connected (i.e. integrated) whilst being communicatively disconnected e.g. if they do not share any common circuitry or system interfaces or comprise any other means of exchanging information with each other.
- Fig. 2 shows schematically an exemplary method according to the present embodiment.
- a user 35 of the second module 30 makes a request for access to data (step 40).
- the request for access to data at step 40 could be, for example, a request for access to a user-restricted webpage, a request for access to confidential information, or a request for access to data for use in enabling access to a service.
- the data that the user 35 of the second module 30 wishes to access could be data stored on or generated by a component of the system 10, or could be data that is stored at or generated by an entity that is external to the system 10 (for example an external database or server).
- the data that the user 35 of the second module 30 wishes to access may be, for example, a restricted webpage hosted on a server, which is external to the system 10, and in this case, access to the webpage may be enabled by the server sending data to the second module 30.
- the information contained in the data sent by the second module 30 will be explained in more detail below.
- the second module 30 prompts the user to enter a password that has been generated by the first module 20.
- the user 35 of the second module 30 is also the user 25 of the first module 20 (as shown schematically by the dashed lines in Fig. 2) and thus the user can then cause (step 50) the first module 20 to generate a password by, for example, pressing a button of the user interface 21 of the first module or otherwise indicating to the first module 20 that a password is required.
- the first module 20 uses the secret that is uniquely assigned to the first and second modules 20,30 to generate a password, which is then provided (step 60) to the user 25 of the first module 20.
- the generated password may be, for example, a series of numbers, a series of letters, a combination of letters and characters or an image and may for example be presented to the user 25 of the first module 20 on a screen of the user interface 21.
- the first module 20 may generate passwords (in dependence on the shared secret) at regular time intervals and may automatically present the most recently generated password on the user interface 21 of the first module 20.
- the user can then enter (step 70) the password generated by the first module 20 into the user interface 31 of the second module 30.
- the second module 30 uses the secret that is uniquely assigned to the first and second modules 20,30 to verify whether the password received from the user 35 of the second module 30 is the same as the password that was generated by the first module 20. Upon validating the received password, the second module 30 then enables access to the requested data (step 80).
- the first module 20 and the second module 30 may each comprise a respective secure element 22,32 such as a secure SIM card or a secure memory card, and the secret that is uniquely assigned to the first and second modules 20,30 is stored in the secure elements 22,32 of the first and second modules 20,30.
- the secret that is uniquely assigned to the first and second modules 20,30 is stored in parts of the first and second modules 20,30 that cannot be accessed by users 25,35 of those modules 20,30.
- the secret may be provisioned to the secure elements 22,32 of the first and second modules 20,30 at manufacture and in a preferred embodiment, the secure elements 22,32 are manufactured separately to the other components of the modules 20,30 and thus the association between the modules 20,30 and the secret stored on the secure elements 22,32 cannot be known by any entity external to the system 10.
- Storing the secret within secure elements 22,32 prevents a user 25,35 on either of the modules 20,30 from finding out the secret and thereby being able to work out the password that needs to be entered into the second module 30 in order to access the requested data and also prevents a user 25,35 from altering the algorithm for generating passwords, which could thereby cause the first module 20 to generate a false response.
- One particular advantage of the present embodiment arises from the fact that the secret for generating and validating the password is uniquely assigned to the first and second modules 20,30. More specifically, because there is a one-to-one mapping between the secret and the module 30 that uses the secret to validate the password, and also a one-to-one mapping between the secret and the module 20 that uses the secret to generate the password, then in the event that the secret is compromised, the modules 20,30 need only to be reconfigured with a new secret (that is again uniquely assigned to the modules 20,30). This can be achieved, for example, by replacing the secure elements 22,32 of the modules 20,30 with new secure elements that have the new secret stored thereon.
- OTP key will typically be stored both on a number of OTP tokens and also at the authentication server, establishing a new OTP key can be quite burdensome on the authentication server, as the authentication server is required both to reassign a new OTP generation key to that user and to configure a new set of OTP tokens with the new OTP generation key.
- the second module 30 is also paired with a further module, such as a module of a third party, and is arranged to validate passwords associated with that further module.
- the second module 30 may have been paired with the further module during a configuration process in which a secret is assigned to both the second module 30 and the further module. It will be understood that, in general, the second module 30 could be paired with any number of further modules.
- a remote user of the second module 30, who is not the registered owner of the second module 30, but has established a communication link with the second module 30 and is thereby controlling the second module 30 remotely, is in possession of the first module 20.
- the remote user may have stolen the first module 20.
- the remote user could request access to data via the communication link and then retrieve a password generated by the first module 20 and enter this into the second module 30 via the communication link.
- the second module 30 would validate the request for access to data and would enable the remote user to access the data.
- a remote user in possession of the first module 20 would be indistinguishable from a registered user of the second module 30 who is in possession of both the first and second modules 20,30 because the remote user will be able to retrieve the password from the first module 20 and enter it into the second module 30.
- Fig. 3 shows a block diagram of a particular embodiment that addresses this scenario.
- the first and second modules 20,30 are composite parts of a single device 90.
- the modules 20,30 may be physically separate within the device 90, or the modules 20,30 may be physically connected (i.e. integrated) within the device 90.
- they may share some components within the device 90, such as the power source (not shown).
- the first and second modules 20,30 are communicatively disconnected with respect to each other within the device 90.
- the first and second modules 20,30 are composite parts of a single device 90, if a user 35 of the second module 30 is in possession of the first module 20 (and can therefore retrieve 60 the password generated by the first module 20), that user must also be in possession of the second module 30.
- the second module 30 can determine to a greater level of confidence whether the request for access to data 40 originated from a user who is in possession of the device 90. This is because, as there are no means of communicating (either directly or indirectly) between the first and second modules 20,30, there is no means to automatically or remotely transfer the password generated by the first module 20 to the second module 30 and thus the password has to be physically retrieved from the user interface 21 and input manually via the user interface 31 of the second module 30.
- the secret that is uniquely assigned to the first and second modules 20,30 is an OTP generation key and the password that is generated by the first module 20 is thus a one-time password (OTP).
- OTP one-time password
- subsequent passwords generated by the first module 20 are different from the previously generated passwords, and each generated password is valid for one authentication attempt only.
- the generated OTP is time-dependent and is valid for a predetermined period of time.
- the first module 20 may generate a password in dependence upon a previously generated password and an OTP generation key.
- the first module 20 comprises a clock and the OTP is generated in dependence upon the current time (i.e. the time at which the OTP is being generated as measured by the clock of the first module) and the OTP generation key.
- the OTP may be a cryptographic function of the OTP generation key and the current time.
- the OTP may additionally be generated in dependence on a device ID uniquely associated with the device 90.
- a device ID may be, for example, a hashed function of the CPU ID of the device 90, a hashed function of a GPU ID of the device 90, or a combination thereof.
- the OTP may be a cryptographic function of the OTP generation key, the device ID and the current time.
- the current time will be known herein as the "generation time" TG, and it will be understood to have been measured with respect to the clock of the first module 20.
- a particular generated OTP can only be used to validate a request for access to data if used within a predetermined period of time following the generation time TG.
- the second module 30 may comprise a second clock that is synchronised with the clock of the first module 20 (i.e. the "first clock"). As the second module 30 is tamper-proof, the second clock cannot be altered, and thus the second module 30 can trust that the second clock is synchronised with the first clock.
- the second module 30 Upon receiving a password from a user 35 of the second module, the second module 30 uses the second clock and the OTP generation key to determine whether the password received 70 from the user 35 of the second module 30 is the same as a password that was/would have been generated by the first module 20 at a time within a predetermined time from the time at which the password was received 70 by the second module 30.
- the time at which the password was received 70 by the second module 30 will be known herein as the "reception time" T R .
- the method used by the second module 30 to validate the received password will depend on the method used by the first module 20 to generate the password. Many such methods are already known and the specific method is considered to be outside the scope of the present invention.
- the second module 30 determines that the received password matches an OTP that was/would have been generated by the second module 30 at a time TG that is within a predetermined period of the reception time TR, then the second module 30 validates the received password, and may thus determine that it is likely that the request for access to data originated from a user who is in possession of the first module 20 (and is therefore unlikely to be in remote control of the second module 30). In the case that the requested data is stored on the second module 30 (or a device of which the second module is a component), the second module 30 then enables access (step 80) to the requested data.
- the second module 30 may be configured to only allow a particular person (or a number of particular people) to access the data, and in this case, the second module 30 may require that the user 35 of the second module 30 enters credentials (e.g. a username and password or a PIN) associated with that particular person into the second module 30 before access to the requested data is granted.
- the user 35 of the second module 30 may have requested access to a restricted file held in the secure element 32 of the second module 30.
- the second module verifies the password received at step 70 from the user 35 of the second module 30 and the user 35 supplies the correct PIN associated with the person who is allowed to access that file, then the second module 30 enables access (step 80) to that file.
- the second module may, in one arrangement, store previously received passwords, and upon receiving a particular password from a user 35 of the second module 30, the second module 30 may deny access to the data requested in association with that particular password if that password has been previously received.
- the second module 30 will reject that OTP as a replica of a previously received OTP, even if the replicated OTP is determined to have been received within the predetermined time of TG (i.e. if the user 35 replicates the validated OTP shortly after the original OTP was received by the second module 30).
- the first module 20 may generate passwords in dependence upon a device ID of the device 90.
- a user 35 of the second module 30 may be required to enter the device ID into the second module 30 along with the password.
- the second module 30 may then use the device ID provided by the user 35, along with the reception time TR, to determine whether the password received from the user 35 is valid.
- the second module 30 may also separately check whether the device ID entered by the user 35 of the second module 30 matches the device ID of the device 90. In this case, if the device ID received from the user 35 is incorrect, the second module may deny access to the requested data regardless of whether the received password is valid.
- Requiring the user 35 to provide the unique device ID of the device 90 increases the confidence, that the user 35 of the second module 30 is in possession of the device 90.
- the device ID could alternatively be provided to the second module 30 by the application programming interface of the device 90. This provides some additional assurance that the second module 30 has not been stolen and replaced in a different device.
- the second module 30 may instead have access to an alternative time source, which is external to the second module 30.
- the first and second modules 20,30 are composite parts of a device 90
- the second module 30 may have access to a clock of the device 90, and the clock of the device 90 may be used as the time source.
- the second module 30 may obtain an untrusted time stamp (indicating the time TR at which the password was received) from the time source and may use that untrusted timestamp (along with the shared secret and optionally also a device ID received from the user 35 of the second module 30) to validate the received password as described above.
- an untrusted time source may be, for example, a time source that can be tampered with or altered without the second module's knowledge or a time source that provides unauthenticated timestamps which can easily be replicated.
- the clock of the device 90 can be altered by a remote user, and is therefore not trusted by the second module 30.
- the second module 30 sends a message containing the timestamp used to validate the received password (i.e. the untrusted timestamp TR) to a trusted third party that has a clock synchronised with the clock of the first module 20. Trust may have been established between the third party and the second module 30 by the sharing of cryptographic keys for use in signing and thereby authenticating messages sent therebetween, as will be discussed in more detail below.
- the third party Upon receiving the message containing the untrusted timestamp, the third party determines whether the time TR indicated by the timestamp is within a predetermined range of the current time as measured by the clock of the third party. If the time TR is determined to be within the predetermined range of the current time and the message indicates that the password received by the second module 30 is valid, the third party determines to trust that the user 35 of the second module 30 is in possession of both the first and second modules 20,30. This is because, if the second module 30 has positively validated a received password using the timestamp TR, then the user 35 of the second module 30 must have provided a password that would have been generated by the first module 20 at a time TG that is close to TR.
- the third party may invoke a resynchronisation procedure to resynchronise the time source.
- the trusted third party then sends a message to the second module 30 which indicates whether the time TR is within the predetermined time range. If the time TR is within the predetermined time range, the second module 30 enables access to requested data. Alternatively, if the time TR is outside the predetermined time range, the second module denies access to the requested data.
- the user 35 of the second module 30 may request access to data that is held externally by a trusted third party.
- the third party may have access to a clock that is synchronised with the clock of the first module 20, such as a clock that runs on universal time.
- the second module 30 has validated a password received from the user 35 of the second module 30 (using a timestamp provided by an untrusted time source external to the second module 30 as described above), the second module 30 is configured to send a request for access to data to the third party.
- the request contains both an indication that a password received by the second module 30 in association with a request for access to data has been validated and also a timestamp indicating the time TR (obtained from the untrusted time source) that was used to validate the password.
- the third party determines whether the time TR is within a predetermined range of the current time, as described above, and responsively either sends the requested data to the second module 30 or denies access.
- the second module 30 may store previously received OTPs and may invalidate any OTPs that have been previously received. This is particularly useful for situations in which the second module 30 is simultaneously accessed both by a remote user 35 and a user 35 in possession of both the first and second modules 20,30 (i.e. a local user 35). Assuming the remote user 35 attempts to access data by replicating an OTP that was previously entered into the second module 30 by the local user 35, the second module 30 will reject the replicated OTP as a duplicate.
- the second module 30 may store a limited number of previously received OTPs and, if a particular OTP, which has been previously received by the second module 30 but which is no-longer stored by the second module 30, is replicated, the third party 100 is likely to reject that OTP because it will be associated with a timestamp that is outside the predetermined range of the current time.
- the message containing the timestamp used by the second module 30 to validate a received password may be signed by the second module 30 (e.g. using a cryptographic key(s) associated with the second module 30 and the third party), thereby allowing the third party to verify the origin of the message.
- the third party will recognise that the message has been altered because it will not contain the second module's correct signature, and will deny access to the associated requested data.
- Messages that have been altered by someone other than the original sender are commonly referred to as "spoofed messages”.
- the trusted third party is configured to send a message to the second module 30 indicating whether a received timestamp is valid, that message may also be signed. This allows the second module 30 to identify messages sent to the second module 30 by a party other than the trusted third party, which may not be trusted.
- the second module 30 may obtain a timestamp from a trusted third party that has a clock that is synchronised with the clock of the first module 20.
- the third party and the second module 30 may sign and thereby authenticate messages sent therebetween using cryptographic keys for example, and thus timestamps that are signed by the third party can be trusted by the second module 30.
- the second module 30 may send a message to the third party requesting a timestamp, and the third party may respond by sending a message containing a timestamp indicating the time at which the request for a timestamp was received (as measured by the clock of the third party).
- the second module 30 uses the received timestamp, which is assumed to indicate a time close to TG, along with the OTP generation key and optionally also a device ID received from the user 35 of the second module 30, to determine whether the received password corresponds to a password that was/would have been generated by the first module 20 at a time within a predetermined time range of the time indicated in the received timestamp.
- the second module 30 determines that the received password corresponds to a password that was/would have been generated by the first module 20 at a time within the predetermined range of the time indicated in the received timestamp, the second module 30 sends a message to the third party confirming the timestamp used to validate the password, and the third party makes a determination as to whether access to the associated requested data should be allowed in dependence upon (a) whether the timestamp is within a predetermined range of the current time and (b) whether the timestamp matches the timestamp sent by the third party to the second module 30.
- the message may be signed by the second module 30, and upon receipt of this message, the third party may also verify whether the message is signed by the second module 30 and may deny access to any data has been requested by the second module 30 in association with a message containing a timestamp that is not signed by the second module 30.
- a remote user 35 of the second module 30 may observe an OTP entered by a user in possession of both the first and second modules 20,30 and may also observe the timestamp received from the third party. That remote user may, at some time later, supply the second module 30 with the observed timestamp and the observed OTP. In this case, if the second module 30 does not store previously received OTPs or only stores a predetermined number of previously received OTPs for example, the second module 30 may validate the remote user's password. However, as the second module 30 then sends the timestamp used to validate the password to the third party, the third party is able to identify that timestamp as being out-of-date and will deny access to the requested data accordingly.
- the first and second modules 20,30 are composite parts of a device 90 and, as described above with reference to Fig. 1 for example, are for use in generating and validating OTPs respectively.
- the first and second modules 20,30 are also communicatively disconnected from each other.
- the first and second modules 20,30 share an OTP generation key that has been uniquely assigned to the first and second modules 20,30.
- the first module 20 is configured to generate OTPs as a cryptographic function of the generation time (as measured by a clock of the first module 20), the OTP generation key, and a unique device identification number.
- the device 90 comprises two separate user interfaces 21,31.
- the user interface 21 of the first module 20 comprises a button and a screen, the button being configured to cause the first module to generate a password and the screen being configured to present a generated password to a user 25 of the first module 20.
- the user interface 31 of the second module 30, comprises at least a screen and a keypad.
- Fig. 4 shows schematically an exemplary method for sharing temporary cryptographic keys between a banking service provider 101 and the second module 30 of the device 90.
- the banking service provider 101 has shared temporary cryptographic keys with another service provider 102 (see Fig. 5) and together the cryptographic keys shared with the service provider 102 and the cryptographic keys shared with the second module 30 are for use in authenticating and/or encrypting/decrypting messages sent between the second module 30 and the service provider 102, as will be discussed in more detail below.
- the second module 30 and the banking service provider 101 already have pre- assigned cryptographic keys for use in encrypting and authenticating messages sent therebetween, as discussed above. Further, the banking service provider 101 stores an association between the device 90 and a particular bank account holder.
- the second module 30 does not have a clock that is synchronised with the clock of the first module 20 and the device 90 is registered with the banking service provider 101.
- the banking service provider 101 has a clock that is synchronised with the clock of the first module 20 (e.g. the clock may run on universal time).
- a user 35 of the second module 30 of the device 90 requests (step 40) a temporary cryptographic key from the banking service provider 101.
- the user 35 of the second module 30 may enter information into the second module 30 that identifies the particular bank account holder in respect of which the user 35 wants to obtain a temporary cryptographic key.
- the second module 30 Upon receiving the request for a temporary cryptographic key 40, the second module 30 sends a message (step 130) to the banking service provider 101 indicating that a request for access to a temporary cryptographic key has been made by a user 35 of the device 90 and indicating that the device 90 has modules 20,30 for generating and validating passwords.
- This message (sent at step 130) informs the banking service provider 101 that the device 90 is able to determine whether the request (at step 40) for access to a temporary cryptographic key originated from a user in physical possession of the device 90, and also prompts the banking service provider 101 to provide (step 140) a timestamp indicating the current time as measured by the clock of the banking service provider 101.
- the timestamp is signed by the banking service provider 101 and thus the second module 30 can trust that the timestamp was received from the trusted banking service provider 101 and therefore that the timestamp is trusted and was generated by a clock that is synchronised with the clock of the first module 20.
- the message 130 may also identify the device 90 (and thereby the bank account holder who is associated with the device 90) to the banking service provider 101 e.g. by sending the device ID associated with the device 90 to the banking service provider 101.
- the second module 30 After receiving the message (at step 140), the second module 30 prompts the user of the second module to enter a password that has been generated by the first module 20 of the device 90 and also the unique device ID of the device 90.
- the user 35 of the second module 30 is in possession of the device 90, and is therefore also the user 25 of the first module 20.
- the user 25,35 of the device 90 can press the button of the user interface of the first module 20 and cause the first module 20 to generate an OTP (step 50).
- the user 25 may then retrieve the generated password (step 60) from the screen of the first module 20, and may enter the retrieved password along with the device ID of the device 90 into the user interface 31 of the second module 30 (step 70).
- the banking service provider 101 sends a signed message (step 140) containing a timestamp to the second module 30.
- This message 140 may also include a challenge for the user 25,35 of the device 90.
- the message sent at step 140 may challenge the user 25,35 of the device 90 to enter credentials (such as a username and a PIN) that have been pre-agreed between the banking service provider 101 and the bank account holder associated with the device 90.
- credentials such as a username and a PIN
- the second module 30 Upon receipt of the password and device ID from the user 35 of the second module 30 (at step 70), the second module 30 uses the timestamp within the message received at step 140 to verify the password. In the present arrangement, the second module verifies the received password by using the timestamp, the OTP generation key that has been assigned to the first and second modules 20,30, and the device ID received from the user 35 to determine whether the received password matches any passwords that would have been generated by the first module 20 at a time TG that is equal or close to the time given in the received timestamp.
- the maximum time difference between the timestamp and TG for which the second module 30 will determine a received password to be valid may be set by the second module 30 or the banking service provider 101, and in this latter case, the maximum time difference may be indicated to the second module 30 in the message 140.
- the second module 30 determines that the password received from the user 35 of the second module 30 is correct, the second module 30 presents the challenge received at step 140 in the message that was sent from the banking service provider 101 to the second module 30 to the user 35 and the user 35 of the second module 30 then responds (step 150) to this challenge.
- the second module 30 After receiving at step 150 the response to the challenge, the second module 30 sends (step 160) a signed message indicating that a received OTP was found to be valid, confirming the time used to verify that received OTP, and also containing the response to the challenge received (at step 150) from the user 35 of the second module.
- the response is encrypted.
- the second module 30 sends a signed message (step 160) to the banking service provider 101 indicating that the received OTP was found to be invalid.
- the message sent from the second module 30 to the banking service provider 101 at step 160 contains the OTP validation result, a time stamp, and a challenge response, regardless of whether the validation result is positive or negative. This ensures that the messages sent at step 160 are indistinguishable and cannot provide a non-authorised party with additional information to launch a denial of service attack.
- the banking service provider 101 determines whether the response to the challenge received at step 150 from the user 35 of the second module is correct. For example in the case that the challenge is a request for the user 35 to enter a PIN that has been pre- agreed between the banking service provider 101 and the identified bank account holder (who is associated with the device 90), the banking service provider 101 may determine whether the PIN entered by the user 35 of the second module 30 matches the PIN of the identified bank account holder. If the banking service provider 101 determines that the response (at 150) to the challenge is correct, the banking service provider 101 may send (step 120) the requested temporary cryptographic key to the second module 30, where it is then stored.
- the second module 30 may be prepositioned with a secret for use in presenting a challenge to the user 35 of the second module 30.
- the secret may be a PIN associated with the bank account holder associated with the device 90, and in this case, the second module 30 may challenge the user 35 of the second module 30 to enter that PIN.
- the second module 30 may then use the secret to validate the response to the challenge received from the user 35 of the second module 30 at step 150, and may indicate the result of the verification to the banking service provider 101 at step 160.
- the banking service provider 101 denies access to the requested temporary cryptographic key.
- the temporary cryptographic key could be generated by the service provider 102 (see Fig. 5), and sent to the banking service provider 101, which will then determine whether to share that key with the second module 30 as in the case where the temporary cryptographic key is generated by the banking service provider 101.
- the temporary cryptographic key could be generated by the second module 30, and may be sent to the banking service provider 101 in the message 130 for example.
- the banking service provider 101 may then share that temporary cryptographic key with a service provider 102 if it determines that the user 35 of the second module 30 has correctly entered a password that was generated by the first module 20 into the second module 30.
- Fig. 5 shows schematically further steps according to an embodiment of the present invention, which may be carried out by the service provider 102 and the second module 30 once the second module 30 has received the temporary cryptographic keys from the banking service provider 101.
- the device 90 is registered with a banking service provider 101 as being owned by a particular bank account holder and the banking service provider 101 shared temporary cryptographic keys with a service provider 102, which are associated with that bank account holder.
- the service provider 102 may already know the bank account holder who is the registered owner of the device 90, and in this case, when the temporary cryptographic keys are shared with the service provider 102, the bank account holder that is associated with those keys is identified to the service provider 102.
- the banking service provider 101 may send to the service provider 102 information for use in identifying and providing a service to that bank account holder when the associated temporary cryptographic keys are shared.
- a user 35 of the second module 30 requests (step 40) access to a server for use in making a payment or transferring funds from the account of the bank account holder associated with the device 90.
- the server is for use in facilitating a person-to-person (P2P) payment via the device 90 from the account of the bank account holder associated with the device 90.
- P2P person-to-person
- the user 35 of the second module 30 may enter information into the second module 30 that identifies the bank account holder in respect of which the user 35 wants to obtain P2P services.
- the second module 30 Upon receiving the request (step 40) from the user 35 of the second module 30, the second module 30 prompts the user 35 to enter an OTP generated by the first module 20 of the device 90 and also the unique device ID of the device 90. Upon receiving a password from the user 35, the second module 30 retrieves a timestamp from a clock of the device 90, indicating the time TR, as measured by this clock, at which the password was received by the second module 30. The second module then uses this timestamp, along with the OTP generation key and the device ID received from the user 35, to determine whether to verify the received password.
- the clock of the device 90 is not trusted by the second module 30 and thus in this case, if the second module 30 determines that the password received from the user 35 of the second module 30 matches the password that was/would have been generated by the first module (i.e. if the second module 30 validates the received password), the second module sends a message (step 180) to the service provider 102, which is encrypted and signed using the temporary cryptographic keys stored in the second module 30, thereby preventing the contents of the message from being discovered and enabling the service provider 102 to verify the origin of the message (i.e. enabling the service provider 102 to verify that the message has not been tampered with).
- the message sent at step 180 comprises: an indication that a request for access to the P2P server has been made on behalf of a particular bank account holder; an indication that the second module 30 of the device 90 has validated the password received from the user 35; and an indication of the time (as measured by a clock of the device 90) at which the password was received from the user 35 of the second module 30 (i.e. the reception time).
- the service provider 102 Upon receiving a message containing a positive validation result from the second module 30 (step 180), the service provider 102 uses the temporary cryptographic keys that were shared between the banking service provider 101 and the service provider 102 to verify whether the message is signed by the temporary cryptographic key that was shared between the banking service provider 101 and the second module 30 (i.e. the temporary cryptographic key associated with the second module 30).
- the service provider 102 determines that the message has been signed using the temporary cryptographic key associated with the second module 30, the service provider 102 then uses a clock that is synchronised with the clock of the first module 20 to determine whether the reception time is within a predetermined range of the current time. The service provider 102 may also compare the received timestamp with timestamps previously received from the second module 30. If the service provider 102 determines that the reception time is outside the predetermined time range, or that the timestamp is a duplicate of a previously received timestamp, the service provider 102 denies access to the P2P server.
- the service provider 102 determines that the reception time is within the predetermined time range and is not a duplicate, the service provider 102 allows access to the P2P server (steps 190 and 80).
- the service provider 102 would reject the replayed or outdated timestamp and would deny access to the associated requested data.
- Fig. 6 shows schematically an alternative embodiment of the present invention in which, rather than a request for access to data being received at the second module 30 from a user 35 of the second module 30, a request (step 200) for access to data is instead received at the second module 30 from a third party 100.
- a third party 100 wishes to determine whether there is a user 35 of the second module 30 who is in physical possession of the second module 30 and thus the third party 100 sends a message (step 200) to the second module 30 indicating same.
- the second module 30 prompts (step 205) a user 35 of the second module 30 to enter a password that has been generated by the first module 20 into the second module 30. If there happens to be a user 35 in possession of the second module 30, who is also in possession of the first module 20, then that user 25,35 can (via steps 50, 60 and 70) enter a password generated by the first module 20 into the second module 30.
- the second module 30 Upon receipt of a password (step 70), the second module 30 uses any of the methods as outlined above with reference to Figures 1 to 5 to determine whether the received password corresponds to the password that was generated by the first module 20 and sends (step 210) an indication of the validation result to the third party 100. The third party will then determine whether to trust that the user 35 of the second module 30 is in possession of the second module 30 in dependence on the validation result (and optionally also additional factors as described above).
- the third party wishes to verify whether a particular person is in possession of the second module 30 and in this case, the second module 30 may present a challenge to the user 35 of the second module 30 as described above with reference to Fig. 4.
- a device 90 comprises first and second modules 20,30 which are communicatively disconnected from each other as in the previous embodiments described above with reference to Figure 1, for example.
- the device 90 is constructed and configured such that there are no means of communicating (either directly or indirectly) between the two modules 20,30.
- the first and second modules 20,30 may be integrated within the device 90 or they may have entirely separate circuitry and components.
- the first module 20 is again for use in generating passwords and the second module is again for use in validating received passwords, which may be received from a user 35 of the second module 30.
- the first module 20 is configured with a secret and comprises circuitry and/or software that is constructed and configured to generate passwords based on the secret.
- this secret has not been uniquely assigned to the first and second modules 20,30.
- the secret may be associated with a particular person, and may be prepositioned on a number of modules held by that person, each of those modules being for use in generating passwords for use in determining (up to a reasonable level of confidence) whether a request for access to data made via one of those devices originated from a user in possession of the device 90.
- the second module 30 upon receipt of a request for access to data (step 40) from a user 35 of the second module 30, the second module 30 is configured to require that the user of the second module 30 enters a password generated by the first module 20 of the device 90.
- the first module 20 in response to receipt of an indication that a request for access to data has been made (e.g. in response to the user 25 of the first module 20 pressing a button) the first module 20 is configured to use the secret assigned to the first module 20 to generate a password and provide the generated password to a user 25 of the first module 20.
- the first module 20 may be configured to use the secret to generate passwords automatically at regular time intervals.
- the user 35 of the second module 30 is in possession of the device 90, then the user 35 is able to retrieve the password from the first module 20 (for example from a screen of the first module 20) and enter the retrieved password into the second module 30 of the device 90 (for example via a keypad of the second module 30).
- the second module 30 may be one such module that is pre-provisioned with the same secret as the first module 20, and in this case, the second module 30 uses the secret to determine whether the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20 of the device 90 (or any other module that uses that secret to generate passwords).
- the second module 30 may use any of the methods as set out above (i.e. any of the methods described above with reference to Figures 1 to 5) to determine whether the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20 of the device 90.
- the secret shared between the first and second modules 20,30 may be an OTP generation key, and the first module 20 may generate OTPs in dependence upon that OTP generation key and the current time.
- the second module 30 may use any of the methods as set out above.
- the second module 30 determines that the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20 of the device 90, the second module validates the received password.
- Fig. 7 shows schematically an alternative arrangement in which the secret used by the first module 20 to generate a password is not known by the second module 30, but is instead shared between an authentication server 230 and the first module 20.
- a user 35 of the second module 30 requests access to data (step 40), and the second module 30 then prompts the user 35 to enter a password generated by the first module of the device 90. If the user 35 of the second module 30 is in possession of the device 90 they can retrieve (step 60) a password generated by the first module 20 and enter (step 70) it into the second module 30.
- the second module 30 in order to determine whether to validate the received password, the second module 30 sends a message (step 240) to the authentication server 230 containing the password received from the user 35 of the second module 30.
- the message sent at step 240 may be signed by the third party 230 so that it cannot be spoofed, as discussed in detail above.
- the authentication server 230 uses the secret that is shared between the authentication server and the first module 20 to determine whether the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20 of the device 90.
- the secret that is shared between the authentication server 230 and the first module 20 may be an OTP generation key, and the first module 20 may be configured to generate OTPs in dependence upon the current time (as measured by a clock of the first module) and the OTP generation key.
- the authentication server may have a clock that is synchronised with the clock of the first module 20 for use in validating received passwords.
- the secret that is shared between the authentication server 230 and the first module 20 is associated with a particular person, and the authentication server stores an association between that particular person and the secret.
- the message sent at step 240 containing the password received from the user 35 of the second module 30 also contains information that uniquely identifies the person associated with the secret to the authentication server.
- the authentication server 230 may hold many secrets, each being associated with a different person, and thus the message 240 enables the authentication server 230 to determine which secret to use to determine whether the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20 of the device 90.
- the authentication server 230 determines that the password received from the user 35 of the second module 30 corresponds to a password that was/would have been generated by the first module 20, the authentication server 230 sends a message (step 250) to the second module 30 indicating that the password received from the user 35 of the second module 30 is valid, and upon receipt of this message, the second module validates the received password.
- the authentication server 230 determines that the password received from the user 35 of the second module 30 does not correspond to a password that was/would have been generated by the first module 20, the authentication server 230 sends a message (step 250) to the second module 30 indicating that the password received from the user 35 of the second module 30 is not valid, and the second module invalidates the received password.
- the secret that is shared between the authentication server 230 and the first module 20 may alternatively be associated with the first module 20 only and the authentication server 230 may store an association between the first module 20 (or the device 90 of which the first module 20 is a component) and the secret.
- the message sent at step 240 containing the password received from the user 35 of the second module 30 may also contain information (e.g. the unique device ID) that uniquely identifies the device 90.
- the message sent at step 250 may be signed by the third party 230 so that it cannot be spoofed, as discussed in detail above.
- the second module 30 may validate that password by retrieving a password from a third module that is configured with the same secret as the first module 20.
- the second module may prompt the third module to generate a password using that secret.
- the second module may then compare the password generated by the third module to the password received from the user 35 of the second module 30, and may validate the password received from the user 35 if there is correspondence.
- the second module validates the password received from the user 35 of the second module 30, the second module can determine up to a very high level of confidence that the request for access to data originated from a human who is in possession of the device 90 (and is therefore not a remote entity), and can thus enable access to the requested data.
- Enabling access to the requested data may include allowing access to restricted data held on the device 90 or, in the case that the requested data is held by a third party, it may include sending data to the third party for use in enabling access to the requested data.
- each of those messages is encrypted.
- the information contained therein cannot be extracted and thereby compromised.
- the messages are also signed, the order in which the message is encrypted and signed will depend on the particular cryptographic algorithm used and that in general, the encryption and signing may be applied to the message separately or in combination.
- the second module 30 may be for use in enabling access to data, assets or services held or supplied by a plurality of third parties 100. It is to be understood that any feature described in relation to any one embodiment may be used alone, or in combination with other features described, and may also be used in combination with one or more features of any other of the embodiments, or any combination of any other of the embodiments. Furthermore, equivalents and modifications not described above may also be employed without departing from the scope of the invention, which is defined in the accompanying claims.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
Description
Claims
Priority Applications (9)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201380057898.XA CN104769602B (en) | 2012-09-06 | 2013-09-06 | Method and system for authentication-access request |
KR1020157008620A KR102202547B1 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
MX2015002928A MX362307B (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request. |
EP13774767.1A EP2893484B1 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
AU2013311424A AU2013311424B2 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
CA2884002A CA2884002C (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
US14/639,850 US10282541B2 (en) | 2012-09-06 | 2015-03-05 | Method and system for verifying an access request |
HK15108943.4A HK1208278A1 (en) | 2012-09-06 | 2015-09-11 | Method and system for verifying an access request |
US16/357,098 US10929524B2 (en) | 2012-09-06 | 2019-03-18 | Method and system for verifying an access request |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1215951.3A GB2505678B (en) | 2012-09-06 | 2012-09-06 | Method and system for verifying an access request |
GB1215951.3 | 2012-09-06 | ||
GB1222090.1A GB2505532B (en) | 2012-09-06 | 2012-12-07 | Method and system for verifying an access request |
GB1222090.1 | 2012-12-07 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/639,850 Continuation US10282541B2 (en) | 2012-09-06 | 2015-03-05 | Method and system for verifying an access request |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2014037740A1 true WO2014037740A1 (en) | 2014-03-13 |
Family
ID=47137069
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2013/052346 WO2014037740A1 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
PCT/GB2013/052347 WO2014037741A1 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/GB2013/052347 WO2014037741A1 (en) | 2012-09-06 | 2013-09-06 | Method and system for verifying an access request |
Country Status (11)
Country | Link |
---|---|
US (4) | US8806600B2 (en) |
EP (2) | EP2893484B1 (en) |
KR (2) | KR102202547B1 (en) |
CN (2) | CN104798083B (en) |
AU (2) | AU2013311424B2 (en) |
CA (2) | CA2884005C (en) |
ES (1) | ES2590678T3 (en) |
GB (2) | GB2505678B (en) |
HK (2) | HK1208278A1 (en) |
MX (2) | MX362307B (en) |
WO (2) | WO2014037740A1 (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2751754A4 (en) | 2011-08-30 | 2015-06-03 | C Douglas Yeager | Systems and methods for authorizing a transaction with an unexpected cryptogram |
US10129249B1 (en) * | 2013-03-14 | 2018-11-13 | EMC IP Holding Company LLC | Randomizing state transitions for one-time authentication tokens |
GB2505678B (en) | 2012-09-06 | 2014-09-17 | Visa Europe Ltd | Method and system for verifying an access request |
US9178708B2 (en) * | 2013-12-02 | 2015-11-03 | Guardtime Ip Holdings Limited | Non-deterministic time systems and methods |
US9424410B2 (en) * | 2013-12-09 | 2016-08-23 | Mastercard International Incorporated | Methods and systems for leveraging transaction data to dynamically authenticate a user |
US9332008B2 (en) * | 2014-03-28 | 2016-05-03 | Netiq Corporation | Time-based one time password (TOTP) for network authentication |
US9223960B1 (en) * | 2014-07-31 | 2015-12-29 | Winbond Electronics Corporation | State-machine clock tampering detection |
US9984247B2 (en) * | 2015-11-19 | 2018-05-29 | International Business Machines Corporation | Password theft protection for controlling access to computer software |
US9948673B2 (en) * | 2016-05-26 | 2018-04-17 | Visa International Service Association | Reliable timestamp credential |
US10491391B1 (en) * | 2016-09-23 | 2019-11-26 | Amazon Technologies, Inc. | Feedback-based data security |
KR20180070278A (en) | 2016-12-16 | 2018-06-26 | 백민경 | Permanent form and wall construction method using thereof |
US11037231B1 (en) * | 2016-12-23 | 2021-06-15 | Wells Fargo Bank, N.A. | Break the glass for financial access |
US10846417B2 (en) * | 2017-03-17 | 2020-11-24 | Oracle International Corporation | Identifying permitted illegal access operations in a module system |
SG10201702881VA (en) * | 2017-04-07 | 2018-11-29 | Mastercard International Inc | Systems and methods for processing an access request |
US11257078B2 (en) * | 2018-08-20 | 2022-02-22 | Mastercard International Incorporated | Method and system for utilizing blockchain and telecom network for two factor authentication and enhancing security |
US10419219B1 (en) * | 2018-10-08 | 2019-09-17 | Capital One Services, Llc | System, method, and computer-accessible medium for actionable push notifications |
CN110224713B (en) * | 2019-06-12 | 2020-09-15 | 读书郎教育科技有限公司 | Safety protection method and system based on high-safety intelligent child watch |
EP4028871A4 (en) * | 2019-09-11 | 2023-10-11 | ARRIS Enterprises LLC | Device-independent authentication based on a passphrase and a policy |
CN114083913B (en) * | 2021-11-02 | 2022-09-16 | 珠海艾派克微电子有限公司 | Chip, consumable box and data transmission method |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367572A (en) * | 1984-11-30 | 1994-11-22 | Weiss Kenneth P | Method and apparatus for personal identification |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4720860A (en) * | 1984-11-30 | 1988-01-19 | Security Dynamics Technologies, Inc. | Method and apparatus for positively identifying an individual |
US4998279A (en) * | 1984-11-30 | 1991-03-05 | Weiss Kenneth P | Method and apparatus for personal verification utilizing nonpredictable codes and biocharacteristics |
US5361062A (en) * | 1992-11-25 | 1994-11-01 | Security Dynamics Technologies, Inc. | Personal security system |
EP1139200A3 (en) * | 2000-03-23 | 2002-10-16 | Tradecard Inc. | Access code generating system including smart card and smart card reader |
US20050005114A1 (en) * | 2003-07-05 | 2005-01-06 | General Instrument Corporation | Ticket-based secure time delivery in digital networks |
US7904583B2 (en) * | 2003-07-11 | 2011-03-08 | Ge Fanuc Automation North America, Inc. | Methods and systems for managing and controlling an automation control module system |
US7801819B2 (en) * | 2003-10-03 | 2010-09-21 | Sony Corporation | Rendering rights delegation system and method |
KR20050096040A (en) * | 2004-03-29 | 2005-10-05 | 삼성전자주식회사 | Method for playbacking content using portable storage by digital rights management, and portable storage for the same |
WO2006040820A1 (en) | 2004-10-14 | 2006-04-20 | Mitsubishi Denki Kabushiki Kaisha | Password creating device, ic card, and authenticating device |
JP2006268689A (en) * | 2005-03-25 | 2006-10-05 | Nec Corp | Mobile communication network system, authentication device, web server, and driving method and driving program therefor |
EP1737179A1 (en) * | 2005-06-20 | 2006-12-27 | Thomson Licensing | Method and devices for secure measurements of time-based distance between two devices |
US9258124B2 (en) * | 2006-04-21 | 2016-02-09 | Symantec Corporation | Time and event based one time password |
KR101557251B1 (en) * | 2006-05-09 | 2015-10-02 | 인터디지탈 테크날러지 코포레이션 | Secure time functionality for a wireless device |
US8266711B2 (en) * | 2006-07-07 | 2012-09-11 | Sandisk Technologies Inc. | Method for controlling information supplied from memory device |
US8543829B2 (en) * | 2007-01-05 | 2013-09-24 | Ebay Inc. | Token device re-synchronization through a network solution |
US8281375B2 (en) * | 2007-01-05 | 2012-10-02 | Ebay Inc. | One time password authentication of websites |
EP2034458A3 (en) * | 2007-03-09 | 2009-09-02 | ActivIdentity, Inc. | One-time passwords |
CN101051908B (en) * | 2007-05-21 | 2011-05-18 | 北京飞天诚信科技有限公司 | Dynamic cipher certifying system and method |
US8627419B1 (en) * | 2007-05-25 | 2014-01-07 | Michael J VanDeMar | Multiple image reverse turing test |
US8200978B2 (en) * | 2007-07-06 | 2012-06-12 | Gong Ling LI | Security device and method incorporating multiple varying password generator |
US7990292B2 (en) | 2008-03-11 | 2011-08-02 | Vasco Data Security, Inc. | Method for transmission of a digital message from a display to a handheld receiver |
US8949955B2 (en) * | 2008-10-29 | 2015-02-03 | Symantec Corporation | Method and apparatus for mobile time-based UI for VIP |
CH701050A1 (en) * | 2009-05-07 | 2010-11-15 | Haute Ecole Specialisee Bernoise Technique Inf | Authentication method. |
EP2296311A1 (en) * | 2009-09-10 | 2011-03-16 | Gemalto SA | Method for ciphering messages exchanged between two entities |
US8701183B2 (en) * | 2010-09-30 | 2014-04-15 | Intel Corporation | Hardware-based human presence detection |
US20120089519A1 (en) | 2010-10-06 | 2012-04-12 | Prasad Peddada | System and method for single use transaction signatures |
DK2673741T3 (en) * | 2011-02-07 | 2021-01-25 | Scramcard Holdings Hong Kong Ltd | CHIP CARD WITH MEANS OF VERIFICATION |
CN102185838B (en) * | 2011-04-21 | 2014-06-25 | 杭州驭强科技有限公司 | Driving dynamic code generating and authenticating system and method based on time factors |
CN102368230A (en) * | 2011-10-31 | 2012-03-07 | 北京天地融科技有限公司 | Mobile memory and access control method thereof as well as system |
DE102011118510A1 (en) * | 2011-11-14 | 2013-05-16 | Biso Schrattenecker Gmbh | Connecting device for an attachment of a self-propelled machine |
US8396452B1 (en) * | 2012-05-04 | 2013-03-12 | Google Inc. | Proximity login and logoff |
US9053312B2 (en) * | 2012-06-19 | 2015-06-09 | Paychief, Llc | Methods and systems for providing bidirectional authentication |
GB2505678B (en) | 2012-09-06 | 2014-09-17 | Visa Europe Ltd | Method and system for verifying an access request |
US9230084B2 (en) * | 2012-10-23 | 2016-01-05 | Verizon Patent And Licensing Inc. | Method and system for enabling secure one-time password authentication |
DE102012219618B4 (en) * | 2012-10-26 | 2016-02-18 | Bundesdruckerei Gmbh | A method of creating a soft token, computer program product, and service computer system |
-
2012
- 2012-09-06 GB GB1215951.3A patent/GB2505678B/en active Active
- 2012-12-07 GB GB1222090.1A patent/GB2505532B/en active Active
-
2013
- 2013-07-05 US US13/936,094 patent/US8806600B2/en active Active
- 2013-09-06 MX MX2015002928A patent/MX362307B/en active IP Right Grant
- 2013-09-06 KR KR1020157008620A patent/KR102202547B1/en active IP Right Grant
- 2013-09-06 CN CN201380057912.6A patent/CN104798083B/en active Active
- 2013-09-06 KR KR1020157008621A patent/KR102177848B1/en active IP Right Grant
- 2013-09-06 EP EP13774767.1A patent/EP2893484B1/en active Active
- 2013-09-06 MX MX2015002929A patent/MX362308B/en active IP Right Grant
- 2013-09-06 EP EP13779326.1A patent/EP2732400B1/en active Active
- 2013-09-06 CN CN201380057898.XA patent/CN104769602B/en active Active
- 2013-09-06 AU AU2013311424A patent/AU2013311424B2/en active Active
- 2013-09-06 CA CA2884005A patent/CA2884005C/en active Active
- 2013-09-06 WO PCT/GB2013/052346 patent/WO2014037740A1/en active Application Filing
- 2013-09-06 WO PCT/GB2013/052347 patent/WO2014037741A1/en active Application Filing
- 2013-09-06 AU AU2013311425A patent/AU2013311425B2/en active Active
- 2013-09-06 ES ES13779326.1T patent/ES2590678T3/en active Active
- 2013-09-06 CA CA2884002A patent/CA2884002C/en active Active
-
2015
- 2015-03-05 US US14/639,857 patent/US9830447B2/en active Active
- 2015-03-05 US US14/639,850 patent/US10282541B2/en active Active
- 2015-09-11 HK HK15108943.4A patent/HK1208278A1/en unknown
- 2015-09-16 HK HK15109070.7A patent/HK1208546A1/en unknown
-
2019
- 2019-03-18 US US16/357,098 patent/US10929524B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5367572A (en) * | 1984-11-30 | 1994-11-22 | Weiss Kenneth P | Method and apparatus for personal identification |
Non-Patent Citations (1)
Title |
---|
ALOUL F ET AL: "Two factor authentication using mobile phones", COMPUTER SYSTEMS AND APPLICATIONS, 2009. AICCSA 2009. IEEE/ACS INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 10 May 2009 (2009-05-10), pages 641 - 644, XP031471357, ISBN: 978-1-4244-3807-5 * |
Also Published As
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10929524B2 (en) | Method and system for verifying an access request | |
US9083533B2 (en) | System and methods for online authentication | |
US8769289B1 (en) | Authentication of a user accessing a protected resource using multi-channel protocol | |
WO2018048662A1 (en) | Architecture for access management | |
US11949785B1 (en) | Biometric authenticated biometric enrollment | |
KR101451359B1 (en) | User account recovery | |
NO324315B1 (en) | Method and system for secure user authentication at personal data terminal | |
EP3206329B1 (en) | Security check method, device, terminal and server | |
CN112425114A (en) | Password manager protected by public-private key pair | |
GB2554082B (en) | User sign-in and authentication without passwords | |
US20240022560A1 (en) | Exclusive self-escrow method and apparatus | |
US20180332028A1 (en) | Method For Detecting Unauthorized Copies Of Digital Security Tokens |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 13774767 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2884002 Country of ref document: CA |
|
WWE | Wipo information: entry into national phase |
Ref document number: MX/A/2015/002928 Country of ref document: MX |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
ENP | Entry into the national phase |
Ref document number: 2013311424 Country of ref document: AU Date of ref document: 20130906 Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2013774767 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 20157008620 Country of ref document: KR Kind code of ref document: A |