This application is a U.S. National Stage filing under 35 U.S.C. § 119, based on and claiming benefits of and priority to European Patent Application No. 17157272.0 filed on Feb. 21, 2017. The entire disclosure of the above application is incorporated herein by reference for all purposes.
The disclosure relates to determining legitimate conditions at a computing device, particularly in relation to performance of an action. In embodiments, it has application to mobile application security, and particularly for mobile payment applications, in allowing determination of risk associated with an action at the computing device.
Smart devices and smartphones are becoming more commonplace, with global smartphone sales increasing from under 200 million in 2009 to over 1,300 million in 2015. Improvements in mobile and communication technologies have also allowed for new and alternative uses of smart devices and smartphones. One example is the development of near field communication (NFC) technology and its use in contactless payment transactions. Many smartphones and credit and debit cards (typically known as “EMV cards” if in compliance with the standards developed by EMVCo with the support of major card providers) are now equipped with NFC chips enabled to securely transmit payment details so a user may only ‘touch’ or ‘tap’ the phone or card to a point of sale terminal to process a payment transaction.
Previously, using NFC communication for payment transactions required devices to have secure element (SE) chips, which are used to securely store the payment credentials. This is certainly suitable for an EMV card produced by an issuer, such as the user's bank, as the issuer can use their preferred platform in the SE chip. However, in the case of mobile devices, one SE must be used by any number of issuers which creates issues around ownership and access. Additionally, some mobile devices may not have secure elements. Consequently, a mobile device which is otherwise equipped for contactless payments or remote payments will not be able to enact such transactions.
An alternative to providing secure elements for payment transactions in mobile devices is to use a trusted execution environment (TEE)—this is an isolated execution environment provided by the main processor of the mobile device adapted so that code and data loaded within it is segregated from the main operating system. The TEE operates in parallel to the main operating system (sometimes termed a rich execution environment or REE) of the mobile device, and processing certain aspects of a payment transaction in the TEE provides added security, for instance because the code is integrity protected.
However, storing credentials outside of a SE requires alternative approaches to securing credentials for payment transactions. For example, the permanent card number (PAN) is typically stored locally in the mobile application which, although convenient, is not secure, so this data element is often ‘tokenised’, replacing the PAN with a non-sensitive value and introducing domain restrictions, allowing this value only to be used under specific conditions. Another example is the creation and transfer of single use transaction keys from a remote secure data store, rather than using the account-level key at the mobile device. A single use transaction key enables the mobile application to perform only a single transaction while an account-level key would allow it to make numerous transactions.
The effective use and management of cryptographic keys is important for transaction systems generally, and are particularly relevant where the card or user credentials are stored other than in an SE—solutions are discussed, for example in the applicant's earlier WO2015/084755. Security issues in transaction systems may be particularly challenging when the mobile device needs to operate when it has no connection to a remote secure data store. It is desirable for a user to be able to make safe and effective transactions as far as possible in an offline environment, even when external system elements are not available, and it is also desirable for these user actions to be evaluated effectively by other parties, such as an issuer associated with the user's transaction application.
In a first aspect, the disclosure provides a method of determining legitimate use of a computing device for an action to be approved by a remote system, comprising the following steps at the computing device: establishing a verification method for authenticating a user at the computing device for carrying out the action on that computing device; receiving cryptographic material from a trusted system for use in performing the action; performing the action, wherein performing the action may or may not comprise successfully authenticating the user at the computing device by the verification method, and wherein performing the action comprises returning information to the remote system that includes whether there was successful authentication using the verification method and parameters relating to computing device state when the action was performed.
In a second aspect, the disclosure provides a method of determining legitimate state of a computing device for an action to be approved by a remote system, comprising the following steps at the computing device: establishing a verification method for checking the integrity of the computing device for carrying out the action on that computing device; receiving cryptographic material from a trusted remote system for use in performing the action; performing the action, wherein performing the action may or may not include this cryptographic material, depending on its availability, and wherein performing the action comprises returning information to the remote system that includes whether the cryptographic material was included and parameters relating to computing device state when the action was performed.
This approach allows use of the computing device to perform the action in a wide variety of contexts, but does so while providing context information to a remote party to allow further actions to be taken effectively according to an appropriate assessment of the level of risk associated with the action.
In embodiments, the computing device is a mobile computing device. The computing device state parameters may then comprise network status or changes in network status for the computing device. Such changes in network status may include entry into flight mode and/or a change of telecommunications network operator.
In embodiments, the computing device state parameters may comprise power cycling information. The computing device state parameters may also comprise boot history information.
The action may comprise a transaction step performed by a transaction application.
In a third aspect, the disclosure provides a computing device comprising a processor and a memory, wherein the processor is programmed to perform the method of described above. The computing device may be a mobile computing device and may then have a mobile transaction application installed thereon, with the computing device adapted to make transactions using a contactless protocol.
The scope of the present disclosure is best understood from the following detailed description of the exemplary embodiments when read in conjunction with the accompanying drawings. Included in the drawings are the following figures:
Specific embodiments of the disclosure will be described below with reference to the Figures.
A user (not shown) is provided with a payment device—in the embodiment shown, this is a mobile phone or other mobile computing device (“mobile device”) 2 acting as a proxy for a payment card 1 (the proxy can be for a physical card, or the payment card may be virtual only—either will be referred to below as a “digitized card”) through use of a payment application. In other embodiments, other types of computing device may be used as the payment device. Such computing devices will have processors and memories for storing information including firmware and applications run by the respective processors, in this case one of the applications being a payment application. Payment devices will typically be equipped with means to communicate with other elements of a payment infrastructure. These communication means may comprise antennae and associated hardware and software to enable communication by NFC and associated contactless card protocols such as those defined under ISO/IEC 14443, or they may comprise an antenna and associated hardware and software to allow local wireless networking using 802.11 protocols or any appropriate alternative.
Other computer equipment in a conventional infrastructure is typically fixed, but in cases of interest point of interaction (POI) terminals 4 may also be mobile. The example shown is a mobile point-of-sale (MPOS) terminal used by a merchant interacting with the user. Such equipment is typically connected or connectable to an acquiring bank 6 or other system in a secure way (either through a dedicated channel or through a secure communication mechanism over a public or insecure channel). There may also be a mechanism to allow connection between the user computer devices and a card issuing bank 5 or system associated with the user. A banking infrastructure 7 will also connect the card issuer 5 and the acquiring bank 6, allowing transactions to be carried out between them.
Associated with the banking infrastructure 7 there are also one or more infrastructure servers 8 (while represented here as a single server, this may of course comprise any appropriate computer system or set of computer systems). The infrastructure server 8 may be considered a part of the banking infrastructure 7—it is either integral with it or bound to it in a close trust relationship, so that the banking infrastructure 7 can effectively warrant that communications by other parties with the infrastructure server 8 can be trusted. This means that if the other party trusts the banking infrastructure 7, then the other party should also trust the infrastructure server 8. The infrastructure server 8 is shown as interacting with both the user mobile phone 2 and other elements of the banking infrastructure.
The Account Enablement System (AEnS) 21 may be provided by the card issuer or by a service associated with the card issuer. The AEnS 21 is responsible for card setup and establishment of the user and card on the system—it is responsible for the user (cardholder) onboarding process, the cardholder identification and verification process (ID&V) and the card digitization process.
The Credentials Management System (CMS) 22 is responsible for remote management of the Mobile Payment Application (MPA) 23. This encompasses the delivery of payment credentials such as card profiles and keys necessary to support transactions. It also covers remote management functions that can be triggered internally or by other system elements. The CMS 22 also has responsibility for replenishment of the MPA 23 (for example, to ensure that it has a sufficient supply of single-use keys to allow it to continue to perform payment transactions).
The Transaction Management System (TMS) 24 is provided by the elements of the transaction infrastructure together responsible for the analysis and subsequent approval of a transaction using a digitized card. The TMS 24 interacts with the issuer 5 for the financial part of the authorization process in the same manner as for a conventional transaction infrastructure, the issuer being responsible for the approval of a transaction.
The MPA 23 enables a user to interact with a digitized card, both for card management and to perform a contactless transaction at a POS terminal or a remote payment transaction using the network connectivity of the mobile device on which the MPA is installed. Payment credentials are received in digitized form and are stored encrypted on the mobile device.
There is a synchronization link between the CMS 22 and the TMS 24 to monitor transactions performed over the system. This link can also be used to support fraud detection and potentially stop a digitized card from further transacting.
As noted, the mobile device 2 may be any type of mobile computing device which can execute the required functions for performing a transaction. The mobile device may or may not comprise a secure element, which may be employed for additional security even where not used for key management. The mobile device may be a smart phone, wearable smart device or mobile computer such as a tablet. The mobile payment application 23 is downloaded and run on the mobile device 2. The mobile payment application 23 may be provided by the issuer 5, or alternatively may be provided by a third party. As noted, it is possible that the mobile device 2 may comprise a number of mobile payment applications 23, all of which are in communication with a secure memory area (as discussed below). In this way the user of the mobile device 2 may select the mobile payment application 23 most suitable for a particular transaction. In addition, the mobile payment application 23 may store information associated with the user or user account, for example the user billing address and a tokenised primary account number (PAN). Furthermore, in an arrangement of the disclosure, the mobile payment application 23 may store an Application Transaction Counter (ATC) which has a value associated with each single use transaction key—this provides a unique reference to each transaction which is initiated on the mobile device 2. As a further extension of this arrangement, the mobile payment application 23 may maintain its Application Transaction Counter (ATC) for use if it runs out of single use transaction keys and associated ATC values.
The mobile payment application 23 is in bi-directional communication with the CMS 24, and may use multiple communication channels, such as dual channel communication which increases the security of data transmission and ensures the data is delivered to the intended device.
The TMS 24 may comprise receiving and transmitting units, a processor, account database, and a memory storage unit. The TMS 24 may be configured to process authorization requests using received and stored data and perform functions, such as fraud analysis and cryptogram validation. The TMS 24 may be configured to store received data associated with a user account, including keys, transaction data or personal information, in the account database, and recall data from the account database. The account database is configured to store information for a plurality of user accounts.
The issuer 5 may be an institution, typically a financial institution such as a bank, which issues payment credentials to a consumer associated with a transaction account registered with the institution. The issuer 5 comprises at least an Issuer server to perform the actions required for processing a payment transaction as recited herein. It is to be understood that this is not limiting, and the issuer server may also perform a number of additional actions not required for the payment transaction recited herein, or for alternative possible embodiments of transactions, including cloud-based transactions. The issuer server may also comprise a user account database, in which user and user device information, data and payment transaction information is stored. This may be in addition to the account database on the TMS 24, or the two may be combined together in the TMS 24.
The CMS 22 is adapted to perform various functions including those required for generating single use transaction keys, as will be discussed further. The CMS 22 may comprise receiving and transmitting units, a processor and a memory storage unit. The CMS 22 may be configured to securely store payment credentials and cryptographic keys, and provide these to the TMS 24 when required. Alternatively, the TMS 24 may receive relevant secure material directly from an account enablement system (AEnS). The CMS 22 also securely communicates payment credentials and cryptographic keys directly to a secure memory area such as a mobile keystore, as discussed further below.
The TMS 24, the issuer server and the CMS 22 may all be implemented as one or multiple computing devices provisioned via hardware and software to perform relevant functions, including cryptographic functions, as described generally above and in more detail below. The TMS 24, the issuer server and the CMS 22 may communicate with each other (and where appropriate the mobile payment application) through appropriate, and potentially multiple, communication channels. Payment credentials may include any data or information relating to and/or used in a payment transaction, and may include cryptograms, cryptographic keys and notification messages, with examples being the primary account number (PAN), the card security code (CSC) and the card expiration date.
The mobile payment application (MPA) as shown in
The central business logic 31 is responsible for the overall management of the digitized card. Sensitive data may be stored in a secure memory area 32 either in a secure element (SE) 37 (
The MPA stores single usage payment credentials locally, allowing it to conduct contactless transactions without need for connectivity to the CMS at time of the transaction. The MPA does have a remote management system 35 for communication with the CMS when management is required, and also supports the business logic of the MPA to answer any callback request from the CMS. Such interaction of course requires appropriate network connectivity. The user experience 36 comprises the user interface.
The MPA may be one of several payment applications on the mobile device—these payment applications may share a common secure memory area, or each may have a secure memory area of its own. Each MPA is adapted to perform a transaction with another party (for example, a contactless transaction with a POS terminal or a vending machine), preferably according to a relevant EMVCo specification, providing an industry standard. Relevant standards are found at https://www.emvco.com/specifications.aspx—for example, the contactless transaction standard is found at https://www.emvco.com/specifications.aspx?id=21. In performing the transaction, the MPA will need to generate at least one cryptogram during card action analysis (see https://en.wikipedia.org/wiki/EMV#First_card_action_analysis). Cryptograms for different purposes will typically contain or protect different content, but will contain or protect transaction details and credentials of relevant parties (or an indication that such credentials were used), all protected for integrity and authenticity with an appropriate key. For the general approach to creation of cryptograms in accordance with EMV standards and their use, the skilled person will refer to the standards found at https://www.emvco.com/specifications.aspx and to materials relating to cryptogram creation in accordance with these standards, and cryptogram creation and use will not be discussed in detail here. More discussion of cryptogram creation relevant to this architecture may be found in the applicant's copending application of even date entitled “Transaction Cryptogram”, the contents of which are incorporated by reference to the extent permissible under applicable law. The present disclosure relates generally to risk management in use of keys, and of indication of factors applying to a transaction relevant to the assessment of risk.
Interaction of an MPA with a suitable operating environment for carrying out embodiments of the disclosure is shown in
An exemplary arrangement of keystores for an MPA is shown in
As discussed in the EMV specifications identified above, a transaction involves the creation of an Application Cryptogram (AC) by the card (or mobile payment application acting on behalf of a card) as a part of the transaction process. The AC may be constructed differently depending on the nature of the transaction, but is important to show that the transaction is properly formed and legitimate, and it provides information to allow the card issuer to make an authorisation decision and may be used in clearing. Cryptographic and other material used in the transaction process, and in particular in generation of the AC, in the security model used in embodiments described here is indicated in Table 1 below.
A typical transaction process will be described briefly below to provide context for the security architecture described in embodiments—further details may be found in additional materials discussed elsewhere in this specification. The CMS provides the MPA with keys (typically one time use keys) for use in a session (typically a transaction)—these are replenished when necessary and when there is a connection between the CMS and the mobile device. This material is held in an appropriate secure manner, as discussed below with reference to embodiments, and may require user authentication to release for use by the MPA. The mobile payment application then uses this material to produce an application cryptogram (AC), actings as a form of message authentication code for transaction information. The authenticity of the transaction message is thus protected by a key which is known only to the sender and recipient. In this case, the approach taken allows determination of message contents by TMS or issuer as necessary. On receiving the AC from the sender, the recipient performs a validation/authentication process in which key material is used to re-compute the AC. If the AC received from the mobile device matches the transaction cryptogram generated by the recipient, the recipient may be assured that the message has not been altered during transmission.
It should be noted that there are two key types that can potentially be used in creation of an application cryptogram—the OTUK and the LTUK. The normal approach will be to use a OTUK, but this will only be possible if the mobile device either has OTUKs present or if it replenish its supply from the CMS. The LTUK acts as a fallback if for any reason this is not possible, though it may be a consideration in the processing of the transaction that the LTUK has been used and not an OTUK. As discussed below, the key exchange and key injection approaches used in embodiments of the disclosure may be used for a LTUK or for OTUKs, but the circumstances in which keys will be injected will differ—OTUKs will be provided when the mobile device has or will shortly run out, whereas the LTUK will be refreshed in accordance with appropriate key refresh criteria (such as overall period of use or number of times that the payment application has been used).
In embodiments described here, key exchange and key injection involve cooperation between the CMS and the KeyStore. In specific arrangements, where a common symmetric key between the mobile application and the CMS is needed, this symmetric key may be generated by CMS and encrypted under a public key generated by KeyStore.
The approach taken to key injection will depend on the operating system—from Android ‘0’ onwards, secure injection into (and export from) KeyStore will be possible, but before then a pragmatic approach to risk management needs to be employed. The risk may be mitigated by the design and implementation of the mobile payment application and the CMS processing, for example by ensuring that the CMS may only use the key when it is clear that elapsed time between decryption and injection is very small (by a check of the form ‘elapsed time<allowed time’). If this is not the case, then the process must be repeated with a fresh key.
Exemplary code for this process is shown in Appendix A, with a message flow shown in
As noted above, in the arrangement shown in embodiments some cryptographic material used by the MPA will be held in non-volatile memory, and some in volatile memory. As KeyStore uses non-volatile memory, cryptographic material that is stored in KeyStore survives power-down and reboot. However, this also means that there is some potential for unauthorized use if the device is rooted.
However, some cryptographic material in such arrangements is stored outside of KeyStore, protected under a Wrapper Key managed by KeyStore. As a result of being stored in RAM, this material will be erased upon power-down—which may occur after rooting or may simply be an overnight power-down. In embodiments, re-provisioning of this material is conditional to successfully passing remote attestation, using Google's SafetyNet Device Compatibility check. Re-provisioning may not always be done in a timely fashion if there is a lack of data connectivity (for instance, roaming)—hence it is desirable to provide a fallback scenario allowing some use of the MPA before re-provisioning is able to take place.
In the embodiment shown in
Once all keys are injected, then the organization of the different (AES) keys is as shown in
In embodiments using the MPAKey, an arrangement may be used that uses creation of a dependency between keys that are injected at different times: the MPAKey key may be injected into MPAGuard at instantiation and activation of the mobile payment application, with card specific keys injected in CAMGuard and CVMGuard at time of card digitization.
As has been stated previously, cryptograms will typically contain or protect different content. In this case the cryptogram may include CDN or VI, in addition to other data. The purpose of CDN and VI is different.
The VIs, as has been stated previously, are encrypted by the CMS with its copy of the CAM Key. This card specific key is injected in CAMGuard and is used to decrypt the OTUKs and VIs used to calculate the application cryptogram for card authentication. As VI is volatile, it is erased at power down. As it is necessary to power down to root a device, VI is a protection/detection tool for device rooting. Availability of VI is not conditioned by successful cardholder verification.
Both M/Chip and contactless magstripe include a CDN in the cryptogram calculation as evidence of CDCVM. The CDN (Consumer Device Cardholder Verification Method Dynamic Number) is created from material held in a keystore (specifically the CVMKey injected into CVMGuard for this purpose) in combination with an ATC and released on successful verification. By contrast with CAM Key, the CVM Key is conditioned by successful CDCVM. The keystore will only calculate a fresh CDN (for an ATC) when CDCVM is successful and only for the application that put the CVM Key in. Similar to the CVM Key, the CAMKey is non-volatile. Relevant discussion may be found in the applicant's copending application of even date entitled “Transaction Cryptogram”
The functionality of this arrangement (described here without MPAKey) for different transaction types is set out below. Two transaction types are discussed: M/Chip (MasterCard's proprietary EMV solution for a chip on a payment card) and Contactless MagStripe (used particularly in the US to enable contactless transactions using data from magnetic stripe protocols).
The Application Transaction Counter (ATC) is a common element between M/Chip and Contactless MagStripe solutions. Both M/Chip and contactless magstripe use an ATC as input for the Application Cryptogram. If OTUKs are available—with each OTUK linked to an ATC—then the (lowest) ATC from the OTUKs is used, and subsequently this OTUK is invalidated. If no OTUK is available, the application takes the ATC of the last OTUK and increments it by 1 for each transaction. When the CMS eventually makes contact again, the mobile payment application informs the CMS of the latest ATC it used. The CMS will start delivering new OTUKs from the point that the mobile had reached in its ATC usage.
M/Chip Implementation
M/Chip is issued with OTUKs and VIs for the application cryptogram and Issuer Dynamic Numbers for inclusion in the CDA signature and for RRP (Relay Resistance Protocol). CDA (Combined DDA/generate application cryptogram) is a cryptographic card validation check in which dynamic data authentication (DDA) is combined with generation of the application cryptogram (this is described in further detail in EMV standards).
For example, starting with ATC=1:
Every time an M/Chip transaction is initiated, an OTUK and VI is decrypted and used for calculating the application cryptogram. The ATC value is available in clear. If the transaction is completed using CDCVM, then a CDN value is calculated using the same ATC as the transaction. If no successful CDCVM was performed, the CDN is absent from the cryptogram input. The inclusion/exclusion of CDN is indicated by a bit in the Additional Authentication Data.
When the device reboots and VI-values have been erased, VI is absent from the cryptogram input. The OTUKs survive the reboot as they are stored in permanent memory. The inclusion/exclusion of VI is indicated by a bit in the Additional Authentication Data so that the TMS can adjust its cryptographic processing and raise the necessary flags in its fraud detection engine. The lack of VI also triggers the mobile to contact the CMS to initiate remote attestation and request re-provisioning of OTUKs and VIs.
Until the OTUKs and VIs are delivered, the mobile application continues to use the available OTUKs for contactless transactions, but without VI. Remote transactions are not allowed without VI. Note that CVN (Cryptogram Version Number—from which the relevant process steps can be inferred) indicates the use of session keys as long as the mobile application uses OTUKs—with or without VI.
If the mobile application runs out of OTUKs, it uses an LTUK Key instead. For each transaction with this LTUK Key, the ATC is incremented. The switching from OTUKs to an LTUK is indicated by CVN, so that again the TMS can adjust its cryptographic processing and raise additional flags in the fraud detection engine. When an LTUK is used, CVN indicates ‘No Session Key Derivation’.
In alternative arrangements, M/Chip implementations may use LTUKs instead of OTUKs. To allow rotation of LTUKs that are derived from the same IMK, a new data object may be introduced, termed Card Derivation Counter (CDC). This may be an incrementing counter, allowing for 256 rotations using the same IMK.
Contactless MagStripe Implementation
In this case, the application cryptogram is calculated using the LTUK CVC3Key, which is the same approach as used in existing contactless magstripe solutions. No OTUKs or VIs are used—one factor in this is that for a contactless magstripe solution, there is minimal space available for additional data, and so no space to signal the different options to the TMS.
The TMS will need to know the option taken for calculating the cryptogram—this is summarised in Table 3 below.
As illustrated above, different mechanisms can used to signal to the TMS that a VI and/or CDN is included in the Application Cryptogram and whether an OTUK or an LTUK is used. One mechanism uses different values of the Cryptogram Version Number (CVN), in the table above used to distinguish OTUK from LTUK. Another mechanism is the Additional Authentication Data to indicate inclusion/exclusion of VI and/or CDN in the Application Cryptogram. The inclusion or exclusion of CDN is indicated by CDCVM Info that is included in the Additional Authentication Data for M/Chip and that is limited to a 1 digit value in the Track DD for contactless magstripe.
Through information in the authorization request, for instance in the Additional Authentication Data (that are included in the Issuer Application Data) and the CDCVM information, the issuer host is informed about the trustworthiness of the keys or to the effectiveness of the sandboxing of the payment application itself. These are discussed further below, with reference to the exemplary CDCVM information and codebook provided as Appendix B and the discussion of obtainable information relating to the integrity of a computing environment (particularly an Android computing environment) provided in Appendix C.
Sandboxing may be compromised if remote attestation has failed or was not performed—which is indicated by missing VIs. The presence of a VI—as these are held in volatile memory—is an indication that there has been effective interaction between the payment application and the CMS since the last boot of the mobile device operating environment and that remote attestation was performed successfully.
For assessing the implications of missing Vis—and therefore the lack of remote attestation—the context of the transaction and the connectivity of the mobile plays an important role.
There are a number of legitimate reasons why there may be missing VIs, such as the following:
In all of these scenarios, it may be desirable to allow local transactions to take place, rather than simply barring all transactions until VIs have been obtained from the CMS. It is possible to mark such events by historical data points that can be stored for future reference, as shown in Table 4 below.
Other relevant data points that may provide useful information if captured at reboot or transaction time are the following:
Such data points can be included as part of the authorization request and cross-referenced against data points received from the terminal. Exemplary scenarios are set out in Table 5 below.
In embodiments, this information is sent as part of a new data object, nicknamed ‘Card Assessment of the Device Status’ and abbreviated as CADS.
An exemplary coding of these data points in CADS is provided below, containing three categories of information:
B1—Current Status
B2—History
B3—Device Context
This information can be transferred in appropriate data fields as part of transaction data. In current EMV implementations, this may require repurposing of an existing EMV data field to provide this data if existing free form fields provide insufficient space. For example, CADS information may be included by subversion of part of Issuer Application Data (IAD) of the DE55 field. CADS information may be used to modify the Universal Cardholder Authentication Field (UCAF™)—UCAF has been developed as a standard by the applicant for use in collecting and transporting accountholder authentication data generated by issuer and accountholder security solutions.
Transaction Context information as indicated in Table 6B above may include parts of existing Card Verification Results (CVR) information. An exemplary coding is provided in Table 7 below.
As noted above, Consumer Device Cardholder Verification Method (CDCVM) is a customer verification method (CVM) used for applications running on mobile devices (or any other consumer computing device). In embodiments of the present arrangement, information relating to CDCVM may be provided in a transaction authorization request. Different approaches are taken for chip transactions and contactless magstripe transactions: cardholder verification method, strength and type are included through the (2 byte) CDCVM Information for chip transactions and in the CDCVM Codebook for contactless magstripe transactions. Coding is described in detail in Appendix B. Coding for CDCVM method, strength and type, and sources for the information applying to each are discussed below.
Method—CDCVM Byte 2 b4b3b2b1 are set as follows,
These settings may be based on the checks supported by Android, as follows.
From: https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec.B uilder.html#setUserAuthenticationRequired(boolean)
The function “KeyGenParameterSpec.Builder setUserAuthenticationRequired (boolean required)” is added in API level 23.
If set to “yes”, the key is authorized to be used only if the user has been authenticated. Note that by default a key can be used regardless of whether the user has been authenticated. When user authentication is required:
In relation to strength, the DevicePolicyManager sets the policy on the quality of passwords—through the call setPasswordQuality(ComponentName, int)—and different constants are defined, as set out below.
If the application does not have device admin rights, it can still get information on the quality of the password. Some examples are given below:
Strength—CDCVM Byte 1 b6b5 are set as follows:
Type—CDCVM Byte 1, b4b3 are set as follows:
Type relates to whether authentication is persistent, prolonged or instant. Information obtainable through Android is set out at https://developerandroid.com/training/articles/keystore.html#UserAuthentication. When a key is authorized to be used only if the user has been authenticated, it is configured to operate in one of the two modes:
Whilst various exemplary embodiments of the disclosed system and method have been described above it should be understood that they have been presented for purposes of example only, and should not be taken to be limitations. The above description is not exhaustive and does not limit the disclosure to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the disclosure, without departing from the breadth or scope.
This section describes the layout of the CDCVM Information and CDCVM Codebook.
For M/Chip (DE55 or UCAF), the information to be populated is indicated in
For MagStripe, the information to be populated is indicated in
Information on the network connectivity is retrieved from the Android ConnectivityManager and Setting. The primary responsibilities of the ConnectivityManager are to:
Particularly relevant is the information applying to internet capable networks (NetworkCapabilities NET_CAPABILITY_INTERN ET) and the response received on a request for such network. Another topic of interest is Settings, as this allows an application to detect that flight mode is on.
This Appendix sets out Android functions for obtaining relevant state information.
Settings
Available Networks
Connected Networks
Distance
Reasons for Reboot
Timings
Number | Date | Country | Kind |
---|---|---|---|
17157272.0 | Feb 2017 | EP | regional |