Puncte:0

Este sigur să reutilizați o cheie cu Fernet?

drapel in

Fernet este o schemă de criptare simetrică bazată pe AES, care se presupune că este rezistentă la idioți, care a fost (din nou, se presupune) atent concepută pentru a evita orice capcane care ar putea compromite securitatea.

Vreau să folosesc aceeași cheie pentru a cripta mai multe fișiere, inclusiv versiunile modificate ale aceluiași fișier.

Sunt conștient de faptul că multe scheme de criptare, în special cele produse în casă, devin vulnerabile la criptoanalize atunci când cheile sunt reutilizate (cel mai simplu exemplu: cifru de flux bazat pe XOR) și nu am găsit nicio declarație explicită în documentația Fernet că permite reutilizarea cheilor.

Pe de altă parte,

  • Se presupune că Fernet este rezistent la idioți
  • Fernet folosește un IV aleatoriu de fiecare dată când criptează ceva
  • Documentația nu avertizează cu privire la reutilizarea cheilor

Asa de, ce poate merge prost dacă reutilizam o cheie cu Fernet?

Abordarea mea alternativă, dacă reutilizarea cheilor este nesigură, ar fi să criptez fișierele după cum urmează:

  • Alegeți o sare aleatorie
  • Utilizați un KDF pentru a calcula cheia individuală din cheia partajată și sare
  • Criptați fișierul cu cheia individuală și adăugați sare

Dar acest lucru pare greșit (sarea este doar pentru utilizare cu parole, nu cu date aleatorii...) și, mai important, îmi cere să folosesc primitive de criptare de nivel scăzut care sunt explicit nu dovadă de idiot.

Puncte:1
drapel in

Pagina listată vorbește despre criptarea AES-128-CBC cu Encrypt-then-MAC Mac cu HMAC.

The obligația utilizatorului este de a furniza mesajul, cheia uniformă aleatorie pe 256 de biți și o ștampilă de timp.

Fernet-ul împarte cei 256 de biți ai cheii în două părți de dimensiuni egale.În primul rând, o parte este utilizată în criptarea mesajului cu AES-128-CBC, apoi eticheta de autentificare $t$

$$ t = \operatorname{HMAC-SHA-256}( Versiune â Timp â IV â Text cifrat)$$ se calculează cu cealaltă parte a cheii.

ce poate merge prost dacă refolosesc o cheie cu Fernet?

  1. Criptarea prea mult mesaj cu aceeași cheie poate provoca coliziunea IV sub aceeași cheie.

    Acest lucru poate scurge că începutul mesajelor este același. Dacă editați fișierul și nu îl criptați cu un IV diferit, atunci acesta va scurge același prefix al fișierelor.

    Ei bine, trebuie să criptezi $2^{64}$ mesajele să aibă coliziune IV sub aceeași cheie. 50% este prea mare pentru avantajul atacatorului ar trebui să ia în considerare probabilități mai mici.

  2. Criptarea prea mult bloc de date

    Poate provoca coliziuni de text cifrat care utilizează dulce32 atac. X-sau al blocului de mesaje pot fi obined daca $c_i = c_j$ cu $i \neq j$ $$m_i \oplus m_j = c_{1-1} \oplus c_{j-1}.$$

    Din nou, 50% este prea mare pentru avantajul atacatorului ar trebui să ia în considerare probabilități mai mici.

Aceste două probleme depind într-adevăr de câte fișiere aveți și de câtă dimensiune au.

Nu este complet sigur, este mai bine să folosiți diferite chei și IV-uri pe fișier. De fapt, API-ul lui Fernet permite acest lucru.

Abordarea mea alternativă, dacă reutilizarea cheilor este nesigură, ar fi să criptez fișierele după cum urmează:

  • Alegeți o sare aleatorie
  • Utilizați un KDF pentru a calcula cheia individuală din cheia partajată și sare
  • Criptați fișierul cu cheia individuală și adăugați sare

Dar acest lucru pare greșit (sarea este doar pentru utilizare cu parole, nu cu date aleatorii...) și, mai important, îmi cere să folosesc primitive de criptare de nivel scăzut care în mod explicit nu sunt rezistente la idioți.

Aceasta este ceea ce facem; au chei diferite și IV per fișier. Poți să folosești HKDF chiar și numai cel extinde parte pentru a deriva cheia și IV-urile.

Ca să fiu sincer, Întotdeauna mă întreb de ce are cineva nevoie de lucruri complicate, în timp ce containerele criptate ale VeraCrypt se ocupă de asta mai bine decât experții.Nu trebuie să luați în considerare deloc criptarea. Doar învață să ai o parolă bună, cum ar fi dicewire, și ai terminat.

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.