second place winner for the uidai hackathon 2021 by team 202 accepted
theme 2 : problem statement 4
100% authentication success in rural india
important links
- video recording of apps
- compiled apks (verifier and resident)
- presentation of solution
- screenshots of app
- google drive link
app flow
scenario
- resident approaches pds shop for ration.
- located in rural india with no 3g/4g connectivity.
verifier app
- 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.
resident app
- 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.
general
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
approach
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.
tech stack
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.
api usage
- 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
Comments are closed.