Dolgo geslo za zaklepanje ZIP je lahko v praksi šibkejše od krajšega

Dolgo geslo za zaklepanje ZIP je lahko v praksi šibkejše od krajšega
24. 08. 2022 objavil/a Primož Govekar

 

Če za enkripcijo ZIP uporabljate geslo, ki je daljše od 64 znakov, potem bo vdiralcu dovolj odkrivati samo geslo dolžine 20 znakov.

Šifrirani ZIP se dostikrat uporabljajo za zaklepanje dokumentov, ki jih pošiljamo po e-pošti. Seveda obstajajo tudi druge metode, npr. asimetrično šifriranje, a ZIP je največkrat najhitrejši način, za katerega se pošiljatelj in prejemnik lahko uskladita.

Pri šifriranju ZIP je pomembna izbira gesla in vse do nedavnega je veljalo, da je daljše geslo tudi boljše, če izvzamemo, da bomo res dolgo geslo morda težko pretipkali v SMS ali kak drug primeren kanal, ki ne bo e-pošta. Te dni pa je portal bleepingcomputer objavil razkritje varnostnega raziskovalca Aresniya Sharoglazova, da več ni nujno bolje.

Če je geslo predolgo (daljše od že omenjenih 64 znakov) in se za enkripcijo uporablja metoda AES-256, potem se pred samim postopkom enkripcije geslo skrajša z enosmerno funkcijo. Tako skrajšano geslo, ki predstavlja SHA1 povzetek vnesenega gesla, pa se potem shrani in uporabi kot geslo za šifriranje.

Težava uporabljene enosmerne funkcije je v tem, da – ko/če je uporabljena – vedno vrne niz dolžine 20 znakov, ki niti ne vsebujejo posebnih znakov (#$%). Skratka: geslo uporablja šibkejši nabor znakov in je precej krajše od vpisanega.

Ob dekodiranju tako shranjenega ZIP bo vneseno geslo, daljše od 64 znakov, najprej obdelano s funkcijo SHA1, tako dobljeni povzetek pa se bo uporabil za dekodiranje vsebine. V primeru, da uporabnik vnese povzetek gesla (v obliki SHA1), bo ta povzetek neposredno uporabljen za dekodiranje vsebine.

Skratka, ko/če napadalec posumi, da ste uporabili geslo daljše od 64 znakov, se mu ne bo potrebno mučiti z vsemi kombinacijami, ampak bo dovolj, če preveri »samo« vsa gesla dolžine 20 znakov. Ob tem pa velja še enkrat poudariti, da se bo za geslo z npr. 63 znaki moral še vedno potruditi za vse kombinacije gesla od dolžine 1 do 63.

Glede na to, da v praksi najbrž (še) niste uporabili gesla za ZIP daljšega od 64 znakov (roko na srce je v takem primeru verjetno bolje uporabiti asimetrično šifriranje), je gornje odkritje za vas morda zgolj akademskega značaja.

Vseeno pa si velja zapomniti, da daljše geslo za ZIP – vsaj ob gornjih robnih pogojih – ni vedno boljše.

Naslovna fotografija: RawPixel