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