Перейти к основному контенту
Поддержка
Войдите с помощью учетной записи Майкрософт
Войдите или создайте учетную запись.
Здравствуйте,
Выберите другую учетную запись.
У вас несколько учетных записей
Выберите учетную запись, с помощью которой нужно войти.

Обзор

Согласно реализации в компонент шифрования Microsoft платформа.NET Framework в протокол Transport Layer Security и протокол Secure Sockets Layer (TLS/SSL) существует уязвимость раскрытия информации. Злоумышленник, успешно воспользовавшийся данной уязвимостью может расшифровать зашифрованные трафика TLS/SSL.

Чтобы воспользоваться уязвимостью, сначала злоумышленник должен внедрить незашифрованные данные в безопасный канал и затем проводить атаки (MiTM) в середине между целевой клиент и сервер законным. Это обновление устраняет уязвимость, изменяя способ, что компонент шифрования .NET отправляет и получает зашифрованный сетевых пакетов.

Эта уязвимость устранена как часть бюллетеня корпорации Майкрософт по безопасности MS16-065. Это обновление изменяет способ, платформа.NET Framework компонент шифрования отправляет и получает зашифрованный сетевых пакетов.

В следующей таблице приведены ссылки на стандартной записи для каждой уязвимости присвоен номер списка.

Уязвимость заголовков

Номер CVE

Сообщено

Воспользовавшись

Уязвимость подделки TLS/SSL

CVE-2016-0149

Да

Нет

Уязвимость разрешения

Изменение внесено в бюллетене корпорации Майкрософт по безопасности MS16-065 в результате первой записи TLS после подтверждения для разбиения. В этом случае класс SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient и HttpClient (где на основании HttpWebRequest) потоки для возвращения одного байта при первом чтении немедленно следуют байты rest (n-1) в последовательных операций чтения. Это изменение поведения происходит только для приложений, использующих протокол TLS 1.0 + сцепления блоков шифра, но не когда они используют TLS 1.1 и TLS 1.2.

Примечание. Всего, необходимо установить бюллетень корпорации Майкрософт по безопасности MS12-006 , чтобы установить данное обновление.

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

Средств преодоления проблем совместимости

Вариант 1: Переключение на протокол TLS 1.2

Этот параметр позволяет использовать протокол TLS 1.2 путем изменения реестра или программной настройке протокола версии приложения.

  • Изменение реестра

    Важно:
    Тщательно выполните действия, описанные в этом разделе. При неправильном изменении реестра могут возникнуть серьезные проблемы. До изменения его резервную копию для восстановления реестра в случае возникновения проблем.

    Платформа.NET Framework 4.0 и платформа.NET Framework 4.5.x приложений, которые выполняются в .NET Framework 4.5 и более поздних версиях переключения по умолчанию протокол TLS 1.0, TLS 1.1 и TLS 1.2 включить раздел реестра SchUseStrongCrypto . Этот раздел реестра рассматривается в разделе Предлагаемые действия раздела 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 на веб-сайте Microsoft Developer (MSDN).

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


Вариант 2: Маркер разделения пакетов

Данное обновление приводит к одной записи можно разбить на несколько записей. Таким образом Если приложение ожидает завершения записи будут доступны в одном вызове чтения , может нарушить таких приложений. Чтобы убедиться в том, что приложение работает правильно, убедитесь, что приложение обрабатывает пакеты, разделения, выполняя вызов Stream.Read правильно. Можно использовать пример кода доступны здесь для справки по устранению приложения правильно выполнять вызов чтения .

Пример запроса HTTP, показана разница в поведении перед (Уменьшение) и после (без снижения) были установлены обновления 3147461 и 3147458 , обратитесь к разделу «Дополнительная информация».

Например метод Stream.Read приведены в разделе Метод Stream.Read (Byte [], Int32, Int32) на веб-сайте Microsoft Developer (MSDN).

Методы обхода проблем совместимости приложений

Предупреждение Эти методы обхода проблемы может сделать компьютер или сеть более уязвим для атак пользователей-злоумышленников или проникновения вирусов и других вредоносных программ. Корпорация Майкрософт не рекомендует использовать эти методы обхода проблемы, но в таким образом, можно реализовать эти методы обхода проблемы на свой собственный риск. Используйте эти методы обхода проблемы на свой страх и риск.

Метод 1: Обновление реестра (доступно для всех версий платформа.NET Framework)

Отключить структуру SCH_SEND_AUX_RECORD (глобально)

Отключить SCH_SEND_AUX_RECORD структуры для отдельных приложений

Отключить структуру SCH_SEND_AUX_RECORD (глобально)

Для всех приложений добавьте следующий параметр реестра:

Расположение в реестре: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
Имя DWORD: SchSendAuxRecord
Значение: 0
Примечание. Заполнитель < version_number > — v4.0.30319 или v2.0.50727, в зависимости от версии.

Для 32-разрядных приложений, выполняемых в 64-разрядных компьютерах также необходимо добавьте в следующий подраздел реестра:

Расположение в реестре: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
Имя DWORD: SchSendAuxRecord
Значение: 0
Примечание. Заполнитель < version_number > — v4.0.30319 или v2.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 через оперативные службы 119591Корпорация Майкрософт проверила этот файл на наличие вирусов. Корпорация Майкрософт использует последнее антивирусное программное обеспечение, доступное на период публикации файла. Файл хранится на защищенных серверах, что предотвращает его несанкционированное изменение.


Отключить SCH_SEND_AUX_RECORD структуры для отдельных приложений

Для всех приложений добавьте следующий параметр реестра:

Расположение в реестре: HKEY_LOCAL_MACHINE\Software\Microsoft\. \System.Net.ServicePointManager.SchSendAuxRecord NETFramework\ < version_number >
Имя DWORD: Полный путь к .exe приложения (например, C:\MyApp\MyApp.exe)
Значение: 0
Примечание. Заполнитель < version_number > — v4.0.30319 или v2.0.50727, в зависимости от версии.

Для 32-разрядных приложений, выполняемых в 64-разрядных компьютерах также необходимо добавьте в следующий подраздел реестра:

Расположение в реестре: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. \System.Net.ServicePointManager.SchSendAuxRecord NETFramework\ < version_number >
Имя DWORD: Полный путь к .exe приложения (например, C:\MyApp\MyApp.exe)
Данные значения: 0 (единственным допустимым значением является 0. Любое другое значение игнорируется.)
Примечание. Заполнитель < version_number > — v4.0.30319 или v2.0.50727, в зависимости от версии.

Способ 2: Изменение конфигурации на уровне приложения (доступно только для платформа.NET Framework версии 4.6 и более поздних версий)

Начиная с 4.6 платформа.NET Framework, можно изменить конфигурацию на уровне приложения через код или приложение изменения конфигурации или реестра.

В 4.6 платформа.NET Framework можно установить параметр с помощью любого из следующих методов. В этих примерах отключить функцию безопасности.

  • Программными средствами

    Первое, что должен сделать приложение выполняется следующий код. Это происходит потому, что точки Service Manager будет инициализировать только один раз.

    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
    Тип: Строка
    Значение: Значение true

    Примечание. Switch.System.Net.DontEnableSchSendAuxRecord = False для всех приложений.

Дополнительные сведения

Ниже приведен шаблон взаимодействия клиент-сервер образца до и после установки этого обновления. Эта информация предоставляется для иллюстрации для идентификации выхода из строя любого приложения из-за установки этого исправления.

Без устранения рисков

С по снижению

[Сервер] Ожидание подключения (127.0.0.1:4431)
[Клиент] Подключение к localhost:4431
[Сервер] Клиент подключен.
[Клиент] Подключение. Проверка подлинности...
[Сервер] Проверка подлинности клиента.
[Клиент] Отправка запроса (94 байт)
[Клиент] Ожидание ответа...

[Сервер] Получено байтов 94: <<< GET и 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: <<< ET / HTTP/1.0
Host: contoso.com
Агента пользователя: Тестирование приложения

>>>
[Сервер] Ответили 476 байт.
[Клиент 1: 1 байт] Ответ: <<<<< H >>>>>
[Клиента 2: 475 байт] Ответ: <<<<< TTP/1.1 200 OK

>>>>>


Нужна дополнительная помощь?

Нужны дополнительные параметры?

Изучите преимущества подписки, просмотрите учебные курсы, узнайте, как защитить свое устройство и т. д.

В сообществах можно задавать вопросы и отвечать на них, отправлять отзывы и консультироваться с экспертами разных профилей.

Были ли сведения полезными?

Насколько вы удовлетворены качеством перевода?
Что повлияло на вашу оценку?
После нажатия кнопки "Отправить" ваш отзыв будет использован для улучшения продуктов и служб Майкрософт. Эти данные будут доступны для сбора ИТ-администратору. Заявление о конфиденциальности.

Спасибо за ваш отзыв!

×