Ovdje na ProPrivacy upravo ljubav softver otvorenog koda. To je uglavnom zbog toga što, iako nije savršen, open source pruža jedini način da sigurno znate da je program na razini.

Jedan je problem, međutim, kako znati kako je program otvorenog koda koji preuzmete s web stranice program koji su njegovi programeri namijenili za preuzimanje? Kriptografski heševi djelomično su rješenje ovog problema.

Što je kriptografski hash?

Kriptografski hash je kontrolni zbroj ili digitalni otisak prsta dobiven obavljanjem jednosmjerne hash funkcije (matematičke operacije) na podacima koji sadrže računalni program (ili druge digitalne datoteke).

Svaka promjena samo jednog bajta podataka koji sadrži računalni program promijenit će hash vrijednost. Stoga je vrijednost hash-a jedinstven otisak prsta za bilo koji program ili druge digitalne datoteke.

Što je provjera hash-a?

Osiguravanje da program nije narušen ili je samo oštećen prilično je jednostavna stvar izračunavanja hash vrijednosti i uspoređivanja s kontrolnim zbrojem hash-a koji su dali njegovi programeri..


Ako je to isto, tada imate razumnu razinu pouzdanosti da je program koji ste preuzeli potpuno isti kao onaj koji je objavio njegov programer. Ako nije, onda je program na neki način izmijenjen.

Razlozi za to nisu uvijek zlonamjerni (vidi dolje), ali neuspjela provjera hash-a trebala bi postaviti zvona alarma.

Problemi s provjerama hash-a

Možda ste otkrili notu opreza dok ste pjevali pohvale provjere hash-a...

Integritet, ali ne i autentičnost

Provjere hash-a korisne su za osiguranje integriteta datoteka, ali ne pružaju nikakvu provjeru autentičnosti. Odnosno, dobri su za osiguravanje podudaranja izvora ili datoteke s izvorom, ali ne pružaju mogućnost provjere da li je izvor legitiman.

Provjere hash-a ne daju nikakvo jamstvo u vezi izvora izvornog hash-ova.

Na primjer, postoje lažne web stranice koje distribuiraju zlonamjerne verzije popularnog softvera otvorenog koda, poput KeePass. Mnoge od tih web lokacija čak pružaju hash kontrolne sume za programe koje isporučuju i ako biste ih provjerili u odnosu na lažni program, oni bi se podudarali. Ups.

Matematičke slabosti

Dodatni je problem što matematičke slabosti mogu značiti da heševi nisu tako sigurni kao što bi trebali biti.

Na primjer, algoritam MD5 ostaje vrlo popularna hash funkcija, unatoč poznatoj ranjivosti na kolizione napade. Doista, čak se ni SHA1 u tom pogledu više ne smatra sigurnim.

Unatoč tome, MD5 i SHA1 ostaju najpopularniji algoritmi koji se koriste za generiranje hash vrijednosti. SHA256, međutim, ostaje siguran.

Lijenost za programere

Programeri ponekad ažuriraju svoje programe ispravkama programskih pogrešaka i novim značajkama, ali zanemaruju objavljivanje ažurirane provjere. To rezultira neuspjehom provjere hash-a kada preuzmete i pokušate potvrditi njihov program.

To, naravno, nije nigdje tako ozbiljno kao što je provjera hash-a davanje zlonamjernog softvera, ali to može pogoršati povjerenje u ekosustav, što rezultira da se ljudi ne trude provjeriti integritet datoteka koje preuzmu....

Kriptografski heševi i digitalni potpisi

Većina problema sa kriptografskim hashevima popravljena je uporabom digitalnih potpisa, koji jamče i integritet i autentičnost.

Programeri koji rado koriste vlasnički kod mogu automatski i transparentno potvrditi potpise prilikom prvog instaliranja softvera, koristeći mehanizme kao što su Microsoft, Apple ili Google PKI (infrastruktura javnih ključeva).

Programeri otvorenog koda nemaju ovaj luksuz. Moraju koristiti PGP, koji nije izvorno podržan od strane bilo kojeg vlasničkog operativnog sustava, i zašto u Linuxu ne postoje ekvivalentni Microsoft, Apple ili Google PKI.

Dakle, PGP digitalni potpis mora biti potvrđen ručno. Ali PGP je cjelovita svinja koju treba koristiti i nije jednostavan proces, jer će kratki pogled na naš vodič za provjeru PGP potpisa u sustavu Windows pokazati.

Ni proces potpisivanja nije stvarni za programere koji su svjesni da se u stvarnom svijetu malo ljudi trudi ručno provjeravati digitalni potpis..

Kriptografski hashei nisu ni blizu tako sigurni kao PGP digitalni potpisi, ali ih je mnogo lakše koristiti, što rezultira da se mnogi programeri jednostavno odluče osloniti na njih umjesto da digitalno potpišu svoj rad.

Zaista biste trebali provjeriti hash (ako nema digitalnog potpisa)

To je manje nego idealno stanje i uvijek biste trebali provjeriti digitalni potpis programa otvorenog koda kada je takav dostupan. Ako to ipak nije, provjeravanje kriptografskog hash-a mnogo je bolje nego ništa.

Sve dok ste sigurni u izvor (na primjer, sigurni ste da je s stvarne web lokacije za razvojne programere, koja nije hakirana da prikaže lažni kriptografski hash), provjera njene hash vrijednosti pruža priličan stupanj slučajnosti da softver koji imate su preuzeli softver koji je njegov programer namijenio za preuzimanje.

Ako nije dostupan digitalni potpis ni kontrolni zbroj softvera s otvorenim kodom, nemojte ga instalirati i pokretati.

Kako provjeriti hash

Osnovni postupak je sljedeći:

Neobvezni podbroj

  1. Zabilježite hash broj koji je objavio programer
  2. Generirajte hash vrijednost datoteke koju imate
  3. Usporedite dvije hash vrijednosti

Ako su identične, tada imate datoteku koju je programer namijenio. Ako ne, onda se ili pokvarila ili se neovlašteno dira.

Ako je dostupan SHA256 + hash, provjerite u tome. Ako ne, tada koristite SHA1. Samo kao posljednje sredstvo možete provjeriti je li MD5 hash.

Jednostavan način (svi sustavi)

Najjednostavniji način za generiranje vrijednosti hash datoteke je korištenjem web stranice kao što su Online Tools. Jednostavno odaberite vrstu hash vrijednosti koju trebate generirati, a zatim povucite i ispustite potrebnu datoteku u dodijeljeni prostor i stvorit će se relevantna hash vrijednost..

Primjer

Želimo provjeriti integritet datoteke za instalaciju KeePass koju smo preuzeli s web stranice KeePass.org (za koju znamo da je ispravna domena). Web stranica objavljuje hashe MD5, SHA1 i SHA256 za sve verzije KeePass-a, tako da ćemo provjeriti SHA256 za verziju koju smo preuzeli.

  1. Zabilježimo točnu vrijednost hash-a, objavljenu na web stranici KeePass.

  2. Tada posjetimo internetsku stranicu Internetski alati, odaberite File Hash: SHA256 i povučemo našu preuzetu instalacijsku datoteku KeePass u predviđeni prostor.

  3. Izlaz uspoređujemo s kontrolnim zumom objavljenim na web stranici KeePass i oni su identični. Dakle, pod pretpostavkom da web mjesto KeePass nije hakirano da prikazuje lažne hash vrijednosti, možemo biti sigurni da smo preuzeli datoteku koja nije zaštićena. Yay!

    Windows, macOS i Linux također imaju ugrađene funkcije hash vrijednosti kojima se može pristupiti putem naredbenog retka...

Windows

Ova metoda funkcionira izvan okvira sustava Windows 10, a korisnici sustava Windows 7 prvo moraju ažurirati Windows PowerShell s Windows Management Framework 4.0.

Da biste dobili SHA256 hash, desnom tipkom miša kliknite Start -> Windows PowerShell i utipkajte:

Get-FileHash [put / do / datoteka]

Na primjer:

Get-FileHash C: \ Korisnici \ Douglas \ Downloads \ KeePass-2.43-Setup.exe

MD5 i SHA1 heševi se mogu izračunati pomoću sintakse:

Get-FileHash [put do [put / do / file] -Algoritam MD5

i

Get-FileHash [put do [put / do / file] -Algoritam SHA1

Na primjer:

Get-FileHash C: \ Korisnici \ Douglas \ Downloads \ KeePass-2,43-Setup.exe -Algoritam MD5

MacOS

Otvorite terminal i utipkajte:

openssl [vrsta hash-a] [/ path / to / file]

Hash tip bi trebao biti md5, SHA1 ili SHA256.

Na primjer, da biste provjerili hash SHA256 za instalacijski program Windows KeePass (samo da stvari ne budu jednostavne za ovaj vodič), upišite:

openssl sha256 /Users/douglascrawford/Downloads/KeePass-2.43-Setup.exe

Linux

Otvorite terminal i utipkajte bilo:

Md5sum [put / do / datoteka] Sha1sum [put / do / datoteka]

ili

Sha256sum [put / do / datoteka]

Na primjer:

sha256sum /home/dougie/Downloads/KeePass-2.43-Setup.exe

Brayan Jackson
Brayan Jackson Administrator
Sorry! The Author has not filled his profile.
follow me