Puncte:1

Pseudocodul meu de criptare a fișierelor mixte asimetric/simetric trece verificarea corectă?

drapel sk

Îmi dau seama că asta depinde de implementarea mea și de implementarea bibliotecilor pe care le folosesc. Întreb despre procesul meu presupunând că bibliotecile de criptare și codul meu nu sunt defecte/compromise, parola utilizatorului este sigură și mașina nu este compromisă.

Scopul aici este de a proteja confidențialitatea fișierelor cu o parolă și de a le putea cripta fără a introduce o parolă.

Configurare inițială:
- Generați o pereche de chei RSA
- Solicitați utilizatorului parola și presupuneți că utilizează una suficient de sigură
- Criptați cheia privată în format DER, pkcs=8, schema = scryptAndAES256-CBC cu parola utilizatorului

Pentru fiecare fișier:
- Generați o cheie aleatorie de sesiune de 32 de octeți
- Criptați cheia de sesiune cu cheia publică inițială
- Generați un nonce aleatoriu de 12 octeți
- Scrieți în fișierul de ieșire:
  - Cheie de sesiune criptată
  - Nonce
  - Flux de fișiere criptat cu AES GCM folosind cheia de sesiune aleatorie de 32B și nonce de 12B

La decriptarea unui fișier
- Solicitați utilizatorului parola, decriptați cheia privată inițială
- Citiți cheia de sesiune criptată și nonce de la începutul fișierului
- Decriptați cheia de sesiune cu cheia privată inițială
- Decriptați fluxul de fișiere cu cheia de sesiune și nonce

Singurele alte lucruri de remarcat sunt că am ales GCM pentru viteza sa, peste CBC de exemplu. De asemenea, sunt conștient de problema coliziunii cu utilizarea unui nonce aleatoriu, totuși înțeleg că aceasta ar fi o problemă mai mult dacă aș avea miliarde de fișiere folosind aceeași cheie de sesiune. Și cu o cheie aleatorie de 32 de octeți am practic 44 de octeți de spațiu pentru a evita coliziunea. Este de dorit pentru mine să nu fiu nevoită să țin evidența unui nonce.

Există probleme cu acest plan sau ar fi aceasta o modalitate sigură de a proteja confidențialitatea fișierelor presupunând că pseudocodul a fost implementat corect?

DannyNiu avatar
drapel vu
Schema este tipică și până acum nu văd un defect aparent. Dar dacă aș fi eu, nu voi lăsa ca sarcina de a dovedi securitatea să-mi fure somnul și părul - aș folosi un produs de criptare a fișierelor consacrat, cum ar fi 7-zip (sau RAR dacă puteți economisi niște bani), deși nu nu au criptare cu cheie publică.
DannyNiu avatar
drapel vu
PGP și GnuGPG sunt de asemenea bune, cred că au derivate GUI.
fgrieu avatar
drapel ng
„Criptați cheia de sesiune cu cheia publică inițială” și „decriptarea cheii private inițiale” sunt foarte subspecificate; acolo pot fi făcute o mulțime de greșeli, cum ar fi utilizarea $x\mapsto x^e\bmod n$ pentru criptarea cheii de sesiune sau utilizarea [RSAES-PKCS1-v1_5](https://pkcs1.grieu.fr/#page =23). Într-o măsură mai mică, „Generați o pereche de chei RSA” și parametrizarea scryptului sunt, de asemenea, subspecificate, chiar dacă luăm în considerare doar securitatea.
Maarten Bodewes avatar
drapel in
De asemenea, aveți grijă că repetarea unei combinații cunoscute de cheie + IV pentru date structurate, cum ar fi o cheie RSA, este o practică periculoasă și poate scurge informații despre cheia înfășurată (**PS Bună, furnizorii HSM, ascultați?**)

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.