UIDAI Hackathon 2021 二等奖,来自202 ACCEPTED团队
主题 2 : 问题陈述 4
印度农村 100% 身份验证成功
重要链接
应用程序流程
场景
- 居民前往 PDS 商店购买配给。
- 位于印度农村,没有 3G/4G 连接。
验证器应用程序
- 使用 OTP 身份验证作为主要机制。
- 居民与 PDS 商店共享虚拟 Aadhaar 号码/离线 eKYC。
- 该应用程序支持 OTP 身份验证、在线/离线面部身份验证,以实现完全包容性的身份验证。
居民应用程序
- OTP 验证,用于安全登录。
- 支持生成带有验证码和 OTP 的虚拟 Aadhaar 号码,并提供安全保障。
- 支持下载 eKYC XML,通过 QR 码与验证器共享,用于离线面部身份验证。
通用
这是提交给 UIDAI Aadhaar 身份验证 Hackathon 的项目。我们尝试以多种方式探索身份验证选项,同时提供从在线到离线的无缝过渡。身份验证方法为:
- 指纹匹配(由于缺乏指纹传感器而模拟)
- 基于 Aadhaar 的 OTP 匹配(通过短信或电子邮件)
- 无状态人脸匹配
项目的导航结构如下所示
resident_app
├── android/..
├── assets/..
├── lib
│ ├── camera_screen.dart
│ ├── home_screen.dart
│ ├── login_screen.dart
│ ├── main.dart
│ └── resident_data.dart
├── pubspec.lock
└── pubspec.yaml
lib 文件夹中包含重要的应用程序数据
方法
离线指纹身份验证
- UIDAI 服务器生成记录的指纹的安全哈希,并在设置时将其作为唯一 ID 发送给居民应用程序。
- 验证器通过 QR 码接受来自居民应用程序的哈希值。
- 验证器还获取实际指纹并计算其哈希。
- 如果两个哈希匹配,则身份验证完全离线(速度极快)。
离线人脸匹配
- 如果指纹身份验证不可用,则从 API 实现离线无状态人脸匹配。
- 居民应用程序将在设置时从 UIDAI 服务器获取 eKYC XML。
- 在验证器应用程序中已支持无状态匹配。
技术栈
我们使用了一个修改过的 Flutter(Kotlin/Swift)技术栈,主要在 Flutter 中实现,并有少量调用 Kotlin 的原生代码。出于安全原因,所有 API 的使用都仅限于 UIDAI 为 Hackathon 提供的 API。
API 用途
- OTP API,用于模拟指纹哈希(如文档所述)
- OTP API,用于手机身份验证
- eKYC API,用于无状态匹配。
- Face RD APK,用于在线/离线
- Aadhaar Auth API
关于我们 – 202ACCEPTED
- Omkar Prabhune,Pune VIT 的计算机科学初级学生
- Atharva Rajadhyaksha,Pune VIT 的仪表初级学生
