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

Загальні відомості

Є відомості про розкриття уразливість протокол TLS протоколу і протоколу Secure Sockets Layer (TLS/SSL), а у шифрування компонент Microsoft .NET Framework. Зловмисник, який за певних умов цей дефект, може розшифрувати зашифровані TLS/SSL-трафіку.

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

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

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

Уразливість заголовок.

CVE номер

Відкрито розкривається

Використовувати

TLS/SSL спуфінга дефект.

CVE-2016-0149

Так

Ні

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

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

Примітка. Якості необхідно інсталювати Microsoft бюлетень безпеки 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 питань-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.Tls12 SslProtocols.Tls11та SslProtocols.Tls , як третій параметр. Щоб повний опис використання класу SslStream див. розділ SslStream класу веб-сайту корпорації Майкрософт для розробників (MSDN).

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


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

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

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

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

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

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

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

Вимкнення, SCH_SEND_AUX_RECORD структуру (глобальний)

Вимкнути SCH_SEND_AUX_RECORD структуру для окремих програм

Вимкнення, SCH_SEND_AUX_RECORD структуру (глобальний)

Для всіх програм додайте такий підрозділ реєстру:

Розділ реєстру: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < номер _ версії >
DWORD ім'я: SchSendAuxRecord
Значення: 0
Примітка. < Номер _ версії > покажчик місця заповнення, є v4.0.30319 або v 2.0.50727, залежно від версії.

Для 32-розрядні застосунки, які працюють на 64-розрядних комп'ютерах також додайте такий підрозділ реєстру:

Розділ реєстру: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < номер _ версії >
DWORD ім'я: SchSendAuxRecord
Значення: 0
Примітка. < Номер _ версії > покажчик місця заповнення, є v4.0.30319 або v 2.0.50727, залежно від версії.

Виправлення помилок

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

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

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

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

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

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

Download Завантажити файл ManualOptInSchSendAuxRecord40.reg.
Щоб отримати додаткові відомості про завантаження файлів підтримки Microsoft, клацніть номер статті в базі знань Microsoft:

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


Вимкнути SCH_SEND_AUX_RECORD структуру для окремих програм

Для всіх програм додайте такий підрозділ реєстру:

Розділ реєстру: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < номер _ версії > \System.Net.ServicePointManager.SchSendAuxRecord
DWORD ім'я: Повний шлях до програми .exe (наприклад, C:\MyApp\MyApp.exe)
Значення: 0
Примітка. < Номер _ версії > покажчик місця заповнення, є v4.0.30319 або v 2.0.50727, залежно від версії.

Для 32-розрядні застосунки, які працюють на 64-розрядних комп'ютерах також додайте такий підрозділ реєстру:

Розділ реєстру: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < номер _ версії > \System.Net.ServicePointManager.SchSendAuxRecord
DWORD ім'я: Повний шлях до програми .exe (наприклад, C:\MyApp\MyApp.exe)
Значення: 0, (лише дійсні значення дорівнює 0. Значення буде проігноровано.)
Примітка. < Номер _ версії > покажчик місця заповнення, є v4.0.30319 або v 2.0.50727, залежно від версії.

Спосіб 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\AppContextHKEY_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 байт: <<< отримати / HTTP/1.0
Host: contoso.com
Агент користувача: Тестування, застосування

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

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

>>>>>

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

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

>>>>>


Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×