Súhrn
Informácie o zverejnení protokol TLS a nespoľahlivé protokol Secure Sockets Layer (TLS/SSL) ako vykonávať šifrovanie súčasti Microsoft .NET Framework. Útočník, ktorí úspešne využiť túto chybu môže dešifrovať zašifrované prenosu TLS/SSL.
Využívať zraniteľnosť, útočník najprv musieť aplikovať nezašifrovaného údajov do zabezpečenia kanál a potom vykonať man-in-middle útok (funguje dobre MiTM) medzi cielené klientom a serverom legitímne. Táto aktualizácia rieši nedostatočné zabezpečenie úpravou spôsob šifrovania súčasti .NET odošle a prijme šifrované sieťových paketov.
Túto chybu je stanovené ako súčasť Microsoft Security Bulletin MS16-065. Táto aktualizácia mení spôsob šifrovania súčasti .NET Framework odošle a prijme šifrované sieťových paketov.
Nasledujúca tabuľka obsahuje prepojenia na štandardný vstup pre každú chybu v zozname bežné chyby a expozície.
Nedostatočné zabezpečenie názov |
CVE číslo |
Zverejnené |
Využiť |
---|---|---|---|
Falšovanie nedostatočné zabezpečenie TLS/SSL |
Áno |
Nie |
Nedostatočné riešenie
Zmeny v Microsoft Security Bulletin MS16-065 spôsobí prvý záznam TLS po handshake rozdeliť. To spôsobí SslStream WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient a HttpClient (v prípade, že na základe HttpWebRequest) prúdy vrátiť jednobajtových prečítal nasleduje zvyšok (n-1) bajtov v následných číta. Táto zmena správania sa vyskytuje len pre aplikácie, ktoré používajú protokol TLS 1.0 + šifrovanie bloku reťazenie, ale nie pri používaní TLS 1.1 alebo TLS 1.2.
Poznámka: Nevyhnutným predpokladom, musíte nainštalovať Microsoft Security Bulletin MS12-006 tejto aktualizácie.
Táto zmena môže spôsobiť niektoré aplikácie, ktoré sú založené na .NET Framework break. Tento článok popisuje dva postupy, ktoré môžete použiť na aktualizáciu aplikácie pracovať správne, keď použijete program Microsoft Security Bulletin MS16-065.
Mitigations pre problémy s kompatibilitou
Možnosť 1: Prepnúť protokol TLS 1.2
Táto možnosť umožňuje použiť protokol TLS 1.2 úpravou databázy registry alebo programová konfigurácia protokolu verziu aplikácie.
-
Úprava databázy registry
Dôležité upozornenie:
Postupujte presne podľa krokov v tejto časti. Ak databázu Registry upravíte nesprávne, môžu nastať vážne problémy. Pred úpravou, zálohovanie databázy registry na obnovenie v prípade problémov.
.NET Framework 4.0 a .NET Framework 4.5.x aplikácie .NET Framework 4.5 a novších verzií prepínač predvolený protokol TLS 1.0 TLS 1.2 a TLS 1.1 zapnutím SchUseStrongCrypto databázy Registry. Tento kľúč databázy registry je popísaný v časti Akcie navrhol Microsoft Security Advisory 2960358 témy na webovej lokalite Microsoft TechNet.
Dôležité upozornenie: Táto zmena databázy registry sa iba vtedy, ak sú splnené nasledujúce podmienky:-
Aplikácie, ktoré používajú ServicePointManager systémom API nie nastaviť hodnotu ServicePointManager.SecurityProtocol explicitne. Tieto triedy príklady System.Net.Http.HttpClient System.Net.FtpWebRequest System.Net.HttpWebRequesta System.Net.Mail.SmtpClient. Nastavenie ServicePointManager.SecurityProtocol kód prednosť pred databázy registry.
-
Aplikácii SslStream AuthenticateAsClient(String) preťaženia.
-
-
Programová Konfigurácia verzia protokolu
.NET Framework 4.0 a 4.5 systémom .NET Framework 4.5 a novších verzií a používajú SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) preťaženia musí byť prekompilovat, určenia SslProtocols.Tls12a SslProtocols.Tls11 SslProtocols.Tls ako tretí parameter. Úplný popis použitia SslStream triedy, téme SslStream tried na webovej lokalite vývojárov spoločnosti Microsoft (MSDN).
Poznámka: .NET Framework 4.6 a v novších verziách používať ako predvolené protokol TLS 1.0 TLS 1.2 a TLS 1.1. Je to popísané v téme Microsoft Security Advisory 2960358 na webovej lokalite Microsoft TechNet.
Možnosť 2: Rukoväť rozdelené pakety
Táto aktualizácia spôsobuje záznam možno rozdeliť na viacero záznamov. Preto ak aplikácia očakáva úplný záznam v jednej čítanie hovor, takéto žiadosti sa môže poškodiť. Uistite sa, že aplikácia funguje správne, overte, či daná aplikácia spracováva oddeliť pakety formou Stream.Read volanie správne. Môžete ukážkový kód dostupný tu ako odkaz na riešenie aplikácie vykonávať správne čítať výzvy.
Požiadavky HTTP príklad ukazuje rozdiel správanie pred (zníženie) a potom (bez zahltenia) nainštalované aktualizácie 3147461 a 3147458 , nájdete v časti "Ďalšie informácie".
Napríklad celý Stream.Read metódy téme Postup Stream.Read (Byte [], Int32, Int32) na webovej lokalite vývojárov spoločnosti Microsoft (MSDN).
Riešenia pre problémy s kompatibilitou aplikácií
Upozornenie: Tieto postupy môže oslabiť zabezpečenie počítača alebo siete voči útokom zlomyseľných používateľov alebo nebezpečnému softvéru, ako sú napríklad vírusy. Tieto postupy sa neodporúča, no poskytujeme tieto informácie tak, že tieto postupy môžete implementovať podľa vlastného uváženia. Pomocou týchto postupov na vlastné riziko.
Metóda 1: Aktualizovať kľúče (k dispozícii pre všetky verzie rozhrania .NET Framework)
Vypnutie SCH_SEND_AUX_RECORD štruktúry (globálne)
Vypnutie SCH_SEND_AUX_RECORD štruktúra jednotlivých aplikácií
Vypnutie SCH_SEND_AUX_RECORD štruktúra (globálne)
Pre všetky aplikácie, pridajte nasledujúci podkľúč databázy registry:
Umiestnenie databázy registry: Rôznych . NETFramework\ < číslo_verzie >
Názov hodnoty DWORD: SchSendAuxRecord
Údaj hodnoty: 0
Poznámka: < Číslo_verzie > predstavuje v4.0.30319 alebo v2.0.50727, v závislosti od verzie.
32-bitové aplikácie pre 64-bitové počítače pridať aj nasledujúci podkľúč databázy registry:
Umiestnenie databázy registry: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < číslo_verzie >
Názov hodnoty DWORD: SchSendAuxRecord
Údaj hodnoty: 0
Poznámka: < Číslo_verzie > predstavuje v4.0.30319 alebo v2.0.50727, v závislosti od verzie.
Alternatívne riešenie
Dočasne vypnúť bezpečné režime, popísané v tomto článku, po kliknutí na príslušné prepojenie prevezmite súbor .reg a potom dvakrát kliknite na súbor .reg prevzaté zmeny databázy registry.
Pre aplikácie Microsoft .NET Framework 3.5:
Prevezmite súbor ManualOptOutSchSendAuxRecord20.reg.
Aplikácie zamerané Microsoft .NET Framework 4.0 a novšie verzie:
Prevezmite súbor ManualOptOutSchSendAuxRecord40.reg.
Opätovné zapnutie režimu zabezpečené popísané v tomto článku, po kliknutí na príslušné prepojenie prevezmite súbor .reg a potom dvakrát kliknite na súbor .reg prevzaté zmeny databázy registry.
Pre aplikácie Microsoft .NET Framework 3.5:
Prevezmite súbor ManualOptInSchSendAuxRecord20.reg.
Aplikácie zamerané Microsoft .NET Framework 4.0 a novšie verzie:
Prevezmite súbor ManualOptInSchSendAuxRecord40.reg.
Ďalšie informácie o sťahovaní podporných súborov spoločnosti Microsoft získate po kliknutí na nasledujúce číslo článku publikovaného v databáze Microsoft Knowledge Base:
119591 Získanie podporných súborov zo služieb onlineSpoločnosť Microsoft preverila, či tento súbor neobsahuje vírusy. Spoločnosť Microsoft použila aktuálny antivírusový softvér, dostupný v deň zverejnenia tohto súboru. Súbor je uložený na zabezpečených serveroch, ktoré neumožňujú neoprávnené zmeny súborov.
Vypnutie SCH_SEND_AUX_RECORD štruktúra jednotlivých aplikácií
Pre všetky aplikácie, pridajte nasledujúci podkľúč databázy registry:
Umiestnenie databázy registry: Rôznych . NETFramework\ < číslo_verzie > \System.Net.ServicePointManager.SchSendAuxRecord
Názov hodnoty DWORD: Cesta pre aplikáciu .exe (napríklad C:\MyApp\MyApp.exe)
Údaj hodnoty: 0
Poznámka: < Číslo_verzie > predstavuje v4.0.30319 alebo v2.0.50727, v závislosti od verzie.
32-bitové aplikácie pre 64-bitové počítače pridať aj nasledujúci podkľúč databázy registry:
Umiestnenie databázy registry: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < číslo_verzie > \System.Net.ServicePointManager.SchSendAuxRecord
Názov hodnoty DWORD: Cesta pre aplikáciu .exe (napríklad C:\MyApp\MyApp.exe)
Údaj hodnoty: 0 (len platnú hodnotu 0. Iná hodnota sa bude ignorovať.)
Poznámka: < Číslo_verzie > predstavuje v4.0.30319 alebo v2.0.50727, v závislosti od verzie.
Metóda 2: Zmeniť konfiguráciu na úrovni aplikácie (k dispozícii len pre rozhranie .NET Framework 4.6 a novšie verzie)
Počnúc .NET Framework 4.6, môžete zmeniť konfiguráciu na úrovni aplikácie kód alebo aplikácia zmeny konfigurácie alebo databázy registry.
V .NET Framework 4.6, môžete nastaviť prepínač niektorú z nasledovných metód. Príklady vypnutie funkcie zabezpečenia.
-
Programové
Aplikácia by sa najskôr sa spustite nasledujúci kód. Dôvodom je skutočnosť, že správca služby bod bude inicializovať iba raz.private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord";
AppContext.SetSwitch(DisableCachingName, true);
AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true); -
Konfigurácia aplikácie
Zmena konfigurácie aplikácie, pridajte nasledujúcu položku:<runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
</runtime> -
Kľúč databázy Registry (počítača globálnej)
Umiestnenia databázy registry: Rôznych . NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
Hodnota: Switch.System.Net.DontEnableSchSendAuxRecord
Typ: Reťazec
Hodnota: Skutočný
Poznámka: Switch.System.Net.DontEnableSchSendAuxRecord = False pre všetky aplikácie.
Ďalšie informácie
Toto je vzorový model klient/Server komunikácie pred a po nainštalovaní tejto aktualizácie. Tieto informácie poskytuje ilustrácie identifikácie akékoľvek aplikácie poškodenie z dôvodu inštalácie tejto opravy.
Bez zmiernenia |
S zníženie |
---|---|
[Server] čaká pripojenia (127.0.0.1:4431) |
[Server] čaká pripojenia (127.0.0.1:4431) |