Puncte:0

Este sigură această schemă AES GCM + asimetrică?

drapel cn

Doresc să folosesc criptarea asimetrică oferită de un instrument pentru a-mi cripta fișierele și aș dori să știu dacă următorul proces de criptare funcționează, indiferent de utilizarea poate nu optimă.

  • Generați a 32-bytes-cheie-aleatorie în interiorul browserului cu window.crypto.getRandomValues

  • utilizare biblioteca cripto sjcl pentru:

    • alegerea algoritmului AES cifr.aes
    • generând 4 cuvinte aleator IV vector random.randomWords(4, 0)
    • criptarea unui fișier în modul GCM mode.gcm.encrypt (etichetă 128 de biți)
    • concating IV și ieșire criptată producând binaryFile1
  • utilizare Biblioteca NaCl Networking and Criptography, printr-un instrument care implementează ECIES, pentru:

    • generând o criptareKeypair folosind nacl.box.keyPair.fromSecretKey
    • criptarea celor de mai sus 32-bytes-cheie-aleatorie cu ephemeralPublicKey (folosind x25519 parte a schemei x25519-xsalsa20-poly1305) producerea binaryFile2, un pachet care conține cheia AES criptată și, printre alte metadate, codul ephemeralPublicKey.
  • concat binaryFile2 + a-separator + binaryFile1 producând finalBinaryFile

  • păstrează finalBinaryFile pe cloud până când este necesar să îl descărcați și apoi să îl decriptați prin procesul invers, folosind cheie secreta Detin.

Pentru a cripta fișierele, aș putea folosi direct cheia simetrică menținând-o în siguranță, dar aș dori să folosesc o bază de date de chei publice statice partajate, a căror încredere o pot considera valabilă.

kelalaka avatar
drapel in
Care este intrebarea?
drapel cn
Am făcut întrebarea explicită în titlu. Mulțumesc.
kelalaka avatar
drapel in
De ce nu folosiți programe bine întreținute precum Veracrypt sau biblioteci precum [age](https://github.com/FiloSottile/age) (_age este un instrument simplu, modern și sigur de criptare a fișierelor, format și biblioteca Go_ .)
Maarten Bodewes avatar
drapel in
Evaluările complete ale protocoalelor și schemelor criptografice sunt în afara subiectului. Utilizarea ECIES pentru a cripta o cheie secretă este puțin falsă; ați putea folosi partea de acord a cheii în sine pentru a stabili o cheie. Desigur, ar trebui să trimiteți și cheia publică efemeră pentru ECIES, ceva care lipsește din protocolul dvs. Nu văd cum ați stabilit perechea de chei statice a receptorului sau cum este de încredere acea cheie publică, așa că descrierea nu este fără greșeală și nici completă.
drapel cn
Mulțumesc pentru observațiile tale Maarten. De fapt, am uitat să menționez că în `binaryFile2` există și cheia publick efemeră, așa că voi actualiza întrebarea. Sunt conștient că întreb despre valabilitate, indiferent de procesul de înregistrare a perechii de chei statice și de încredere relativă.
Puncte:2
drapel si

NaCL oferă un set de cripto_box metode care fac toate acestea dintr-o singură mișcare. Libsodium oferă un set și mai ușor de crypto_box_easy metode.

drapel cn
Vă mulțumesc pentru sugestie, Implementarea mea trebuie să fie în javascript, așa că folosesc doar un set de NaCl care oferă și gestionează generațiile de perechi de chei.
SAI Peregrinus avatar
drapel si
Există legături JS și pentru libsodium.

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.