[ vidonk @ 08.11.2023. 20:57 ] @
Pozdrav forumaši, prije nego što počnemo u par rečenica da objasnim šta je 2FA ili ti dvostruka potvrda identiteta za one koji nisu u toku. Dakle dvostruka potvrda identiteta (engl. Two–step authentification) – je metod kojim korisnik nakon unošenja šifre mora da potvrdi svoj identitet dodatnom metodom autorizacije i time dodatno potvrde svoj identitet i povećaju bezbednost ličnih podataka odnosno svog naloga na određenom sajtu. Ako imate nalog na GitHub-u vjerovatno ste dobili e-mail u kom piše da su počeli sa uvođenjem 2FA i da morate da podesite 2FA za vaš nalog kako bi mogli dalje da koristite njihove usluge. Za 2FA token ćemo koristi klon stlink-ovog V2 programatora na kom ćemo da napravimo određene izmjene tako da će on da pamti verifikacioni ključ koji ćemo da koristimo za dvostruku porvrdu identiteta. Sa aliexpressa ćemo da poručimo dva klona st-linkovog programatora koji možete da kupite sa linka https://www.aliexpress.com/item/32860702733.html , da potrebna su dva komada jer ćemo sa jednim da programiramo drugi. Naš uređaj nije samo ograničen na GitHub već ga možete koristiti i na drugim sajatovima koji podržvaju Webauthn/FIDO2. Dobro da počnemo, krenućemo od hardwerskog moda kako bi nam radilo dugme koje ćemo kasnije da zalemimo na dva pina, dakle treba da odlemimo pull-down otpornik R11 ![]() Zatim ćemo da povežemo dva stilink-a kako bi pomoću jednog programirali drugi. Sa host stilinka koji je zakačen na računar povežite pinove na sledeći način ![]() Sa headera koji je prikazan na slici gore povežite pin4 +3,3v na tespad targetnog stlinka koji je označen sa 3,3v, zatim povežite pin 6 SWDIO-a sa hosta stlink-a na tespad taget-nog stlinka označenog sa SWDIO, i na kraju povežite pin 8 SWCLK sa host stilika na testpad targetnog stlinka označenog SWCLK. Zatim je potrebno da povežemo SWCLK i GND pinove na headeru sa dugmetom koje treba da pritisnemo prilikom autentifikacije tokena, to bi trebalo da izgleda ovako ![]() Zatim trebamo da kompajliramo firmware za targetni stlink pa kao root korisnik kreirajte fajl sudo xed /etc/udev/rules.d/10-u2f-token.rules u fajl upišite sledeće Code: ACTION=="add|change", KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0e90", TAG+="uaccess" ACTION=="add|change", SUBSYSTEM=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0e90", TAG+="uaccess" Zatim intalirajte sledeće programe za debian bazirane distribucije komanda je sledeća sudo apt install libhidapi-hidraw0 python3-hid build-essential openssl openocd gcc-arm-none-eabi Zatim je potrebno da instaliramo asn1crypto pip install --user --upgrade asn1crypto Zatim je potrebno da kloniramo u2f git repo git clone https://github.com/gl-sergei/u2f-token.git cd u2f-token git submodule update --init cd src zatim unesite sledeću komandu make TARGET=ST_DONGLE ENFORCE_DEBUG_LOCK=1 ta komanda će proizvesti datoteku u2f.bin u build direktorijumu Za generisanje privatnog EC ključa potrebno je da unesete sledeću komandu openssl ecparam -name prime256v1 -genkey -noout -outform der -out key.der preporučujem da šifrujete svoj key.der ključ i napravite rezervnu kopiju. Da pačujete firmware datoteku odnosno da unesete vaš ključ u firmware potrebno je da pokerente sledeću komandu ./inject_key.py --key key.der --ctr 1 Za flašovanje je potrebno da u jednom terminalu pokrenete OpenOCD openocd -f interface/stlink-v2.cfg -f target/stm32f1x.cfg U drugom terminalu unesite sledeće komande telnet localhost 4444 > reset halt > stm32f1x unlock 0 > reset halt > program build/u2f.elf verify reset > shutdown A ako nameravate da izvršite nadogradnju firmvarea proverite brojač autentifikacija a to možete da videti na Yubikey demo sajtu na adresi https://demo.yubico.com/webauthn-technical/registration. Ako je brojač recimo na 1000 onda bi komanda bila ./inject_key.py --key key.der --ctr 1001 Za novi uređaj, možete preskočiti parametar ctr ili ga postaviti na 1 ./inject_key.py --key key.der --ctr 1 |