Forum » Programiranje » Generator enkratih gesel
Generator enkratih gesel
omnimint ::
Ima kdo kaj izkušenj s tem? Kaj je potrebno za generiranje gesla na napravi A, ki ga potem uporabiš ob prijavi na Server B, podobno kot je to npr. pri RSA SecurID? Je mogoče narediti home-made varianto, ki je kolikor toliko varna?
Unknown_001 ::
Dalo bi se sprogramirat, za osnovo si vzameš delovanje RAND funkcije v excelu, sam da ti dodaš še črke pa to. Nisem glih dost v programiranju, tak da boš mogu pr drugih povprašat, drgač se pa da to narest, oz. je izvedljivo.
omnimint ::
Point je bolj v temu, da bi našel ne prehud algoritem, ki se ga da aplicirati npr. v PHPju, uporabnik mora pri sebi zgenerirati geslo, ki velja npr. 1 minuto, hkrati pa mora server na drugi strani 'vedeti' katero je trenutno geslo za tega določenega uporabnika.
dasf ::
SecurID, Google Authenticator in podobni vsako minuto zgeneriranjo novo geslo, ki je potem veljavno za isto časovno obdobje (1 min).
Google auth ima precej "preprost" postopek: Google Authenticator @ Wikipedia
Torej fora je, da z neko funkcijo iz unikatnega "gesla" uporabnika in trenutnega časa (na minuto natančno) zgeneriraš nek ključ, ki ga uporabnik nato uporabi za prijavo.
Google auth ima precej "preprost" postopek: Google Authenticator @ Wikipedia
Torej fora je, da z neko funkcijo iz unikatnega "gesla" uporabnika in trenutnega časa (na minuto natančno) zgeneriraš nek ključ, ki ga uporabnik nato uporabi za prijavo.
Zgodovina sprememb…
- spremenil: dasf ()
Unknown_001 ::
Jst bi si umislil neko funkcijo, prek katere bi geslo premetal strežnik in premetanko poslal tistemu, ki bi rad dostopal. Ker ta pozna funkcijo, bi enostavno premetano cifro not vrgu, poračunal, vnesel in pridobil dostop.
dasf ::
Preprost primer v Pythonu:
import time import hashlib koda_uporabnika = "131238k0asdj123oa" # naj ne bi bila enaka kot geslo def generiraj_kljuc(koda_uporabnika): key = hashlib.sha1() key.update(koda_uporabnika) key.update(str(int(time.time()/60))) return key.hexdigest()[:6]
fiction ::
Jaz bi se sicer čim bolj izogibal lastnim crypto-rešitev, ker obstaja velika verjetnost, da boš nekaj zafrknil. Ampak načeloma je še najlažje za implementirat varianta s hash-chainom. Pri tej vse skupaj ni vezano na čas, je pa tako, da eno geslo lahko samo enkrat uporabiš.
Se pravi vzameš x = rand() in izračunaš H(x), H(H(x)) H(H(H(x))) ter tako naprej do recimo H^100(x) - pri čemer je rand() neko naključno zaporedje, H() pa enosmerna "hash" funkcija npr. SHA256. User dobi kot enkratna gesla (na papirju) H^99(x), H^98(x), H^97(x) itd. H^100(x) pa shraniš na strežniku kot r. Ko se uporabnik prijavi z y, samo preveriš, če je H(y) enak r. V primeru, da je dovoliš prijavo in r postane y.
Se pravi vzameš x = rand() in izračunaš H(x), H(H(x)) H(H(H(x))) ter tako naprej do recimo H^100(x) - pri čemer je rand() neko naključno zaporedje, H() pa enosmerna "hash" funkcija npr. SHA256. User dobi kot enkratna gesla (na papirju) H^99(x), H^98(x), H^97(x) itd. H^100(x) pa shraniš na strežniku kot r. Ko se uporabnik prijavi z y, samo preveriš, če je H(y) enak r. V primeru, da je dovoliš prijavo in r postane y.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Kiberkriminal pod AlpamiOddelek: Informacijska varnost | 3795 (2730) | STASI |
» | Marčevski napad na RSA kompromitiral žetone SecurIDOddelek: Novice / Varnost | 13303 (11254) | MyotisSI |
» | e-bančništvo: PIN "kalkulator" v. kvalificirano digitalno potrdiloOddelek: Informacijska varnost | 8316 (7370) | krneki0001 |
» | Napad na RSA, prizadet SecurIDOddelek: Novice / Varnost | 15015 (11807) | McMallar |
» | NLB tarča phishing-a (strani: 1 2 3 )Oddelek: Novice / Zasebnost | 21913 (10352) | Poldi112 |