Dette er en app for å autentisere brukere via sin mobiltelefon, ved å dekryptere en engangspassord kryptert med serveren ved hjelp av en offentlig nøkkel. Applikasjonen er brukbart for alle web-tjeneste som implementerer denne metoden for autentisering.
(Se github tracker for mer informasjon om hvordan du implementerer denne godkjenning på serversiden)
Applikasjonen kan brukes med ubegrenset antall avhengige parter, som den samme offentlige nøkkelen brukes med alle parter. Når programmet er registrert, genererer programmet en enhetsspesifikk nøkkelpar som er tilstede for hele levetiden til app (til sin avinstallert). Oppdatere applikasjonen vil ikke slette nøkkelen imidlertid.
Github Tracker: https://github.com/sebastiannielsen/QRSA
Forutsetninger for å kjøre programmet:
1. Telefonen må støtte maskinvarebasert lagring. Dette er en lagringsplass som bruker en "Security Chip" inne i telefonen, noe som gjør det umulig å kopiere nøkkelen av telefonen.
2. Butikken må initialiseres. Noen ganger er det mulig å initial butikken ved å sette opp en PIN låseskjermen, og deretter bare generere en nøkkel. Fjerne låseskjermen vil vanligvis holde nøkkelen, med mindre de viktigste egenskapene ble satt opp for å kreve låseskjermen.
3. I noen tilfeller må en sikker låseskjermen brukes. Dette er avhengig av telefonmodell.
4. Den sikre chip inne i telefonen, må støtte operasjoner basert på 2048 bit RSA / ECB / PKCS1.5
5. I noen tilfeller kan en rotfestet telefon permanent deaktivere sikkerhetsbrikken av sikkerhetsmessige grunner.
For å melde, må du starte nettadressen qrsa: // e fra en nettleser eller lignende. Du kan også melde deg via en tilbakeringingswebadresse, ved hjelp qrsa: // u. For å bruke u, må du først legge til en "s" hvis du ønsker å bruke HTTPS, eller noe annet for HTTP. Så hele URL å bli kalt, UTEN ordningen, i URLSafe Base64 format. Den offentlige nøkkelen vil bli lagt til slutten av nettadressen. Hvis enheten ikke er kompatibel, vil den returnere INCOMPATIBLE_DEVICE og dens ditt ansvar å returnere en menings feilmelding til brukeren.
For å godkjenne, starter du url qrsa: // s eller qrsa: // c fulgt av URLSafe base64-kodet data av RSA offentlig nøkkel kryptert tekst i formatet PADDING :: OTP :: MELDING :: HASH :: polstring. Den "s" handling er utformet for skannede hendelser og vil vise som OTP teksten på skjermen. "C" handling er designet for klikk hendelser. Forskjellen er at klikk hendelser vil føre til at OTP-kode for å bli satt i brukerens utklippstavlen i stedet, slik at brukeren umiddelbart kan fortsette å lime inn koden inne i OTP-feltet.
HASH er konstruert ved å lage en md5 ut av OTP + MELDING + OTP, hvor + betegner streng sammensetning. Dette HASH beskytter mot noen grove former for malleability angrep på den krypterte teksten. Den klemt konstruksjon hindrer en angriper fra å bevege seg separatoren mellom OTP og budskap.
Merk at skjermbilder av programmet har blitt bevisst sensurert for å hindre varemerker og / eller opphavsrettskrenkelser (UI av android og andre applikasjoner er opphavsrettslig beskyttet), som samspillet i programmet er levert via en dialogboks som vises på toppen av det kall app som forårsaket godkjenning til å skje.
Hvis det er noen problemer på app, kan du finne eksempelkode og flere instruksjoner på offentlig GitHub siden, da dette programmet er Open Source.
Også gjerne å skape noen problemer i det offentlige github tracker.