Puncte:1

De ce este nevoie de mai mult timp pentru a decripta același fișier cu RSA de 256 de biți în TEE decât în ​​REE?

drapel cn

Știm cu toții că TEE poate utiliza aproape toată performanța procesorului, astfel încât timpul petrecut criptând fișierele folosind RSA256 este mai mic decât cel al REE.

Dar de ce nu este decriptarea?

De ce este nevoie de mai mult timp pentru a decripta același fișier cu RSA de 256 de biți în TEE decât în ​​REE?

Maarten Bodewes avatar
drapel in
Rețineți că criptarea cu cheie publică nu este în general efectuată într-un TEE. Doar operațiunile cu cheie privată sunt de obicei efectuate în interiorul TEE și, de obicei, TEE utilizează hardware specializat, ceea ce înseamnă o suprasarcină de configurare, comunicare și operare. Fără mai multe detalii, asta este tot ce se poate spune. Atenție că problemele de implementare sunt în general considerate în afara subiectului aici, așa că dacă utilizați un anumit cod pentru a testa, puteți încerca [așa] în schimb.
fgrieu avatar
drapel ng
A trebuit să caut pe google REE (Rich Execution Environment) și nu pot spune exact ce înseamnă asta. Nu văd că toate „TEE pot utiliza aproape toată performanța procesorului”. Dimpotrivă, multe TEE (Trusted Execution Environments) sunt circuite integrate dedicate relativ mici care _nu pot_ utiliza procesorul principal (de exemplu, în unele smartphone-uri). Bănuiesc că întrebarea este în afara subiectului și sunt sigur că contextul ar trebui explicat mai bine.
Gilles 'SO- stop being evil' avatar
drapel cn
@fgrieu De fapt, âTEEâ înseamnă de obicei un mediu care nu este un IC separat. În smartphone-uri, âTEEâ este aproape sinonim cu âTrustZone secure worldâ. Nu sunt sigur că întrebarea este la subiect; răspunsul se referă la implementarea criptografiei, dar numai la nivel superficial.
fgrieu avatar
drapel ng
@Gilles'SO-stopbeingevil': ah, dacă luăm TrustZone ca model a ceea ce este un mediu de execuție de încredere și mediu de execuție bogat restul a ceea ce poate face CPU principal, văd mai bine despre ce este întrebarea. Știu smartphone-uri în care unele sarcini criptografice selectate sunt implementate într-un IC de securitate dedicat (similar cu TPM-ul unui PC), mai degrabă decât de către procesorul principal, și am crezut că este un TEE. Cel puțin, în aceste dispozitive, nu putem avea încredere în nimic din ceea ce face CPU principal și ferit de privirile indiscrete ale altor procese, deoarece există atât de multe canale laterale.
Puncte:1
drapel cn

Performanța nu este o proprietate generică nici a unei operațiuni criptografice, nici a unui tip de mediu de execuție. Este o proprietate a unei implementări specifice într-un mediu specific. Deci nu este general adevărat că „este nevoie de mai mult timp pentru a decripta același fișier cu RSA de 256 de biți în TEE decât în ​​REE”. Cu toate acestea, există motive plauzibile pentru care acest lucru ar putea fi cazul.

(Background: un TEE (Trusted Execution Environment) este un mediu care este izolat de sistemul de operare principal (REE: Rich Execution Environment) printr-o combinație de mijloace hardware și software. Aceasta poate însemna rularea pe un procesor diferit sau pe același procesor într-o mașină virtuală diferită sau pe același procesor cu o tehnologie de izolare, cum ar fi SGX pe x86 sau TrustZone pe braț. De obicei, oamenii care tind să folosească termenii „TEE” și „REE” lucrează cu TrustZone sau SGX.)

Un TEE care rulează pe procesorul principal are toată puterea de calcul a procesorului, așa că dacă rulează exact același cod, va merge la fel de repede. Cu toate acestea, în practică, este probabil ca TEE să nu ruleze același cod ca REE.

SGX și TrustZone protejează TEE împotriva atacurilor directe, cum ar fi codul REE care încearcă să citească memoria utilizată de TEE. Dar nu protejează împotriva atacurilor pe canale laterale. De exemplu, memoria cache este partajată între TEE și REE; REE nu poate citi o linie de cache TEE, dar poate observa când TEE-ul înlocuiește o linie de cache, astfel încât să poată efectua atacuri de sincronizare a memoriei cache. În consecință, software-ul care rulează în TEE trebuie să se protejeze împotriva atacurilor de sincronizare a memoriei cache.TEE este deosebit de vulnerabil împotriva atacurilor de sincronizare, deoarece sistemul de operare REE are acces la cronometre cu granulație fină, mai mult decât un proces REE neprivilegiat care atacă un alt proces. Apărarea împotriva scurgerilor de canal lateral costă performanța.

Pe lângă contramăsurile în implementarea criptografiei TEE, sistemul de operare TEE poate avea contramăsuri, cum ar fi evacuarea mai frecventă a cache-ului, care îmbunătățesc și securitatea în detrimentul performanței.

De asemenea, este posibil ca implementarea criptografiei TEE să fie pur și simplu mai puțin bine optimizată decât implementarea REE. REE rulează probabil OpenSSL sau un furk de OpenSSL, iar OpenSSL este locul în care cel mai mare efort de optimizare merge în afara codului de asamblare optimizat manual specific procesorului și algoritmului. Mai puțină forță de muncă tinde să intre în optimizarea criptografică într-un TEE.

Dacă măsurați timpul dintr-o aplicație REE, există un cost pentru trimiterea operațiunii către TEE. Acest cost este de obicei neglijabil pentru criptografia asimetrică, în special pentru decriptarea RSA, care necesită o cantitate mare de calcul. Pentru criptografia simetrică, poate fi substanțială.

Nu spui la ce tip de TEE te uiți. UN TEE poate sa să fie implementat ca un cip separat, care este de obicei unul cu performanță scăzută, deoarece are un scop special și, prin urmare, trebuie să fie ieftin. De exemplu, un TPM discret este mult mai lent decât cel mai ieftin procesor de aplicație la care poate fi conectat și chiar acceleratoarele dedicate pentru criptografia asimetrică nu compensează pe deplin.

P.S. RSA pe 256 de biți a fost ridicol de slab chiar și în anii 1980. 2048 de biți (256 de octeți) este o dimensiune tipică a cheii RSA în zilele noastre.

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.