Share via


傳輸層安全性 (TLS) 1.2

使用最新版的 傳輸層安全性 (TLS) 對於確保應用程式網路通訊安全很重要。

警告

2018 年 4 月 – 由於安全性需求增加,包括 PCI 合規性、主要雲端提供者和網頁伺服器,預計將停止支援 1.2 之前的 TLS 版本。 在舊版Visual Studio中建立的 Xamarin 項目預設為使用舊版 TLS。

為了確保您的應用程式能夠繼續使用這些伺服器和服務, 您應該更新您的 Xamarin 專案以使用下列設定,然後將您的應用程式 重新建置並重新部署到您的使用者。

項目必須參考 System.Net.Http 元件,並加以設定,如下所示。

將 Xamarin.Android 更新為 TLS 1.2

更新 HttpClient 實作SSL/TLS 實作選項,以啟用 TLS 1.2 安全性。

注意

需要 Android 5.0 或更新版本。

您可以在 [項目屬性 Android 選項] 中找到這些設定,然後按兩下 [進階] 按鈕:>

在 Visual Studio for Android 裝置中設定 HttpClient 和 TLS。

將 Xamarin.iOS 更新為 TLS 1.2

更新 HttpClient 實作選項以啟用 TSL 1.2 安全性。

您可以在項目屬性 > iOS 組建中找到此設定:

在 Visual Studio for i O S 裝置中設定 HttpClient 和 TLS。

將 Xamarin.Mac 更新為 TLS 1.2

在 Visual Studio for Mac 中,若要在 Xamarin.Mac 應用程式中啟用 TLS 1.2,請在 Project Options > Build > Mac 組建更新 HttpClient 實作選項:

在 Visual Studio for Mac 中設定 HttpClient

警告

即將推出的 Xamarin.Mac 4.8 版只會支援 macOS 10.9 或更高版本。 舊版 Xamarin.Mac 支援 macOS 10.7 或更高版本,但這些較舊的 macOS 版本缺乏足夠的 TLS 基礎結構,無法支援 TLS 1.2。 若要以 macOS 10.7 或 10.8 為目標,請使用 Xamarin.Mac 4.6 或更舊版本。

替代組態選項

本節討論上述 TLS 1.2 支援的組態替代方案。 應用程式開發人員只有在瞭解使用不同 TLS 支援層級的風險時,才應考慮這些替代方案。

HttpClient 實作

Xamarin 開發人員一直能夠在其程式代碼中使用原生網路類別,不過也有一個選項可決定類別使用 HttpClient 哪一個網路堆疊。 這會提供熟悉的 .NET API,其具有原生平臺的速度和安全性優勢。

選項是:

  • 受控堆疊 – 單一提供的網路功能,或
  • 原生堆疊 – 基礎平臺所提供的各種網路 API(Android、iOS 或 macOS)。

Managed 堆疊提供與現有 .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 的原生實作,但基於相容性考慮,您可以視需要切換回 Managed 程式代碼。

重要

Mono/Managed 選項已從 iOS 和 Mac 項目選項中移除。

原生選項一律用於iOS和Mac平臺上。

平臺特定詳細數據

上述摘要說明 Xamarin Projects 中 HttpClient 和 SSL/TLS 實作的專案層級設定。 您也可以在程式代碼中動態設定 HttpClient 實作。 如需詳細資訊,請參閱這些平臺特定指南:

摘要

應用程式應盡可能使用傳輸層安全性 (TLS) 1.2。 您應該根據本文中的指示更新現有應用程式中的設定,然後重新建置並重新部署給您的客戶。