Czy dłuższe jest lepsze?
Zauważyłem, że w niektórych bankach długość kodu jednorazowego (SMS) używanego do autoryzacji transakcji została wydłużona. Chętnie poznałbym uzasadnienie takiej decyzji – dlaczego 8 cyfr ma być bezpieczniejsze niż 6. W praktyce, a nie w jakiejś teorii. Bo jeśli chodzi o teorię...
No właśnie, jeśli chodzi o teorię, to w przypadku 6 cyfr mamy 1 000 000 możliwych kodów SMS. Zakładając, że atakujący ma 5 prób podania kodu przed zablokowaniem dostępu do konta ma on 0.000005 szans powodzenia. Co to oznacza w praktyce? Średnio raz na 200 000 prób atakujący będzie w stanie wykonać przelew po prostu “zgadując” właściwy kod SMS. Wydłużając kod o 2 cyfry dodajemy do tego dwa zera, czyli szanse powodzenia to 0.00000005 i zdarza się to raz na 20 000 000...
Jest różnica między 200 000 i 20 000 000? No jest, ale czy na pewno istotna? Według danych ZBP w 2013 roku istniało (teoretycznie) około 20 000 000 klientów mających dostęp do bankowości internetowej (Raport PRNews.pl: Rynek bankowości internetowej – III kw. 2013). Jeśli założymy, że wszystkie te konta zostały przejęte przez atakującego i na każdym z tych kont wykonuje on taki atak, to w pierwszym wypadku (kod 6 cyfr) ma szansę na 100 sukcesów, w drugim – na jeden.
Bardzo ciekawy jestem jak wygląda rozkład kwoty dostępnych środków na kontach, na tej podstawie możnaby szacować opłacalność takiego teoretycznego ataku. Mam jednak wrażenie, że jego koszty byłyby niewspółmierne do zysków...
Ma ktoś pomysł/informacje dlaczego kod o długości ośmiu cyfr miałby być realnie lepszy od tego o długości cyfr sześciu?
Oryginał tego wpisu dostępny jest pod adresem Czy dłuższe jest lepsze?
Autor: Paweł Goleń