Projekat 09 · Identitet i dokumenti
Prikupljanje zahtjeva za pasoš i biometrije bez mreže
Za nacionalno tijelo za identitet u Zapadnoj Africi napravili smo aplikaciju kojom agenti primaju zahtjeve za pasoš i ličnu kartu u selima bez signala.
1 radni dan
glavna brojka
1 ograničenje
Zahtjevi su sadržavali biometrijske podatke, a ljudi koje su agenti obilazili često nisu imali signal.
Priča u 5 koraka
Stack
- React
- Next.js
- Expo
- PostgreSQL
- AWS
- offline-first
- biometrija
01 · Kontekst
Za nacionalni organ za lične dokumente u Zapadnoj Africi napravili smo sistem za zahtjeve, biometriju, plaćanje takse, provjere u nacionalnom registru i praćenje statusa.
Za nacionalni organ za lične dokumente u Zapadnoj Africi napravili smo sistem za zahtjeve, biometriju, plaćanje takse, provjere u nacionalnom registru i praćenje statusa. Kroz isti postupak izdaju se i pasoši i lične karte, a razlika je samo u cijeni.
Sistem je u produkciji, a aplikacija je objavljena na Google Playu.
Najteže je bilo odlučiti koji problem ne moramo rješavati.
02 · Nije se smjelo mijenjati
Nadležni organ šalje svoje agente do ljudi, a ljudi koje oni obilaze često nemaju mrežu.
Nadležni organ šalje svoje agente do ljudi, a ljudi koje oni obilaze često nemaju mrežu. Zato se zahtjevi za pasoš s biometrijom, najosjetljiviji podaci kojima država raspolaže, moraju unijeti na telefonu u selu i poslati kasnije.
Uobičajeno rješenje, da aplikacija traži internet, ovdje nije dolazilo u obzir. Rad bez mreže otvara i probleme koje online sistem nikad nema: šta se čuva na uređaju, šta ako se uređaj izgubi i kako znati da isti zahtjev nije poslan dvaput.
03 · Šta smo uradili
Offline prozor ograničili smo na jedan radni dan.
Offline prozor ograničili smo na jedan radni dan. Agenti na kraju svakog dana vraćaju uređaje u kancelariju, pa sinhronizacija nikad ne mora pokriti više od jednog dana. Pošto se nijedan uređaj ne vraća nakon više sedmica, nema konflikata pri spajanju ni kopija koje su se razišle. Sistem smo pravili za taj jednodnevni prozor, a ne za offline sinhronizaciju uopšte, i zato je ostao dovoljno jednostavan da mu se može vjerovati. Zahtjevi i biometrija čuvaju se u zaštićenom skladištu na službenim telefonima koji se mogu obrisati na daljinu, a šalju se kad se veza vrati.
Samo službeni telefoni. Biometriju je prihvatljivo držati na telefonu jedino ako telefon pripada organizaciji i može se obrisati na daljinu. Da su agenti koristili svoje telefone, isti dizajn ne bi prošao, ma koliko dobro podaci bili šifrovani.
Duplikate otkriva server. Uređaj koji je bio offline ne može znati šta je uradio drugi uređaj. Samo server, s kojim se svi uređaji na kraju povežu, može odlučiti da li zahtjev već postoji, i to radi prije nego što zahtjev prihvati.
Plaćanje takse. Takse se naplaćuju kroz nacionalni payment gateway, a podnosioci iz inostranstva mogu platiti i PayPalom. U javnom sektoru propisi određuju koji se pružalac platnih usluga koristi.
Pristup registru. Pozivi prema nacionalnom registru zaštićeni su ključevima, digest autentikacijom, jednokratnim tokenima i listom dozvoljenih IP adresa, pa ukradeni ključ sam po sebi ne otvara ništa.
04 · Rezultat
Zahtjevi, fotografije i biometrija prikupljeni bez mreže, na uređajima koji se mogu obrisati na daljinu
- Zahtjevi, fotografije i biometrija prikupljeni bez mreže, na uređajima koji se mogu obrisati na daljinu
- Dupli zahtjevi otkriveni na serveru prije prihvatanja
- Sistem u produkciji, s aplikacijom objavljenom na Google Playu
05 · Šta bismo uradili drugačije
Nikad nismo testirali šta se dešava kad se uređaj ne vrati: agent koji se na kraju dana ne vrati u kancelariju ili telefon koji ostane na terenu sedmicu dana.
Nikad nismo testirali šta se dešava kad se uređaj ne vrati: agent koji se na kraju dana ne vrati u kancelariju ili telefon koji ostane na terenu sedmicu dana. Jednodnevni prozor bio je dobro rješenje, ali kad rješenje zavisi od radne navike, treba unaprijed odrediti šta se dešava kad ta navika izostane. Strogi rok isteka za nesinhronizovane podatke koštao bi nas jedno popodne.
Povezane usluge
Usluge koje se oslanjaju na ovaj projekat.
- Regulisani i osjetljivi sistemiVerifikacija identiteta i KYCPrikupljanje biometrije bez interneta, za sistem pasoša i ličnih karata u Zapadnoj Africi.
- Cloud i DevOpsMigracija bez prekida radaNacionalni sistem identiteta postepeno je prešao sa starog registra: svaki mjesec je iz njega povlačio podatke, a oba sistema su sve vrijeme radila.
- Mobilne aplikacijeReact Native razvojAplikacija za zahtjeve za pasoš, napravljena u Expou i objavljena na Google Playu, koju koriste terenski službenici u selima bez signala.
- Mobilne aplikacijeOffline-first aplikacijeZahtjevi za pasoš i ličnu kartu, s fotografijama i biometrijom, prikupljeni na službenim telefonima tamo gdje nema signala i poslani čim ga ima. Sistem za nacionalni organ za identitet u Zapadnoj Africi radi u produkciji.
- Backend, podaci i integracijeAPI i backend razvojPozivi našeg backenda prema nacionalnom registru u Zapadnoj Africi, zaštićeni ključevima, digest autentifikacijom, jednokratnim tokenima i listom dozvoljenih IP adresa. Ukradeni ključ sam po sebi ne otvara ništa.
- Backend, podaci i integracijeERP, CRM i integracije s drugim sistemimaSistem za pasoše organa za lične dokumente jedne zapadnoafričke države provjerava zahtjeve u državnom registru. Za vezu su potrebni ključevi, digest autentifikacija, jednokratni tokeni i zahtjev s dozvoljene IP adrese, pa ni onaj ko ukrade ključ ne može ući.
- Regulisani i osjetljivi sistemiDržavni dokumenti i revizijski tragoviIzdavanje pasoša i ličnih karata za nacionalni organ za identitet u Zapadnoj Africi. Agenti prikupljaju zahtjeve i biometriju bez signala, na službenim telefonima koji se mogu obrisati na daljinu, a duplikate otkriva server. Sistem je u produkciji, a aplikacija je na Google Playu.
- Cloud i DevOpsAWS arhitekturaZahtjevi za pasoš prikupljaju se offline na službenim telefonima koji se mogu obrisati na daljinu. Nacionalnom registru može se pristupiti samo uz ključeve, jednokratne tokene i listu dozvoljenih IP adresa.
- AISupabase pregledSistem za pasoše u kojem server hvata duple zahtjeve prije nego što išta prihvati, a nacionalni registar je zaštićen ključevima, digest autentifikacijom, jednokratnim tokenima i listom dozvoljenih IP adresa, pa jedan ukradeni ključ nije dovoljan za pristup.
Projekat 09
Radite na sličnom problemu? Odgovaramo u roku od jednog radnog dana.
Prvi poziv traje 30 minuta i ni na šta vas ne obavezuje.