Puncte:0

Funcția de derivare a cheilor/hashing cu comparație rapidă

drapel in

Există o funcție de derivare a cheii/hashing (care are vreo valoare reală) care îndeplinește ambele criterii:

  • Încet pentru a calcula hash-ul
  • Rapid pentru a verifica hash-ul pe baza șirului de intrare (nu a primit o a doua copie existentă a hash-ului menționat)

Știu că, în general, derivarea cheilor este folosită pentru a preveni forțarea brutală a parolelor, dar aceasta este de obicei pentru a proteja parolele împotriva utilizatorilor interni.

Caut să configurez un sistem de autentificare în care un utilizator trebuie să furnizeze un nume de utilizator, o parolă și un hash Proof of Work al parolei, cu excepția... Aș dori să nu fiu nevoit să fac singur munca pentru a verifica rapid.

Hash-ul nu este comparat cu hash-ul real din baza de date (de exemplu, ar trebui să fie un algoritm de hashing diferit de cel din baza de date.. PBKDF2), acesta este pur și simplu pentru a descuraja forțarea brută, fără a crea și un punct final pe serverul meu. unde un actor rău intenționat poate face serverul meu să lucreze din greu... degeaba.

Este chiar posibil acest lucru? Știu că nu este necesar, dar dacă este posibil, pare o măsură simplă pe care aș putea să o iau pentru a-mi securiza serverele web.

kelalaka avatar
drapel in
Cerință conflictuală? Dacă poți verifica rapid de ce atacatorul nu poate?
drapel in
Se simte că ar trebui să pot folosi o funcție de derivare a cheii pentru a amesteca o cheie privată în cheia pe care utilizatorul o va folosi pentru a hash/deriva o altă cheie, ceea ce ar trebui să fie foarte ușor de verificat (dată fiind cheia privată, pe care utilizatorul o va utiliza nu va avea).
drapel in
@kelalaka vezi ultimul meu comentariu; Nu știu dacă asta este neapărat un lucru sau nu.Dar vreau să spun, aceasta este o proprietate a PKI (de exemplu, având în vedere cheia privată, puteți doar decripta mesajul, altfel trebuie să îl spargeți). Simt că același lucru ar trebui să poată fi cumva transmutat în PoW...
drapel in
Adică, ar funcționa chiar și doar o configurare PKI în care este mult mai greu să criptezi cu cheia publică decât să decriptezi cu cheia privată.
Puncte:0
drapel in

O simplă căutare Brave pentru „Hashing Proof of Work” a răspuns la asta... https://www.npmjs.com/package/hashcash

kelalaka avatar
drapel in
Deci stocați valoarea hashcash, astfel încât să aveți o verificare rapidă? Nu acesta este modul în care funcționează Derivarea cheii. Dacă doriți să aveți unul lent, utilizați Argon2.
drapel in
@kelalaka *de exemplu, ar trebui să fie un alt algoritm de hashing decât cel din baza de date.. PBKDF2* Nu. Stoc PBKDF2 în baza de date. Hashcash-ul/dovada de lucru nu este stocat... De unde am sugerat că voi stoca hashcash-ul.
drapel in
Ar funcționa așa.... 1.) Utilizatorul calculează hashcash, trimite nume de utilizator, trece, hashcash și valoarea contorului 2.) Verific hashcash cu contor și intrări (să spunem numele de utilizator + parola). 3. Numai _după_ verificare, verific apoi baza de date (unde apoi trimit parola furnizată de utilizator cu PBKDF2 și o compar cu înregistrarea bazei de date). Ideea este că un utilizator rău intenționat nu poate forța serverul meu să verifice în mod repetat hash-ul PBKDF2 fără să fi făcut o mulțime de muncă (mult mai mult decât serverul meu) în față.

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.