Puncte:0

ECDHE fără strângere de mână inițială

drapel tz

Este posibil să se încheie un acord cheie cu ECDH efemer-efemer fără a necesita mai întâi o strângere de mână inițială?

Este posibil să aveți acordul cheii în același mesaj ca și datele criptate cu ECDHE?

Știu că acest lucru este posibil cu ECDH efemer-static, dar asta nu are secretul perfect. Și cu efemer-static trebuie să aveți o modalitate sigură de a stoca cheia privată statică.

kelalaka avatar
drapel in
[Algoritmul Diffie-Hellman și atacul MITM](https://crypto.stackexchange.com/q/72370/18298) și [Vedeți cum se realizează](https://crypto.stackexchange.com/q/87532/18298 ). Consultați [secretbox of the libsodium](https://doc.libsodium.org/secret-key_cryptography/secretbox) pentru a doua parte.
Puncte:1
drapel gb

Este posibil să se încheie un acord cheie cu ECDH efemer-efemer fără a necesita mai întâi o strângere de mână inițială?

Da, totuși, acest lucru este vulnerabil la atacurile „man-in-the-middle” (MITM).

Este posibil să aveți acordul cheii în același mesaj ca și datele criptate cu ECDHE?

Pentru ca receptorul să folosească o cheie efemeră, ar trebui să o trimită înainte de a o putea folosi pentru schimb. Alternativ, ar putea încărca un număr de chei efemere pe un server terț de încredere pentru a fi preluate de către expeditori mai târziu (acesta este un fel de ceea ce face Signal). Dar, de obicei, ați presupune că expeditorul folosește cheia statică a destinatarului, astfel încât aceștia să știe că va ajunge la persoana potrivită. În acest caz, toată aleatorietatea efemeră este furnizată de expeditor, așa că aveți într-adevăr un KEM (mecanism de încapsulare a cheilor) mai degrabă decât un schimb de chei.

Deci, în esență, dacă sunteți dispus să renunțați la autentificare și să riscați uzurparea identității / atacurile omului în mijloc, puteți obține secretul perfect înainte cu un KEM și puteți solicita receptorului să rotească în mod regulat cheia de recepție, astfel încât să nu aibă de ce să-și facă griji despre stocarea sigură pe termen lung (o cheie semi-statică).

drapel tz
Mulțumiri. Vom adăuga ECDSA static-static pentru a preveni atacurile MITM și pentru a oferi autentificare. Problema noastră acum este că pe Android nu avem o modalitate sigură de a securiza cheile private ECDH (dacă mergem efemer-static).
drapel tz
Ați putea detalia despre stocarea cheilor efemere pe un server? Te referi la stocarea cheilor publice ECDH efemere ale receptorilor pe server, nu?
meshcollider avatar
drapel gb
Corect, atunci, evident, receptorul ar trebui să stocheze el însuși cheile private corespunzătoare în siguranță. Cum veți gestiona cheile statice pentru partea de autentificare pe Android atunci?
drapel tz
Acest lucru va funcționa foarte bine pentru noi atunci. Mulțumesc. Android KeyMaster și KeyStore acceptă ambele stocarea în siguranță a cheilor ECDSA, dar nu ECDH. iOS Secure Enclave a susținut ECDH de ani de zile, așa că Android este cu adevărat în urmă în acest sens.
drapel tz
Presupun că pe Android va trebui să păstrăm cheia privată ECDH în memorie. Ceea ce este un mare semn de întrebare privind securitatea.
meshcollider avatar
drapel gb
Interesant, nu știam că Android Keystore nu acceptă ECDH. Ar funcționa asta? https://developer.android.com/reference/android/security/keystore/KeyGenParameterSpec#example:ecdh
drapel tz
Se pare că folosește o pereche de chei EC stocată în KeyStore pentru ECDH. Perfect multumesc!

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.