Hoe, waarom en wanneer je moet checken

Bij ProPrivacy doen we dat gewoon liefde open source software. Dit komt vooral omdat, hoewel niet perfect, open source de enige manier is om zeker te weten dat een programma op niveau is.

Een probleem is echter hoe weet je dat een open source-programma dat je van een website downloadt, het programma is dat je door de ontwikkelaar (s) wilt downloaden? Cryptografische hashes zijn een gedeeltelijke oplossing voor dit probleem.

Wat is een cryptografische hash?

Een cryptografische hash is een controlesom of digitale vingerafdruk die is afgeleid door een eenrichtingshashfunctie (een wiskundige bewerking) uit te voeren op de gegevens die een computerprogramma (of andere digitale bestanden) bevatten.

Elke wijziging in slechts één byte van de gegevens waaruit het computerprogramma bestaat, wijzigt de hash-waarde. De hash-waarde is daarom een ​​unieke vingerafdruk voor elk programma of andere digitale bestanden.

Wat is een hash-check?

Ervoor zorgen dat een programma niet is geknoeid of alleen is beschadigd, is een vrij eenvoudige kwestie van het berekenen van de hash-waarde en het vervolgens vergelijken met de hash-controlesom van de ontwikkelaars.

Als het hetzelfde is, heb je een redelijk vertrouwen dat het programma dat je hebt gedownload exact hetzelfde is als het programma dat door de ontwikkelaar is gepubliceerd. Als dit niet het geval is, is het programma op de een of andere manier gewijzigd.

De redenen hiervoor zijn niet altijd kwaadaardig (zie hieronder), maar een mislukte hash-check zou alarmbellen moeten laten rinkelen.

Problemen met hashcontroles

Je hebt misschien een waarschuwing opgemerkt bij het zingen van lof over hash-cheques...

Integriteit maar geen authenticatie

Hash-controles zijn nuttig om de integriteit van bestanden te waarborgen, maar bieden geen enkele vorm van authenticatie. Dat wil zeggen, ze zijn goed om ervoor te zorgen dat het bestand of programma dat u hebt overeenkomt met de bron, maar ze bieden geen manier om te controleren of de bron legitiem is.

Hash-cheques bieden geen garantie met betrekking tot de bron van de hash-controlesom.

Er bestaan ​​bijvoorbeeld nepwebsites die kwaadaardige versies van populaire open source software zoals KeePass verspreiden. Veel van deze websites bieden zelfs hash-controlesommen voor de programma's die ze leveren en, als je deze vergelijkt met het nep-programma, zouden ze overeenkomen. Oops.

Wiskundige zwaktes

Een bijkomend probleem is dat wiskundige zwakheden kunnen betekenen dat hashes niet zo veilig zijn als zou moeten.

Het MD5-algoritme blijft bijvoorbeeld een zeer populaire hashfunctie, ondanks de bekende kwetsbaarheid voor aanvalsaanvallen. Inderdaad, zelfs SHA1 wordt in dit opzicht niet langer als veilig beschouwd.

Desondanks blijven MD5 en SHA1 de populairste algoritmen die worden gebruikt om hash-waarden te genereren. SHA256 blijft echter veilig.

Ontwikkelaar luiheid

Ontwikkelaars werken hun programma's soms bij met bugfixes en nieuwe functies, maar verzuimen een bijgewerkte hash-controlesom te publiceren. Dit resulteert in een mislukte hash-controle wanneer u het programma downloadt en probeert te verifiëren.

Dit is natuurlijk lang niet zo ernstig als een hash-check die kwaadwillende software een pas geeft, maar het kan het vertrouwen in het ecosysteem aantasten, waardoor mensen de moeite nemen om de integriteit van de bestanden die ze downloaden te controleren...

Cryptografische hashes versus digitale handtekeningen

De meeste problemen met cryptografische hashes worden opgelost door het gebruik van digitale handtekeningen, die zowel integriteit als authenticatie garanderen.

Ontwikkelaars die graag eigen code gebruiken, kunnen handtekeningen automatisch en transparant valideren wanneer hun software voor het eerst wordt geïnstalleerd, met behulp van mechanismen zoals Microsoft, Apple of Google PKI (public key infrastructure) -technologieën.

Open source-ontwikkelaars hebben deze luxe niet. Ze moeten PGP gebruiken, dat niet native wordt ondersteund door een eigen besturingssysteem, en waarom er geen equivalent van Microsoft, Apple of Google PKI's bestaat in Linux.

Dus digitale PGP-handtekeningen moeten handmatig worden geverifieerd. Maar PGP is een compleet varken om te gebruiken en is geen eenvoudig proces, zoals een snelle blik op onze gids voor het controleren van PGP-handtekeningen in Windows zal aantonen.

Evenmin is het eigenlijke ondertekeningsproces voor ontwikkelaars, die zich ervan bewust zijn dat in de echte wereld maar weinig mensen de moeite nemen om digitale handtekeningen toch te controleren.

Cryptografische hashes zijn lang niet zo veilig als digitale PGP-handtekeningen, maar ze zijn veel gemakkelijker te gebruiken, met als gevolg dat veel ontwikkelaars ervoor kiezen om erop te vertrouwen in plaats van hun werk digitaal te ondertekenen.

Je moet echt een hash-check uitvoeren (als er geen digitale handtekening aanwezig is)

Dit is een minder dan ideale situatie en u moet altijd de digitale handtekening van een open source-programma controleren als er een beschikbaar is. Als je dat echter niet bent, is het controleren van de cryptografische hash veel beter dan niets doen.

Zolang je zeker bent van de bron (je weet bijvoorbeeld zeker dat het van de echte website van de ontwikkelaar is, die niet is gehackt om een ​​nep-cryptografische hash weer te geven), dan is het controleren van de hash-waarde redelijk toevallig dat de software die je hebt gedownload, is de software die de ontwikkelaar van u heeft bedoeld om te downloaden.

Als noch een digitale handtekening, noch een controlesom beschikbaar is voor open source software, installeer of voer deze dan niet uit.

Hoe hash check

Het basisproces is als volgt:

Optionele ondertitel

  1. Noteer het hashnummer dat door de ontwikkelaar is gepubliceerd
  2. Genereer de hash-waarde van het bestand dat u hebt
  3. Vergelijk de twee hash-waarden

Als ze identiek zijn, hebt u het bestand dat de ontwikkelaar u wilde laten hebben. Als dat niet het geval is, is het ofwel beschadigd geraakt of is er mee geknoeid.

Als er een SHA256 + hash beschikbaar is, vergelijk dat dan. Zo niet, gebruik dan SHA1. Alleen als laatste redmiddel moet je het vergelijken met een MD5-hash.

De gemakkelijke manier (alle systemen)

De eenvoudigste manier om de hash-waarde van bestanden te genereren, is door een website zoals Online Tools te gebruiken. Selecteer gewoon het soort hash-waarde dat u moet genereren en sleep het gewenste bestand vervolgens naar de daarvoor bestemde ruimte en de relevante hash-waarde wordt gegenereerd.

Voorbeeld

We willen de integriteit controleren van het KeePass-installatiebestand dat we hebben gedownload van de KeePass.org-website (waarvan we weten dat dit het juiste domein is). De website publiceert MD5-, SHA1- en SHA256-hashes voor alle versies van de KeePass, dus we zullen de SHA256 controleren op de versie die we hebben gedownload.

  1. We noteren de juiste hash-waarde, zoals gepubliceerd op de KeePass-website.

  2. We bezoeken vervolgens de website Online Tools, selecteren File Hash: SHA256 en slepen ons gedownloade KeePass-installatiebestand naar de daarvoor bestemde ruimte.

  3. We vergelijken de output met de controlesom gepubliceerd op de KeePass-website en ze zijn identiek. Ervan uitgaande dat de KeePass-website niet is gehackt om valse hash-waarden weer te geven, kunnen we er zeker van zijn dat we een bestand hebben gehad dat niet is gewijzigd. Yay!

    Windows, macOS en Linux hebben ook ingebouwde hash-waardefuncties die toegankelijk zijn via de opdrachtregel...

ramen

Deze methode werkt out-of-the-box in Windows 10, terwijl Windows 7-gebruikers eerst Windows PowerShell moeten bijwerken met Windows Management Framework 4.0.

Klik met de rechtermuisknop op Start om een ​​SHA256-hash te verkrijgen -> Windows PowerShell en type:

Get-FileHash [pad / naar / bestand]

Bijvoorbeeld:

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

MD5- en SHA1-hashes kunnen worden berekend met behulp van de syntaxis:

Get-FileHash [pad naar [pad / naar / bestand] -Algoritme MD5

en

Get-FileHash [pad naar [pad / naar / bestand] -Algoritme SHA1

Bijvoorbeeld:

Get-FileHash C: \ Gebruikers \ Douglas \ Downloads \ KeePass-2.43-Setup.exe-algoritme MD5

MacOS

Open Terminal en typ:

openssl [hash-type] [/ pad / naar / bestand]

Hash-type moet md5, SHA1 of SHA256 zijn.

Als u bijvoorbeeld de SHA256-hash voor het Windows KeePass-installatieprogramma wilt controleren (om het eenvoudig te houden voor deze zelfstudie), typt u:

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

Linux

Open Terminal en typ een van beide:

Md5sum [pad / naar / bestand] Sha1sum [pad / naar / bestand]

of

Sha256sum [pad / naar / bestand]

Bijvoorbeeld:

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

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