MS-CHAP

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 31. oktober 2020; verifikation kræver 1 redigering .

MS-CHAP ( Microsoft Challenge Handshake Authentication Protocol ) er en  protokol til autentificering af forbindelser mellem en server og en klient uden at videregive adgangskoden til sidstnævnte ved hjælp af challenge-response-mekanismen . MS- CHAP er en implementering af CHAP -protokollen, der giver en mekanisme til at returnere godkendelsesfejlmeddelelser og muligheden for at ændre en brugers adgangskode. [1] [2] Derudover leverer MS-CHAP krypteringsnøglegenerering til MPPE -protokollen , som bruges sammen med Microsoft PPTP [2] [3] .

Historie

MS-CHAP er en version af CHAP-protokollen udviklet af Microsoft i 1997 til Windows 3.1 og Windows 95 . Derefter blev MS-CHAP omdøbt til MS-CHAPv1 og erstattet af MS-CHAPv2 på grund af protokolsikkerhedsfejl, hvoraf den vigtigste var, at klienten sendte et svar indeholdende to værdier: "LAN Manager Challenge Responce" og "NT Challenge Response", som blev gjort for at vedligeholde brugerkonti gemt på serveren, som blev oprettet før fremkomsten af ​​Windows NT-hash og endnu ikke er blevet opdateret. [1] Begge værdier blev beregnet ved hjælp af den samme mekanisme, men ved hjælp af forskellige hashes: LAN Manager og NT LAN Manager , hvor den første hash var væsentligt svagere end den anden og ikke gav et tilstrækkeligt sikkerhedsniveau. MS-CHAPv2 blev introduceret i 1998 med udgivelsen af ​​Windows 98 og Windows NT 4.0 SP4. I 1999 offentliggjorde Bruce Schneier , David Wagner og Peter Zatko en sikkerhedsundersøgelse af MS-CHAPv2-protokollen [3] , der identificerede protokolsårbarheder og angrebsmetoder. Microsoft fjernede MS-CHAPv1-protokollen fra brug i Windows Vista i 2007. [4] Siden 2012 har Microsoft advaret om, at det er usikkert at bruge en kombination af PPTP- og MS-CHAPv2-protokoller som den primære autentificeringsmekanisme for VPN , og anbefaler at bruge PEAP -MS-CHAPv2-godkendelsesmekanismen eller at bruge L2TP , IKEv2 , SSTP VPN-tunneler i forbindelse med MS-CHAPv2- eller EAP -MS-CHAPv2 -protokollerne. [5]

MS-CHAP v1

MS-CHAPv1 er en autentificeringsmekanisme, der ligner CHAP , men med en vigtig forskel: i CHAP skal serveren gemme klientens adgangskode i en reversibelt krypteret form, som dekrypteres hver gang klienten godkender, mens i MS-CHAP v1, serveren behøver kun MD4 til denne -password hash. [6]

MS-CHAPv1-mekanismen består af følgende trin [6] [3] :

  1. Klienten sender en login-anmodning til serveren.
  2. Serveren svarer med et 8-byte tilfældigt svar (Challenge).
  3. Klienten bruger LAN Manager-hashen til sin adgangskode, tilføjer fem null-bytes til 16-byte-resultatet og deler den resulterende 21-byte streng i tre 7-byte dele for at opnå tre nøgler til DES. Hver af disse nøgler bruges til at kryptere udfordringen sendt af serveren. Alle tre resulterende chifferblokke kombineres til en 24-byte LMChallengeResponse. Klienten opretter også en anden 24-byte NTChallengeResponse ved hjælp af Windows NT-hashen og den samme procedure. Derefter sendes både LMChallengeResponse og NTChallengeResponse værdierne samt 1-byte Use NTChallengeResponse flaget til serveren.
  4. Serveren bruger hashen af ​​klientadgangskoden, som er gemt i databasen, til at dekryptere det modtagne svar. Hvis de dekrypterede blokke matcher Challenge-værdien, fuldføres godkendelsen, og en succespakke sendes til klienten.

MS-CHAP v2

MS-CHAP v2 løser nogle af manglerne ved MS-CHAP v1, som vist i følgende tabel. [7]

MS-CHAP protokol version 1 problem MS-CHAP protokol version 2 løsning
LAN Manager-svarkrypteringen, der bruges til bagudkompatibilitet med ældre Microsoft-fjernadgangsklienter, er kryptografisk sårbar.

MS-CHAP v2 tillader ikke længere krypterede LAN Manager-svar, fordi LAN Manager-hashen er en meget svagere hashfunktion og kan knækkes og derefter bruges til at knække Windows NT-hashen. Ved at eliminere LAN Manager-hashen i MS-CHAPv2 har Microsoft således gjort opdelingen og hersk - angrebet umuligt [3] .

LAN Manager adgangskodeændringskryptering er kryptografisk sårbar. MS-CHAP v2 tillader ikke længere krypterede LAN Manager-adgangskodeændringer.
Kun envejsgodkendelse er mulig. Fjernadgangsklienten kan ikke bekræfte, om den opretter forbindelse til sin organisations fjernadgangsserver eller en maskeringsserver.

MS-CHAP v2 giver tovejsgodkendelse, også kendt som gensidig godkendelse. Fjernadgangsklienten modtager en bekræftelse på, at den fjernadgangsserver, den forsøger at oprette forbindelse til, har adgang til brugerens adgangskode.

Når du bruger 40-bit kryptering, er krypteringsnøglen baseret på brugerens adgangskode. Når en bruger opretter forbindelse med den samme adgangskode, genereres den samme krypteringsnøgle.

I MS-CHAP v2 er krypteringsnøglen altid baseret på brugerens adgangskode og en vilkårlig forespørgselsstreng. Hver gang en bruger opretter forbindelse med den samme adgangskode, genereres en anden krypteringsnøgle.

Data sendt i begge retninger på tværs af en forbindelse bruger en enkelt krypteringsnøgle.

Ved brug af MS-CHAP v2-protokollen oprettes separate krypteringsnøgler til modtagelse og transmission af data.

Autentificeringsalgoritme

Funktionsmekanismen for MS-CHAPv2-protokollen [2] [3] :

Hentning af nøgler til MPPE

MS-CHAPv2 er en godkendelsesprotokol i Microsoft PPTP-protokollen , hvor MPPE fungerer som krypteringsprotokollen . MPPE kræver brug af 40-bit eller 128-bit krypteringsnøgler genereret af MS-CHAPv2-godkendelsesprocessen.

At udlede MPPE-nøgler fra MS-CHAPv2-legitimationsoplysninger fungerer sådan her [3] :

  1. 16-byte NT adgangskode-hash, 24-byte "Challenge Response" fra MSCHAPv2-udvekslingen og 27-byte "This is the MPPE Master Key"-strengen hash ved hjælp af SHA-1 . Resultatet afkortes derefter for at give en 16-byte hovednøgle.
  2. Ved hjælp af en deterministisk proces konverteres hovednøglen til et par sessionsnøgler.

For 40-bit sessionsnøgler gør punkt (2) følgende:

For 128-bit sessionsnøgler er processen i punkt (2) som følger:

"Magiske" konstanter er forskellige afhængigt af den retning, som nøglen bruges i - for at kryptere trafik fra klienten til serveren eller fra serveren til klienten.

Pakkeformat

PPP CHAP udfordringspakke [2]

Svarpakke [2]

Response Packet har samme struktur som Challenge Packet.

Succespakke [2]

Meddelelsesfeltet indeholder en 42-byte svarstreng. Meddelelsesfeltformat:S=<auth_string> M=<message>

Fejlpakke [2]

Failure-pakken har samme struktur som Success-pakken. Formateret tekst gemmes dog i meddelelsesfeltet, hvilket i modsætning til standard CHAP-reglerne påvirker protokollens funktion. Meddelelsesfeltformat: E=eeeeeeeeee R=r C=cccccccccccccccccccccccccccccccc V=vvvvvvvvvv M=<msg>

Krypteringsanalyse og angreb

Der er en række problemer med denne algoritme, hvis kombination kan føre til dens succesfulde cracking .

Analyse af genereringen af ​​"Challenge Response"

Ordbogsangreb [ 3]

Proceduren for at opnå "Challenge Response" skaber en alvorlig svaghed i MS-CHAP-protokollerne: den giver en angriber mulighed for at fremskynde ordbogssøgning med en faktor , som har en ret imponerende effekt i betragtning af den relativt lave entropi af de fleste brugeradgangskoder.

"Authenticator Challenge", "Peer Authenticator Challenge" og "UserName" er angivet i det klare og kan aflyttes, hvilket betyder, at "Challenge Hash" nemt kan fås fra offentligt tilgængelig information. Der er en god chance for, at en adgangskode kan gendannes baseret på det faktum, at mange adgangskoder er ordbogsord eller på anden måde lette at gætte. Først og fremmest skal det bemærkes, at værdien af ​​Z (bestemt i trin (3c)) let kan gendannes. Da der kun er mulige valg Z (fordi der er muligheder for hver af de første to bytes i Z), og vi har et kendt klartekst ("Challenge Hash")-cifertekstpar (DESz ("Challenge Hash")), vi kan iterere over hver af mulighederne for Z, som vil afsløre de sidste to bytes af adgangskodens NT-hash.

For at gentage ordbogen udføres en forudberegning : hver mulig adgangskode hash. Hash-resultaterne sorteres efter de sidste to bytes, og derefter, når MS-CHAP-udvekslingen er synlig, og de sidste to bytes af NT-hashen kan gendannes (ved hjælp af metoden ovenfor), vælges alle matchende poster fra hash-listen . Dette giver angriberen et sæt af sandsynlige adgangskoder, der giver den ønskede værdi for de sidste to bytes af deres NT-hash. Dernæst kontrolleres hver af disse muligheder med brute force: dens "Challenge Response" beregnes og kontrolleres i forhold til den overhørte værdi.

Det optimerede angreb foreslået ovenfor er således omkring gange hurtigere end standardordbogsangrebet, hvor alle adgangskoder kontrolleres. Det gælder både MS-CHAPv1 og MS-CHAPv2. En sådan sårbarhed er dog meget vigtigere for MS-CHAPv2, fordi det i tilfælde af MSCHAPv1 er lettere at angribe LanManager-hash end NT-hash.

Brute force angreb på DES nøgler [9]

Genereringsalgoritmen "Challenge Response" er et svagt led, selv når adgangskoder indeholder tilstrækkelig entropi. NT-hashen kan gendannes ved at gætte to bytes af den tredje DES- nøgle, hvilket kræver beregning, og to brute force-søgninger efter den første og anden DES-nøgle. Hver DES-nøgle er på 56 bit, men for ikke at gå over mulighederne for de to første nøgler, kan du bruge det faktum, at begge DES-operationer krypterer den samme "Challenge Hash" med forskellige nøgler. Derfor er det nok kun at udføre krypteringsoperationer:

desKeyX = null ; desKeyY = null ; for ( lang i = 0 ; i < 2 ^ 56 ; i ++ ) { resultat = DES ( tast [ i ] , klartekst ); if ( resultat == chiffertekst1 ) { desKeyX = resultat ; } else if ( resultat == chiffertekst2 ) { desKeyY = resultat ; } }

Når NT-hashen er gendannet, kan alle krypterede sessioner læses, og autentificeringsskemaet kan brydes uden nogen indsats. Dette viser, at selv når du bruger 128-bit RC4 -nøgler til MPPE, giver MS-CHAP kun det, der svarer til 56-bit sikkerhed.

Analyse af nøglegenerering for MPPE [3]

Protokollen svækker 40-bit MPPE - nøgler ved at indstille de øverste 24 bit af 64-bit RC4 - nøglen til 0xD1269E. Det er kendt, at hvis nogen har ret til at vælge de høje bits af RC4-nøglen, så kan han pålægge brugeren en svag klasse af nøgler til RC4. Så hvis udviklerne af MS-CHAP ønskede at bygge et smuthul i protokollen, kunne de bruge tilstedeværelsen af ​​præfikset til at svække RC4.

I statistiske test blev det fundet, at for nøgler, der begynder med 0xD1269E, antager den første og anden byte ved udgangen af ​​RC4 værdierne 0x09og 0x00med en sandsynlighed på henholdsvis 0,0054 og 0,0060, hvilket er mærkbart større end sandsynligheden for 1 /256 = 0,0039, hvilket kan forventes ud fra en god chiffer.

Se også

Noter

  1. 12 RFC 2433, 1998 .
  2. 1 2 3 4 5 6 7 RFC 2759, 2000 .
  3. 1 2 3 4 5 6 7 8 Krypteringsanalyse af MS-CHAP, 1999 .
  4. Udgået MS-CHAPv1, 2007 .
  5. Microsoft Sikkerhedstip 2012 .
  6. 12 MS- CHAP v1 .
  7. MS-CHAP v2 .
  8. PPPCHAP, 1996 .
  9. Moxie Marlinspike, 2012-06-29 .

Kilder