--- author: anton title: kako se znebiti NLB avtentikatorja categories: alternative tags: alternative demonopolizacija lastmodified-na: 2021-03-06 21:48:00 excerpt: Ker NLB za prijavo v spletno banko Klik ne podpira več certifikatov, temveč zgolj zaprtokodno mobilno aplikacijo za izbrane telefone, ki zahteva uporabo Googlovih storitev, sem v tej objavi pripravil algoritem za generiranje OTP žetonov kar v brskalniku in predstavil alternativo, katere obstoj je mogoč zaradi slabe implementacije OTP algoritma. endofbody: ---

Med prijavo v banko NLB Klik sem opazil, da od petega maja letos prijava z digitalnimi potrdili ne bo več mogoča. Peti maj 2021 je torej dan, ko bodo uporabniki NLB Klika prisiljeni v uporabo mobilnih telefonov Android ali iOS, s čimer se bo dodatno utrdil monopol Googla in Appla. V tej objavi predstavim način generiranja NLB Klik gesel na svoboden način.

Sam sicer uporabljam NLB Klikin avtentikator, saj bi me digitalno potrdilo stalo 15-30 evrov, vendar sem vseeno proti uporabi le-tega. Po nekaj pokukih v NLB Klikin aplikacijo sem ugotovil, da za izdelavo gesel uporablja skrit algoritem podjetja Entrust, ki ga je verjetno NLB od omenjenega podjetja naročila. Ta algoritem uradno nima odprtokodne implementacije, NLB Klikina pa ne boste spravili na Android telefon, če le-ta nima Googlovih storitev.

V tej objavi rešitev zgolj predstavim, saj algoritma nisem ugotovil sam, na spletu pa sem našel skupek orodij, ki implementirajo ta algoritem. Ker je GitHub znan po izbrisih programov, je varnostna kopija dostopna tukaj.

Za implementacijo boste enkrat še vedno potrebovali NLB Klikin aplikacijo in vse Googlove storitve.

prvi korak: pridobitev aktivacijske kode in serijske številke

Odprite spletno mesto aam.nlb.si in se prijavite s svojim uporabniškim imenom in geslom ter po pozivu vnesite preko SMS poslano aktivacijsko kodo. Če uporabniškega imena in gesla še nimate, povprašajte na bančnem okencu. Nato izberite opcijo Aktivacija generatorja enkratnih gesel OTP. Če ste generator že ustvarili, lahko uporabite opcijo Obnovitev generatorja OTP v mobilni aplikaciji za izdelavo novega generatorja. Sistem vam poda par številk. Zapišite si ju nekam in nato aktivirajte aplikacijo NLB Klikin.

drugi korak: izpeljava OATH ključa iz znanih podatkov

Entrustov algoritem, kot je opisano v objavi programerja neuradnih odprtokodnih orodij za Entrust, ni zelo varen. S samo dvema bajtoma naključne entropije lahko, če vemo serijsko številko, aktivacijsko kodo in vsaj en pravilen OTP žeton, uspešno dobimo OATH ključ, s katerim lahko nato generiramo neskončno mnogo žetonov in s tem izničimo celotno prednost 2FA. Za uporabo potrebujemo 65536 poskusov krat število tridesetsekundnih intervalov v prihodnost in preteklost, ki jih želimo še šteti kot veljavne.

To lahko s programom `crack-otp.py`, priloženim v Git repozitoriju, avtomatiziramo. Seveda moramo imeti naložen Python in programsko knjižnico oath, dostopno v okviru pypi/pip repozitorijev.

python3 -c "import time; int(time.time());" # trenutni izpisan časovni žig uporabimo pri naslednjem ukazu # sedaj hitro generiramo žeton v NLB Klikin in ga pretipkamo v spodnji ukaz ./crack-otp.py [serijska številka] [aktivacijska koda] [ključ] [časovni žig]

Generiranje ključa lahko avtomatiziramo. Uporabite lahko kar orodje na tej spletni strani, ki išče za vaš žeton v preteklih, trenutnih in prihodnjih 30 sekundah. Vpišite podatke iz prvega koraka in trenutni OTP žeton, izpisan v NLB Klikin aplikaciji, in pritisnite izračunaj.

[rešitev bo prikazana tukaj]

Po slabi minuti nam program izpljune nekajznačno šestnajstiško zaporedje, ki ga lahko vpišemo v katerokoli odprtokodno programje za generiranje OTP gesel. Lahko uporabimo recimo oathtool, dostopen v Linux distribucijah:

sudo apt install oathtool
oathtool -v --totp=sha256 --digits=8 [nekajznačno šestnajstiško zaporedje]

in dobimo pravilen OTP žeton za prijavo v NLB Klik. Sedaj si moramo zgolj nekam zapisati to šestnajstiško zaporedje, aktivacijsko in serijsko številko lahko pozabimo, prav tako si lahko izbrišemo NLB Klikin.

generator OTP žetonov

Za generiranje žetonov lahko med drugimi uporabljate tudi vgrajen TOTP generator na tej spletni strani. Povezavo, ki vam jo generira zgornji generator ključev, si shranite na namizje IN JE NE DELITE Z NIKOMER. Ob odprtju povezave vam bo generator vsakih 30 sekund avtomatično generiral žeton za NLB Klik pod tem odstavkom.

Če bi bili sedaj na posebni povezavi, s katero generirate žetone, bi se tukaj izpisal trenutno veljaven žeton. Če ste na tej povezavi, očitno nekaj ne deluje.

omejitev odgovornosti in politika zasebnosti glede te objave

Ker je govora o kočljivi temi (bančnih računih) se mi zdi prav, da povem, da je generator tukaj zgolj kot dokaz koncepta in ni primeren za vsakdanjo uporabo. Nanj se ne zanašajte in ne uporabljajte ga kot primarno sredstvo za dostop do banke, da enkrat ne boste ostali brez dostopa! Vse, kar se generira in obdeluje v okviru teh dveh orodij na strani (generiranje in krekanje žetonov), se dogaja v brskalniku, žetoni se ne pošiljajo nikamor. Vedite, da nisem odgovoren za posledice pridobitve žetonov s strani tretjih oseb in za morebitne izgube denarja zaradi uporabe teh programov.

zaključek

Še vedno nismo povsem eliminirali NLB Klikin aplikacije, saj le-ta poskrbi za avtomatsko aktivacijo tega ključa. Verjetno se lahko temu koraku izognemo, če nam uspe prodreti še v zakulisje procesa aktivacije. Naročite se na RSS, če želite dobivati obvestila o objavah.

LP in se beremo naslednjič!