» »

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.

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]

omnimint ::

Hvala, sem dobil par idej kje iskati naprej.

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.


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kiberkriminal pod Alpami

Oddelek: Informacijska varnost
263637 (2572) STASI
»

Marčevski napad na RSA kompromitiral žetone SecurID

Oddelek: Novice / Varnost
4312742 (10693) MyotisSI
»

e-bančništvo: PIN "kalkulator" v. kvalificirano digitalno potrdilo

Oddelek: Informacijska varnost
417933 (6987) krneki0001
»

Napad na RSA, prizadet SecurID

Oddelek: Novice / Varnost
4114463 (11255) McMallar
»

NLB tarča phishing-a (strani: 1 2 3 )

Oddelek: Novice / Zasebnost
11921284 (9723) Poldi112

Več podobnih tem