Cryptology Academy · Oppitunti

Hashien käyttötavat: tarkistussummat, HMAC ja Git

Tutustukaa hashien käyttöön salasanojen tallennuksessa, tietojen eheydessä ja versionhallinnassa

Oppitunti 4/413 vaihetta

Hashien käyttötavat: tarkistussummat, HMAC ja Git on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Cryptology Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Tervetuloa

Hash-funktioilla on oikeissa järjestelmissä kolme tärkeää tehtävää: tietojen eheyden tarkistaminen (tarkistussummat), viestien autentikointi (HMAC) ja koodihistorian seuraaminen (Git).

Tiedostojen tarkistussummat

Kun lataatte ohjelmiston, tarjoaja julkaisee sen SHA-256-hash-arvon. Lataamisen jälkeen laskette hash-arvon ja vertaatte sitä julkaistuun arvoon: sha256sum ubuntu-24.04.iso # Should match published value exactly

Tietojen eheys tallennuksessa

ZFS:n ja Btrfs:n kaltaiset tietokannat laskevat SHA-256-tarkistussumman jokaiselle tietolohkolle. Lukemisen yhteydessä tarkistussumma varmennetaan. Huomaamaton levyn korruptoituminen havaitaan automaattisesti.

Sisältöosoitteinen tallennus

Git, IPFS ja Docker käyttävät sisältöosoitteista tallennusta: kunkin objektin nimi ON sen hash-arvo. SHA-256(content) = yksilöllinen tunniste. Samanlainen sisältö tallennetaan vain kerran, ja kaksoiskappaleet havaitaan välittömästi.

Gitin SHA-1:n (ja SHA-256:n) käyttö

Jokaisella Git-commitilla, puulla ja blobilla on SHA-1-hash-arvo. Commitin hash-arvo kattaa seuraavat: sisältö + metatiedot + isäntäcommitien hash-arvot. Minkä tahansa bitin muuttaminen muuttaa hash-arvoa, joten historian luvaton muuttaminen voidaan havaita.

HMAC-rakenne

HMAC-SHA256(key, msg) = SHA256((key' XOR opad) || SHA256((key' XOR ipad) || msg)) Kaksoishajautukseen perustuva rakenne ja XOR-pehmusteet estävät pituudenlaajennushyökkäykset avainnettuja MAC-koodeja vastaan.

HMAC Pythonissa

import hmac, hashlib def create_mac(key: bytes, msg: bytes) -> str: return hmac.new(key, msg, hashlib.sha256).hexdigest() mac = create_mac(b'secret', b'Hello!')

Vakioaikainen vertailu

Vertailkaa HMAC-arvoja aina funktiolla hmac.compare_digest(), ÄLKÄÄ operaattorilla ==. Ajoitushyökkäykset: aikaisin päättyvä vertailu paljastaa täsmäävän osuuden pituuden. hmac.compare_digest vertaa kaikkia tavuja vakioajassa.

HMAC API-autentikoinnissa

GitHubin webhookit: jokainen hyötykuorma allekirjoitetaan HMAC-SHA256:lla jaetun salaisuuden avulla. Vastaanottakaa webhook → laskekaa HMAC → verratkaa sitä X-Hub-Signature-256-otsakkeeseen.

Salasanan tarkistaminen hash-arvon avulla

Kirjautumisen kulku: käyttäjä lähettää salasanan → palvelin laskee hash-arvon → vertaa sitä tallennettuun hash-arvoon. Palvelin ei koskaan pura salausta, vaan hajauttaa salasanan uudelleen ja vertaa tulosta. Tallennettu hash-arvo ei paljasta salasanaa.

Merkl-puiden sovellukset

Merkl-puut muodostavat datasta hash-puun. Bitcoin-lohkot sisältävät kaikkien tapahtumien Merkle-juuren. Certificate Transparency käyttää Merkl-puita väärentämisen paljastaviin tarkastuslokeihin.

Pikatarkistus

Miksi HMAC-vertailuissa on käytettävä funktiota hmac.compare_digest() operaattorin == sijaan?

Kertaus

Erinomaista! Olette soveltaneet hash-funktioita käytännön tilanteissa. Seuraavaksi syvennymme AES:ään, maailman laajimmin käytettyyn symmetriseen salausstandardiin.
Aloita maksutta

Opi Cryptology Academy tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
67
Oppitunnit
261

Usein kysytyt kysymykset

Onko oppitunti ”Hashien käyttötavat: tarkistussummat, HMAC ja Git” ilmainen?

Kyllä – oppitunnin ”Hashien käyttötavat: tarkistussummat, HMAC ja Git” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Cryptology Academy-kurssin, päivitä CoddyKit PROhon. Cryptology Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Hashien käyttötavat: tarkistussummat, HMAC ja Git”?

Tutustukaa hashien käyttöön salasanojen tallennuksessa, tietojen eheydessä ja versionhallinnassa Harjoittelet Cryptology Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cryptology Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Cryptology Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.

Kuinka kauan ”Hashien käyttötavat: tarkistussummat, HMAC ja Git”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Cryptology Academy-oppitunnilla?

Kyllä. Jokainen Cryptology Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Mikä tekee hash-funktiosta hyvän
  2. MD5: historia, käyttötavat ja rikkoutumisen syy
  3. SHA-1- ja SHA-2-perheet selitettyinä
  4. Hashien käyttötavat: tarkistussummat, HMAC ja Git
← Takaisin: Cryptology Academy