Puncte:0

DIY: instrument de derivare a parolei folosind PBKDF2 / HMAC

drapel ru

În primul rând, nu vreau să reinventez roata, vreau doar să-mi construiesc propria mașină. Mediu non-produs; doar pentru distracție și distracție.

Scopul este de a folosi o singură parolă principală privată (și niciodată publicată) pentru a crea parole unice (jeton) pentru fiecare cont de site web (twitter.com, reddit.com etc.)

Este următoarea abordare în concordanță cu aceste obiective?

Cod:

HOST_HASH = SHA512( LOGIN + SERVER )

USER_HASH = SHA512(USER_NAME + HOST_HASH)

PWD_HASH = SHA512(PAROLA_UTILIZATOR)

CHEIE = PBKDF2_SHA256( USER_HASH, PWD_HASH, ITERATIONS_300000, LENGTH_512BITS )

DIGEST = HMAC_SHA512( HOST_HASH, CHEIE )

TOKEN = BASE64( SHA1(DIGEST) ) #-- doar pentru o ieșire convenabilă

Intrări:

  • NUME DE UTILIZATOR = numele complet al utilizatorului (de exemplu: Jones Smith)
  • PAROLĂ DE UTILIZATOR = utilizator secret parola principală (sau expresie de acces)
  • AUTENTIFICARE = alias utilizator sau e-mail sau orice a folosit vreodată pentru a vă conecta (de exemplu: jsmith123)
  • SERVER = site web sau nume de domeniu (ex: stackoverflow.com)

Ieșire:

  • JETON = parolă puternică și unică ușor de reconstruit, dar greu de ghicit (?)
kelalaka avatar
drapel in
Care este scopul tău în loc să generezi o parolă aleatorie uniformă?
swannty avatar
drapel ru
@kelalaka â amintiți-vă doar o singură parolă principală bună, dar aveți o parolă diferită pentru fiecare site web care derivă din parola principală
Puncte:1
drapel kr

Folosești hashes de hashes. În schema dvs. este sigur. Vedea detalii aici.

Utilizați PBKDF2 și astfel protejați parolele derivate de forțarea brută.

Dar abordarea dvs. poate duce la probleme de utilizare. Să presupunem că aveți 100 - 200 de conturi pentru site-uri web, servicii de e-mail, rețele sociale, servicii video/audio, magazine online, bănci etc. Gândiți-vă la următoarele cazuri:

  • Un site vă cere să vă schimbați parola o dată pe an, celălalt necesită asta la fiecare 3 luni.
  • Un site web păstrează parolele în formă simplă. Baza lor de date cu parole a fost compromisă. Vă cer să vă schimbați parolele în termen de 3 zile.
  • În mod greșit, ați folosit o parolă pentru un alt site web. După mai multe încercări, contul dvs. a fost blocat. După deblocare, vi se cere să furnizați o nouă parolă.

Pentru a schimba parola pentru un site web, va trebui să vă schimbați parola de bază. Aceasta va schimba parolele derivate pentru toate celelalte site-uri web. De aceea va trebui să mergi la fiecare un singur site web și schimbați-vă parola.

  • Acest lucru poate dura mult timp.
  • Puteți uita unele site-uri, pentru că, din moment ce obțineți parolele automat, poate nu păstrați lista. Mai târziu, vei fi surprins că astfel de site-uri uitate nu acceptă parola.
  • Unele site-uri web pot fi indisponibile în momentul în care doriți să vă schimbați parola. Sau pur și simplu nu ai timp să schimbi parola pentru toate site-urile web simultan și să faci asta în blocuri, 10 site-uri azi, 10 site-uri mâine etc. Mai târziu, nu vei fi sigur unde ai schimbat deja parola și astfel ce parolă de bază pentru ce site ar trebui să utilizați.

Tu decizi dacă acest lucru este acceptabil pentru tine.

Dar dacă folosești câteva manager de parole, veți obține parole protejate în mod fiabil, de ex. KeePass criptează cu AES-256 și folosește un număr configurabil de iterații pentru derivarea parolei, tot trebuie să vă amintiți un o singură parolă bună, cum ar fi bazată pe zaruri, dar avantajul este că toate parolele tale pentru diferite resurse rămân independent unul pe altul și nu veți avea probleme de utilizare menționate mai sus.

swannty avatar
drapel ru
Da, schimbarea și reînnoirea parolelor ar putea fi o problemă pe termen lung. Mă voi gândi la acea problemă. KeePass este bun, dar parolele sunt stocate (chiar dacă sunt criptate) undeva într-un fișier sau o bază de date. Caut ceva mai „dematerializat”. Iti multumesc foarte mult pentru raspunsul tau.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.