MS16-065: Beskrivelse av i TLS/SSL-protokollen tilgjengeliggjøring (CVE-2016-0149): 10 mai 2016

VIKTIG: Denne artikkelen ble oversatt med maskinoversettelsesprogramvare fra Microsoft og muligens redigert av Microsoft Community via CTF-teknologi i stedet for av en oversetter. Microsoft tilbyr både menneskelig oversatte og maskinoversatte/Community-redigerte artikler, slik at du får tilgang til alle artiklene i vår Knowledge Base på ditt eget språk. En maskinoversatt eller Community-redigert artikkel er imidlertid ikke alltid perfekt. Den kan inneholde feil i vokabular, syntaks eller grammatikk, mye likt en fremmedspråklig som forsøker å snakke språket ditt. Microsoft har ikke ansvar for unøyaktige opplysninger, feil eller skade forårsaket av feilaktig oversettelse av innholdet eller kundenes bruk av informasjonen. Microsoft oppdaterer jevnlig maskinoversettelsesprogramvaren og -verktøyene for å forbedre redigering av maskinoversatte tekster.

Den engelske versjonen av denne artikkelen er den følgende: 3155464
Sammendrag
Sikkerhetsproblemet finnes i Transport Layer Security-protokollen og protokollen Secure Sockets Layer (TLS/SSL) som de er implementert i krypteringskomponenten av Microsoft .NET Framework. En angriper som klarer å utnytte dette sikkerhetsproblemet, kan dekryptere kryptert TLS/SSL-trafikk.

For å utnytte dette sikkerhetsproblemet må må en angriper først medieinnsetting ukryptert data inn i kanalen for sikkerhet og utfører deretter en mann-i-midten (MiTM) angrep mellom målrettede klienten og en ekte server. Denne oppdateringen løser sikkerhetsproblemet ved å endre måten .NET krypteringskomponenten sender og mottar krypterte nettverkspakker.

Dette sikkerhetsproblemet er fast som en del av Microsofts sikkerhetsbulletin MS16-065. Denne oppdateringen endrer måten .NET Framework krypteringskomponenten sender og mottar krypterte nettverkspakker.

Følgende tabell inneholder koblinger til standardoppføring for hvert sikkerhetsproblem i listen Common Vulnerabilities and Exposures.

Sikkerhetsproblemet tittelCVE-nummerOffentliggjortUtnytte
TLS/SSL kan tillate etterligningsangrepCVE-2016 0149JaNei

Sikkerhetsproblemet oppløsning

Endringen som innføres i Microsofts sikkerhetsbulletin MS16-065 årsaker til første TLS-post etter håndtrykk som skal deles. Dette fører til at SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient og HttpClient (der det er basert på HttpWebRequest) dataflyter til å returnere en enkelt byte for det første lese etterfulgt av resten (n-1)-byte i etterfølgende leser. Endre denne virkemåten oppstår bare for programmer som bruker TLS 1.0 + Cipher Block Chaining, men ikke når de bruker TLS 1.1 eller TLS 1.2.

Obs! Du må installere en forutsetning Microsofts sikkerhetsbulletin MS12-006 Slik aktiverer du denne oppdateringen.

Denne endringen kan føre til at noen programmer som er basert på .NET Framework til å bryte. Denne artikkelen beskriver to fremgangsmåter du kan bruke til å oppdatere programmet fungerer riktig etter at du har brukt Microsofts sikkerhetsbulletin MS16-065.

Begrensende faktorer for kompatibilitetsproblemer

Alternativ 1: Bytt til TLS 1.2-protokollen

Dette alternativet gjør at programmet bruker TLS 1.2-protokollen ved å endre registret eller konfigurere programmatisk protokollversjonen.
  • Endre registret

    Viktig Følg trinnene i dette avsnittet nøye. Det kan oppstå alvorlige problemer hvis du endrer registeret feilaktig. Før du endrer den, Ta sikkerhetskopi av registret for gjenoppretting i tilfelle det oppstår problemer.

    .NET Framework 4.0 og .NET Framework 4.5.x programmer som kjører på .NET Framework 4.5 og senere versjoner kan bytte standardprotokoll til TLS 1.2, TLS 1.1 og TLS 1.0 ved å aktivere registernøkkelen SchUseStrongCrypto . Denne registernøkkelen som er beskrevet i avsnittet Forslag til tiltak i den Microsoft Security Advisory 2960358 emnet på webområdet Microsoft TechNet.

    Viktig Denne registerendringen fungerer bare hvis følgende betingelser er oppfylt:
    • Programmer som bruker ServicePointManager-baserte APIer er ikke innstillingen for ServicePointManager.SecurityProtocol verdi eksplisitt. System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestog System.Net.Mail.SmtpClienter eksempler på slike klasser. Angi ServicePointManager.SecurityProtocol i kode overstyrer registret.
    • Programmer bruker i SslStream AuthenticateAsClient(String) overbelastning.

  • Konfigurere programmatisk protocol-versjon

    .NET Framework 4.0 og 4.5 programmer som kjører på .NET Framework 4.5 og senere versjoner, og som bruker den SslStream AuthenticateAsClient(String,X509CertificateCollection,SslProtocols,Boolean) overbelastning må bli kompilert på nytt, angir du SslProtocols.Tls12, SslProtocols.Tls11og SslProtocols.Tls som den tredje parameteren. For en fullstendig beskrivelse av hvordan du bruker SslStream-klassen, kan du se i SslStream-klassen emnet på webområdet for MSDN (Microsoft Developer).

    Obs! .NET Framework 4.6 og senere versjoner kan du bruke TLS 1.2, TLS 1.1 og TLS 1.0 som protokoll-standarder. Dette er omtalt i den Microsoft Security Advisory 2960358 emnet på webområdet Microsoft TechNet.

Alternativ 2: Dele håndtaket pakker

Denne oppdateringen fører til at en enkelt oppføring skal deles inn i flere poster. Derfor, hvis et program er forventet hele posten skal være tilgjengelig i et enkelt lese kall, slike programmer kan brytes. For å sikre at programmet fungerer på riktig måte, må du kontrollere at programmet håndterer delt pakker ved å utføre Stream.Read -kall på riktig måte. Du kan bruke eksempelkode som er tilgjengelig Her som en referanse å reparere programmet til å utføre riktig lese kall.

For en HTTP-forespørsel for eksempler som viser forskjellen i virkemåte før (med begrensning) og etter (uten begrensning) oppdateringer 3147461 og 3147458 ble installert, kan du se delen "Mer informasjon".

Et fullstendig eksempel på Stream.Read -metoden, kan du se i Stream.Read-metoden (Byte[],Int32,Int32) emnet på webområdet for MSDN (Microsoft Developer).

Midlertidige løsninger for problemer med programkompatibilitet

Advarsel Disse løsningene kan gjøre en datamaskin eller et nettverk mer utsatt for angrep av ondsinnede brukere eller skadelig programvare som virus. Disse løsningene anbefales ikke, men informasjonen oppgis slik at du kan implementere disse løsningene på eget initiativ. Bruk disse løsningene på eget ansvar.

Metode 1: Oppdatere registernøkler (tilgjengelig for alle versjoner av .NET Framework)



Deaktiver SCH_SEND_AUX_RECORD struktur (globalt)
For alle programmer, legger du til følgende undernøkkel i registret:
Sted i registret:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>

DWORD-navn: SchSendAuxRecord
Verdidata: 0

Obs! Plassholder for <version_number>er enten v4.0.30319 eller v2.0.50727, avhengig av hvilken versjon.

For 32-biters programmer som kjører på 64-biters datamaskiner, må du også legge til følgende registerundernøkkel:
</version_number>
Sted i registret:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>

DWORD-navn: SchSendAuxRecord
Verdidata: 0

Obs! Plassholder for <version_number>er enten v4.0.30319 eller v2.0.50727, avhengig av hvilken versjon.

</version_number>
Løsning
Hvis du vil deaktivere sikkermodus som er beskrevet i denne artikkelen, klikker du riktig kobling for å laste ned en REG-fil, og dobbeltklikk deretter nedlastede REG-filen for å gjøre endringer i registret.

For programmer som er rettet mot Microsoft.NET Framework 3.5:

Rettet mot Microsoft .NET Framework 4.0 og senere versjoner for programmer:

Hvis du vil aktivere på nytt i sikker modus som er beskrevet i denne artikkelen, klikker du riktig kobling for å laste ned en REG-fil, og dobbeltklikk deretter nedlastede REG-filen for å gjøre endringer i registret.

For programmer som er rettet mot Microsoft.NET Framework 3.5:

Rettet mot Microsoft .NET Framework 4.0 og senere versjoner for programmer:

Hvis du vil ha mer informasjon om hvordan du laster ned Microsoft-støttefiler, klikker du følgende artikkelnummer for å vise artikkelen i Microsoft Knowledge Base:
119591 Slik får du tak i støttefiler for Microsoft fra elektroniske tjenester
Microsoft har søkt etter virus i denne filen. Microsoft brukte det nyeste antivirusprogrammet som var tilgjengelig den datoen filen ble lagt ut. Filen lagres på sikkerhetsforbedrede servere som bidrar til å hindre uautoriserte endringer i filen.


Deaktiver SCH_SEND_AUX_RECORD struktur for enkeltprogrammer
For alle programmer, legger du til følgende undernøkkel i registret:
Sted i registret:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD-navn: Fullstendige banen for programmet .exe (for eksempel C:\MyApp\MyApp.exe)
Verdidata: 0

Obs! Plassholder for <version_number>er enten v4.0.30319 eller v2.0.50727, avhengig av hvilken versjon.

For 32-biters programmer som kjører på 64-biters datamaskiner, må du også legge til følgende registerundernøkkel:
</version_number>
Sted i registret:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD-navn: Fullstendige banen for programmet .exe (for eksempel C:\MyApp\MyApp.exe)
Verdidata: 0 (den eneste gyldige verdien er 0. En annen verdi, vil bli ignorert.)

Obs! Plassholder for <version_number>er enten v4.0.30319 eller v2.0.50727, avhengig av hvilken versjon.

</version_number>

Metode 2: Endre konfigurasjonen på programnivå (bare tilgjengelig for .NET Framework versjon 4.6 og senere versjoner)

Med .NET Framework 4.6 kan du endre konfigurasjonen på en programnivå via kode eller programmet konfigurasjons- eller registeret endres til.

Du kan angi bryteren i .NET Framework 4.6, ved hjelp av følgende metoder. Disse eksemplene deaktiverer sikkerhetsfunksjonen.
  • Ved hjelp av programmering

    Det første programmet gjør kjøres koden nedenfor. Dette er fordi tjenestebehandling vil initialisere bare én gang.
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Programkonfigurasjon

    Hvis du vil endre konfigurasjonen for programmet, kan du legge til følgende oppføring:
    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/></runtime>
  • Registernøkkel (global datamaskin)

    Registerplasseringene:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\AppContext

    Verdi: Switch.System.Net.DontEnableSchSendAuxRecord
    Type: Streng
    Verdi: SANN

    Obs! Switch.System.Net.DontEnableSchSendAuxRecord = False for alle programmer.
Mer informasjon
Følgende er et mønster for eksempel klient/Server-kommunikasjon før og etter at denne oppdateringen er installert. Denne informasjonen er ment å illustrere for å identifisere eventuelle program knusing på grunn av installasjon av denne hurtigreparasjonen.

Uten begrensning avMed løsningene
[Server] venter på tilkoblinger (127.0.0.1:4431)
[Client] Koble til localhost:4431
[Server] Klienten er tilkoblet.
[Client] Koblet til. Godkjenning...
[Server] Klienten er godkjent.
[Client] Sende forespørsel (94 byte)
[Client] Venter på svar...

[Server] Mottatte 94 byte:<GET></GET>
Vert: contoso.com
User-Agent: Testing application

>>>
[Server] Svart med 476 byte.

[Client 1: 476 byte] Svar:<HTTP .1="" 200=""></HTTP>

>>>>>
[Server] venter på tilkoblinger (127.0.0.1:4431)
[Client] Koble til localhost:4431
[Server] Klienten er tilkoblet.
[Client] Koblet til. Godkjenning...
[Server] Klienten er godkjent.
[Client] Sende forespørsel (94 byte)
[Client] Venter på svar...
[Server] Mottatte byte 1: <G>>><b00> </b00> </G>
[Server] Mottatte 93 byte:<ET></ET>
Vert: contoso.com
User-Agent: Testing application

>>>
[Server] Svart med 476 byte.
[Client 1: 1 byte] Svar: <H>>>><b00> </b00> </H>
[Client 2: 475 byte] Svar:<TTP .1="" 200=""></TTP>

>>>>>

Advarsel: Denne artikkelen er autooversatt

Egenskaper

Artikkel-ID: 3155464 – Forrige gjennomgang: 05/10/2016 22:33:00 – Revisjon: 1.0

, , , , ,

  • kbsecvulnerability kbsecurity kbsecbulletin kbfix kbexpertiseinter kbbug atdownload kbmt KB3155464 KbMtno
Tilbakemelding