Puncte:0

Ce înseamnă dacă două fișiere create de aceeași persoană partajează același hash SHA256?

drapel us

Bine, deci am o misiune pentru dreptul cibernetic și asta ar putea fi irelevant pentru întrebare.Dar am o situație în care cineva a semnat un testament folosind o semnătură electronică avansată, dar această semnătură a fost separată de testamentul în sine. Deci două documente diferite: (1) signature.txt și (2)FinalTestament.txt. Dacă SHA256 ale acestor două documente se potrivește, pot presupune că nu a existat nicio interferență cu testamentul sau SHA256 nu are nimic de-a face cu conținutul real conținut într-un document? Și este doar un identificator că aceeași persoană a creat cele două documente? Chiar mă chinui să înțeleg SHA256 - așa că orice link-uri către explicatori care ar ajuta în acest context ar fi grozav. Mulțumiri!

DannyNiu avatar
drapel vu
Este aceasta o întrebare de drept sau o întrebare tehnică? Dacă primul, atunci este implicată definiția legală a algoritmilor hash și de semnătură digitală **aprobați și recunoscuți oficial**; în caz contrar, oamenii au răspunsul corect și vă puteți gândi să vă acceptați favoritul pentru a vă câștiga primele 2 puncte de reputație.
Puncte:1
drapel ng

Dacă SHA256 al acestor două documente se potrivește

apoi prin definiţie a rezistenta la coliziune, aceste două documente sunt identice sau (inclusiv și) rezistența la coliziune a lui SHA-256 este spartă. Există un consens în rândul experților că rezistența la coliziune a lui SHA-256 nu poate fi spartă prin mijloacele disponibile astăzi (adică nimeni nu are puterea de a crea documente distincte cu același hash SHA-256).

Prin urmare, există un consens al experților că aceste două documente trebuie să fie identice, în ipoteza citată; care, de departe, este cel mai slab punct al demonstrației, deoarece depinde de modul în care sunt păstrate documentele (neapărat digitale) și de hashul lor obținut și comparat.


Cele de mai sus răspunde la întrebarea așa cum este formulată, dar noi suntem acum spus ceva foarte diferit:

când semnătura.txt (semnătură electronică avansată) este decriptată folosind cheia publică furnizată, rezultă un hash de document SHA256 care se potrivește cu hashul SHA256 al FinalTestament.txt

Aceasta este o terminologie incorectă: nu se descifrează niciodată cu o cheie publică. Scopul criptării este de a transforma o bucată de date pentru a o face neinteligibilă până când este decriptată de către deținătorul unui secret; și, după cum sugerează și numele, o cheie publică nu este secretă. Aici, nu decriptăm. Trebuie să citim: „signature.txt este verificat folosind cheia publică furnizată”.

Și, în general, nu este corect că verificarea semnăturii reconstruiește un hash, apoi este comparat cu hash-ul unui document pentru a decide dacă semnătura se aplică acelui document. Acest lucru este corect pentru semnătura RSA de manual a hash¹, RSA-FDH, și (deși neobișnuit) poate fi corectat pentru RSASSA-PKCS1-v1_5. Dar nu este cazul pentru multe alte scheme de semnătură: RSASSA-PSS, ECDSA, EdDSA, DSA, unde hash-ul (sau documentul de verificat) trebuie să fie o intrare a procesului de verificare a semnăturii. Astfel, probabil că ar trebui să citim: „signature.txt este verificat împotriva hash-ul FinalTestament.txt folosind cheia publică furnizată"

Cel mai important: nimic din declarația problemei sau din comentariul suplimentar nu spune că cheia publică este cheia publică a persoanei decedate, (și dacă vrem să fim pretențioși, destinată sistemului de verificare a semnăturii utilizat). Astfel, o verificare făcută cu acea cheie publică nu este un indiciu valid din punct de vedere tehnic că această persoană a aprobat testamentul.

Chiar dacă adăugăm că cheia publică este cea a persoanei decedate, nu există nicio indicație că FinalTestament.txt este final testament²; că semnătura nu a fost făcută sub constrângere; că defunctul avea capacitatea legală de a face un testament valabil; că sistemul de semnătură utilizat este obligatoriu din punct de vedere juridic (regulile pentru acestea variază).


¹ Dar semnătura manuală RSA a unui hash SHA-256 este vulnerabilă fals existențial, din cauza Desmedt și Odlyzko atacă.

² Sau chiar singurul testament care se verifică cu semnătura.txt și cheia publică: unele sisteme de semnătură, cum ar fi semnătura scurtă originală Schnorr, permit semnatarului să creeze documente foarte diferite cu semnătură identică. Astfel de sisteme de semnătură sunt cel mai bine evitate în contexte legale!

drapel us
Bună! Multumesc pentru raspunsul tau! Dar am interpretat greșit afirmația! Nu este că hash-ul SHA256 documentelor este același, ci că, atunci când semnătura.txt (semnătură electronică avansată) este decriptată folosind cheia publică furnizată, rezultă un hash pentru document SHA256 care se potrivește cu hash-ul SHA256 al FinalTestament.txt.
Puncte:0
drapel fr

SHA-256 este o funcție hash sigură criptografic. Aceasta înseamnă că prezintă trei proprietăți importante:

  • Rezistența preimagine: având în vedere o valoare hash, este dificil să găsiți vreun mesaj care să aibă acea valoare hash.
  • A doua rezistență preimagine: având în vedere un mesaj, este dificil să găsești un alt mesaj cu același hash.
  • Rezistență la coliziune: este dificil să găsești două mesaje cu același hash.

Aceasta este rezumat în articolul relevant Wikipedia. În acest context, un „mesaj” este orice serie de octeți (posibil cu o limită nepractic de mare a dimensiunii). Poate fi un fișier, un e-mail sau practic orice altceva pe care un computer îl poate stoca.

Din cauza acestor proprietăți, putem presupune în general că două mesaje (fișiere, etc.) cu același hash SHA-256 sunt aceleași. (Există o posibilitate extrem de puțin probabilă ca acesta să nu fie cazul, dar aveți șanse mult mai mari să fiți lovit de fulger în mod repetat.) Deci, în acest caz, cele două fișiere sunt identice; dacă unul dintre ele ar fi fost modificat, atunci hash-ul nu ar fi același. Rețineți că oricine poate calcula hash-ul unui document: algoritmii hash sunt publici și pot fi calculați eficient de toată lumea.

Când creăm o semnătură digitală securizată, luăm o pereche de chei, care conține o cheie publică (cunoscută de toți) și o cheie privată (cunoscută doar de proprietar). Trimitem mesajul (folosind un hash precum SHA-256) și apoi semnăm hash-ul cu cheia privată. O persoană care cunoaște cheia publică poate verifica apoi acea semnătură și poate afla unul dintre cele două lucruri:

  • Mesajul nu s-a schimbat și este valabil pentru acea cheie publică (adică proprietarul a semnat un mesaj identic); sau
  • Cel puțin unul dintre acestea nu este cazul.

Rețineți că este posibil ca un atacator să creeze o pereche de chei și o semnătură diferite care validează și mesajul (uneori fără a vedea mesajul), așa că trebuie să știm că cheia publică face de fapt parte din perechea de chei pentru partea în cauză. . Diferite protocoale rezolvă această problemă în mod diferit.

Dacă avem o semnătură și documentul peste care a fost semnat, cei doi nu vor avea același hash. Semnătura are de obicei o dimensiune fixă, în funcție de tipul cheii, dimensiunea cheii și protocol și va avea aceeași dimensiune (care este relativ mică), indiferent de dimensiunea documentului. Putem semna mulți gigaocteți de date cu o semnătură de doar 64 de octeți.

În contextul legii, un hash de potrivire cu o funcție hash sigură criptografic înseamnă că documentele sunt identice, bit pentru bit. Dacă aveți un document cu o semnătură digitală securizată și aveți o modalitate fiabilă de a verifica cheia publică a semnatarului, atunci puteți verifica dacă documentul a fost semnat de acea cheie și nu a fost modificat de când a fost semnat.

drapel us
Oh da ai dreptate! Semnătura găsită în signature.txt atunci când este decriptată folosind cheia publică are ca rezultat un hash SHA256 care se potrivește cu SHA256 al documentului FinalTestament.txt. Deci nu este că cele două hashuri de documente sunt identice, ci că documentul a fost semnat de cheie și nu a fost modificat - corectează-mă, dacă această interpretare este incorectă. Bazându-mă pe puținele mele cunoștințe și cercetări pe această temă, mi s-a părut ciudat că cele două hashuri sunt la fel, dar înțelegeam greșit ceea ce se spunea pentru că nu înțelegeam. Mulțumesc frumos @bk2204! Ești un salvator de vieț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.