Cryptology Academy · Oppitunti

MAC-käsitteet ja pituudenjatkamishyökkäykset

Selittäkää, miksi salaisen etuliitteen lisääminen ei suojaa pituudenjatkamishyökkäyksiltä.

Oppitunti 1/413 vaihetta

MAC-käsitteet ja pituudenjatkamishyökkäykset on ilmainen Cryptology Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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

Viestien autentikointikoodit (MAC-koodit) tarjoavat eheyden ja aitouden jaetun salaisen avaimen avulla. Tässä oppitunnissa opimme MAC-koodien toimintaperiaatteet ja ominaisuudet sekä naiiveihin avainnettuihin hajautuksiin liittyvän kriittisen haavoittuvuuden.

Mikä on MAC-koodi?

MAC-koodi on viestistä ja salaisesta avaimesta laskettu lyhyt autentikointikoodi. Saman avaimen omaava vastaanottaja laskee MAC-koodin uudelleen ja tarkistaa sen. Tämä estää väärentämisen ilman avainta.

MAC verrattuna hajautukseen ja allekirjoitukseen

Hajautus: ei avainta, julkinen, tarjoaa vain eheyden. MAC: jaettu salaisuus, symmetrinen, tarjoaa eheyden + aitouden. Digitaalinen allekirjoitus: yksityinen avain, epäsymmetrinen, lisää kiistämättömyyden. Vain allekirjoitukset tarjoavat kiistämättömyyden.

Väärentämättömyys

Suojatun MAC-koodin on oltava eksistentiaalisesti väärentämätön valittujen viestien hyökkäyksessä (EUF-CMA): hyökkääjä, joka voi pyytää MAC-koodin mille tahansa viestille, ei voi väärentää kelvollista MAC-koodia uudelle viestille, jota ei ole aiemmin pyydetty.

Naiivi avainnettu hajautus: etuliite-MAC

Naiivi yritys: MAC(K, M) = H(K || M). Se näyttää turvalliselta, mutta on altis pituuden laajennushyökkäyksille Merkle–Damgård-hajautusfunktioissa (SHA-256, SHA-512, MD5).

Pituuden laajennushyökkäys

SHA-256:n tila viestin M hajauttamisen jälkeen on pelkkä H(M). Kun H(K || M) tunnetaan, hyökkääjä voi laskea arvon H(K || M || padding || extra) mille tahansa extra-arvolle tuntematta K:ta. Hän pidentää viestiä liittääkseen siihen uutta dataa.

Hyökkäyksen käytännön vaikutus

Flickr (2009): API käytti muotoa H(K || params). Hyökkääjät liittivät autentikoituihin pyyntöihin merkkijonon &api_sig=forgery. Tämän seurauksena luvattomat API-kutsut näyttivät kelvollisilta. Kyseessä oli puhdas pituuden laajennushyökkäys.

Myös jälkiliite-MAC epäonnistuu

MAC(K, M) = H(M || K): altis offline-hyökkäyksille. Hyökkääjä laskee H(message)-arvon ilman K:ta ja etsii sitten syntymäpäivähyökkäyksellä M':n, jolla on sama hajautusarvo. Avain liitetään törmäyksen jälkeen.

Miksi HMAC korjaa ongelman

HMAC soveltaa hajautusta kahdesti käyttäen erilaisia avaintäytteitä: HMAC(K, M) = H((K⊕opad) || H((K⊕ipad) || M)) Sisäinen hajautus tuottaa arvon H(ipad_key || M). Ulompi hajautus ympäröi sen opad_key-avaimella. Pituuden laajennus ei onnistu, koska hyökkääjä ei voi asettaa ulomman hajautuksen alkutilaa.

SHA-3 ja pituuden laajennus

SHA-3 käyttää sienirakennetta, joka on luonnostaan immuuni pituuden laajennushyökkäyksille. H_SHA3(K || M) on kelvollinen yksinkertainen MAC-rakenne. SHA-2 ei ole — käyttäkää SHA-2:n kanssa aina HMACia.

Aikahyökkäykset MAC-varmennuksessa

Ensimmäiseen eroon lopetettava MAC-vertailu (==) vuotaa ajoitustietoa. ”Oikean” ensimmäisen tavun käsittely kestää hieman kauemmin kuin ”väärän” tavun. 256 kyselyn jälkeen ensimmäinen tavu on selvitetty. Seuraavien 256 kyselyn jälkeen toinen. Koko MAC palautuu 16×256 kyselyllä.

Pikatarkistus

Miksi MAC(K, M) = SHA256(K || M) ei ole turvallinen?

Kertaus

Pituuden laajennushyökkäykset osoittavat, miksi naiivit avainnetut hajautukset eivät toimi. Seuraavaksi tarkastelemme HMAC-rakennetta ja sen turvallisuustodistusta.
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 ”MAC-käsitteet ja pituudenjatkamishyökkäykset” ilmainen?

Kyllä – oppitunnin ”MAC-käsitteet ja pituudenjatkamishyökkäykset” 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 ”MAC-käsitteet ja pituudenjatkamishyökkäykset”?

Selittäkää, miksi salaisen etuliitteen lisääminen ei suojaa pituudenjatkamishyökkäyksiltä. 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 1/4.

Kuinka kauan ”MAC-käsitteet ja pituudenjatkamishyökkäykset”-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. MAC-käsitteet ja pituudenjatkamishyökkäykset
  2. HMAC-rakenne ja turvallisuustodistus
  3. HMAC-ohjelmointirajapinnoissa: pyyntöjen allekirjoittaminen
  4. CMAC ja Poly1305: lohkosalaimiin perustuvat MAC:t
← Takaisin: Cryptology Academy