Second Place Winner for the UIDAI Hackathon 2021 by Team 202 ACCEPTED. Our Project was to develop 2 Applications for Verification and Authentication of identity using Aadhaar biometrics on mobile devices.
Please do not ask how to implement this as the Aadhaar API is disabled completely. It was only available during the hackathon and cannot be used now.
- Video Recording of Apps
- Compiled APKs (Verifier and Resident)
- Presentation of Solution
- Screenshots of App
- Google Drive Link
- Resident approaches PDS shop for Ration.
- Located in Rural India with no 3G/4G connectivity.
- Uses OTP Authentication as primary mechanism.
- Resident Shares Virtual Aadhaar Number / Offline eKYC with PDS shop.
- Application facilitates OTP Authentication, Online/Offline Face Authentication for Completely inclusive authentication.
- OTP verification for secure login.
- Facilitates generation of Virtual Aadhaar Number with Captcha and OTP based security.
- Facilitates downloading eKYC XML to share with Verifier using QR code for OFfline Face Auth.
This is a project submitted to the UIDAI Aadhar Authentication Hackathon. We try to explore authentication options in a variety of ways, while providing a seamless transition from online to offline. The methods of Authentication are:
- Fingerprint Matching (Simulated due to lack of fingerprint sensors)
- Aadhaar based OTP matching (Via SMS or email)
- Stateless Face Matching
The navigational structure of the project looks something like this
resident_app
├── android/..
├── assets/..
├── lib
│ ├── camera_screen.dart
│ ├── home_screen.dart
│ ├── login_screen.dart
│ ├── main.dart
│ └── resident_data.dart
├── pubspec.lock
└── pubspec.yaml
with the files in lib
containing the important application data
- UIDAI server generates a secure hash of the recorded fingerprint and sends it to the resident application as unique id (at setup).
- Verifier accepts hash value from resident application using QR code.
- Verifier also takes actual fingerprint and computes its hash.
- If both hashes match, authenticity is proven completely offline (extremely fast).
- If fingerprint authentication not possible, Offline Stateless Face match implemented from the API
- Resident app will obtain eKYC XML from UIDAI server (at setup).
- Stateless match performed as already supported in the Verifier App.
We use a modified Flutter (Kotlin/Swift) Techstack implemented mostly in flutter with a few calls to Native code in Kotlin. All use of API's is limited to those provided by the UIDAI for the purposes of the Hackathon due to safety reasons.
- OTP API to simulate Fingerprint Hash (as mentioned in the docs)
- OTP API for Mobile phone Auth
- eKYC API for Stateless Matching.
- Face RD APK for Online/Offline
- Aadhaar Auth API
- Omkar Prabhune, CSE Junior at VIT Pune
- Atharva Rajadhyaksha, Instrumentation Junior at VIT Pune