Update 26.5.
Aplikácia je plne funkčná, jediným problémom ostáva nevyriešené obnovovanie stránky poskytujúcej qr kód. Vyriešený problém s padaním mobilnej aplikácie. Text má 23 strán, no chýba mu formátovanie.
Cieľ
Cieľom práce je navrhnúť autorizačný systém na bezpečné prihlasovanie sa do webovskej aplikácie pomocou generátora jednorázového hesla (one-time-password), ktoré vygeneruje mobilná aplikácia.
Anotácia
Mobilná aplikácia dostane základné informácie o užívateľovi (po bežnej kontrole prostredníctvom zadaného emailu používateľa) prostredníctvom QR kódu vygenerovaným backend webovskou aplikáciou. Na základe informácií v prístupnom QR kóde vygeneruje jednorázové heslo na prihlásenie sa do backend aplikácie. Backend na webe vykonáva rovnakú činnosť ako mobilná aplikácia. Generovanie jednorázového hesla z QR kódu prebieha pomocou HOTP, TOTP alebo "challenge-response" autentifikáciou. Samotným snímaním QR kódu sa uskutoční prenos citlivých údajov, na základe ktorých sa pomocou HOTP, TOTP alebo challenge response generuje jednorázové prihlasovacie heslo. Citlivé údaje sú zdieľané, teda pôjde o symetrické šifrovanie. Je potreba porovnať HOTP, TOTP a challenge response, a zistiť ktorý spôsob je pre danú aplikáciu najvýhodnejší. Mobilná aplikácia má pracovať v off-line režime.
Popis výslednej funkčnosti
Prvé prihlásenie
Užívateľovi sa pošle mailom link na adresu , kde si vytvorí nové prihlasovacie meno a heslo do systému. Po jeho zadaní sa presmeruje na stránku z ktorej si stiahne samotnú aplikáciu. Zároveň sa vygeneruje seed, ktorý sa uloží do databázy Potom sa mu zobrazí QR kód, ktorý nasníma samotnou aplikáciou. Následne sa presmeruje na prihlasovaciu stránku, ktorú bude používať pri ďalších prihláseniach.
Bežné prihlásenie
Užívateľ zadá meno a heslo, v prípade správneho mena a hesla bude vyzvaní na zadanie otp vygenerovaného mobilnou aplikáciou. V prípade zhody môže pokračovať ďalej do systému.
Pridať/zmeniť zariadenie na generovanie otp kódov
Užívateľ si môže stiahnuť aplikáciu na ďalšie zariadenie, ktoré bude musieť zase naskenovať QR kód. Pri ďalšom prihlasovaní sa môže použiť toto zariadenie. Problém – vyriešiť aby otp generované novým zariadením server registroval ako správne.
Mobilná aplikácia
Funkcionalita – z prvýkrát nasnímaného qr kódu má generovať otp, ktoré bude vedieť webserver rozpoznať ako správne otp. Generovanie má ideálne prebiehať v offline režime.
Backend
Backend na webe bude vykonávať rovnakú činnosť ako aplikácia na mobile , ale takto vygenerované otp sa použivateľovi nezobrazí ale len porovná s otp ,ktoré zadal používateľ. Generovanie otp z qr kódu bude prebiehať pomocou HOTP , TOTP alebo challenge response .
Snímanie QR kódu z webu
Samotným zosnímaním qr kódu sa uskutoční prenos tajomstva na základe ktorého sa bude potom pomocou HOTP, TOTP alebo challenge response generovať otp. Tajomstvo má byť zdieľané, teda pôjde o symetrické šifrovanie. Je potreba porovnať HOTP, TOTP a challenge response a zistiť ktorý spôsob je pre danú aplikáciu najvýhodnejší.
Zdroje
Prezentácia zdrojov
https://drive.google.com/file/d/0B3vlw1gC_rA2WWlsOHY3YWEzX0E/view?usp=sharing
Android sdk dokumentácia
http://developer.android.com/intl/vi/index.html
Využitie mobilných telefónov v 2 faktorovej autentifikácii
http://www.aloul.net/Papers/faloul_aiccsa09.pdf
Základy 2 faktorovej autentifikácie
http://www.infosecurityeurope.com/__novadocuments/50015?v=635315960581800000
Prečo používať HMAC algoritmus
http://benlog.com/2008/06/19/dont-hash-secrets/
Generátor OTP
https://github.com/google/google-authenticator-android
Dokumentácia k HMAC algoritmu
https://www.rfc-editor.org/rfc/rfc4226.txt
Vedúci bakalárskej práce
Peter Borovanský, borovan@ii.fmph.uniba.sk
Meno študenta
Juraj Mašlej, juraj.maslej@gmail.com