Безопасности транспортного уровня (TLS) 1.2Transport Layer Security (TLS) 1.2

С помощью последней версии Transport Layer Security (TLS) важна для обеспечения сетевых подключений с приложения являются безопасными.Using the latest version of Transport Layer Security (TLS) is important to ensure application network communications are secure.

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

Апреля 2018 г. — из-за повышения уровня безопасности требования, а также соблюдение стандартов PCI, основных поставщиков облачных служб и веб-серверы должны прекратив поддержку версии TLS, предшествующей версии 1.2.April, 2018 – Due to increased security requirements, including PCI compliance, major cloud providers and web servers are expected to stop supporting TLS versions older than 1.2. Проекты Xamarin, созданные в предыдущих версиях Visual Studio по умолчанию для использования более старые версии TLS.Xamarin projects created in previous versions of Visual Studio default to use older versions of TLS.

Чтобы продолжить работу с этих серверов и служб, приложений следует обновить проекты Xamarin для использования параметров, указанных ниже, а затем повторное построение и повторно развертывать приложения для пользователей.In order to ensure your apps continue to work with these servers and services, you should update your Xamarin projects to use the settings below, then re-build and re-deploy your apps to your users.

Проекты должны ссылаться на System.Net.Http сборки и настроить, как показано ниже.Projects must reference the System.Net.Http assembly and be configured as shown below.

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

Обновление реализация HttpClient и реализация SSL/TLS для включения безопасности TLS 1.2.Update the HttpClient implementation and SSL/TLS implementation options to enable TLS 1.2 security.

Примечание

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

Эти параметры можно найти в свойства проекта > Параметры Android и щелкнув Дополнительно кнопки:These settings can be found in Project Properties > Android Options and then clicking on the Advanced button:

Настройка HttpClient и TLS в Visual StudioConfigure HttpClient and TLS in Visual Studio

Обновите Xamarin.iOS до TLS 1.2Update Xamarin.iOS to TLS 1.2

Обновление реализация HttpClient параметр, чтобы включить безопасность TSL 1.2.Update the HttpClient Implementation option to enable TSL 1.2 security.

Этот параметр можно найти в свойства проекта > сборка iOS:This setting can be found in Project Properties > iOS Build:

Настройка HttpClient и TLS в Visual StudioConfigure HttpClient and TLS in Visual Studio

Обновите Xamarin.Mac до TLS 1.2Update Xamarin.Mac to TLS 1.2

В Visual Studio для Mac, чтобы включить TLS 1.2 в приложении Xamarin.Mac, обновите реализация HttpClient в диалоговом окне параметры проекта > Создать > сборка Mac:In Visual Studio for Mac, to enable TLS 1.2 in a Xamarin.Mac app, update the HttpClient Implementation option in Project Options > Build > Mac Build:

Настройка HttpClient в Visual Studio для MacConfigure HttpClient in Visual Studio for Mac

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

Будущий выпуск Xamarin.Mac 4.8 будет поддерживать только macOS 10.9 или более поздней версии.The upcoming Xamarin.Mac 4.8 release will only support macOS 10.9 or higher. Предыдущие версии Xamarin.Mac поддерживали macOS 10.7 или более поздней версии, но в этих версиях macOS нет достаточной инфраструктуры TLS для поддержки TLS 1.2.Previous versions of Xamarin.Mac supported macOS 10.7 or higher, but these older macOS versions lack sufficient TLS infrastructure to support TLS 1.2. Для macOS 10.7 или macOS 10.8 используйте Xamarin.Mac 4.6 или более ранней версии.To target macOS 10.7 or macOS 10.8, use Xamarin.Mac 4.6 or earlier.

Альтернативные параметрыAlternative configuration options

В этом разделе рассматриваются альтернативные варианты конфигурации поддерживается TLS 1.2, показанный выше.This section discusses alternatives to the TLS 1.2-supported configurations shown above. Разработчики приложений могут попробовать в этих вариантов, только если они понимаете риски использования разных уровней поддержки TLS.Application developers should only consider these alternatives if they understand the risks of using different levels of TLS support.

Реализация HttpClientHttpClient implementation

Xamarin разработчики всегда были возможность использовать собственный сетевые классы в коде, но также используется параметр, который определяет, какой сетевой стек HttpClient классы.Xamarin developers have always been able to use the native networking classes in their code, however there is also an option that determines which networking stack is used by the HttpClient classes. Это предоставляет знакомый API .NET, обладает преимуществами собственной платформы скорость и безопасность.This provides a familiar .NET API that has the speed and security advantages of the native platform.

Доступны следующие варианты.The options are:

  • Управляемого стека — функциональных возможностей, предоставляемых системой Mono сети, илиManaged stack – the Mono-provided network functionality, or
  • Собственный стек — различные сетевые интерфейсы API, предоставляемые базовых платформ (Android, iOS или macOS).Native stack – various networking APIs provided by the underlying platforms (Android, iOS, or macOS).

Управляемый стек предоставляет самый высокий уровень совместимости с существующим кодом .NET, однако он может выполняться медленнее и привести больший размер исполняемого файла.The managed stack provides the highest level of compatibility with existing .NET code, however it can be slower and result in larger executable size.

Встроенные функции все же может быть быстрее и имеют более высокий уровень безопасности (включая TLS 1.2), но может не предоставлять все функциональные возможности и варианты HttpClient класса.The native options can be faster and have better security (including TLS 1.2), but may not provide all the functionality and options of the HttpClient class.

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

Параметры проекта Android также позволяют выбрать, какую реализацию SSL/TLS для поддержки:Android project options also let you choose which SSL/TLS implementation to support:

  • Mono/управляемые — TLS 1.1 на устройстве AndroidMono/Managed – TLS 1.1 on Android
  • Собственный — TLS 1.2 на устройстве Android.Native – TLS 1.2 on Android.

По умолчанию новые проекты Xamarin к собственной реализацией, которая поддерживает TLS 1.2 (что рекомендуется для всех проектов), однако можно переключиться обратно для управляемого кода, если необходимые для обеспечения совместимости.New Xamarin projects default to the native implementation that supports TLS 1.2 (which is recommended for all projects), however you can switch back to the managed code if required for compatibility reasons.

Важно!

Mono или управляемого был параметр удалены из iOS и Mac параметры проекта.The Mono/Managed option has been removed from iOS and Mac project options.

Собственный вариант всегда используется в iOS и Mac платформ.The Native option is always used on iOS and Mac platforms.

Сведения о конкретных платформPlatform-specific details

Сводка выше описаны параметры на уровне проекта для реализации HttpClient и SSL/TLS в проектах Xamarin.The above summary explains the project-level settings for HttpClient and SSL/TLS implementation in Xamarin Projects. Реализация HttpClient также можно динамически задать в коде.The HttpClient implementation can also be set dynamically in code. См. Эти платформы руководства, Дополнительные сведения:Refer to these platform-specific guides for more information:

СводкаSummary

Приложения должны использовать уровень безопасности транспорта (TLS) 1.2, везде, где это возможно.Applications should use Transport Layer Security (TLS) 1.2 wherever possible. Следует обновить параметры в существующие приложения в соответствии с инструкциями в этой статье, а затем повторное построение и повторного развертывания у клиентов.You should update the settings in existing applications according to the instructions in this article, then re-build and re-deploy to your customers.