Paper 2026/1065
Formal Analysis and Verification of DigiLocker with Tamarin
Abstract
Digilocker is a key component of India's Digital Public Infrastructure, enabling secure digital storage, retrieval, and sharing of government-issued documents. Given its large-scale deployment and reliance on protocols such as OAuth 2.0 with PKCE, HMAC-based API authentication, digital signatures, and encrypted storage, rigorous security assurance is essential which can not be be ensured through conventional testing alone. In this work, we present a formal modeling and verification of DigiLocker’s authentication and document-handling workflows using the Tamarin Prover. We model the OAuth 2.0 authorization code flow with PKCE, issuer-based document retrieval mechanisms (PullURI and PullDoc), document push workflows, and self-upload with encrypted storage under the Dolev–Yao adversary model. We formally specify and verify key security properties, including token secrecy, authorization code uniqueness, PKCE binding, document authenticity, integrity, confidentiality, and key management. Our results show that DigiLocker’s protocol design satisfies these properties under ideal assumptions. However, controlled credential-leak scenarios demonstrate that compromise of sensitive values such as API keys or digilockerids can lead to exploitable attack traces. This study highlights the value of formal verification in strengthening security guarantees for large-scale e-governance systems.
Metadata
- Available format(s)
-
PDF
- Category
- Cryptographic protocols
- Publication info
- Preprint.
- Keywords
- Formal VerificationDigiLockerOAuth 2.0PKCETamarin ProverCryptographic Protocols
- Contact author(s)
-
nayan_rk @ cs iitr ac in
mundada_am @ cs iitr ac in
raghvendra rohit @ cs iitr ac in - History
- 2026-05-31: approved
- 2026-05-27: received
- See all versions
- Short URL
- https://ia.cr/2026/1065
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2026/1065,
author = {Nayan Kakade and Aditya Mundada and Raghvendra Rohit},
title = {Formal Analysis and Verification of {DigiLocker} with Tamarin},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/1065},
year = {2026},
url = {https://eprint.iacr.org/2026/1065}
}