Revoke’s Security Policy

v0.4 Last Updated: 17/05/2021

1 Security Policy

This security policy relates to the Revoke service (the “Service”) operated by Revoke Limited (“Revoke”, “us”, “we”, or “our”). Revoke Limited is a company registered with the Jersey Financial Services Commission, Registration Number 124314.

At Revoke, we care deeply about privacy and security.

This policy outlines the steps we have taken to ensure that any data we store or transmit is secure and protected appropriately.

We use advanced levels of encryption of data at rest and in transit at the message and transport layer including use of the following;

  • Elliptic Curve cryptography using Ed25519 and Curve25519 Keys
  • Authenticated encryption with associated data (AEAD)
  • Diffie-Hellman key agreement
  • Sealed Boxes
  • IPSec
  • AES256 Encryption
  • X509 Certificates
  • BlakeB Hashing

2 Personal Data

We treat personal data very carefully.

We ensure that all data is encrypted, when it is on your device, when it is being transmitted, and when it is stored with Revoke.

2.1 Mobile Application

Each user has a unique Private Key on their phone for decryption. This Private Key is derived by a random number generation process. A corresponding Public Key is used for encryption. These keys are known as a Key Pair.

To ensure the Key Pair is completely random and impossible to re-generate, the user is required to perform non-predictable, non-reproducible actions.

The actions are device and application permission dependant but include one or more of:

  • Microphone sound input
  • Video camera input
  • Random screen interaction (drag, swipe, tap)
  • Accelerometer readings.

2.1.1     Data Encryption at Rest

All data on a user’s device is encrypted using AES256 encryption with a randomly generated password. The password for each item of data is encrypted using a suitable Public Key.

Data is decrypted using a Private Key, accessed with a user-defined PIN.

2.1.2     Data Encryption in Transit

Information sent to and from third parties containing restricted or sensitive personal data is protected and secured by cryptographic certificates.

Certificates are based on the X509 standard but utilising a json format to allow extended attributes not supported in the native x509 certificate format.

In addition to encryption at the message layer, HTTPS is used to encrypt the transport layer between all services.

3 Company API and Customer Matching

Revoke provides an API for companies to query and match customer records, in order to automate responding to requests.

It is essential that no personal data is divulged as part of this process, and that company customer data is protected.

3.1 Customer Matching

All the data sent by the company to Revoke is masked and anonymised using cryptographic operations to provide a secure data store without compromising the personal data of the customer or the commercially sensitive data company.

A customer record from a client company consist of two primary elements:

Unique customer reference

Each company record requires a unique reference that has relevance in the client company customer database. This is to provide a mechanism to link a Revoke record or data protection request with an actual customer.

In order to protect the customer reference field, the company encrypts the data incorporating its Private KeyCurve25519 using secret box encryption.

3.1.1     Matching criteria fields.

The customer record contains one or more matching fields. A criteria field is a unique piece of information connected with the end customer. This can be for items such as “email address”, “first name”, “last name”, “postcode” etc. The company can supply any number of matching fields based on the size and type of customer data contained within their systems.

Prior to transmission, matching field data is protected by two rounds of BlakeB hashing. This ensures that any sensitive commercial or personal information is completely protected against any misuse by a third party. The Revoke data protected mechanism offers three fundamental levels of security:

  • There is no practical method to reverse the hashing process and retrieve any customer data sent via the Revoke API.
  • As the encoding process happens prior to data transmission, Revoke have no visibility of the data sent and is only concerned with the matching of specific requests by users to a relevant company.
  • As the hashed data is mixed with the company public key the resulting output is unique between a given customer and company relationship. The same user information (such as email address, telephone number) will have wildly different resulting match values for different source companies. This prevents leaking the privacy of a given user’s interaction between multiple different company entities.

Matching Field Algorithm

In order to suitably protect the sensitive data sent by the company to Revoke, the following algorithm is implemented:

  • A BlakeB hash engine is created and seeded with the 32-byte Revoke public key Ed25519 obtained via one of the key distribution methods.
  • An individual piece of match data is processed by the BlakeB hash engine resulting in a 32-byte output.
    Note: For consistency and match accuracy, all match data should be translated into upper case prior to processing.
  • The company’s private KeyCurve25519 and the Revoke public KeyCurve25519 are combined using a Diffie-Hellman key agreement function to generate a 32-byte shared secret.

Note: For added security, the raw secret key agreement value should be protected by utilising a key derivation function (KDF) such as a HMAC or hash.

  • The computed shared secret is used to seed a second BlakeB hash engine.
  • The output of the first hash process in step 2 is processed by the second BlakeB hash engine resulting in a final 32-byte output value. This value is the data that the company will send through to Revoke in order to process any match requests.


  • The shared secret output calculated as part of the Diffe-Hellman Key Agreement process (step 3) is a constant and can be safely reused in a batch process if the company and Revoke keys remain unchanged.

The above process has the following advantages:

  • The process can be recreated on the Revoke server allowing pre-computation of results for a given company to improve response performance.
  • As the hash uses elements of the company’s private key, a dishonest company can-not send investigative requests to see if an email address has been registered to a third-party company.

Users send the same matching information to Revoke utilising a similar approach. The notable difference is that the process is split into two parts with the user’s device performing the initial hash with the Revoke public key.

The Revoke services then use the data sent from the user’s device to pre-compute a hash table containing the relevant data for the onboarded companies. This process uses the Revoke private key and the specific company public key to generate the same shared secret used by the company.

The Revoke system will take all new masked data submitted by users and construct a suitable reference system to enable searching in a timely manner. The system will in effect pre-calculate all the potential match results for the customer and company userbase held in an efficient and secure data storage.

3.2 Company API Transport

Request is made via a HTTPS/SSL communication using a simple REST/SOAP call.

Each request sent to the Company API contains:

  • Headers
    • Company Public key
      The public key of the sending company is added as a request header.
    • The sending company uses their secret key to sign the contents of the request payload.
  • Payload
    All request payloads include a UTC date time stamp to millisecond precision as part of the signed content. Any request received outside a server defined time window will be ignored.

Payload requests are encrypted using secret box encryption as this removes the need for the company to track and maintain a unique number used once value.

Vulnerability Disclosure

Revoke is committed to maintaining the security of our systems and protecting sensitive information from unauthorised disclosure.

We will not take legal action against security researchers acting in good faith in relation to the discovery and reporting of a potential security vulnerability. This is provided that all such potential security vulnerabilities are discovered and reported strictly in accordance with this Responsible disclosure statement.

The following types of research are strictly prohibited:

  • Any attempt to modify or destroy any data
  • Executing or attempting to execute a denial of service (DoS) attack
  • Sending or attempting to send unsolicited or unauthorised email, spam or any other form of unsolicited messages
  • Conducting social engineering (including phishing) of Revoke employees, contractors or customers or any other party
  • Accessing or attempting to access accounts or data that does not belong to you
  • Testing third party websites, applications or services that integrate with our services or products
  • Posting, transmitting, uploading, linking to, sending or storing malware, viruses or similar harmful software that could impact our services, products or customers or any other party
  • Exfiltrating any data under any circumstances
  • Any activity that violates any law.

Should you discover any personal, financial or proprietary information please do not proceed any further and contact us immediately.

When reporting a vulnerability, you are encouraged to provide:

  • An explanation of the potential security vulnerability, including details of any exploit with enough information to enable the security team to reproduce it
  • A list of products and services that may be affected
  • Proof-of-concept code, scripts and screenshots
  • Your contact details for further communication.

We will do the following:

  • Contact you within three working days
  • Notify you when the matter has been addressed
  • Keep reports confidential (subject to any regulatory and legal requirements)
  • Keep your identity confidential unless you choose otherwise.

Please email to disclose potential security vulnerabilities

App icon - download from the App Store and Google Play

Download Revoke Today

Start protecting yourself with Revoke, and take back control of your personal data.

Download on the App Store - icon Get it on Google Play - icon
Cyber Essentials certified logo

Cyber Essentials Certified

We take security seriously which is why we’ve been assessed and certified for addressing cybersecurity effectively and mitigating the risk from Internet-based threats.