전송 계층 보안 (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 년 4 월 보안 강화로 인해 – 요구 사항, 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. 이전 버전의 Visual Studio 이전 버전의 TLS 사용 하 여 기본값으로 만든 Xamarin 프로젝트입니다.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.

Tls 1.2 업데이트 Xamarin.AndroidUpdate 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:

Visual Studio에서 TLS 및 HttpClient 구성Configure HttpClient and TLS in Visual Studio

Xamarin.iOS TLS 1.2 업데이트Update 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:

Visual Studio에서 TLS 및 HttpClient 구성Configure HttpClient and TLS in Visual Studio

Update Xamarin.Mac to TLS 1.2Update Xamarin.Mac to TLS 1.2

Mac 용 Visual Studio에서 업데이트에 Xamarin.Mac 앱에서 TLS 1.2를 사용 하도록 설정 합니다 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:

Mac 용 Visual Studio에서 HttpClient 구성Configure 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 1.2를 지원할 수 있는 TLS 인프라가 충분하지 않습니다.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.

HttpClient 구현HttpClient 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. 네이티브 플랫폼의 속도 보안 이점이 있는 친숙 한.NET API를 제공 합니다.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
  • 네이티브 스택을 – 다양 한 네트워킹 기본 플랫폼 (Android, iOS 또는 macOS)에서 제공 하는 Api입니다.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/관리 – Android에서 TLS 1.1Mono/Managed – TLS 1.1 on Android
  • 네이티브 – Android에서 TLS 1.2입니다.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/Managed 옵션 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

위의 요약 Xamarin 프로젝트에서 SSL/TLS 및 HttpClient 구현에 대 한 프로젝트 수준 설정에 설명 합니다.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.