Attributing digital activity initiated from one or more instances of an application with a record
A cryptographic key pair system securely links application instances to a remote server, addressing the vulnerabilities of username-password methods and enhancing security and usability in attributing digital activities.
Patent Information
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-09-10
- Publication Date
- 2026-03-19
AI Technical Summary
Existing methods for attributing digital activity from an application instance to a remote server rely on cumbersome and vulnerable username-password combinations, which are inadequate for secure, sensitive digital activities, and introduce significant end-user friction.
A cryptographic key pair system is implemented, where a signing key is stored securely on the user device and a validating key is transmitted to the remote server, along with an instance-validation credential that allows linking multiple application instances, enabling secure and frictionless attribution of digital activity to a record.
This system enhances security by preventing key exposure and reduces end-user friction by allowing seamless linking of application instances, facilitating rapid anomaly detection and secure attribution of digital activities.
Smart Images

Figure IB2025059077_19032026_PF_FP_ABST
Abstract
Description
[0001] ATTRIBUTING DIGITAL ACTIVITY INITIATED FROM ONE OR MORE INSTANCES OF AN APPLICATION WITH A RECORD
[0002] CROSS-REFERENCE(S) TO RELATED APPLICATIONS
[0003] This application claims priority from South African provisional patent application number 2024 / 07044 filed on 13 September 2024, which is incorporated by reference herein.
[0004] FIELD
[0005] This disclosure relates to a system and method for associating instances of an application with a record maintained by a remote server. This disclosure may further relate to attributing digital activity initiated from or conducted via one or more instances of the application with the record.
[0006] BACKGROUND
[0007] There are many situations where digital activity initiated from or conducted via an application instance needs to be attributed to a record maintained by a remote server. Oftentimes, this is done by requiring an end-user to sign into the remote server via the application instance, for example by providing a username and password combination. Passwords are however cumbersome and vulnerable to exposure via phishing or similar social engineering-based attacks.
[0008] Further, in some cases, such as where the digital activity and / or record are of a sensitive nature (e.g., relating to corporate backends, financial accounts, or the like), a higher degree of security compared to that provided by a username-password combination is required.
[0009] While adding layer upon layer of security may help in such situations, end-user friction experienced in complying with the security protocols needs to be considered. There is accordingly felt to be scope for improvement.
[0010] The preceding discussion of the background is intended only to facilitate an understanding of the present disclosure. It should be appreciated that the discussion is not an acknowledgment or admission that any of the material referred to was part of the common general knowledge in the art as at the priority date of the application.
[0011] SUMMARY In accordance with an aspect of the disclosure there is provided a computer-implemented method conducted at an end-user device executing an instance of an application, the method comprising: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and, obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
[0012] The instance-validation credential may include or be in the form of one or more of: a payload signed using the signing key; a payload including the validating key; and, an instance-validation private key corresponding to an instance-validation public key of an instance-validation publicprivate keypair.
[0013] The method may include using the signing key in a challenge-response with the remote server, including using the signing key to sign a challenge received from the remote server to generate a signed challenge response and transmitting the signed challenge response to the remote server for validation. The challenge-response may be performed in response to or in a part of digital activity initiated from or conducted via the instance of the application.
[0014] The method may include checking for existing instance-validation credentials. Checking for existing instance validation credentials may include checking one or both of an on-device and an off-device storage.
[0015] The instance of the application may be a first instance of the application. The method may be conducted in response to installation or initialisation of the first instance of the application. The cryptographic key pair may be a first cryptographic key pair including a first signing key and a first validating key. The instance-validation credential may be a first instance-validation credential.
[0016] The method may include obtaining authentication credentials via end-user input and transmitting the authentication credentials to the remote server. The authentication credentials may be transmitted to the remote server for registering the instance of the application in association with the activity record. The authentication credentials may include one or more of: a username and password; a national identity number; a biometric credential; and a key phrase provided to the end-user. Obtaining authentication credentials may be in response to determining that there are no existing instance-validation credentials.
[0017] The instance of the application may be a further instance of the application. The method may be conducted in response to installation or initialisation of the further instance of the application. The method may include, in response to determining there are existing instance validation credentials: retrieving an existing instance-validation credential having been fetched from an off-device storage location; and, transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application.
[0018] The existing instance-validation credential may be a first instance-validation credential.
[0019] In accordance with another aspect of the disclosure there is provided a computer-implemented method conducted at an end-user device executing a further instance of an application, the method comprising: issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
[0020] In accordance with another aspect of the disclosure there is provided a computer-implemented method conducted at a remote server comprising: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record; validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
[0021] Validating the existing instance-validation credential may include one or more of: decrypting a payload signed with a previous signing key using a corresponding previous validating key; comparing a key included in a payload to the corresponding previous validating key; and, decrypting a payload signed using an instance-validation private key using a corresponding instance-validation public key.
[0022] In response to validating the existing instance-validation credential, digital activity may be conducted between the instance of the application and the remote server in which the instance of the application uses a signing key to sign payloads or data elements being transmitted to the remote server. The method may include: receiving, from the instance of the application, the signed payloads or data elements; and, validating the signed payloads or data elements using the validating key stored in association with the activity record.
[0023] The method may include, in response to validating the signed payloads or data elements, attributing digital activity, initiated from or conducted via the instance of the application, to the activity record. Attributing digital activity to the activity record may include recording characteristics or features of or relating to the digital activity to the activity record, such that the activity record stores characteristics or features of or relating to digital activity initiated from or conducted via the instance of the application over time.
[0024] In accordance with a further aspect of the disclosure there is provided a system including an enduser device executing an instance of an application comprising: a non-transitory computer- readable storage medium; and one or more processors coupled to the non-transitory computer- readable storage medium, wherein the non-transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and, obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
[0025] In accordance with a further aspect of the disclosure there is provided a system including an enduser device executing a further instance of an application comprising: a non-transitory computer- readable storage medium; and one or more processors coupled to the non-transitory computer- readable storage medium, wherein the non-transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
[0026] In accordance with a further aspect of the disclosure there is provided a system including a remote server comprising: a non-transitory computer-readable storage medium; and one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non- transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record; validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instance-validation credential from an end-user device on which it was obtained.
[0027] In accordance with a further aspect of the disclosure there is provided a system including a memory for storing computer-readable program code and a processor for executing the computer- readable program code, the system including an end-user device executing an instance of an application comprising: a key pair issuing component for issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; a validating key transmitting component for transmitting the validating key to the remote server for storage in association with an activity record; and, an instance-validation credential obtaining component for obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
[0028] In accordance with a further aspect of the disclosure there is provided a system including a memory for storing computer-readable program code and a processor for executing the computer- readable program code, the system including an end-user device executing a further instance of an application comprising: a key pair issuing component for issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; an existing instance-validation credential retrieving and transmitting component for, in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, a validating key transmitting component for transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
[0029] In accordance with a further aspect of the disclosure there is provided a system including a memory for storing computer-readable program code and a processor for executing the computer- readable program code, the system including a remote server comprising: an existing instancevalidation credential receiving component for receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; a validating key receiving component for receiving, from the end-user device, a validating key for storage in association with an activity record; an existing instance-validation credential validating component for validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
[0030] In accordance with a further aspect of the disclosure there is provided a computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at an end-user device executing an instance of an application, the steps of: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and, obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
[0031] The computer-readable medium may have stored computer-readable program code for performing the step of checking for existing instance-validation credentials. Checking for existing instance validation credentials may include checking one or both of on-device and off-device storage.
[0032] In accordance with a further aspect of the disclosure there is provided a computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at an end-user device executing a further instance of an application, the steps of: issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
[0033] In accordance with a further aspect of the disclosure there is provided a computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at a remote server, the steps of: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record; validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
[0034] Further features provide for the computer-readable medium to be a non-transitory computer- readable medium and for the computer-readable program code to be executable by a processing circuit.
[0035] Embodiments of the technology will now be described, by way of example only, with reference to the accompanying drawings.
[0036] BRIEF DESCRIPTION OF THE DRAWINGS
[0037] In the drawings: Figure 1 is a schematic diagram which illustrates an example system for associating instances of an application with a record according to aspects of the present disclosure;
[0038] Figure 2 is a flow diagram which illustrates an example method for associating instances of an application with a record according to aspects of the present disclosure;
[0039] Figure 3A is a swim-lane flow diagram which illustrates a first part of an example method for associating instances of an application with a record according to aspects of the present disclosure;
[0040] Figure 3B is a swim-lane flow diagram which illustrates a second part of the example method of Figure 3A;
[0041] Figure 4 is a block diagram which illustrates exemplary components which may be provided by a system for associating instances of an application with a record according to aspects of the present disclosure; and,
[0042] Figure 5 illustrates an example of a computing device in which various aspects of the disclosure may be implemented.
[0043] DETAILED DESCRIPTION WITH REFERENCE TO THE DRAWINGS
[0044] A system and method for associating instances of an application with a record or account maintained by a remote server are provided. Associating the instances of the application may include or enable attributing digital activity initiated from or conducted via one or more instances of the application with the record and / or with each other. The digital activity may include digital interaction between the instance of the application and the remote server. Digital interaction may for example include exchanging messages, payloads, instructions, responses and the like. The digital activity may be via a communication network, such as the Internet. In some cases, digital activity may entail the application instance sending a single payload or message. In other cases, the digital activity may entail the application instance sending and receiving multiple payloads or messages over a timeframe that might span hours, days, weeks months or even years. The different instances of the application may be serial or concurrent instances.
[0045] An “instance” of an application refers to an installation of an application on the end-user device. For example, if an end-user installs the application on the end-user device, that installation of the application is considered an instance of the application. Should the end-user uninstall and then re-install the application on the end-user device, the re-installed application would be considered to be another (i.e., “further”) instance of the application. Similarly, should the end-user install the application on another (second) device, the installation of the application on that other device will be considered another (i.e., “further”) instance of the application. References to “first instance” and “further instance” of the application may be relative to a particular end-user. Le., a first instance of an application may be the first installation of the application by that end-user. The “application” may include versions of the application. For example, one instance of the application may be an installation of one version of the application while another instance of the application may be an installation of another version of the application. In some examples, the “application” may include a suite of applications, a set of applications provided by the same entity / developer, or the like. The application may be a software application downloadable from a third-party application repository or otherwise made available to the end-user for installation on one or more end-user devices.
[0046] Different instances of the application, or digital activity conducted via or initiated from different instances of the application, may be associated or linked with each other by the remote server by virtue of an instance-validation credential and an off-device storage.
[0047] An application instance may for example obtain an instance-validation credential and store the credential in a manner that permits it to be transferred or copied from the end-user device to the off-device storage. In this manner, the instance-validation credential can be swept up in a device backup, stored using a password / credential manager or otherwise transferred to the off-device storage. The off-device storage may implement access control which restricts access to the instance-validation credential to particular end-users and / or particular devices of the end-users. In this manner, presentation of an existing instance-validation credential retrieved from the off- device storage by a further instance of the application allows for an inference to be made that the further instance is related to, associated with or linked to a previous instance having generated the existing instance-validation credential.
[0048] The linking of application instances may be passive or may happen in the background in that no direct end-user intervention (other than any intervention required to use the off-device storage) is required in obtaining the instance-validation credential, copying it to the off-device storage, retrieving it from the off-device storage or providing it to the remote server.
[0049] Being able to link or associate different instances of an application with one another may allow for insights, warnings, alerts, patterns or the like determined in relation to activity conducted via one application instance to be transferred or applied to another application instance. This may for example allow for more rapid and / or precise anomaly or threat detection.
[0050] Figure 1 is a schematic diagram which illustrates an exemplary system (100) for associating instances of an application with a record. The system may include an end-user device (102) and a remote server (104) which may be in data communication via a communication network (106), such as the Internet.
[0051] The end-user device may be in the form of a computing device and may have an instance of an application (108) installed and / or executing thereon. The application may be provided by or on behalf of an entity. The application may for example have been downloaded from an application repository which may be maintained by a third-party. The entity may for example provide the application for download from the third-party application repository. The application instance may be a first instance in that it is the first instance of the application installed on a device associated with the end-user. Alternatively, the application instance may be a further (i.e., second or subsequent) instance of the application installed on a device associated with the end-user. Digital activity (1 10) may be conducted between the application instance and the remote server. The digital activity may be initiated from or conducted via the application instance.
[0052] The end-user device and / or application instance are configured to issue a cryptographic key pair including a signing key (112) and a corresponding validating key (1 14). This may include using a cryptographic keypair issuing function (1 15) of the end-user device and / or application instance. For example, the application instance may use the cryptographic keypair issuing function to issue the cryptographic key pair to the application instance. The application instance may issue the cryptographic key pair upon installation and / or initialisation. In some implementations, the signing key may be security-critical, meaning for example that a compromise of the signing key presents a security risk to the record, remote server and the like. For example, an attacker who gains access to the signing key may in turn be able to compromise the remote server and / or the record.
[0053] The signing key may be stored with configuration that prevents it from leaving the device. This may for example include or entail storing the signing key in a secure portion (116) of an on-device storage (1 18) and / or using operating system-provided configuration that conceals or hides or otherwise prevents the signing key from being accessed by other applications. In some examples, the cryptographic keypair issuing function stores the signing key with the configuration that prevents it from leaving the device (e.g., by storing the signing key in the secure portion of the on-device storage). In some examples, the cryptographic keypair issuing function and / or the secure portion of on-device storage are provided by a secure element or other secure component of the end-user device. The validating key may be transmitted to the remote server and may be stored in association with a record (120). The validating key may for example be stored in a key store (122) and may be linked to the record by way of identifier or the like. The application instance may use the signing key to sign payloads or data elements sent from the application instance to the remote server during digital activity for the remote server to validate using the validating key.
[0054] The application instance may further be configured to obtain an instance-validation credential (124). The instance-validation credential may include or be in the form of one or more of: a payload signed using the signing key; a payload including the validating key; and, an instancevalidation private key corresponding to an instance-validation public key of an instance-validation public-private keypair. In some examples, the instance-validation credential is in the form of a signed payload including one or more of: an identifier of the end-user device on which the credential is obtained; an identifier of the application instance; a timestamp; end-user device information (such as make, model, operating system version, etc.); and, an instance-validation private key corresponding to an instance-validation public key of an instance-validation publicprivate keypair. The payload may be signed using the signing key. In some examples, obtaining the instance-validation credential includes using the cryptographic keypair issuing function to issue the instance-validation public-private keypair.
[0055] The application instance may obtain (e.g., generate) the instance-validation credential upon installation and / or initialisation of the application instance. The instance-validation credential may be stored with configuration that permits the instance-validation credential to leave or be transferred from the device. In this manner the instance-validation credential may be transferred or copied to and stored in an off-device storage (126).
[0056] The off-device storage may be provided by another device of the end-user a third-party (e.g., providing cloud-based backup storage and / or a password / credential manager) or the like. Such transfer may be during a device backup, cloud storage update / refresh, via a password or credential manager, or the like. The off-device storage may implement access control which restricts access to the instance-validation credential to particular end-users and / or particular devices of the end-users. For example, an end-user device may have to present access control credentials to the off-device storage to be able to transfer data thereto and / or retrieve data therefrom. Such transfers / retrievals and any associated access control operations may occur at device or operating system level and may be independent of the application.
[0057] In an example where the instance-validation credential includes the instance-validation private key, the application instance may be configured to transmit the corresponding instance-validation public key to the remote server for storage in association with the record. The instance-validation public key may for example be stored in the key store. The instance-validation credential may therefore be configured or arranged for validation by the server computer using one or both of: the validating key and the instance-validation public key. This may enable validation, by the remote server, of an instance-validation credential presented to the remote server by an instance of the application for the purpose of linking the instance of the application to one or more previous instances of the application.
[0058] In some examples, the application instance may obtain (e.g., generate) the instance-validation credential in response to determining that there are no existing or available instance-validation credentials having been obtained (generated) by previous instances of the application. In other words, the application instance may obtain the instance-validation credential when the application instance is the first instance of the application. The application instance may thus be configured to check whether there are any existing instance-validation credentials available to the application and / or end-user device. If there are existing instance-validation credentials (128), the application instance may retrieve or access one or more of the existing instance-validation credentials for use in linking the application instance to one or more previous instances of the application. The application instance may for example transmit the one or more existing instance validation credentials fetched from the off-device storage to the remote server for linking the application instance to one or more other application instances. Such existing instance-validation credentials may be fetched from the off-device storage in response to restoring of the end-user device from a backup or during a password / credential manager operation.
[0059] The remote server may be provided by a computing device and may have access to the key store and a record store (130) in which the record is stored. The remote server may be provided, maintained or operated by or on behalf of an entity, which may be the same entity providing the application for download via the third-party application repository.
[0060] The remote server may be configured to associate the application instance with the record. This may for example be by virtue of the validating key linked to the record. The validating key may be linked to the record by way of a user identifier, or the like. The validating key linked to the record may for example enable the remote server to validate payloads or data elements signed using the signing key received from the application instance during digital activity initiated from or conducted via the application instance. By associating the application instance with the record, the remote server may be able to attribute digital activity initiated from or conducted via the application instance with the record. The record may be or include one or more of an activity record, an application instance record, an end-user record, or the like. In some examples, the record is an activity record that records digital activity conducted via or initiated from one or more linked or related instances of the application. In some examples, an activity record is provided for each instance of the application. The activity and the record may in some examples be anonymous in that the end-user or endusers behind the activity is / are unknown to the remote server. In other examples, the activity record includes or is linked to an end-user record or end-user account.
[0061] Further, by virtue of the instance-validation credential, the remote server may be configured to associate further instances of the application with the record. The remote server may for example be configured to validate an instance-validation credential received from the application instance and in response link the application instance to the record (e.g., by linking the validating key to the record).
[0062] In some examples, the remote server is configured to register the application instance with or against the record (or an end-user account associated with the record). This may include storing the validating key and / or an application instance identifier in association with the record. Registration may require presentation, by the end-user via the application instance, of authentication credentials. Alternatively, in some examples, registration may require presentation of a valid instance-validation credential. In this manner, presentation of authentication credentials may be obviated for registration of further instances of the application, provided those further instances can present a valid instance-validation credential.
[0063] Issuing the signing key on the end-user device and storing the signing key with configuration that prevents it from leaving the device ensures integrity of digital activity initiated from or conducted via the application instance. In other words, the remote server can validate such digital activity as having been initiated from or conducted via the application instance (the “legitimate instance”), and not another application instance (e.g., being under the control of an attacker). It may therefore be difficult for a “spurious” application instance (e.g., under the control of an attacker) to present itself to the remote server as the legitimate application instance of the end-user because the attacker will have no way of accessing the signing key of the legitimate application instance.
[0064] That being said, the end-user may at some point wish to conduct digital activity with the remote server via another instance of the application. This may be after uninstalling and reinstalling the application, installing the application on a new device, or the like. Because such a “further” instance will have no way of accessing the signing key of the previous instance, the instance- validation credential of the present disclosure is provided as a mechanism by way of which the further instance of the application can prove to the remote server that it should be associated with the record and that digital activity initiated from or conducted via the further instance should be attributed to the record. As mentioned, the instance-validation credential may be configured or arranged for validation by the server computer such that an instance-validation credential presented to the remote server by an instance of the application can be validated for the purpose of linking the instance of the application to one or more previous instances of the application.
[0065] Provision of the instance-validation credential for the purpose of linking application instances to one another may maintain integrity of the signing key unique to each application. This may for example enable separation of digital activity initiated via discrete application instances which may facilitate detection of spurious application instances (e.g., by way of outlier characteristics, such as IP address, country of origin, patterns in digital activity or the like). Further, provision of the instance-validation credential is frictionless from the end-user perspective (who may not even be aware of the cryptographic key pair and / or the instance validation credential).
[0066] For implementations requiring registration (e.g., including provision of authentication credentials), the instance-validation credential may obviate re-presentation of the authentication credentials for registration of further instances of the application instance.
[0067] The system (100) described above may implement a method for associating instances of an application with a record. An exemplary method for associating instances of an application with a record is illustrated in the flow diagram of Figure 2. The method may be conducted by an enduser device which executes an instance of an application. The method may be conducted in response to installation or initialisation (200) of the instance of the application on the end-user device. For example, the method may be initiated in response to the first time the instance of the application is executed. The instance of the application may be a first or further instance of the application. It should be appreciated that there is no specific order to the operations provided below, except where context requires otherwise.
[0068] The method may include issuing (202) a cryptographic key pair. The cryptographic key pair may include a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server. The signing key may be a private key and the validating key may be a public key. Issuing the cryptographic key pair may include using a cryptographic keypair issuing function of the end-user device or of the application. Issuing the cryptographic key pair may include generating the key pair on the device. Issuing the cryptographic key pair may include storing (204) the signing key with configuration that prevents transfer of the signing key from the end-user device. Storing the signing key with configuration that prevents transfer of the signing key from the end-user device may include storing the signing key in a secure portion of an on-device storage location. The signing key may be stored for exclusive access or use by the instance of the application on the end-user device. This may prevent inclusion of the signing key in a device backup. Similarly, access to the signing key by a password or credential manager may be denied.
[0069] The method may include transmitting (206) the validating key to the remote server for storage in association with a record. T ransmitting the validating key to the remote server enables the remote server to attribute, to the record, digital activity initiated from or conducted via the instance of the application (which may e.g., include the application instance sending signed payloads).
[0070] The method may include checking (208) for existing instance-validation credentials. Checking for existing instance validation credentials may include checking one or both of on-device and off- device storage. For example, in cases where there are existing instance-validation credentials, the existing instance-validation credentials may be fetched from an off-device storage as part of a device restore using a device backup stored at the off-device storage location. In such a case, the one or more existing instance validation credentials may already be present in the on-device storage. In other cases (e.g., in the case of a password or credential manager), the one or more existing device credentials may be retrieved from the off-device storage once it is determined that they exist.
[0071] The method may include obtaining (212) authentication credentials via end-user input and transmitting (214) the authentication credentials to the remote server for authentication thereat. The authentication credentials may include any one or more of: a username and password; a national identity number; a biometric credential; and a key phrase provided to the end-user.
[0072] In some cases, the instance of the application may be a first instance of the application. If the instance is the first instance of the application, there will be no existing instance-validation credentials. In some examples, the method includes obtaining the authentication credentials in response to determining (210) that there are no existing instance validation credentials. For example, the authentication credentials may be obtained for the purpose of registering the application instance with the remote server and the application instance may transmit the authentication credentials to the remote server for registering the instance of the application in association with the record.
[0073] In other cases, the instance of the application may be a further instance of the application, in which case there may be one or more existing instance-validation credentials. The method may include, in response (220) to determining there are one or more existing instance validation credentials, retrieving (222) an existing instance-validation credential having been fetched from an off-device storage location and transmitting (224) the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application.
[0074] Transmitting the existing instance-validation credential may, in some examples, include signing a payload using an instance-validation private key for validation by decryption using a corresponding instance-validation public key and transmitting the signed payload. Transmitting the existing instance-validation credential may thus include transmitting a payload generated using the existing instance-validation credential.
[0075] The existing instance-validation credential may be a first instance-validation credential. In some examples, transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application includes registering (226) the further instance of the application with the record. In this manner, having access to the instance-validation credential of a previous instance of the application allows for the further instance of the application to be registered with the record without having to obtain authentication credentials. This may lower friction in registering instances of applications, for example when the end-user acquires a new end-user device and / or restores their end-user device from a backup.
[0076] The method may include obtaining (232) an instance-validation credential for use in linking further instances of the application to the instance of the application. The method may include storing (234) the instance-validation credential with configuration that permits transfer of the instancevalidation credential from the end-user device. In some examples, the instance validation credential is only obtained when the instance is a first instance of the application (i.e. , where there are no existing instance-validation credentials). In other examples, further instances of the application obtain and store an instance-validation credential even when there are existing instance-validation credentials from previous instances of the application.
[0077] The instance-validation credential may include or be in the form of: a payload signed using the signing key; a payload including the validating key; or, an instance-validation private key corresponding to an instance-validation public key of an instance-validation public-private keypair.
[0078] Storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application. Storing the instance-validation credential with configuration permitting transfer from the device may for example permit inclusion of the instancevalidation credential in a device back-up; in a password or other credential manager, or the like. In this manner, the instance-validation credential may be transferred to and stored in an off-device storage from where it can be retrieved by the device and / or other devices of the end-user.
[0079] The method may include using (236) the signing key in digital activity with remote server. This may include using the signing key in challenge-response with the remote server. Challengeresponse may for example include using the signing key to sign a challenge received from the remote server to generate a signed challenge response and transmitting the signed challenge response to the remote server for validation. The challenge-response may be performed in response to digital activity initiated from or conducted via the instance of the application.
[0080] An exemplary method for associating instances of an application with a record is illustrated in the swim lane flow diagrams of Figures 3A and 3B, in which respective swim-lanes delineate steps, operations or procedures performed by respective entities or devices. The method described below with reference to Figures 3A and 3B provides an example implementation of the example method described above with reference to Figure 2. Aspects of the method described above with reference to Figure 2 can therefore be applied, mutatis mutandis, to the description of Figures 3A and 3B which follows, and vice versa.
[0081] Referring to Figure 3A, in response to installation / initialisation of a first instance (108.1 ) of the application, the first instance may check (208.1 ) for existing instance validation credentials. In response (210.1 ) to determining that there are no existing instance-validation credentials, the first instance may obtain (232.1 ) a “first” instance-validation credential (124.1 ) for use in linking further instances of the application to the first instance. The first instance may store (234.1 ) the first instance-validation credential with configuration that permits transfer of the first instancevalidation credential from the end-user device.
[0082] At some point, e.g., during device backup or a credential / password manager operation, the first instance-validation credential may be transferred or copied from on-device storage to off-device storage.
[0083] The first instance may issue (202.1 ) a “first” cryptographic key pair including a “first” signing key (112.1 ) and a “first” validating key (1 14.1 ). The first instance may store (204.1 ) the first signing key with configuration that prevents it from leaving the device. The first instance may transmit (206.1 ) the first validating key to the remote server for storage in association with a record.
[0084] In the illustrated example, the first instance may obtain (212.1 ) authentication credentials via enduser input. The first instance may transmit or present (214.1 ) the authentication credentials to the remote server for authentication. The authentication credentials may be transmitted or presented to the remote server for registering the instance of the application in association with the record, or for another purpose (e.g. for the user to login to an account). In the illustrated example, the remote server may receive and validate (304) the authentication credentials.
[0085] The remote server may receive the first validating key and may store (306) the first validating key in association with a record. In the illustrated example where the remote server receives authentication credentials, the remote server may store the first validating key in association with a record identified via or associated with the authentication credentials. Storing the first validating key in association with the record in this manner may, in some examples, include storing the first validating key as a registered validating key. Storing the validating key in association with the record may be contingent upon or in response to validation of the authentication credentials.
[0086] In other examples, (e.g., where authentication credentials are not provided), the remote server may create a new record or may identify an existing record by way of another mechanism (e.g. via a user identifier provided via the first instance, IP address, fingerprinting, behavioural biometrics or the like).
[0087] Digital activity may thereafter be conducted (310) between the first instance and the remote server in which the first instance uses the first signing key to sign (312) payloads or data elements being transmitted to the remote server. The remote server may receive, from the instance of the application, the signed payloads or data elements and validate (314) the signed payloads or data elements using the validating key stored in association with the activity record. The remote server may thus use the first validating key to validate (314) the signed payloads or data elements received from the first instance. The remote server may thus, by virtue of or in response to the validation using the first validating key linked to the record, attribute (316) the digital activity, initiated from or conducted via the first instance, to the record.
[0088] Attributing digital activity to the activity record may include recording, to the activity record, characteristics or features of or relating to the digital activity. In this manner, the activity record stores characteristics or features of or relating to digital activity initiated from or conducted via the instance of the application over time. This may include storing characteristics or features of or relating to the signed payloads or data elements, including for example one or more of: time stamps, geo-location information, actions or instructions or requests contained in the payloads / data elements, and the like. Attributing digital activity to the activity record may thus include maintaining a profile of digital activity in the activity record, such that the digital activity of the application instance over time is recorded in association therewith.
[0089] In one example implementation, a user of the first instance may interact with the remote server. The user may perform digital activity with the remote server, for example, using an instance of the application in the form of a banking application. Using the banking application may include registering an account, signing in to an account, initiating transactions, and the like. Payloads or data elements transmitted from the instance of the banking application may be signed and / or encrypted using the first signing key. The signed and / or encrypted payloads / data elements transmitted to the remote server may be validated and / or decrypted, at the remote server, using the first validation key stored in association with the record. By validating / decrypting the incoming signed and / or encrypted payloads / data elements using the first validation key, the remote server can attribute the digital activity to the activity record and / or user account and may then act on any instructions or requests contained therein.
[0090] At some stage, the end-user may uninstall and reinstall the application, may restore their device from a backup (including reinstalling the application) or may acquire a new end-user device onto which the end-user installs another instance of the application. Referring now to Figure 3B, in response to installation / initialisation of such a further instance (108.2) of the application, the further instance may check (208.2) for existing instance validation credentials. In response (220.2) to determining that there are existing instance-validation credentials, including the first instance validation credential (124.1 ) in this example, the further instance may retrieve (222.2) the one or more existing instance-validation credentials. The further instance may transmit (224.2) the one or more existing instance-validation credentials to the remote server.
[0091] In some examples, the further instance may obtain (232.2) a “further” instance-validation credential (124.2) for use in linking even further instances of the application to the further instance. The further instance may store (234.2) the further instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device.
[0092] The further instance may issue (202.2) a “further” cryptographic key pair including a “further” signing key (112.2) and a “further” validating key (114.2). The further instance may store (204.2) the further signing key with configuration that prevents it from leaving the device. The further instance may transmit (206.2) the further validating key to the remote server for storage in association with a record. In some examples, the further instance may obtain and transmit, and the remote server may validate, authentication credentials (e.g., provided for logging into an account, or the like).
[0093] The remote server may receive, from the further instance, and validate (324) the existing instancevalidation credential (being the first instance-validation credential of the first instance of the application in this example). Validating the existing instance-validation credential may include one or more of: decrypting a payload signed with the previous or first signing key (112.1 ) using the corresponding previous or first validating key (114.1 ); comparing a key included in a payload to the previous or first validating key (1 14.1 ); and, decrypting a payload signed using an instancevalidation private key using a corresponding instance-validation public key (e.g., being stored in a key store in association with the record).
[0094] The remote server may receive the further validating key and may store (326) the further validating key in association with the record. Storing the further validating key in association with the record may be contingent upon or in response to validation of the existing (i.e. , first) instance validation credential being received from the further instance. Storing the further validating key in association with the record in this manner may include storing the validating key as a registered validating key.
[0095] Digital activity may thereafter be conducted between the further instance and the remote server in which the further instance uses the further signing key to sign payloads being transmitted to the remote server. The digital activity may be conducted in response to validating the existing instance-validation credential. The remote server may use the further validating key to validate the signed payloads received from the further instance. The remote server may thus, by virtue of the validation using the further validating key linked to the record, attribute (328) the digital activity, initiated from or conducted via the further instance, to the record.
[0096] In this manner, digital activity initiated from and / or conducted via one or more instances of the application may be attributed to the record. This may allow for what would otherwise be unlinked occurrences of digital activity, initiated from unlinked instances of an application, to be linked or attributed to a single activity record (or one or more linked activity records) which in turn can be associated with a single end-user. This may enrich a data set of the activity record for improving security analytics that may be conducted using the activity record. Thus, even when a user uninstalls and reinstalls an application, the digital activity initiated from or conducted via that reinstalled instance of the application can be attributed to the activity record. Further, in some examples, a registration (or re-registration) hurdle (e.g., in the form of the end-user providing authentication credentials) may be lowered by virtue of the instance-validation credential of the previous (uninstalled) instance of the application. For example, where authentication credentials would traditionally have been required, this step may be skipped upon presentation of the instance-validation credential of the previous (uninstalled) instance of the application.
[0097] Various components may be provided for implementing the method described above with reference to Figures 2 to 3B. Figure 4 is a block diagram which illustrates exemplary components which may be provided by a system for associating instances of an application with a record. The system may include an end-user device (102) and a remote server (104).
[0098] The end-user device (102) may include a processor (402) for executing the functions of components described below, which may be provided by hardware or by software units executing on the end-user device (102). The software units may be stored in a memory component (404) and instructions may be provided to the processor (402) to carry out the functionality of the described components Some or all of the components may be provided by an instance of a software application (108) downloadable onto and executable on the end-user device (102).
[0099] The end-user device (102) may include a key pair issuing component (410) arranged to issue or obtain issuance of a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server. The key pair issuing component may include a key storing component (412) configured to store or instruct storage of the signing key with configuration that prevents transfer of the signing key from the end-user device.
[0100] The end-user device (102) may include an instance-validation credential obtaining component (414) arranged to obtain an instance-validation credential for use in linking further instances of the application to the instance of the application. The instance-validation credential obtaining component may include a credential storing component (416) arranged to store or instruct storage of the instance-validation credential with configuration that permits transfer of the instancevalidation credential from the end-user device. Storing the instance-validation credential with configuration permitting transfer from the device may provide access to the instance-validation credential for linking of further instances of the application with the instance of the application.
[0101] The end-user device (102) may include a validating key transmitting component (418) arranged to transmit the validating key to the remote server for storage in association with a record such that the remote server can attribute to the record digital activity initiated from or conducted via the instance of the application. The end-user device (102) may include an existing instance-validation credential retrieving and transmitting component (420) arranged retrieve an existing instance-validation credential having been fetched from an off-device storage location and to transmit the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application. The existing instance-validation credential retrieving and transmitting component may be arranged to retrieve and transmit the existing instance-validation credential in response to determining that existing instance validation credentials exist.
[0102] The remote server (104) may include a processor (452) for executing the functions of components described below, which may be provided by hardware or by software units executing on the remote server (104). The software units may be stored in a memory component (454) and instructions may be provided to the processor (452) to carry out the functionality of the described components.
[0103] The remote server (104) may include an existing instance-validation credential receiving component (460) arranged to receive, from an end-user device, an existing instance-validation credential. The existing instance-validation credential may have been fetched by the end-user device from an off-device storage location and may have been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application. The existing instance-validation credential may have been obtained (generated) by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and may have been stored by that previous instance with configuration permitting transfer of the previous instance-validation credential from an end-user device on which it was obtained.
[0104] The remote server (104) may include a validating key receiving component (462) arranged to receive, from the end-user device, a validating key for storage in association with a record.
[0105] The remote server (104) may include an existing instance-validation credential validating component (464) arranged to validate the existing instance-validation credential. The remote server (104) may include a key storing component (466) arranged to store the validating key in the association with the record for use in attributing, to the record, digital activity initiated from or conducted via the instance of the application. The key storing component may be arranged to store the validating key in response to validation of the existing instance-validation credential.
[0106] In an example implementation of the system and method described herein, the application may be a banking application. The digital activity may be activity such as creating an account, logging in to an account, conducting transactions, and the like. The application may be associated with a user who has never used the application before, such as an unregistered user. In such scenarios, the application is a first instance of the application. The user may begin to create a profile with the application. In doing so, the first instance of the application, or a device that the first instance is operating on, may generate a first signing key and a first validating key. The first instance of the application may transmit a message to a remote server associated with the banking application. The message may indicate that a user has selected to create an account with the bank. The remote server may, in response to receiving a request, create a user account. Furthermore, the remote server may create an activity record associated with the account. The message transmitted to the remote server may include information required by the remote server to create the account. The information may include the first validating key. In this example, there is no first or further instance-validation credential transmitted to the remote server. The remote server may store the first validating key with the user account and the activity record. In some examples, all further messages transmitted from the first instance may be signed with the first signing key. The remote server may receive a further message, which may include a user identifier that may be created during the account creation, and the remote server may fetch the first validating key that is stored in association with the user identifier. The remote server may decrypt the message with the first validating key, which would output a usable message if the original message was signed with the first signing key. The first instance may generate a first instance validation credential and transmit the credential to the remote server for association with the user account and / or activity record. The signing and decrypting of the message with the first signing key and first validating key may be in addition to other public-private key pairs used for general network communication, such as a Diffie-Hellman key exchange.
[0107] In some cases, a user may obtain a new device and may wish to interact with their already created account with the bank. In this case, any activity performed with a new instance of the application, being a further instance, must be linked to the account that already exists with the bank. For example, the user may wish to login to their bank account. The further instance of the application may search for and obtain an instance-validation credential that may be stored in an off-device storage location, if one already exists. For example, the instance-validation credential may be a first instance validation credential generated by, or in association with, the first instance of the application (previous banking application). The end-user device of the further instance may obtain the first instance validation-credential from the off-device storage. When using the further instance of the application for the first time (but not necessarily the first message), the further instance may transmit a message to the remote server to verify that the new further instance is associated with the same account as the first instance. The further instance of the application, or the device the further instance is operating on, may generate a further signing key and a further validating key. The further instance may transmit the further validating key, along with the first instance validation credential, to the remote server. Upon receiving the first instance-validation credential, the remote server may “know” that the further application is the same user as the first instance, and may accordingly associated the activity with the further instance to the activity record of the same user. The message including the first instance validation credential may be signed with the further signing key, such that the further validating key is required to decrypt the message to obtain the valid first instance validation credential.
[0108] The use of a signing key and validating key unique to each instance of the application may be that the remote server may be certain that communication with each instance of the application is secure and / or valid. However, these pairs are not usable across instances of the application. The instance validation credentials are essentially unique to each user of the instances of the application, such that multiple instance validation credentials may create a record of all instances of the application associated with the user.
[0109] Figure 5 illustrates an example of a computing device (500) in which various aspects of the disclosure may be implemented. The computing device (500) may be embodied as any form of data processing device including a personal computing device (e.g. laptop or desktop computer), a server computer (which may be self-contained, physically distributed over a number of locations), a client computer, or a communication device, such as a mobile phone (e.g. cellular telephone), satellite phone, tablet computer, personal digital assistant or the like. Different embodiments of the computing device may dictate the inclusion or exclusion of various components or subsystems described below.
[0110] The computing device (500) may be suitable for storing and executing computer program code. The various participants and elements in the previously described system diagrams may use any suitable number of subsystems or components of the computing device (500) to facilitate the functions described herein. The computing device (500) may include subsystems or components interconnected via a communication infrastructure (505) (for example, a communications bus, a network, etc.). The computing device (500) may include one or more processors (510) and at least one memory component in the form of computer-readable media. The one or more processors (510) may include one or more of: CPUs, graphical processing units (GPUs), microprocessors, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs) and the like. In some configurations, a number of processors may be provided and may be arranged to carry out calculations simultaneously. In some implementations various subsystems or components of the computing device (500) may be distributed over a number of physical locations (e.g. in a distributed, cluster or cloud-based computing configuration) and appropriate software units may be arranged to manage and / or process data on behalf of remote devices.
[0111] The memory components may include system memory (515), which may include read only memory (ROM) and random access memory (RAM). A basic input / output system (BIOS) may be stored in ROM. System software may be stored in the system memory (515) including operating system software. The memory components may also include secondary memory (520). The secondary memory (520) may include a fixed disk (521 ), such as a hard disk drive, and, optionally, one or more storage interfaces (522) for interfacing with storage components (523), such as removable storage components (e.g. magnetic tape, optical disk, flash memory drive, external hard drive, removable memory chip, etc.), network attached storage components (e.g. NAS drives), remote storage components (e.g. cloud-based storage) or the like.
[0112] The computing device (500) may include an external communications interface (530) for operation of the computing device (500) in a networked environment enabling transfer of data between multiple computing devices (500) and / or the Internet. Data transferred via the external communications interface (530) may be in the form of signals, which may be electronic, electromagnetic, optical, radio, or other types of signal. The external communications interface (530) may enable communication of data between the computing device (500) and other computing devices including servers and external storage facilities. Web services may be accessible by and / or from the computing device (500) via the communications interface (530).
[0113] The external communications interface (530) may be configured for connection to wireless communication channels (e.g., a cellular telephone network, wireless local area network (e.g. using Wi-Fi™), satellite-phone network, Satellite Internet Network, etc.) and may include an associated wireless transfer element, such as an antenna and associated circuitry. The external communications interface (530) may include a subscriber identity module (SIM) in the form of an integrated circuit that stores an international mobile subscriber identity and the related key used to identify and authenticate a subscriber using the computing device (500). One or more subscriber identity modules may be removable from or embedded in the computing device (500).
[0114] The external communications interface (530) may further include a contactless element (550), which is typically implemented in the form of a semiconductor chip (or other data storage element) with an associated wireless transfer element, such as an antenna. The contactless element (550) may be associated with (e.g., embedded within) the computing device (500) and data or control instructions transmitted via a cellular network may be applied to the contactless element (550) by means of a contactless element interface (not shown). The contactless element interface may function to permit the exchange of data and / or control instructions between computing device circuitry (and hence the cellular network) and the contactless element (550). The contactless element (550) may be capable of transferring and receiving data using a near field communications capability (or near field communications medium) typically in accordance with a standardized protocol or data transfer mechanism (e.g., ISO 14443 / NFC). Near field communications capability may include a short-range communications capability, such as radiofrequency identification (RFID), Bluetooth™, infra-red, or other data transfer capability that can be used to exchange data between the computing device (500) and an interrogation device. Thus, the computing device (500) may be capable of communicating and transferring data and / or control instructions via both a cellular network and near field communications capability.
[0115] The computer-readable media in the form of the various memory components may provide storage of computer-executable instructions, data structures, program modules, software units and other data. A computer program product may be provided by a computer-readable medium having stored computer-readable program code executable by the central processor (510). A computer program product may be provided by a non-transient or non-transitory computer- readable medium, or may be provided via a signal or other transient or transitory means via the communications interface (530).
[0116] Interconnection via the communication infrastructure (505) allows the one or more processors (510) to communicate with each subsystem or component and to control the execution of instructions from the memory components, as well as the exchange of information between subsystems or components. Peripherals (such as printers, scanners, cameras, or the like) and input / output (I / O) devices (such as a mouse, touchpad, keyboard, microphone, touch-sensitive display, input buttons, speakers and the like) may couple to or be integrally formed with the computing device (500) either directly or via an I / O controller (535). One or more displays (545) (which may be touch-sensitive displays) may be coupled to or integrally formed with the computing device (500) via a display or video adapter (540).
[0117] The computing device (500) may include a geographical location element (555) which is arranged to determine the geographical location of the computing device (500). The geographical location element (555) may for example be implemented by way of a global positioning system (GPS), or similar, receiver module. In some implementations the geographical location element (555) may implement an indoor positioning system, using for example communication channels such as cellular telephone or Wi-Fi™ networks and / or beacons (e.g. Bluetooth™ Low Energy (BLE) beacons, iBeacons™, etc.) to determine or approximate the geographical location of the computing device (500). In some implementations, the geographical location element (555) may implement inertial navigation to track and determine the geographical location of the communication device using an initial set point and inertial measurement data.
[0118] The foregoing description has been presented for the purpose of illustration; it is not intended to be exhaustive or to limit the technology to the precise forms disclosed. Persons skilled in the relevant art can appreciate that many modifications and variations are possible in light of the above disclosure.
[0119] Any of the steps, operations, components or processes described herein may be performed or implemented with one or more hardware or software units, alone or in combination with other devices. Components or devices configured or arranged to perform described functions or operations may be so arranged or configured through computer-implemented instructions which implement or carry out the described functions, algorithms, or methods. The computer- implemented instructions may be provided by hardware or software units. In one embodiment, a software unit is implemented with a computer program product comprising a non-transient or non- transitory computer-readable medium containing computer program code, which can be executed by a processor for performing any or all of the steps, operations, or processes described. Software units or functions described in this application may be implemented as computer program code using any suitable computer language such as, for example, Java™, C++, or Perl™ using, for example, conventional or object-oriented techniques. The computer program code may be stored as a series of instructions, or commands on a non-transitory computer-readable medium, such as a random access memory (RAM), a read-only memory (ROM), a magnetic medium such as a hard-drive, or an optical medium such as a CD-ROM. Any such computer-readable medium may also reside on or within a single computational apparatus, and may be present on or within different computational apparatuses within a system or network.
[0120] Flowchart illustrations and block diagrams of methods, systems, and computer program products according to embodiments are used herein. Each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, may provide functions which may be implemented by computer readable program instructions. In some alternative implementations, the functions identified by the blocks may take place in a different order to that shown in the flowchart illustrations.
[0121] Some portions of this description describe the examples in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations, such as accompanying flow diagrams, are commonly used by those skilled in the data processing arts to convey the substance of their work effectively to others skilled in the art. These operations, while described functionally, computationally, or logically, are understood to be implemented by computer programs or equivalent electrical circuits, microcode, or the like. The described operations may be embodied in software, firmware, hardware, or any combinations thereof. The language used in the specification has been principally selected for readability and instructional purposes, and it may not have been selected to delineate or circumscribe the inventive subject matter. It is therefore intended that the scope of the present disclosure be limited not by this detailed description, but rather by any claims that issue on an application based hereon. Accordingly, the present disclosure is intended to be illustrative, but not limiting, of the scope of any accompanying claims.
[0122] Finally, throughout the specification and any accompanying claims, unless the context requires otherwise, the word ‘comprise’ or variations such as ‘comprises’ or ‘comprising’ will be understood to imply the inclusion of a stated integer or group of integers but not the exclusion of any other integer or group of integers.
Claims
CLAIMS1 . A computer-implemented method conducted at an end-user device executing an instance of an application, the method comprising: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and, obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
2. The method of claim 1 , wherein the instance-validation credential includes or is in the form of one or more of: a payload signed using the signing key; a payload including the validating key; and, an instance-validation private key corresponding to an instance-validation public key of an instance-validation public-private keypair.
3. The method of claim 1 or 2, including using the signing key in a challenge-response with the remote server, including using the signing key to sign a challenge received from the remote server to generate a signed challenge response and transmitting the signed challenge response to the remote server for validation.
4. The method of claim 3, wherein the challenge-response is performed in response to or a part of digital activity initiated from or conducted via the instance of the application.
5. The method of any one of the preceding claims, including checking for existing instancevalidation credentials.
6. The method of claim 5, wherein checking for existing instance validation credentials includes checking one or both of an on-device and an off-device storage.
7. The method of any one of the preceding claims, wherein the instance of the application isa first instance of the application, and wherein the method is conducted in response to installation or initialisation of the first instance of the application.
8. The method of any one of the preceding claims, wherein the cryptographic key pair is a first cryptographic key pair including a first signing key and a first validating key.
9. The method of any one of the preceding claims, wherein the instance-validation credential is a first instance-validation credential10. The method of any one of the preceding claims, including obtaining authentication credentials via end-user input and transmitting the authentication credentials to the remote server, and wherein the authentication credentials are transmitted to the remote server for registering the instance of the application in association with the activity record.1 1. The method of claim 10, wherein the authentication credentials include any one or more of: a username and password; a national identity number; a biometric credential; and a key phrase provided to the end-user.
12. The method of any one of claims 10 or 1 1 , wherein obtaining authentication credentials is in response to determining that there are no existing instance-validation credentials.
13. The method of any one of the preceding claims, wherein the instance of the application is a further instance of the application, and wherein the method is conducted in response to installation or initialisation of the further instance of the application.
14. The method of claim 13, including, in response to determining there are existing instance validation credentials: retrieving an existing instance-validation credential having been fetched from an off-device storage location; and, transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application.
15. The method of claim 14, wherein the existing instance-validation credential is a first instance-validation credential.
16. A computer-implemented method conducted at an end-user device executing a further instance of an application, the method comprising:issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
17. A computer-implemented method conducted at a remote server comprising: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record; validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
18. The method of claim 17, wherein validating the existing instance-validation credential includes one or more of: decrypting a payload signed with a previous signing key using a corresponding previous validating key; comparing a key included in a payload to the corresponding previous validating key; and, decrypting a payload signed using an instancevalidation private key using a corresponding instance-validation public key.
19. The method of claim 17 or 18, wherein, in response to validating the existing instancevalidation credential, digital activity is conducted between the instance of the application and the remote server in which the instance of the application uses a signing key to sign payloads or data elements being transmitted to the remote server, the method including: receiving, from theinstance of the application, the signed payloads or data elements; and, validating the signed payloads or data elements using the validating key stored in association with the activity record.
20. The method of any one of claims 17 to 19, including, attributing digital activity, initiated from or conducted via the instance of the application, to the activity record.
21. The method of claim 20, wherein attributing digital activity to the activity record includes recording characteristics or features of or relating to the digital activity to the activity record, such that the activity record stores characteristics or features of or relating to digital activity initiated from or conducted via the instance of the application over time.
22. A system including an end-user device executing an instance of an application comprising: a non-transitory computer-readable storage medium; and one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non-transitory computer- readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and, obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
23. A system including an end-user device executing a further instance of an application comprising: a non-transitory computer-readable storage medium; and one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the furthersigning key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
24. A system including a remote server comprising: a non-transitory computer-readable storage medium; and one or more processors coupled to the non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium comprises program instructions that, when executed on the one or more processors, cause the system to perform operations comprising: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record; validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
25. A computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at an end-user device executing an instance of an application, the steps of: issuing a cryptographic key pair including a signing key for use in signing payloads sent from the instance of the application to a remote server and a validating key for validating signed payloads at the remote server, including storing the signing key with configuration that prevents transfer of the signing key from the end-user device; transmitting the validating key to the remote server for storage in association with an activity record; and,obtaining an instance-validation credential for use in linking further instances of the application to the instance of the application and storing the instance-validation credential with configuration that permits transfer of the instance-validation credential from the end-user device, wherein storing the instance-validation credential with configuration permitting transfer from the device provides access to the instance-validation credential for linking of further instances of the application with the instance of the application.
26. The computer program product of claim 25, wherein the computer-readable medium stores computer-readable program code for performing the step of checking for existing instancevalidation credentials.
27. The computer program product of claim 26, wherein checking for existing instance validation credentials includes checking one or both of an on-device and an off-device storage.
28. A computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at an end-user device executing a further instance of an application, the steps of: issuing a further cryptographic key pair including a further signing key for use in signing payloads sent from the further instance of the application to a remote server and a further validating key for validating signed payloads at the remote server, including storing the further signing key with configuration that prevents transfer of the further signing key from the end-user device; in response to determining that existing instance validation credentials exist, retrieving an existing instance-validation credential having been fetched from an off-device storage location and transmitting the existing instance-validation credential to the remote server for linking the further instance of the application with one or more previous instances of the application; and, transmitting the further validating key to the remote server for storage in association with an activity record associated with the one or more previous instances of the application.
29. A computer program product comprising a computer-readable medium having stored computer-readable program code for performing, at a remote server, the steps of: receiving, from an end-user device, an existing instance-validation credential, having been fetched from an off-device storage location, and having been transmitted from the end-user device for linking an instance of an application executing on the end-user device with one or more previous instances of the application; receiving, from the end-user device, a validating key for storage in association with an activity record;validating the existing instance-validation credential and, in response to the validation, storing the validating key in the association with the activity record for use in attributing, to the activity record, digital activity initiated from or conducted via the instance of the application, the existing instance-validation credential having been obtained by a previous instance of the application for use in linking further instances of the application to the previous instance of the application and having been stored with configuration permitting transfer of the previous instancevalidation credential from an end-user device on which it was obtained.
Citation Information
Patent Citations
Application certificate
US20200259668A1
System and method for identifying a browser instance in a browser session with a server
US20220247579A1