Протокол TLS версии 1.2

Использование последней версии протокола TLS важно обеспечить безопасность сетевых подключенийприложений.

Предупреждение

Апрель 2018 г. — из-за повышенных требований к безопасности, включая соответствие PCI, крупные поставщики облачных и веб-серверов, как ожидается, перестают поддерживать версии TLS старше 1.2. Проекты Xamarin, созданные в предыдущих версиях Visual Studio по умолчанию, используют более старые версии TLS.

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

Проекты должны ссылаться на сборку System.Net.Http и настраиваться, как показано ниже.

Обновление Xamarin.Android до TLS 1.2

Обновите реализацию HttpClient и параметры реализации SSL/TLS, чтобы включить безопасность TLS 1.2.

Примечание.

Требуется Android 5.0 или более поздней версии.

Эти параметры можно найти в параметрах Android свойств > проекта, а затем нажмите кнопку "Дополнительно":

Configure HttpClient and TLS in Visual Studio for Android devices.

Обновление Xamarin.iOS до TLS 1.2

Обновите параметр реализации HttpClient, чтобы включить безопасность TSL 1.2.

Этот параметр можно найти в разделе "Свойства > проекта" iOS Build:

Configure HttpClient and TLS in Visual Studio for i O S devices.

Обновление Xamarin.Mac до TLS 1.2

В Visual Studio для Mac, чтобы включить TLS 1.2 в приложении Xamarin.Mac, обновите параметр реализации HttpClient в сборке> Mac для параметров > проекта:

Configure HttpClient in Visual Studio for Mac

Предупреждение

Будущий выпуск Xamarin.Mac 4.8 будет поддерживать только macOS 10.9 или более поздней версии. Предыдущие версии Xamarin.Mac поддерживали macOS 10.7 или более поздней версии, но в этих версиях macOS нет достаточной инфраструктуры TLS для поддержки TLS 1.2. Для macOS 10.7 или macOS 10.8 используйте Xamarin.Mac 4.6 или более ранней версии.

Альтернативные параметры конфигурации

В этом разделе рассматриваются альтернативные варианты поддерживаемых выше конфигураций TLS 1.2. Разработчики приложений должны учитывать только эти альтернативные варианты, если они понимают риски использования различных уровней поддержки TLS.

Реализация HttpClient

Разработчики Xamarin всегда могли использовать собственные сетевые классы в коде, однако есть также вариант, определяющий, какой сетевой стек используется классами HttpClient . Это предоставляет знакомый API .NET, который имеет преимущества скорости и безопасности собственной платформы.

Доступные параметры:

  • Управляемый стек — функциональность сети с поддержкой Mono или
  • Собственный стек — различные сетевые API, предоставляемые базовыми платформами (Android, iOS или macOS).

Управляемый стек обеспечивает высокий уровень совместимости с существующим кодом .NET, однако он может быть медленнее и привести к большему размеру исполняемого файла.

Собственные параметры могут быть быстрее и иметь более высокую безопасность (включая TLS 1.2), но не могут предоставлять все функциональные возможности и параметры HttpClient класса.

Реализация SSL/TLS (Android)

Параметры проекта Android также позволяют выбрать реализацию SSL/TLS для поддержки:

  • Mono/Managed — TLS 1.1 в Android
  • Native — TLS 1.2 в Android.

Новые проекты Xamarin по умолчанию поддерживают собственную реализацию, которая поддерживает TLS 1.2 (рекомендуется для всех проектов), однако при необходимости можно вернуться к управляемому коду, если это необходимо по соображениям совместимости.

Внимание

Параметр Mono/Managed удален из параметров проекта iOS и Mac .

Параметр Native всегда используется на платформах iOS и Mac.

Сведения о конкретной платформе

В приведенной выше сводке описаны параметры уровня проекта для реализации HttpClient и SSL/TLS в Xamarin Projects. Реализация HttpClient также может быть настроена динамически в коде. Дополнительные сведения см. в следующих руководствах для конкретной платформы:

Итоги

Приложения должны использовать tls 1.2, где это возможно. Параметры в существующих приложениях следует обновить в соответствии с инструкциями в этой статье, а затем повторно создать и повторно развернуть для клиентов.