Rarimo Audit

Original checklist link: https://hackmd.io/2IRrRsLcQyKo1XOwAFABBA
Rarimo github: https://github.com/rarimo
Contact peers: @kitty_jenny_h (TG)

Existing security audits: https://docs.rarimo.com/resources/audits/

Inscope applications/servers:

Report outline

Introduction
Conclusion
Summary of information
Recommendations
Data obtained through checklist

Questions asked and waiting for feedback:

  • Internal policies in place to deal with privacy or data breaches (data leaks, hacks, etc.)
  • Contact with your DPO
  • Contact with (if any) compliance team
  • Server locations, labeled with what kind of data is stored (ex: CRM system, salesforce, hosted in NA, b2b client information)
  • List of analytical tooling used and where (front-end, mobile app, etc,)
  • Data governance structure
  • Your privacy policy
  • (if any) Types of sensitive data that might be processed (KYC, passport data, biometrics, health, financial,..)
  • 3rd party systems your system interacts with

Research division

by mf

1.2 Data Storage and Security

  • Where and how is personal data stored (including on-chain, off-chain, and hybrid approaches)?
  • What security measures are in place to protect the data in all storage locations?
  • Is data encrypted at rest and in transit?
  • Are there access controls and authentication mechanisms in place for both traditional systems and blockchain nodes?
  • Is there a data retention policy is it enforced?
  • Are there procedures for secure data destruction or obfuscation, considering the immutability of blockchain data?
  • How is off-chain data secured and linked to on-chain identifiers?
  • What measures are in place to protect private keys and other cryptographic materials?

1.3 User Rights and Control

  • Can users access their personal data easily?
  • Is there a process for users to request data correction or deletion?
  • Can users opt-out of certain data processing activities?
  • How are data subject requests handled and tracked across all systems?
  • Are there options for users to participate in the network without revealing personal information?

1.4 Data Breach Response

  • Is there a data breach response plan in place?
  • Are there procedures for detecting and reporting breaches, including smart contract vulnerabilities?
  • Is there a process for notifying affected individuals and authorities in case of a breach?
  • Are post-breach reviews conducted to prevent future incidents?

by ngerarld

1.1 Data Collection and Processing

  • What types of personal data are collected (both off-chain and on-chain)?

Personal information stays on your phone only. The system only puts a passport hash and a public key on the blockchain. When verification happens off the blockchain, it only confirms two things:

  • Whether you're a citizen (if you choose to share this)
  • Whether you're over 18 (without revealing your exact age)

Rarimo only processes information you voluntarily share with them. And do not have any access to the personal date of the user, contained in their passport or other identification documents.

Off-Chain Data Collection
Provided Information (collected by Rarilabs directly, according to privacy policy)

  • Contact information when communicating with Rarilabs (email, phone number, mailing address)
  • Information submitted through surveys
  • Information shared through interactive features, forums, blogs, or social media
  • Information provided for sweepstakes/contests participation
  • Information collected at conferences, trade shows, and events
  • Business development and partnership-related information

Automatically Collected Information

  • IP address
  • User settings
  • MAC address
  • Cookie identifiers
  • Mobile carrier
  • Unique identifiers
  • Browser/device information
  • Approximate location (derived from IP address)
  • Analytics data through tools like Google Analytics

Information From Other Sources

  • Contact information from referral services

Information Collected When Downloading the Application
Collected by app store providers (Google Play or App Store):

  • Username
  • Email address
  • Customer number
  • Time of download
  • Payment information (if applicable)
  • Individual device identification number

On-Chain/Application Data (Eligibility Information)
The policy emphasizes that this information is processed solely on users' devices and not accessed by Rarilabs:

  • Digital Identity Components

The policy strongly emphasizes that the Eligibility Information is only processed on users' devices, with Rarilabs having no access to this information. It states: "IN NO EVENT DOES RARILABS COLLECT, PROCESS, USE, SHARE OR STORE ANY ELIGIBILITY INFORMATION."

Anonymized verifiable credential containing hashed versions of:
(hash of the user's Identifying Document)

  • Full name
  • Citizenship
  • Sex
  • Date of birth
  • Number of the Identifying Document
  • Date of expiry of the Identifying Document

Blockchain Information

  • Digital Assets Wallet address
  • On-chain activities
  • Interactions with the Services
  • Is the collection of each data point necessary and justified?
    No, Although Rarime’s data collection aligns with standard practices for SaaS platforms, with purposes tied to security, functionality, and service improvement. Users should remain vigilant about optional data sharing and utilize provided controls to manage preferences.

Potential Concerns:
If geolocation or other sensitive data is collected without a clear need, it would lack justification. The notice does not explicitly mention this, suggesting compliance.

Third-Party Risks: While sharing data with partners is common, audits or disclosures about vendor compliance would strengthen justification.

Data Minimization: The service should collect only what is strictly necessary for decentralized identity management, avoiding excessive or irrelevant data. They could and should offer anonymous options whenever possible (e.g., aggregating IP addresses).

  • How is data collected? (e.g., forms, cookies, logs, third-party sources, blockchain transactions)

In the case of data processed within their application, the user explicitly approves their registration in the RariMe app and consents to each proof request (such as proof of adulthood).

In the case of data processed by Rarimo, the user voluntarily provides their data as part of their request.

  • Is there a clear and accessible privacy policy?- Not really only its only stated for Rarime privacy policy(- https://rarime.com/privacy-notice.html)

  • Are data subjects informed about the collection and its purposes?
    Data subjects (users) are well-informed about data collection and its purposes in the RariMe privacy policy:

Clear Collection Notification: The policy explicitly states what personal information is collected, including:

  • Information processed in the Application (Eligibility Information)
  • Information provided directly by users (Provided Information)
  • Information collected automatically
  • Information from other sources

Purpose Specification: The policy details how personal information is used, including:

  • To provide services
  • For administrative purposes
  • With user consent for other disclosed purpose
  • Is consent obtained where necessary, and is it specific and informed for both off-chain and on-chain data processing?

For off-chain data:

The policy states: "With Your Consent. We may use personal information for other purposes that are clearly disclosed to you at the time you provide personal information or with your consent."
It outlines users' "Right to withdraw consent: you have the right to withdraw your consent at any time."
For email communications, text messages, and phone calls, the policy explains opt-out mechanisms.

For on-chain data and Application processing:

The policy explains that users' Digital Identity includes anonymized identifiers and credentials.
It clearly states that "THE ELIGIBILITY INFORMATION IS COLLECTED, PROCESSED, USED AND STORED SOLELY ON THE USER'S DEVICES WITHOUT ANY INVOLVEMENT OF RARILABS."
The policy explains that when users create a Digital Identity, they are voluntarily providing their information within the application.
When users choose to prove statements about their identity to third parties, the policy explains exactly what limited data is shared through zero-knowledge proofs.

The policy makes clear distinctions between different types of data processing:

Eligibility Information processed solely on user devices
Provided Information that users actively share
Automatically collected information (like IP addresses)

For each category, the policy explains the legal basis for processing, which includes:

Consent (Article 6(1)(a) GDPR)
Performance of a contract (Article 6(1)(b) GDPR)
Legitimate interests (Article 6(1)(f) GDPR)

  • Are there mechanisms in place to minimize on-chain data storage?

For third-party verification processes, the application generates a new ZKP proving the user has the Digital Identity, disclosing only the proof to the verifier without revealing personal information.

Zero-Knowledge Proofs (ZKPs) – The application uses zero-knowledge cryptography to verify identity-related claims without exposing the underlying data. This ensures that personal data is not stored on-chain, only anonymized proofs.

Processing on User’s Device – Eligibility Information (e.g., identifying documents) is collected, processed, used, and stored solely on the user’s device and is not shared with Rarilabs or third parties.

Anonymized Identifiers – The Digital Identity (DI) is created using hashed versions of identifying documents and credentials, which are further anonymized through cryptographic methods, preventing direct association with an individual.

Metadata Exposure Only – Third parties can only access limited metadata (e.g., proof-of-citizenship, proof-of-adultness) through verifiable credentials but not the original personal data.

Minimal Collection Policy – Rarilabs explicitly states that it collects and stores only the minimum personal information necessary to provide services, avoiding direct storage of sensitive user data.

  • How is data collected through smart contract interactions handled and processed?

State Management: The StateKeeper contract acts as a singleton state instance, storing and managing critical data. It maintains

  • ​​​​​​A Sparse Merkle Tree with registered identities
    
  • ​​​​​​A Sparse Merkle Tree with registered certificates of ICAO members
    
  • ​​​​​​Passport and identity information
    
  • ​​​​​​"Passport <> Identity" bonds
    

In order to verify proofs as proof-of-citizenship or proof-of-adultness they would need only SMT root from on-chain.

1.2 Data Sharing and Third Parties

  • Is personal data shared with third parties? If so, with whom and for what purposes?

Since all personal data is stored on user device hence Rarilabs dun even have user personal data to begin with

As per Rarilabs practice - they do not share the personal data with third parties. Even if the user provides them with its personal data in communication with us, such data is stored on our side. As an example, they may share the user's feedback with third party (our service provider), but such feedback will be anonymized and, therefore, will not contain personal data.

According to their privacy policy
Only shared to the extent necessary for optimal service provision

Sharing with Business Partners

Purpose:

  • Provide requested products or services
  • Jointly offer products or services

Specific Disclosure Scenarios:

  • To comply with law enforcement or legal requests
  • Protect rights, property, or safety
  • In event of merger, acquisition, or asset transfers
  • To enforce policies or contracts
  • Assist with investigations

Rarilabs emphasizes that they collect and processes the minimum amount of personal information needed to provide services. The company is particularly careful about "Eligibility Information", which is processed solely on the user's device using zero-knowledge proofs and is not accessible to Rarilabs.

The legal basis for these data sharing activities is typically:

  • Performance of a contract
  • Legitimate business interests
  • Compliance with legal obligations
  • Are there data processing agreements in place with third parties, including smart contract interactions?

The document states that for data transfers to third parties, Rarilabs ensures compliance with legal requirements through:

Choosing companies certified under Privacy Framework agreements
Using standard contractual clauses (as referenced in Article 46(2)© of the GDPR)

Specifically for international data transfers (especially to the United States), the notice indicates that Rarilabs will:

Ensure adequate data protection through:

  • Companies certified under Privacy Framework agreements
  • Contractual arrangements with third-party service providers
  • Additional appropriate safeguards if necessary
  • How is data protected during transfer to third parties?

As mentioned above, they do not share personal data with third parties.

  • Is there a process for vetting and auditing third-party data handlers?

Team confirms that there are no such third-party data handlers in their case.

  • How is privacy maintained in cross-chain transactions or data sharing?

The Privacy Notice does not provide specific details about privacy maintenance in cross-chain transactions or data sharing. However according to the team, all data sharing is done using privacy preserving ZK Proofs

Privacy Mechanisms:

Zero-knowledge cryptography is used to prove identity statements without exposing personal information
Digital Identity (DI) is anonymized using zero-knowledge proofs
Users can prove specific statements about their identity without revealing underlying personal details

Specific Provable Statements Include:

  • Proof-of-citizenship (country of citizenship)
  • Proof-of-adultness (over 18 or age of majority)
  • Proof-of-uniqueness (using an anonymized distinguisher)

While these mechanisms suggest a privacy-focused approach, the document does not explicitly address cross-chain transaction privacy or elaborate on data sharing across blockchain networks.

2.1 Smart Contracts

  • Do smart contracts handle personal data?

Encryption: Rarimo encrypts personal data on-chain using industry-standard algorithms, ensuring that only authorized participants can access the data with decryption keys provided through off-chain channels.

  • Are there privacy-preserving computation methods implemented (e.g., ZKPs, MPC)?

Zero-Knowledge Proofs (ZKPs): The system utilizes ZKPs during the registration process to validate user-provided data without compromising privacy.

  • How are smart contract upgrades managed to address privacy concerns?
    Gnosis safe is used to manage upgradability.

  • Is there a process for auditing smart contracts for privacy vulnerabilities?
    Yes, they requested an audit from companies (such as Halborn) when releasing a major version

  • How is data access controlled within smart contracts?
    Zk registry is permissionless and data control is managed by users via self attestation via ZKP

Out of scope information

2.2 Node Operations

  • What data is collected and stored by nodes?
  • How is node communication secured?
  • Are there privacy-preserving networking protocols in use (e.g., Tor, I2P)?
  • How are node operators vetted and monitored for compliance with privacy standards?
  • What measures are in place to prevent deanonymization through network analysis?
Select a repo