MS16-065: Опис TLS/SSL протокол інформації розкриття вразливості (CVE 2016 0149): 10 травня 2016

ВАЖЛИВО! Ця стаття перекладена засобами машинного перекладу Microsoft. Статтю можна редагувати в середовищі Community Translation Framework (CTF). Щоб якомога швидше перекласти всі статті у своїй базі знань різними мовами, компанія Microsoft не лише звертається до професійних перекладачів, але й вдається до машинного перекладу, який потім редагується спільнотою. Такі статті можуть містити лексичні, синтаксичні та граматичні помилки. Microsoft не несе відповідальності за будь-які неточності, помилки або збитки, до яких може призвести неправильний переклад статей або їх використання. Докладніше про CTF див. на веб-сторінці http://support.microsoft.com/gp/machine-translation-corrections/uk-ua.

Клацніть тут, щоб переглянути цю статтю англійською мовою: 3155464
Підсумки
Є відомості про розкриття уразливість системи безпеки протокол TLS протоколу і протоколу протокол SSL (TLS/SSL), а у шифрування компонент Microsoft .NET Framework. Зловмисник, який за певних умов цей дефект, може розшифрувати зашифровані TLS/SSL-трафіку.

Можна використовувати вразливості, зловмисник спочатку доведеться вводити незашифрованих даних в канал безпеки і виконайте людина в середині (MiTM) атак, між цільової клієнт і сервер законного. Це оновлення усуває вразливість, шляхом внесення змін, що компонент .NET шифрування надсилає і отримує зашифровані мережі пакети.

Цей дефект виправлення в рамках Microsoft Security бюлетень MS16-065. Це оновлення змінює, компонент .NET Framework шифрування надсилає та отримує зашифровані мережі пакети.

У наведеній нижче таблиці, містить посилання на стандартний запис А для кожного дефект у списку спільних вразливості і впливу.

уразливість системи безпеки заголовок.CVE номерВідкрито розкриваєтьсяВикористовувати
TLS/SSL спуфінга дефект.CVE-2016-0149Такality Control Phrase

Дефект дозвіл

Зміни, внесені сукупним Microsoft Security бюлетень MS16-065 Перший TLS запис А після автоматична інсталяція зв'язок "один-до-одного", щоб розділити, причин. Це призводить до SslStream класи (HttpWebRequest, FtpWebRequest), SmtpClient та HttpClient (там, де на основі HttpWebRequest) потоків для повернення один байт для спочатку прочитайте, відразу після байтів для решти (n-1) в послідовних читає. Ця зміна, поведінка спостерігається для програм, які використовують TLS 1.0 + шифру ланцюжка для блокування, а не під Вільний час сценарій виконання TLS 1.1 або TLS 1.2.

Примітка. Якості потрібно інсталювати Microsoft Security бюлетень MS12-006 Щоб увімкнути оновлення.

Ця зміна може призвести до деяких програм на основі .NET Framework, щоб розбити. У цій статті описано, два способи, які можна оновити застосунок, для належної роботи після застосування Microsoft Security бюлетень MS16-065.

Пом'якшення для сумісності

Параметр 1: Ключ протоколу TLS 1.2

Цей параметр робить це протокол TLS 1.2 або внесення змін до реєстру, або програмним способом, конфігурація протоколу версії застосунку.
  • Внести зміни до реєстру

    Увага! Виконуйте інтерактивні елементи, описані в цьому розділі, обережно. Неправильне внесення змін до реєстру може викликати серйозні проблеми. Перш ніж змінювати його, резервної копії реєстру для відновлення на випадок виникнення проблем.

    Компонент .NET Framework 4.0 і .NET Framework 4.5.x програми, які працюють на .NET Framework 4.5 і пізніших версій переходу за промовчанням протокол TLS 1.2, TLS 1.1 і TLS 1.0, увімкнувши SchUseStrongCrypto розділ реєстру. Цей розділ реєстру, що описується в розділі Дій, запропоновано на Microsoft Security питань 2960358 розділ на сайті Microsoft TechNet.

    Увага! Ці зміни в реєстрі буде працювати тільки за таких умов:
    • Застосунки, які використовують API, на основі ServicePointManager, які не , настройки на ServicePointManager.SecurityProtocol значення, явно. Приклади таких класів:, System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestта System.Net.Mail.SmtpClient. Налаштування, ServicePointManager.SecurityProtocol код має пріоритет над реєстру.
    • Програми використовують в SslStream AuthenticateAsClient(String) перевантаження.

  • Налаштувати програмне версію протоколу

    Компонент .NET Framework 4.0 і 4.5 застосунки з керуванням .NET Framework 4.5 і пізніших версій, які використовують у SslStream AuthenticateAsClient(String,X509CertificateCollection,SslProtocols,Boolean) перевантаження має перекомпільовано, вказавши SslProtocols.Tls12SslProtocols.Tls11та SslProtocols.Tls , як третій параметр. Повний опис сценарій виконання SslStream класу див. у SslStream класу розділ веб-сайту корпорації Майкрософт для розробників (MSDN).

    Примітка. .NET Framework 4.6 і пізніших версій використовувати за промовчанням протокол TLS 1.2, TLS 1.1 і TLS 1.0. Це говориться в полі Microsoft Security питань 2960358 розділ на сайті Microsoft TechNet.

Параметр 2: Маркер, розділити пакети

Це оновлення призводить до одного запису можна розділити на кілька записів. Таким чином, якщо в застосунку очікує повний запис А, доступні в одному виклику читання , такі застосунки можуть бути пошкоджені. Щоб переконатися, що застосунок правильно працює, переконайтеся, що обробки застосуванням розділити пакети, виконуючи Stream.Read виклик належним чином. Можна використовувати прикладів коду, доступні тут Виклик довідки для вирішення програми належним чином, виконувати читання .

Приклад HTTP запит на змінення, який відображає різницю в поведінці, перш ніж (з потоків) і після (без зменшення) оновлення 3147461 і 3147458 було інстальовано, див. розділ "Додаткові відомості".

Повний приклад Stream.Read методу, див. у Спосіб для Stream.Read (Byte[],Int32,Int32) розділ веб-сайту корпорації Майкрософт для розробників (MSDN).

Варіанти проблем сумісності застосунків

Увага! Нижченаведені інтерактивні елементи, може зробити комп’ютер-зразок або мережу вразливішими до атак зловмисних користувачів або Підтримка програмного забезпечення для захисту від зловмисних програм, такого як віруси. Ці способи не рекомендується, але надаємо ці відомості так, щоб ви могли використати нижченаведені інтерактивні елементи на власний розсуд. За допомогою цих способів на власний ризик.

Спосіб 1: Оновлення реєстру (доступне для всіх версій .NET Framework)



Вимкнення, SCH_SEND_AUX_RECORD структуру (глобальний)
Для всіх програм додайте такий підрозділ реєстру:
Розділ реєстру:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>

DWORD ім'я: SchSendAuxRecord
Значення: 0

Примітка. Покажчик місця заповнення <version_number>, є v4.0.30319 або v 2.0.50727, залежно від версії.

Для 32-розрядні застосунки, які працюють на 64-розрядних комп'ютерах також додайте такий підрозділ реєстру:
</version_number>
Розділ реєстру:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>

DWORD ім'я: SchSendAuxRecord
Значення: 0

Примітка. Покажчик місця заповнення <version_number>, є v4.0.30319 або v 2.0.50727, залежно від версії.

</version_number>
виправлення помилок
Щоб тимчасово вимкнути, безпечний режим, описану в цій статті, клацніть відповідне посилання, щоб завантажити файл. reg і двічі клацніть файл завантажений. reg, щоб внести зміни до реєстру.

Для програм, які націлювання Microsoft .NET Framework 3.5:

Для застосування націлювання на Microsoft .NET Framework 4.0 і пізніших версій:

Щоб увімкнути безпечний режим, описану в цій статті, клацніть відповідне посилання, щоб завантажити файл. reg і двічі клацніть файл завантажений. reg, щоб внести зміни до реєстру.

Для програм, які націлювання Microsoft .NET Framework 3.5:

Для застосування націлювання на Microsoft .NET Framework 4.0 і пізніших версій:

Щоб отримати додаткові відомості про завантаження файлів підтримки Microsoft, клацніть номер статті в базі знань Microsoft Knowledge Base:
119591 Як отримати файли технічної підтримки Microsoft від онлайнових служб
Microsoft перевірив цей файл на наявність вірусів. корпорація Майкрософт використала останню версію програмного забезпечення для виявлення вірусів, що доступне на Вільний час публікації файлу. Файл зберігається на добре захищених серверах, які запобігають внесенню до файлу будь-яких несанкціонованих змін.


Вимкнути SCH_SEND_AUX_RECORD структуру для окремих програм
Для всіх програм додайте такий підрозділ реєстру:
Розділ реєстру:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD ім'я: повний шлях до програми .exe (наприклад, C:\MyApp\MyApp.exe)
Значення: 0

Примітка. Покажчик місця заповнення <version_number>, є v4.0.30319 або v 2.0.50727, залежно від версії.

Для 32-розрядні застосунки, які працюють на 64-розрядних комп'ютерах також додайте такий підрозділ реєстру:
</version_number>
Розділ реєстру:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>\System.Net.ServicePointManager.SchSendAuxRecord

DWORD ім'я: повний шлях до програми .exe (наприклад, C:\MyApp\MyApp.exe)
Значення: 0, (лише дійсні значення дорівнює 0. Значення буде проігноровано.)

Примітка. Покажчик місця заповнення <version_number>, є v4.0.30319 або v 2.0.50727, залежно від версії.

</version_number>

Спосіб 2., Змінити конфігурацію на прикладному рівні (доступна тільки для .NET Framework версії, 4.6 і пізніших версій.)

Починаючи з .NET Framework-4.6, можна змінити конфігурацію на рівні застосунку шляхом зміни конфігурації або реєстру код або програми.

В .NET Framework-4.6 можна встановити перемикач, скориставшись одним із наведених нижче способів. Ці приклади, вимкніть функцію для безпеки.
  • Програмним способом

    Перше, що має робити програму запустити наведений нижче код. Це тому, що служба точки диспетчера буде ініціалізувати лише один раз.
    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; AppContext.SetSwitch(DisableCachingName, true); AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Застосунок конфігурації.

    Щоб змінити налаштування застосунків, додайте такий запис:
    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/></runtime>
  • розділ реєстру (Глобальна комп'ютера)

    Розташування в реєстрі:
    HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\AppContext
    HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\.NETFramework\AppContext

    Значення: Switch.System.Net.DontEnableSchSendAuxRecord
    Тип: Рядок
    Значення: Справжнє

    Примітка. Switch.System.Net.DontEnableSchSendAuxRecord = False, для всіх програм.
Додаткові відомості
Нижче наведено приклад клієнт-сервер зв'язок "один-до-одного" шаблон до, і після інсталяції цього оновлення. Ця інформація для ілюстрації, для виявлення будь-яких застосунків, лом внаслідок інсталяції цього виправлення.

Без до зменшенняЗ до зменшення
[Сервер] очікування на підключення (127.0.0.1:4431)
[Клієнта] Підключення до localhost:4431
[Сервер] Клієнт підключення.
[Клієнта] Підключення. Автентифікації.
[Сервер] Клієнт автентифікацію.
[Клієнта] Надсилання запит на змінення (94 байт)
[Клієнта] Очікування відповіді.

[Сервер] Отримані 94 байт:<GET></GET>
Хост: contoso.com
Агент користувача: приймальні випробування, застосування

>>>
[Сервер] Відповів 476 байт.

[Клієнта 1: 476 байт] Відповідь:<HTTP .1="" 200=""></HTTP>

>>>>>
[Сервер] очікування на підключення (127.0.0.1:4431)
[Клієнта] Підключення до localhost:4431
[Сервер] Клієнт підключення.
[Клієнта] Підключення. Автентифікації.
[Сервер] Клієнт автентифікацію.
[Клієнта] Надсилання запит на змінення (94 байт)
[Клієнта] Очікування відповіді.
[Сервер] Отримані 1 байт: <G>>><b00> </b00> </G>
[Сервер] Отримані 93 байт:<ET></ET>
Хост: contoso.com
Агент користувача: приймальні випробування, застосування

>>>
[Сервер] Відповів 476 байт.
[Клієнта 1: 1 байт] Відповідь: <H>>>><b00> </b00> </H>
[Клієнта 2: 475 байт] Відповідь:<TTP .1="" 200=""></TTP>

>>>>>

Попередження. Цю статтю переведено автоматично

Властивості

Ідентифікатор статті: 3155464 – останній перегляд: 05/10/2016 17:54:00 – виправлення: 1.0

Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 3.5.1, Microsoft .NET Framework 3.5, Microsoft .NET Framework 2.0 Service Pack 2

  • kbsecvulnerability kbsecurity kbsecbulletin kbfix kbexpertiseinter kbbug atdownload kbmt KB3155464 KbMtuk
Зворотний зв’язок