Kuvassa on osa EFF:n 1998 valmistamasta DES-algoritmin murtoon käytetystä laitteesta. Laite maksoi kokonaisuudessaan tuolloin 250 000 USD ja siinä oli 1500 *deep crack*-mikropiiriä, joita kuvan piirilevyssä on 32. Algoritmin ensimmäinen onnistunut murto tehtiin laitteella alle kolmessa päivässä käyttäen väsytyshyökkäystä.
**Väsytyshyökkäys** tai **raakahyökkäys** on kryptoanalyysihyökkäys, jossa yritetään järjestelmällisesti yrityksen ja erehdyksen kautta kokeilemalla löytää oikea salasana tai salausavain johonkin asiaan. Salasanaa saatetaan käyttää esim. kirjautumiseen johonkin käyttäjätunnukseen ja salausavainta tiedon salaukseen kiintolevyllä tai jollain muulla laitteella.

Myös nimeä **brute-force-hyökkäys** käytetään, koska englanninkielinen nimi käsitteelle on *brute-force attack*. Suomen valtionhallinnon suosittelema nimi on kuitenkin *väsytyshyökkäys*. Sanastokeskus TSK ry:n suosittelemat nimet ovat *väsytyshyökkäys* tai *raakahyökkäys*.

Useimmiten väsytyshyökkäys -käsitettä käytetään tietotekniikassa, hyökkäys tehdään tietokoneella ja hyökkäystä käyttävää tahoa kutsutaan hyökkääjäksi.

Ensimmäisenä edellytyksenä hyökkäyksen toimivuudelle on se, että hyökkääjä saa kokeilla salasanoja niin monta kertaa kuin haluaa. Toinen edellytys on se, että hyökkääjä pystyy kokeilemaan salasanoja mahdollisimman nopeasti kyllin lyhyessä ajassa. Jos hyökkäykseen menisi viikon sijaan vaikkapa miljardi vuotta, ei hyökkäyksen voida sanoa olevan toimiva.

Väsytyshyökkäys on usein käytännössä toimimaton menetelmä, mutta tämä on tapauskohtaista.

Hyökkäyksen estäminen
---------------------

Hyökkäystä käyttämällä voidaan yrittää päästä kirjautumaan johonkin käyttäjätunnukseen. Rajoittamalla sallittuja kirjautumisyrityksiä vain muutamaan kertaan, voidaan väsytyshyökkäys estää. Kirjautumiskertoja ei välttämättä tarvitse rajoittaa, jos kirjautumisen automatisointi on estetty esim. CAPTCHA-kyselyllä. Tämä voi olla joissain tilanteissa toivottavaa esim. palvelunestohyökkäysten estämiseksi. Useilla kirjautumisyrityksillä voitaisiin ehkä estää käyttäjän pääsy käyttäjätunnuksiin.

Jos hyökkäysyritysten lukumäärää tai nopeutta ei voida rajoittaa, voidaan hyökkäys estää käyttämällä kyllin pitkää ja satunnaista salasanaa. Tämä pidentää hyökkäyksen keston mahdottomaksi, esim. viikosta miljardiin vuoteen. Jotkin salausohjelmat pidentävät niihin syötetyn salasanan kryptografisten tiivistefunktioiden sekä suolaamisen avulla, joilla heikkokin salasana voi vahvistua.

Kaikki salaukset, paitsi one-time pad -salaus (OTP) oikein toteutettuna voidaan teoriassa murtaa väsytyshyökkäyksellä, jos hyökkääjällä on käytössään aikaa tai laskentatehoa äärettömästi. OTP on ainoa täysin murtovarma tiedon salausmenetelmä, jota vastaan väsytyshyökkäys tai mikään muukaan kryptoanalyysimenetelmä ei toimi. Väsytyshyökkäyksellä voidaan OTP-salaukseen löytää oikea salasana ja selvittää salattu teksti, mutta OTP-salauksen luonteen vuoksi mikä tahansa selville saatu salana ja teksti ovat yhtä oikein. Jos salattu teksti on esim. 20 merkkiä pitkä teksti *QesvdfD4s$#sqSbRf4At*, voidaan hyökkäyksen avulla tästä löytää viestit *salainen suunnitelma*, *kuukauden ostoslista* tai mikä tahansa muu yhtä pitkä viesti, joista kaikki ovat yhtä oikein.

Hyökkäyksen tehostaminen
------------------------

Jos hyökkäyskertoja ei ole rajattu, voidaan hyökkäystä tehostaa lisäämällä hyökkäystä suorittavan tietokoneen tai tietokoneiden laskentatehoa esim. supertietokoneiden, laskentaverkkojen tai mahdollisesti kvanttitietokoneiden avulla.

Tietokoneiden kehittyessä aiemmin vahvaksi koettu salaus saatetaan voida murtaa. Esim. toisen maailmansodan aikana Enigma-laitteilla salattuja viestejä on onnistuttu nykyään murtamaan hyödyntäen väsytyshyökkäystä.

Ihmiset käyttävät usein koneellisesti helposti arvattavia salasanoja, jotka pohjautuvat oikeisiin sanoihin (esim. musT1KKA) täysin satunnaisten merkkien sijaan (esim. QxM"90Sk). Salasanat ovat myös usein lyhyitä. Hyökkäystä voidaan siksi huomattavasti nopeuttaa huonosti toteutetuissa tiedon salausjärjestelmissä käyttämällä esim. sanakirjasta löytyviä sanoja. Sanat voidaan syöttää tekstitiedostona tietokoneohjelmaan, joka yhdistelee ja kokeilee niitä järjestelmällisesti kunnes salaus on murrettu. Menetelmää kutsutaan *sanakirjahyökkäykseksi*, eikä se suoranaisesti ole väsytyshyökkäys, vaikka onkin samankaltainen. Hyvä salausjärjestelmä voi kuitenkin käyttää useasti perättäin toistettuja (iteroituja) tiivistefunktioita syötetyn salasanan muovaamiseen täysin satunnaisen näköiseksi. Sanakirjahyökkäystä ei voida tällöin käyttää.

Sanakirjahyökkäyksen sijaan saatetaan voida käyttää esilaskettujen tiivistefunktioiden listaa *rainbow table* -hyökkäyksessä. Hyökkäystä voidaan käyttää erityisesti jos salausavaimen tiedetään olevan tietyn pituinen ja hyökkäys halutaan toteuttaa mahdollisimman nopeasti esim. jonkin tietomurron yhteydessä. Tämäkään hyökkäys ei ole väsytyshyökkäys ja on suoritustavaltaan päinvastainen: rainbow table -hyökkäyksessä tiivisteiden laskenta suoritetaan ennen salauksen murtoyritystä ja tiivisteet talletetaan murtoyritystä varten. Väsytyshyökkäyksessä puolestaan kokeiltavia tiivisteitä lasketaan murtoyrityksen aikana. Rainbow table -hyökkäys voidaan yksinkertaisesti estää käyttämällä useita iteraatioita (jolloin listan laskenta käy mahdottomaksi) ja/tai erityisesti lisäämällä salasanaan *suola* (eng. *salt*). Suolalla tarkoitetaan satunnaista merkkijonoa, jonka kanssa syötetty salasana käsitellään tiivistefunktiolla. Sama suola liitetään kuhunkin tiivistefunktion iteraatioon. Koska suola vaihtelee salausjärjestelmästä riippuen, ei hyökkääjä todennäköisesti tunne sitä ainakaan etukäteen, jolloin tiivistefunktiolistaa ei voida laskea etukäteen.

Katso myös
----------

* Bitcoin - kryptovaluutta, jonka louhinta on eräänlaista väsytyshyökkäystä
* DES - väsytyshyökkäyksellä murrettu salausmenetelmä
* FLOPS - tietokoneiden laskentakyvyn yksikkö
* Kvanttisalaus - teoriassa murtovarma viestintämenetelmä
* Aircrack-ng - mm. WLAN väsytyshyökkäysohjelma

Lähteet
-------

1. ↑  Frequently Asked Questions (FAQ) About the Electronic Frontier Foundation's "DES Cracker" Machine *web.archive.org*.  7.5.2017. Viitattu 11.4.2018.
2. 1 2  VAHTI 8/2008 Valtionhallinnon tietoturvasanasto Valtiovarainministeriö. Viitattu 11.4.2018.
3. 1 2 3 4 5  Tietotekniikan termitalkoot Sanastokeskus TSK ry.  Arkistoitu 11.4.2018. Viitattu 11.4.2018.
4. 1 2 3  Saikat Chakrabarti, Mukesh Singhal: Password-Based Authentication: Preventing Dictionary Attacks.  *Computer*, 2007, nro 6, s. 68–74. doi:10.1109/mc.2007.216. ISSN 0018-9162. Artikkelin verkkoversio.
5. ↑  Rohini B. Varne, R. V. Mane: CAPTCHA: A robust approach to resist online password guessing attacks.  *2014 International Conference on Advances in Communication and Computing Technologies*, 2015, 1. vsk, nro 7.  IEEE. doi:10.1109/eic.2015.7230731. Artikkelin verkkoversio.
6. 1 2 3  Aaron L.-F. Han, Derek F. Wong, Lidia S. Chao: Password Cracking and Countermeasures in Computer Security: A Survey.  *arXiv:1411.7803 [cs]*, 28.11.2014. Artikkelin verkkoversio.
7. ↑  Reynard, Robert: *Secret code breaker II : a cryptanalyst's handbook*, s. 86. Jacksonville, Florida: Smith & Daniel Marketing, 1997. OCLC: 39781125. ISBN 1889668060. Teoksen verkkoversio.
8. ↑  Distributed computing cracks Enigma code *cnet.com*.  27.2.2006. Viitattu 12.4.2018.
9. ↑  M4 Message Breaking Project *bytereef.org*.  Arkistoitu 27.9.2017. Viitattu 12.4.2018.
10. 1 2  Kaliski, Burt: RFC 2898 – PKCS #5: Password-Based Cryptography Specification, Version 2.0 *ietf.org*.  2000.  Arkistoitu 1.3.2018.