MS-CHAP ( Microsoft Challenge Handshake Authentication Protocol ) on protokolla, jolla todennetaan palvelimen ja asiakkaan väliset yhteydet välittämättä viimeksi mainitun salasanaa haaste-vastausmekanismin avulla . MS- CHAP on CHAP -protokollan toteutus, joka tarjoaa mekanismin todennusvirhesanomien palauttamiseen ja mahdollisuuden vaihtaa käyttäjän salasanaa. [1] [2] Lisäksi MS-CHAP tarjoaa salausavainten luomisen MPPE- protokollalle , jota käytetään yhdessä Microsoft PPTP :n kanssa [2] [3] .
MS-CHAP on versio CHAP-protokollasta, jonka Microsoft on kehittänyt vuonna 1997 Windows 3.1 :lle ja Windows 95 :lle . Sitten MS-CHAP nimettiin uudelleen MS-CHAPv1:ksi ja korvattiin MS-CHAPv2:lla protokollan tietoturvavirheiden vuoksi, joista suurin oli, että asiakas lähetti vastauksen, joka sisälsi kaksi arvoa: "LAN Manager Challenge Responce" ja "NT Challenge Responce", joka tehtiin ylläpitämään palvelimelle tallennettuja käyttäjätilejä, jotka on luotu ennen Windows NT:n tiivisteen tuloa ja joita ei ole vielä päivitetty. [1] Molemmat arvot laskettiin käyttämällä samaa mekanismia, mutta käyttämällä eri hajautusarvoja: LAN Manager ja NT LAN Manager , joissa ensimmäinen tiiviste oli huomattavasti heikompi kuin toinen eikä tarjonnut riittävää suojaustasoa. MS-CHAPv2 esiteltiin vuonna 1998 Windows 98 :n ja Windows NT 4.0 SP4:n julkaisun myötä. Vuonna 1999 Bruce Schneier , David Wagner ja Peter Zatko julkaisivat tietoturvatutkimuksen MS-CHAPv2-protokollasta [3] , jossa tunnistettiin protokollan haavoittuvuudet ja hyökkäysmenetelmät. Microsoft poisti MS-CHAPv1-protokollan käytöstä Windows Vistassa vuonna 2007. [4] Vuodesta 2012 lähtien Microsoft on varoittanut, että PPTP- ja MS-CHAPv2-protokollien yhdistelmän käyttäminen VPN :n ensisijaisena todennusmekanismina on turvatonta, ja suosittelee PEAP -MS-CHAPv2 -todennusmekanismin tai L2TP- , IKEv2- , SSTP - VPN-tunneleiden käyttöä. MS-CHAPv2- tai EAP -MS-CHAPv2 -protokollien yhteydessä. [5]
MS-CHAPv1 on CHAP : n kaltainen todennusmekanismi , mutta siinä on tärkeä ero: CHAPissa palvelimen on tallennettava asiakkaan salasana palautuvasti salatussa muodossa, jonka salaus puretaan aina, kun asiakas todentaa, kun taas MS-CHAP v1:ssä palvelin tarvitsee vain MD4 :n tälle -salasanahajautusmuodolle. [6]
MS-CHAPv1-mekanismi koostuu seuraavista vaiheista [6] [3] :
MS-CHAP v2 korjaa joitain MS-CHAP v1:n puutteita, kuten seuraavassa taulukossa näkyy. [7]
MS-CHAP-protokollan version 1 ongelma | MS-CHAP-protokollan versio 2 ratkaisu |
---|---|
LAN Manager -vastauksen salaus, jota käytetään taaksepäin yhteensopivuuteen vanhempien Microsoftin etäkäyttöasiakkaiden kanssa, on kryptografisesti haavoittuvainen. |
MS-CHAP v2 ei enää salli salattuja LAN Manager -vastauksia, koska LAN Managerin tiiviste on paljon heikompi tiivistetoiminto ja se voidaan murtaa ja käyttää sitten Windows NT -tiivisteen murtamiseen. Siten Microsoft on tehnyt hajota ja hallitse -hyökkäyksen mahdottomaksi poistamalla LAN Managerin tiivisteen MS-CHAPv2:sta [3] . |
LAN Managerin salasanan muutoksen salaus on kryptografisesti haavoittuvainen. | MS-CHAP v2 ei enää salli salatun LAN Managerin salasanan vaihtamista. |
Vain yksisuuntainen todennus on mahdollista. Etäkäyttöasiakas ei voi tarkistaa, muodostaako se yhteyden organisaationsa etäkäyttöpalvelimeen vai naamioituneeseen palvelimeen. |
MS-CHAP v2 tarjoaa kaksisuuntaisen todennuksen, joka tunnetaan myös nimellä keskinäinen todennus. Etäkäyttöasiakas saa vahvistuksen, että etäkäyttöpalvelimella, johon se yrittää muodostaa yhteyden, on pääsy käyttäjän salasanaan. |
40-bittistä salausta käytettäessä salausavain perustuu käyttäjän salasanaan. Aina kun käyttäjä muodostaa yhteyden samalla salasanalla, luodaan sama salausavain. |
MS-CHAP v2:ssa salausavain perustuu aina käyttäjän salasanaan ja mielivaltaiseen kyselymerkkijonoon. Joka kerta kun käyttäjä muodostaa yhteyden samalla salasanalla, luodaan erilainen salausavain. |
Yhteyden kautta molempiin suuntiin lähetettävä data käyttää yhtä salausavainta. |
MS-CHAP v2 -protokollaa käytettäessä tiedon vastaanottamista ja lähettämistä varten luodaan erilliset salausavaimet. |
MS-CHAPv2-protokollan toimintamekanismi [2] [3] :
MS-CHAPv2 on Microsoftin PPTP-protokollan todennusprotokolla, jonka salausprotokollana toimii MPPE . MPPE vaatii MS-CHAPv2-todennusprosessin luomien 40- tai 128-bittisten salausavaimien käyttöä.
MPPE-avainten johtaminen MS-CHAPv2-tunnistetiedoista toimii näin [3] :
40-bittisille istuntoavaimille kohta (2) toimii seuraavasti:
128-bittisille istuntoavaimille prosessi kohdassa (2) on seuraava:
"Magic"-vakiot ovat erilaisia riippuen siitä, mihin suuntaan avainta käytetään - salatakseen liikennettä asiakkaalta palvelimelle tai palvelimelta asiakkaalle.
PPP CHAP -haastepaketti [2]
Vastauspaketti [2]
Vastauspaketilla on sama rakenne kuin haastepaketilla.
Menestyspaketti [2]
Viesti-kenttä sisältää 42-tavun vastausmerkkijonon. Viestikentän muoto:S=<auth_string> M=<message>
Vikapaketti [2]
Failure-paketilla on sama rakenne kuin Onnistumispaketilla. Muotoiltu teksti kuitenkin tallennetaan Viesti-kenttään, mikä, vastoin tavallisia CHAP-sääntöjä, vaikuttaa protokollan toimintaan. Viestikentän muoto: E=eeeeeeeeee R=r C=cccccccccccccccccccccccccccccccc V=vvvvvvvvvv M=<msg>
Tässä algoritmissa on useita ongelmia, joiden yhdistelmä voi johtaa sen onnistuneeseen murtamiseen .
"Challenge Response" -vastauksen hankkimismenettely luo vakavan heikkouden MS-CHAP-protokolliin: sen avulla hyökkääjä voi nopeuttaa sanakirjahakua tekijällä , millä on melko vaikuttava vaikutus, kun otetaan huomioon useimpien käyttäjien salasanojen suhteellisen pieni entropia.
"Authenticator Challenge", "Peer Authenticator Challenge" ja "UserName" tarjotaan selkeästi ja niitä voidaan salakuunnella, mikä tarkoittaa, että "Challenge Hash" voidaan helposti saada julkisesti saatavilla olevista tiedoista. On hyvä mahdollisuus, että salasana voidaan palauttaa, koska monet salasanat ovat sanakirjasanoja tai muuten helposti arvattavia. Ensinnäkin on huomattava, että Z:n arvo (määritetty vaiheessa (3c)) voidaan helposti palauttaa. Koska on olemassa vain mahdollisia vaihtoehtoja Z (koska Z :n kahdelle ensimmäiselle tavulle on valintoja) ja meillä on tunnettu selväteksti ("Challenge Hash")-salatekstipari (DESz("Challenge Hash")), me voi toistaa jokaisen Z-vaihtoehdon, mikä paljastaa salasanan NT-hajautusarvon kaksi viimeistä tavua.
Sanakirjan toistamiseksi suoritetaan esilaskenta : jokainen mahdollinen salasana tiivistetään. Hajautustulokset lajitellaan kahden viimeisen tavun mukaan, ja sitten kun MS-CHAP-vaihto on näkyvissä ja NT-tiivisteen kaksi viimeistä tavua voidaan palauttaa (yllä olevalla menetelmällä), kaikki vastaavat merkinnät valitaan hash-luettelosta. . Tämä antaa hyökkääjälle joukon todennäköisiä salasanoja, jotka antavat halutun arvon kahdelle viimeiselle NT-hajautustavulle. Seuraavaksi jokainen näistä vaihtoehdoista tarkistetaan raa'alla voimalla: sen "Haastevastaus" lasketaan ja verrataan ylikuudeltuun arvoon.
Näin ollen yllä ehdotettu optimoitu hyökkäys on noin kertaa nopeampi kuin tavallinen sanakirjahyökkäys, jossa kaikki salasanat tarkistetaan. Se koskee sekä MS-CHAPv1:tä että MS-CHAPv2:ta. Tällainen haavoittuvuus on kuitenkin paljon tärkeämpi MS-CHAPv2:lle, koska MSCHAPv1:n tapauksessa on helpompi hyökätä LanManager-tiivistettä vastaan kuin NT-tiivistettä vastaan.
Raaka voimahyökkäys DES -avaimia vastaan [9]
"Challenge Response" -generointialgoritmi on heikko lenkki, vaikka salasanat sisältävät riittävän entropian. NT-hajautus voidaan palauttaa arvaamalla kaksi tavua kolmannesta DES - avaimesta, mikä vaatii laskennan, ja kahdella raakavoimahakulla ensimmäiselle ja toiselle DES-avaimelle. Jokainen DES-avain on 56-bittinen, mutta jotta et mene yli kahden ensimmäisen avaimen vaihtoehtoja, voit käyttää sitä tosiasiaa, että molemmat DES-operaatiot salaavat saman "Challenge Hash" -hajasteen eri avaimilla. Siksi riittää, että suoritat vain salaustoiminnot:
desKeyX = nolla ; desKeyY = nolla ; for ( pitkä i = 0 ; i < 2 ^ 56 ; i ++ ) { tulos = DES ( avain [ i ] , selkeä teksti ); if ( tulos == salateksti1 ) { desKeyX = tulos ; } else if ( tulos == salateksti2 ) { desKeyY = tulos ; } }Kun NT-tiiviste on palautettu, kaikki salatut istunnot voidaan lukea ja todennusjärjestelmä voidaan rikkoa ilman vaivaa. Tämä osoittaa, että jopa käytettäessä 128-bittisiä RC4 -avaimia MPPE:lle, MS-CHAP tarjoaa vain 56-bittistä suojausta vastaavan.
Protokolla heikentää 40-bittisiä MPPE - avaimia asettamalla 64-bittisen RC4 - avaimen ylemmän 24 bitin arvoksi 0xD1269E. Tiedetään, että jos jollakulla on oikeus valita RC4-avaimen korkeat bitit, hän voi määrätä käyttäjälle heikon avainten luokan RC4:lle. Joten jos MS-CHAP:n kehittäjät halusivat rakentaa porsaanreiän protokollaan, he voisivat käyttää etuliitettä heikentääkseen RC4:ää.
Tilastollisissa testeissä havaittiin, että näppäimillä, jotka alkavat 0xD1269E, ensimmäinen ja toinen tavu RC4:n lähdössä saavat arvot 0x09ja 0x00todennäköisyydellä 0,0054 ja 0,0060, vastaavasti, mikä on huomattavasti suurempi kuin todennäköisyys 1 /256 = 0,0039, mikä voidaan odottaa hyvältä salaukselta.