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:
FreedomTool
ZK Passport
ZK Registry
Front-end (rarimo.com)
Android application: RariMe
ios Application: Rarime
Introduction
Conclusion
Summary of information
Recommendations
Data obtained through checklist
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:
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)
Automatically Collected Information
Information From Other Sources
Information Collected When Downloading the Application
Collected by app store providers (Google Play or App Store):
On-Chain/Application Data (Eligibility Information)
The policy emphasizes that this information is processed solely on users' devices and not accessed by Rarilabs:
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)
Blockchain Information
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).
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:
Purpose Specification: The policy details how personal information is used, including:
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)
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.
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.
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:
Specific Disclosure Scenarios:
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:
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:
As mentioned above, they do not share personal data with third parties.
Team confirms that there are no such third-party data handlers in their case.
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:
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.
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.
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