Second Place Winner for the UIDAI Hackathon 2021 by Team 202 ACCEPTED
Theme 2 : Problem Statement 4
100% Authentication success in Rural India
- 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
Offline Fingerprint Authentication
- 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).
Offline Face Match
- 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
About Us – 202ACCEPTED
- Omkar Prabhune, CSE Junior at VIT Pune
- Atharva Rajadhyaksha, Instrumentation Junior at VIT Pune