Puncte:1

Poate fi folosit hash-ul unei semnături PKCS1 v1.5 RSA ca funcție de derivare a cheii?

drapel na

Știu că sună nebunesc, dar ascultă-mă. Ca urmare a Eticheta de autentificare AES-GCM poate fi utilizată ca funcție de derivare a cheilor?, mă gândesc și la mai multe creativ soluții pentru a obține chei unice (simetrice) de dispozitiv dintr-o cheie rădăcină stocată în siguranță.

(Fondul este că avem o mulțime de clienți (=dispozitive) care nu pot folosi criptografia asimetrică (mai ales din cauza constrângerilor hardware). Pentru a stabili o conexiune TLS PSK avem nevoie de un secret partajat între backend și client. În loc să stocăm în siguranță o cheie unică per client în backend, derivăm cheia specifică clientului dintr-un secret rădăcină folosind ID-uri unice ale dispozitivului.)

Motivația pentru utilizarea cheilor RSA vine din Schema de prețuri Azure Key Vault și disponibilitatea HSM-urilor în diferite regiuni. Operațiunile cu chei simetrice sunt disponibile doar ca „chei avansate” pe HSM-uri, dacă citesc corect documentația și sunt astfel de 5 ori mai scumpe decât operațiunile RSA (în plus față de tariful HSM orar pe pas). În plus, limitarea de a selecta regiuni (unde sunt disponibile HSM-uri gestionate) ar putea fi, de asemenea, un deal breaker.

Deci, ca să mă descurc cu ECC sau RSA, am următoarea idee:

$\text{KDF}(cheie, date) = \text{SHA256}(\text{RSA-PKCS1v1.5-sign}(cheie, date))$

Cu cuvinte: stocați cheia RSA neexportabilă în seiful de chei și utilizați schema de semnătură deterministă PKCS1 v1.5 ca derivare a cheii folosind date arbitrare ca valoare de derivare (de exemplu, o sare concatenată cu id-ul dispozitivului). Pentru a sparge proprietățile algebrice ale RSA și pentru a concentra materialul de codare până la 256 de biți, semnătura este hashing cu SHA-256.

Intuitiv, acest lucru este sigur, deoarece semnătura este de nefalsificat și astfel valoarea concretă de ieșire a operațiunii semnului nu poate fi ghicită (fără cheie). Deci undeva în această semnătură există suficientă „entropie” (biți de neghicit) pentru a fi rezistente la forța brută, iar această „entropie” ar trebui să fie distribuită uniform în rezultatul operației hash.

Pot unii să ofere un raționament mai riguros (sau chiar o dovadă conform ipotezelor standard)?

Maarten Bodewes avatar
drapel in
Ce vrei să spui cu „undeva în semnătură este suficientă entropie”? Toată entropia este în cheie și sare, nu există entropie suplimentară, deoarece semnarea PKCS#1 este complet deterministă (desigur, altfel schema dvs. nu ar funcționa ca KDF, desigur). Nu văd prea mult greșit cu această schemă altfel, cu excepția cazului în care sarea și ID-ul se repetă desigur. Din păcate, nu vă puteți dori unicitatea din aer.
Perseids avatar
drapel na
@MaartenBodewes Din punct de vedere formal, intuiția mea este complet incorectă, așa cum ai dreptate să subliniezi. Este grozav să obținem conformarea că acest lucru funcționează, dar caut mai ales un argument care să convingă pe cineva sceptic.

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.