TLS(전송 계층 보안) 1.2

최신 버전의 TLS(전송 계층 보안 ) 를 사용하는 것은 애플리케이션 네트워크 통신의 보안을 보장하는 데 중요합니다.

Warning

2018 년 4월 – PCI 규정 준수를 비롯한 보안 요구 사항 증가로 인해 주요 클라우드 공급자 및 웹 서버는 1.2보다 오래된 TLS 버전 지원을 중지할 것으로 예상됩니다. 이전 버전의 Visual Studio에서 만든 Xamarin 프로젝트는 기본적으로 이전 버전의 TLS를 사용합니다.

앱이 이러한 서버 및 서비스에서 계속 작동하도록 하려면 아래 설정을 사용하도록 Xamarin 프로젝트를 업데이트한 다음, 앱을 다시 빌드하고 사용자에게 다시 배포해야 합니다.

프로젝트는 System.Net.Http 어셈블리를 참조하고 아래와 같이 구성해야 합니다.

Xamarin.Android를 TLS 1.2로 업데이트

TLS 1.2 보안을 사용하도록 HttpClient 구현SSL/TLS 구현 옵션을 업데이트합니다.

참고 항목

Android 5.0 이상이 필요합니다.

이러한 설정은 프로젝트 속성 > Android 옵션에서 찾을 수 있으며 고급 단추를 클릭합니다.

Configure HttpClient and TLS in Visual Studio for Android devices.

Xamarin.iOS를 TLS 1.2로 업데이트

TSL 1.2 보안을 사용하도록 HttpClient 구현 옵션을 업데이트합니다.

이 설정은 프로젝트 속성 > iOS 빌드에서 찾을 수 있습니다.

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

Xamarin.Mac을 TLS 1.2로 업데이트

Mac용 Visual Studio Xamarin.Mac 앱에서 TLS 1.2를 사용하도록 설정하려면 프로젝트 옵션 > 빌드 > Mac 빌드에서 HttpClient 구현 옵션을 업데이트합니다.

Configure HttpClient in Visual Studio for Mac

Warning

예정된 Xamarin.Mac 4.8 릴리스는 macOS 10.9 이상만 지원합니다. 이전 버전의 Xamarin.Mac은 macOS 10.7 이상을 지원했지만 이러한 이전 macOS 버전에는 TLS 1.2를 지원할 수 있는 TLS 인프라가 충분하지 않습니다. macOS 10.7 또는 macOS 10.8을 대상으로 하려면 Xamarin.Mac 4.6 또는 이전 버전을 사용하세요.

대체 구성 옵션

이 섹션에서는 위에 표시된 TLS 1.2 지원 구성에 대한 대안을 설명합니다. 애플리케이션 개발자는 다양한 수준의 TLS 지원을 사용하는 위험을 이해하는 경우에만 이러한 대안을 고려해야 합니다.

HttpClient 구현

Xamarin 개발자는 항상 코드에서 네이티브 네트워킹 클래스를 사용할 수 있었지만 클래스에서 사용되는 HttpClient 네트워킹 스택을 결정하는 옵션도 있습니다. 이 기능은 네이티브 플랫폼의 속도와 보안 이점이 있는 친숙한 .NET API를 제공합니다.

옵션은 다음과 같습니다.

  • 관리 스택 – Mono 제공 네트워크 기능 또는
  • 네이티브 스택 – 기본 플랫폼(Android, iOS 또는 macOS)에서 제공하는 다양한 네트워킹 API입니다.

관리되는 스택은 기존 .NET 코드와 가장 높은 수준의 호환성을 제공하지만 속도가 느려지고 실행 파일 크기가 커질 수 있습니다.

네이티브 옵션은 더 빠르고 더 나은 보안(TLS 1.2 포함)을 가질 수 있지만 클래스의 HttpClient 모든 기능과 옵션을 제공하지는 않을 수 있습니다.

SSL/TLS 구현(Android)

Android 프로젝트 옵션을 사용하면 지원할 SSL/TLS 구현을 선택할 수도 있습니다.

  • Mono/Managed – Android의 TLS 1.1
  • 네이티브 – Android의 TLS 1.2.

새 Xamarin 프로젝트는 기본적으로 TLS 1.2(모든 프로젝트에 권장됨)를 지원하는 네이티브 구현으로 설정됩니다. 그러나 호환성을 위해 필요한 경우 관리 코드로 다시 전환할 수 있습니다.

Important

Mono/Managed 옵션이 iOS 및 Mac 프로젝트 옵션에서 제거되었습니다.

기본 옵션은 항상 iOS 및 Mac 플랫폼에서 사용됩니다.

플랫폼별 세부 정보

위의 요약에서는 Xamarin Projects에서 HttpClient 및 SSL/TLS 구현에 대한 프로젝트 수준 설정을 설명합니다. HttpClient 구현은 코드에서 동적으로 설정할 수도 있습니다. 자세한 내용은 다음 플랫폼별 가이드를 참조하세요.

요약

애플리케이션은 가능한 경우 TLS(전송 계층 보안) 1.2를 사용해야 합니다. 이 문서의 지침에 따라 기존 애플리케이션의 설정을 업데이트한 다음, 다시 빌드하고 고객에게 다시 배포해야 합니다.