Přihlásit se pomocí účtu Microsoft
Přihlaste se nebo si vytvořte účet.
Dobrý den,
Vyberte jiný účet.
Máte více účtů.
Zvolte účet, pomocí kterého se chcete přihlásit.

Souhrn

Chybou umožňující zpřístupnění informací existuje v protokol Transport Layer Security a protokol SSL (Secure Sockets Layer) protocol (protokol TLS/SSL), jak je implementováno v součást Microsoft rozhraní.NET Framework. Útočník, který úspěšně zneužije tuto chybu zabezpečení, může dešifrovat šifrovaný přenos TLS/SSL.

Tuto chybu zabezpečení zneužít, by nejprve musel založit nešifrovaných data do kanálu zabezpečení a poté proveďte útoku man-in-the-middle (MiTM) mezi cílové klienta a oprávněný server. Tato aktualizace řeší uvedenou chybu zabezpečení změnou způsobu, jakým součást .NET odešle a přijme šifrované síťové pakety.

Tuto chybu zabezpečení je vyřešen jako součást bulletinu zabezpečení společnosti Microsoft MS16-065. Tato aktualizace mění způsob, že součást rozhraní.NET Framework odesílá a přijímá pakety šifrované sítě.

Následující tabulka obsahuje odkazy na standardní položku pro každou chybu v seznamu známých chyb zabezpečení a ohrožení pod.

Název chyby

Číslo CVE

Veřejně známá

Zneužití

Chyba zabezpečení umožňující umísťování falešného obsahu TLS/SSL

CVE-2016-0149

Ano

Ne

Překlad zabezpečení

Změny zavedené v Bulletin zabezpečení společnosti Microsoft MS16-065 způsobí, že první záznam protokolu TLS po handshake, které má být rozděleno. To způsobí, že SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient a HttpClient (je-li založena na HttpWebRequest) datovým proudům vysílaným vrátí jeden bajt pro první čtení ihned následovány bajty zbývající (n-1) v následné čtení. Tato změna chování dochází pouze u aplikací, které používají protokol TLS 1.0 + Cipher Block Chaining, ale není při použití TLS 1.1 nebo TLS 1.2.

Poznámka: Jako předpoklad je nutné nainstalovat Bulletin zabezpečení MS12-006 , chcete-li povolit tuto aktualizaci.

Tato změna může způsobit některé aplikace založené na rozhraní.NET Framework do konce. Tento článek popisuje dva přístupy, které lze použít k aktualizaci aplikace pracovat správně po instalaci bulletinu zabezpečení společnosti Microsoft MS16-065.

Skutečnosti snižující závažnost rizika pro problémy s kompatibilitou

Možnost 1: Přepínač protokolu TLS 1.2

Tato možnost způsobí, že aplikace pomocí úpravy registru nebo Programová konfigurace protokolu verze protokolu TLS 1.2.

  • Úpravy registru

    Důležité
    Pečlivě postupujte podle pokynů v této části. Při nesprávné úpravě registru může dojít k vážným problémům. Před tím, než jej změníte, Zálohování registru pro obnovení v případě dojít k problémům.

    Rozhraní.NET Framework 4.0 a rozhraní.NET Framework 4.5.x aplikací, které běží na rozhraní .NET Framework 4.5 a novější verze můžete přepnout výchozí protokol TLS 1.2, TLS 1.1 a TLS 1.0 povolením klíče registru SchUseStrongCrypto . Tento klíč registru je popsána v části Doporučené postupy v tématu Microsoft zabezpečení poradní 2960358 na webu Microsoft TechNet.

    Důležité: Tato změna registru bude fungovat, pouze pokud jsou splněny následující podmínky:

    • Aplikace, které používají rozhraní API založené Třída ServicePointManager ServicePointManager.SecurityProtocol hodnoty jsou nastavení explicitně . Mezi tyto třídy patří System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequesta System.Net.Mail.SmtpClient. Nastavení v kódu ServicePointManager.SecurityProtocol přednost registru.

    • Aplikace používají SslStream AuthenticateAsClient(String) přetížení.


  • Programově konfigurovat protokol verze

    Rozhraní.NET Framework 4.0 a 4.5 aplikací, které běží na rozhraní .NET Framework 4.5 a novější verze a které používají SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) přetížení musí být překompilován, určení SslProtocols.Tls12, SslProtocols.Tls11a SslProtocols.Tls jako třetí parametr. Úplný popis použití SslStream třídy naleznete v tématu SslStream třídy na webu Microsoft Developer (MSDN).

    Poznámka: Rozhraní.NET Framework 4.6 a novější verze použít jako výchozí protokol TLS 1.2, TLS 1.1 a TLS 1.0. Je popsán v tématu Microsoft zabezpečení poradní 2960358 na webu Microsoft TechNet.


Možnost 2: Zpracování rozdělit pakety

Tato aktualizace způsobí, že jeden záznam má být rozděleno do více záznamů. Proto pokud aplikace očekává dokončení záznamu je k dispozici v jediné volání pro čtení , tyto aplikace mohou být přerušeny. Ujistěte se, že se aplikace chová správně, ověřte, že aplikace zpracovává pakety rozdělit správně provedením volání Stream.Read . Můžete ukázkový kód k dispozici zde jako odkaz pro řešení aplikace správně provádět volání pro čtení .

Ukázka požadavku HTTP, který zobrazuje rozdíl v chování před (s zmírnění) a po (bez omezení) byly nainstalovány aktualizace 3147461 a 3147458 , naleznete v části "Další informace".

Kompletní příklad, metoda Stream.Read naleznete v tématu Metoda Stream.Read (Byte [], Int32, Int32) na webu Microsoft Developer (MSDN).

Zástupná řešení pro problémy s kompatibilitou aplikací

Upozornění: Tato zástupná řešení může provádět v počítači nebo síti zranitelnější vůči útoku uživatelů se zlými úmysly nebo škodlivému softwaru, například virům. Jsme nedoporučujeme tato zástupná řešení, ale poskytujeme tyto informace, takže můžete tato zástupná řešení implementovat podle vlastního uvážení. Tato zástupná řešení slouží na vlastní nebezpečí.

Metoda 1: Aktualizovat klíče registru (k dispozici pro všechny verze rozhraní.NET Framework)

Zakázat SCH_SEND_AUX_RECORD strukturu (globálně)

Zakázat SCH_SEND_AUX_RECORD struktury pro jednotlivé aplikace

Zakázat SCH_SEND_AUX_RECORD strukturu (globálně)

Pro všechny aplikace přidejte následující podklíč registru:

Umístění v registru: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
Název hodnoty DWORD: SchSendAuxRecord
Údaj hodnoty: 0
Poznámka: Zástupný symbol < version_number > je v4.0.30319 nebo v2.0.50727, v závislosti na verzi.

Pro 32bitové aplikace spouštěné v 64bitových počítačích také přidáte následující podklíč registru:

Umístění v registru: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
Název hodnoty DWORD: SchSendAuxRecord
Údaj hodnoty: 0
Poznámka: Zástupný symbol < version_number > je v4.0.30319 nebo v2.0.50727, v závislosti na verzi.

Jak potíže obejít

Dočasné zakázání režimu zabezpečení popsané v tomto článku, klepněte na příslušný odkaz ke stažení souboru s příponou REG a pak poklepejte na soubor REG stažené změny registru.

Pro aplikace Microsoft.NET Framework 3.5 zaměření:

Download Stáhněte soubor ManualOptOutSchSendAuxRecord20.reg.
Aplikace cílení na Microsoft rozhraní.NET Framework 4.0 a novější verze:

Download Stáhněte soubor ManualOptOutSchSendAuxRecord40.reg.
Znovu povolit režim zabezpečení popsané v tomto článku, klepněte na příslušný odkaz ke stažení souboru s příponou REG a pak poklepejte na soubor REG stažené změny registru.

Pro aplikace Microsoft.NET Framework 3.5 zaměření:

Download Stáhněte soubor ManualOptInSchSendAuxRecord20.reg.
Aplikace cílení na Microsoft rozhraní.NET Framework 4.0 a novější verze:

Download Stáhněte soubor ManualOptInSchSendAuxRecord40.reg.
Pro více informací o tom, jak stahovat soubory podpory společnosti Microsoft, klepněte na následující číslo článku v databázi Microsoft Knowledge Base:

119591 jak získat soubory podpory společnosti Microsoft ze serverů služeb onlineMicrosoft zkontroloval tento soubor na přítomnost virů. Společnost Microsoft použila aktuální antivirový software, který byl k dispozici k datu, kdy byl soubor vydán. Soubor je uložen na zabezpečených serverech, které pomáhají zabránit neoprávněným změnám v souboru.


Zakázat SCH_SEND_AUX_RECORD struktury pro jednotlivé aplikace

Pro všechny aplikace přidejte následující podklíč registru:

Umístění v registru: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Název hodnoty DWORD: Úplná cesta k .exe aplikaci (například C:\MyApp\MyApp.exe)
Údaj hodnoty: 0
Poznámka: Zástupný symbol < version_number > je v4.0.30319 nebo v2.0.50727, v závislosti na verzi.

Pro 32bitové aplikace spouštěné v 64bitových počítačích také přidáte následující podklíč registru:

Umístění v registru: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Název hodnoty DWORD: Úplná cesta k .exe aplikaci (například C:\MyApp\MyApp.exe)
Údaj hodnoty: 0 (jediná platná hodnota je 0. Všechny ostatní hodnoty budou ignorovány.)
Poznámka: Zástupný symbol < version_number > je v4.0.30319 nebo v2.0.50727, v závislosti na verzi.

Metoda 2: Změňte konfiguraci na úrovni aplikace (k dispozici pouze pro verze rozhraní.NET Framework 4.6 a novější verze)

Počínaje 4.6 rozhraní.NET Framework, můžete změnit konfiguraci na úrovni aplikace pomocí kódu nebo použití konfigurace nebo změnit registr.

4.6 rozhraní.NET Framework můžete nastavení přepínače pomocí některé z následujících metod. Tyto příklady zakázat funkci zabezpečení.

  • Programově

    První věcí, kterou by měl provést aplikace je spuštěna následující kód. Je to proto, že bod služby bude inicializovat pouze jednou.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Konfigurace aplikace

    Chcete-li změnit konfiguraci aplikace, přidejte následující položku:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Klíč registru (počítač globální)

    Umístění v registru: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Hodnoty: Switch.System.Net.DontEnableSchSendAuxRecord
    Typ: Řetězec
    Hodnoty: PRAVDA

    Poznámka: Switch.System.Net.DontEnableSchSendAuxRecord = False pro všechny aplikace.

Další informace

Následuje vzor komunikace klient-Server vzorku před a po instalaci této aktualizace. Tyto informace jsou poskytovány pro ilustraci k identifikaci rozbití jakékoli aplikace je instalace této opravy.

Bez řešení

S zmírnění

[Server] čekání na připojení (127.0.0.1:4431)
[Klient] Připojení k localhost:4431
[Server] Klient připojen.
[Klient] Připojen. Ověřování...
[Server] Klient ověřen.
[Klient] Odesílání požadavku (94 bajtů)
[Klient] Čekání na odpověď...

[Server] 94 bajtů přijatých: <<< GET nebo HTTP/1.0
Host: contoso.com
User-Agent: Testování aplikace

>>>
[Server] Odpověděl s 476 bajtů.

[Klienta 1: 476 bajtů] Odpověď: <<<<< HTTP/1.1 200 OK

>>>>>

[Server] čekání na připojení (127.0.0.1:4431)
[Klient] Připojení k localhost:4431
[Server] Klient připojen.
[Klient] Připojen. Ověřování...
[Server] Klient ověřen.
[Klient] Odesílání požadavku (94 bajtů)
[Klient] Čekání na odpověď...
[Server] Přijato bajtů 1: <<< G >>>
[Server] Přijaté bajty 93: <<< ET / HTTP/1.0
Host: contoso.com
User-Agent: Testování aplikace

>>>
[Server] Odpověděl s 476 bajtů.
[Klienta bajtů 1: 1] Odpověď: <<<<< H >>>>>
[Klienta bajtů 2: 475] Odpověď: <<<<< TTP/1.1 200 OK

>>>>>


Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?
Po stisknutí tlačítka pro odeslání se vaše zpětná vazba použije k vylepšování produktů a služeb Microsoftu. Váš správce IT bude moci tato data shromažďovat. Prohlášení o zásadách ochrany osobních údajů.

Děkujeme vám za zpětnou vazbu.

×