Cyber Security Academy · Oppitunti

Hajautusfunktiot: SHA-256 ja sen seuraajat

Tutustutte kryptografisten hajautusfunktioiden ominaisuuksiin: törmäyskestävyyteen, esikuvakestävyyteen ja käyttökohteisiin.

Oppitunti 3/413 vaihetta

Hajautusfunktiot: SHA-256 ja sen seuraajat on ilmainen Cyber Security Academy-oppitunti CoddyKitissä. Tämä on oppitunti 3/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Cyber Security Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.

Mikä on kryptografinen hajautusfunktio

Kryptografinen hajautusfunktio ottaa mielivaltaisen pituisen syötteen ja tuottaa kiinteän pituisen tulosteen (tiivisteen). Sen on oltava deterministinen ja nopeasti laskettava sekä esikuvahyökkäyksiä ja törmäyksiä kestävä (kahta saman hajautusarvon tuottavaa syötettä ei saa voida löytää). Lisäksi sen on oltava avalancherakenteinen: pieni muutos tuottaa täysin erilaisen hajautusarvon.

SHA-2-perhe

SHA-2-perhe (NSA:n suunnittelema ja NIST:n standardoima) sisältää:

  • SHA-256 — 256-bittinen tuloste, laajasti käytetty
  • SHA-384 — 384-bittinen tuloste
  • SHA-512 — 512-bittinen tuloste, nopeampi 64-bittisillä suorittimilla

SHA-256:ta käytetään Bitcoinissa, TLS-varmenteissa ja Git-committien tunnisteissa.

SHA-3-perhe

SHA-3 käyttää täysin erilaista rakennetta kuin SHA-2 (Keccak-sienirakenne). Se standardoitiin varamenetelmäksi siltä varalta, että SHA-2:sta löydettäisiin heikkouksia. SHA-3:a ei ole otettu laajasti käyttöön, mutta sitä käytetään joissakin kryptografisissa protokollissa ja laitteistoissa.

MD5 ja SHA-1: rikkinäisiä

Älkää koskaan käyttäkö MD5:tä tai SHA-1:tä turvallisuustarkoituksiin:

  • MD5: törmäys voidaan löytää sekunneissa tavanomaisella laitteistolla
  • SHA-1: ensimmäinen käytännöllinen törmäys osoitettiin vuonna 2017 (SHAttered)

Ne ovat edelleen hyödyllisiä turvallisuuteen liittymättömissä tarkistussummissa (tiedostojen deduplikointi), mutta eivät eheyden takaamiseen.

Hajautusarvojen käyttökohteet: tiedostojen eheys

Latausten tarkistaminen:

sha256sum ubuntu-24.04.iso
# Compare with the hash published on the official site
# If hashes match, file is unmodified

Hajautusarvojen käyttökohteet: digitaaliset allekirjoitukset

Asiakirjoja allekirjoitettaessa koko asiakirjaa ei salata yksityisellä avaimella (se olisi liian hidasta). Sen sijaan:

  1. Asiakirjasta lasketaan hajautusarvo (nopeaa)
  2. Hajautusarvo salataan yksityisellä avaimella (pieni ja nopea)
  3. Vastaanottaja purkaa salauksen julkisella avaimella ja vertaa tulosta itse laskemaansa hajautusarvoon

HMAC: avaimellinen hajautus eheyttä varten

HMAC (Hash-based Message Authentication Code) yhdistää hajautusfunktion ja salaisen avaimen todennustunnisteen tuottamiseksi. Sitä käytetään sekä tietojen eheyden että aitouden tarkistamiseen. HMAC:ia käytetään JWT:issä, API-todennuksessa ja TLS:ssä.

import hmac, hashlib
mac = hmac.new(key, message, hashlib.sha256).hexdigest()

Hajautusarvon pituuden laajennushyökkäykset

SHA-2 (Merkle–Damgård-rakenne) on altis pituuden laajennushyökkäyksille: jos tiedätte arvon H(secret+message), voitte laskea arvon H(secret+message+extension) tuntematta salaista arvoa. HMAC estää tämän. SHA-3 ei ole altis tälle hyökkäykselle.

Rainbow-taulukot ja suolaus

Rainbow-taulukko esilaskentaa hajautusarvojen ja syötteiden välisiä vastaavuuksia nopeaa hakua varten. Suolaus estää tämän: yksilöllisen satunnaisarvon lisääminen kuhunkin syötteeseen tekee jokaisesta hajautusarvosta yksilöllisen, joten jokaista tietuetta varten tarvitaan täysi brute force -hyökkäys hakutaulukon käytön sijaan.

Merkle-puut

Merkle-puu on hajautusarvoista muodostuva puu, jossa jokainen isäntäsolmu on sen lapsisolmujen hajautusarvo. Niitä käytetään Bitcoin-lohkoketjussa, Gitissä ja varmenteiden läpinäkyvyyslokeissa suurten tietoaineistojen tehokkaaseen tarkistamiseen ilman, että kaikkea tarvitsee ladata.

Sopivan hajautusfunktion valinta

Valintaopas:

  • Yleinen eheys ja tarkistussummat: SHA-256
  • Salasanojen tallennus: Argon2id, bcrypt (EI suoraan SHA-256:ta)
  • Viestien todennus: HMAC-SHA-256
  • Digitaaliset allekirjoitukset: SHA-256 tai SHA-384 taustalla käytettävänä hajautusfunktiona
  • Vältettävät: MD5 ja SHA-1 turvallisuussovelluksissa

Pikatarkistus: hajautusfunktiot

Mikä rakenne estää pituuden laajennushyökkäykset ja edellyttää samalla salaista avainta?

Oppitunnin yhteenveto

Hajautusfunktiot tuottavat kiinteän pituisia tiivisteitä mielivaltaisista syötteistä. SHA-256 ja SHA-512 ovat nykyisiä standardeja. MD5 ja SHA-1 ovat turvallisuuskäytössä murrettuja. HMAC lisää salaisen avaimen todennetun eheyden varmistamista varten. Käyttäkää salasanoille Argon2:ta tai bcryptiä. Merkle-puut laajentavat hajautuksen tehokkaaksi tavaksi tarkistaa suuria tietoaineistoja.

Aloita maksutta

Opi Cyber Security 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
76
Oppitunnit
303

Usein kysytyt kysymykset

Onko oppitunti ”Hajautusfunktiot: SHA-256 ja sen seuraajat” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Cyber Security Academy-oppimispolun 3 oppituntia, myös oppitunnin “Hajautusfunktiot: SHA-256 ja sen seuraajat”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Cyber Security Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Hajautusfunktiot: SHA-256 ja sen seuraajat”?

Tutustutte kryptografisten hajautusfunktioiden ominaisuuksiin: törmäyskestävyyteen, esikuvakestävyyteen ja käyttökohteisiin. Harjoittelet Cyber Security Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Cyber Security Academy-opiskelun?

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

Kuinka kauan ”Hajautusfunktiot: SHA-256 ja sen seuraajat”-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ä Cyber Security Academy-oppitunnilla?

Kyllä. Jokainen Cyber Security 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. Symmetrinen salaus: AES ja vuorosalaimet
  2. Asymmetrinen salaus: RSA ja elliptiset käyrät
  3. Hajautusfunktiot: SHA-256 ja sen seuraajat
  4. Digitaaliset allekirjoitukset ja varmenteet
← Takaisin: Cyber Security Academy