Jak, proč a kdy byste měli hash zkontrolovat

Tady v ProPrivacy jsme jen milovat software s otevřeným zdrojovým kódem. Je to hlavně proto, že přestože není dokonalý, otevřený zdroj poskytuje jediný způsob, jak zjistit, zda je program na úrovni.

Jedním z problémů je však to, jak víte, že program s otevřeným zdrojovým kódem, který si stáhnete z webové stránky, je program, který si jeho vývojáři chtěli stáhnout? Kryptografické hashe jsou částečným řešením tohoto problému.

Co je to kryptografický hash?

Kryptografická hash je kontrolní součet nebo digitální otisk prstu odvozený provedením jednosměrné hašovací funkce (matematická operace) na datech obsahujících počítačový program (nebo jiné digitální soubory)..

Jakákoli změna pouze jednoho bajtu dat tvořících počítačový program změní hodnotu hash. Hodnota hash je tedy jedinečným otiskem prstu pro jakýkoli program nebo jiné digitální soubory.

Co je to hashova kontrola?

Zajistit, aby program nebyl manipulován nebo jen poškozen, je poměrně jednoduchá záležitost spočítat jeho hashovou hodnotu a poté ji porovnat s kontrolním součtem hashů poskytnutým jeho vývojáři..

Pokud je to stejné, pak máte přiměřenou jistotu, že program, který jste stáhli, je úplně stejný jako program zveřejněný jeho vývojářem. Pokud tomu tak není, program byl nějakým způsobem změněn.

Důvody nejsou vždy škodlivé (viz níže), ale při selhání hašovací kontroly by mělo být nastaveno vyzvánění poplašných zvonků.

Problémy s hashovými kontrolami

Možná jste zjistili upozornění, když zpíváte pochvaly na hašovací kontroly...

Integrita, ale ne autentizace

Kontroly hash jsou užitečné pro zajištění integrity souborů, ale neposkytují žádný druh autentizace. To znamená, že jsou dobré pro zajištění souboru nebo programu, který máte, se zdrojem, ale neposkytují žádný způsob, jak ověřit, zda je zdroj legitimní..

Kontroly hash neposkytují žádnou záruku ohledně zdroje kontrolního součtu hash.

Například existují falešné weby, které distribuují škodlivé verze populárního softwaru s otevřeným zdrojovým kódem, jako je KeePass. Mnoho z těchto webových stránek dokonce poskytuje hash kontrolní součty pro programy, které dodávají, a pokud byste je zkontrolovali proti falešnému programu, shodovali by se. Jejda.

Matematické slabosti

Další problém spočívá v tom, že matematické slabosti mohou znamenat, že hash není tak bezpečný, jak by měl být.

Například algoritmus MD5 zůstává velmi populární hashovací funkcí, a to navzdory známé zranitelnosti vůči kolizním útokům. Dokonce ani SHA1 se v tomto ohledu již nepovažuje za bezpečnou.

Přesto zůstávají MD5 a SHA1 nejoblíbenějšími algoritmy používanými pro generování hashových hodnot. SHA256 však zůstává v bezpečí.

Lenost vývojáře

Vývojáři někdy aktualizují své programy opravami chyb a novými funkcemi, ale zanedbávají publikování aktualizovaného kontrolního součtu hashů. Výsledkem je selhání kontroly hash při stahování a pokusu o ověření jejich programu.

To samozřejmě není nikde tak blízko jako kontrola hashů, která umožňuje průchod škodlivého softwaru, ale může to zhoršit důvěru v ekosystém, což má za následek, že se lidé neobtěžují kontrolovat integritu stahovaných souborů....

Kryptografické hashe vs. digitální podpisy

Většina problémů s kryptografickými hashami je vyřešena použitím digitálních podpisů, které zaručují integritu i autentizaci.

Vývojáři, kteří rádi používají proprietární kód, mohou automaticky a transparentně ověřovat podpisy při první instalaci softwaru pomocí mechanismů, jako jsou technologie Microsoft, Apple nebo Google PKI (infrastruktura veřejných klíčů)..

Vývojáři open source tento luxus nemají. Musí používat PGP, který není nativně podporován žádným proprietárním operačním systémem, a proč v systému Linux neexistuje ekvivalent PKI společnosti Microsoft, Apple nebo Google.

Digitální podpisy PGP tedy musí být ověřeny ručně. PGP je však použito jako kompletní prase a není to jednoduchý proces, protože rychlý pohled na našeho průvodce kontrolou podpisů PGP ve Windows prokáže,.

Skutečný proces podepisování není ani pro vývojáře, kteří dobře vědí, že v reálném světě málokdo obtěžuje manuální kontrolu digitálních podpisů..

Kryptografické hashe nejsou zdaleka tak bezpečné jako digitální podpisy PGP, ale jejich použití je mnohem snazší, což vede k tomu, že se mnozí vývojáři jednoduše rozhodnou spolehnout se na ně místo digitálního podepisování své práce.

Měli byste opravdu zkontrolovat hash (pokud není přítomen digitální podpis)

Toto je méně než ideální situace a měli byste vždy zkontrolovat digitální podpis otevřeného zdrojového programu, pokud je k dispozici. Pokud tomu tak není, pak je kontrola jeho kryptografického hašování mnohem lepší než nic nedělat.

Pokud jste si jistí zdrojem (například jste si jisti, že je to ze skutečných webových stránek vývojáře, který nebyl hacknut k zobrazení falešného kryptografického hašování), pak kontrola jeho hodnoty hash poskytuje přiměřenou míru náhody, že software, který vy mít stažený je software, jehož vývojář vám chce stáhnout.

Pokud pro software s otevřeným zdrojovým kódem není k dispozici digitální podpis ani kontrolní součet, neinstalujte jej ani nespouštějte.

Jak hash zkontrolovat

Základní postup je následující:

Nepovinná podpoložka

  1. Poznamenejte si číslo hash zveřejněné vývojářem
  2. Vygenerujte hash hodnotu souboru, který máte
  3. Porovnejte dvě hodnoty hash

Pokud jsou totožné, máte soubor, který vám vývojář zamýšlel mít. Pokud tomu tak není, pak je buď poškozen nebo s ním bylo manipulováno.

Pokud je k dispozici hash SHA256 +, zkontrolujte to. Pokud ne, použijte SHA1. Pouze jako poslední možnost byste měli zkontrolovat proti MD5 hash.

Snadná cesta (všechny systémy)

Nejjednodušší způsob, jak vygenerovat hash hodnotu souborů, je pomocí webové stránky, jako jsou online nástroje. Stačí vybrat druh hašovací hodnoty, kterou potřebujete vygenerovat, poté přetáhněte požadovaný soubor do příslušného prostoru a vygeneruje se příslušná hashovací hodnota.

Příklad

Chceme zkontrolovat neporušenost instalačního souboru KeePass, který jsme stáhli z webu KeePass.org (o kterém víme, že je správná doména). Web publikuje hash MD5, SHA1 a SHA256 pro všechny verze svého KeePass, takže zkontrolujeme verzi SHA256, kterou jsme stáhli.

  1. Poznamenáváme si správnou hodnotu hash, která je zveřejněna na webových stránkách KeePass.

  2. Poté navštívíme web Online Tools, vybereme File Hash: SHA256 a přetáhneme náš stažený instalační soubor KeePass do poskytnutého prostoru..

  3. Porovnáme výstup s kontrolním součtem zveřejněným na webových stránkách KeePass a jsou totožné. Takže za předpokladu, že web KeePass nebyl napaden tak, aby zobrazoval falešné hodnoty hash, můžeme si být jisti, že jsme stáhli soubor bez zkoušek. Yay!

    Windows, macOS a Linux mají také vestavěné funkce hash value, ke kterým lze přistupovat z příkazového řádku...

Okna

Tato metoda funguje již v systému Windows 10, zatímco uživatelé systému Windows 7 musí nejprve aktualizovat Windows PowerShell pomocí Windows Management Framework 4.0.

Chcete-li získat hash SHA256, klepněte pravým tlačítkem myši na Start -> Windows PowerShell a typ:

Get-FileHash [cesta / k / souboru]

Například:

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

Hash MD5 a SHA1 lze vypočítat pomocí syntaxe:

Get-FileHash [cesta k [cesta / k / souboru] - algoritmus MD5

a

Get-FileHash [cesta k [cesta / k / souboru] - algoritmus SHA1

Například:

Get-FileHash C: \ Users \ Douglas \ Downloads \ KeePass-2.43-setup.exe -Algorithm MD5

Operační Systém Mac

Otevřete terminál a zadejte:

openssl [hash type] [/ cesta / do / souboru]

Typ hash by měl být md5, SHA1 nebo SHA256.

Chcete-li například zkontrolovat hash SHA256 pro instalační program systému Windows KeePass (jen aby se u tohoto tutoriálu udržely věci jednoduché), zadejte:

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

Linux

Otevřete terminál a zadejte buď:

Md5sum [cesta / k / souboru] Sha1sum [cesta / k / souboru]

nebo

Sha256sum [cesta / k / souboru]

Například:

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

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