View a markdown version of this page

Menegakkan versi TLS minimum di AWS SDK untuk .NET - AWS SDK untuk .NET (V4)

Versi 4 (V4) AWS SDK untuk .NET telah dirilis!

Untuk informasi tentang mengubah perubahan dan memigrasikan aplikasi Anda, lihat topik https://docs.aws.amazon.com/sdk-for-net/v4/developer-guide/net-dg-v4.html migrasi.

Orange button with text "Click here for details".

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Menegakkan versi TLS minimum di AWS SDK untuk .NET

Untuk meningkatkan keamanan saat berkomunikasi dengan AWS layanan, Anda harus mengonfigurasi AWS SDK untuk .NET untuk menggunakan TLS 1.2 atau yang lebih baru.

Menggunakan AWS SDK untuk .NET runtime .NET yang mendasarinya untuk menentukan protokol keamanan mana yang akan digunakan. Secara default, versi .NET saat ini menggunakan protokol terkonfigurasi terbaru yang didukung sistem operasi. Aplikasi Anda dapat mengganti perilaku SDK ini, tetapi tidak disarankan untuk melakukannya.

TLS 1.3 adalah prasyarat untuk mengaktifkan kriptografi pasca-kuantum, yang mungkin memerlukan tindakan atau konfigurasi tambahan. Untuk mempelajari selengkapnya, lihat Meng aktifkan TLS pasca-kuantum hibrida di Panduan AWS Referensi SDK dan Alat.

.NET Core

Secara default, .NET Core menggunakan protokol terkonfigurasi terbaru yang didukung sistem operasi. Itu AWS SDK untuk .NET tidak menyediakan mekanisme untuk mengesampingkan ini.

Jika Anda menggunakan versi .NET Core lebih awal dari 2.1, kami sangat menyarankan Anda meningkatkan versi .NET Core Anda.

Lihat berikut untuk informasi khusus untuk setiap sistem operasi.

Windows

Distribusi modern Windows memiliki dukungan TLS 1.2 yang diaktifkan secara default. Jika Anda menjalankan Windows 7 SP1 atau Windows Server 2008 R2 SP1, Anda perlu memastikan bahwa dukungan TLS 1.2 diaktifkan di registri, seperti yang dijelaskan di https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings #tls -12. Jika Anda menjalankan distribusi sebelumnya, Anda harus memutakhirkan sistem operasi Anda. Untuk informasi tentang dukungan TLS 1.3 di Windows, periksa dokumentasi Microsoft terbaru untuk versi klien atau server minimum yang diperlukan.

MacOS

Jika Anda menjalankan.NET Core 2.1 atau yang lebih baru, TLS 1.2 diaktifkan secara default. TLS 1.2 didukung oleh OS X Mavericks v10.9 atau yang lebih baru. .NET Core versi 2.1 dan yang lebih baru memerlukan versi macOS yang lebih baru, seperti yang dijelaskan di https://learn.microsoft.com/en-us/dotnet/core/install/windows? tab = net80&pivots=os-macos.

Jika Anda menggunakan.NET Core 1.0, .NET Core menggunakan OpenSSL di macOS, dependensi yang harus diinstal secara terpisah. OpenSSL menambahkan dukungan untuk TLS 1.2 di versi 1.0.1, dan menambahkan dukungan untuk TLS 1.3 di versi 1.1.1.

Linux

.NET Core di Linux membutuhkan OpenSSL, yang dibundel dengan banyak distribusi Linux. Tapi itu juga bisa dipasang secara terpisah. OpenSSL menambahkan dukungan untuk TLS 1.2 di versi 1.0.1, dan menambahkan dukungan untuk TLS 1.3 di versi 1.1.1. Jika Anda menggunakan versi modern.NET Core (2.1 atau yang lebih baru) dan telah menginstal manajer paket, kemungkinan versi OpenSSL yang lebih modern telah diinstal untuk Anda.

Untuk memastikannya, Anda dapat menjalankan openssl version di terminal dan memverifikasi bahwa versinya lebih lambat dari 1.0.1.

.NET Framework

Jika Anda menjalankan versi modern.NET Framework (4.7 atau lebih baru) dan versi modern Windows (setidaknya Windows 8 untuk klien, Windows Server 2012 atau yang lebih baru untuk server), TLS 1.2 diaktifkan dan digunakan secara default.

Jika Anda menggunakan runtime .NET Framework yang tidak menggunakan pengaturan sistem operasi (.NET Framework 3.5 hingga 4.5.2), AWS SDK untuk .NET akan mencoba menambahkan dukungan untuk TLS 1.1 dan TLS 1.2 ke protokol yang didukung. Jika Anda menggunakan.NET Framework 3.5, ini akan berhasil hanya jika hot patch yang sesuai diinstal, sebagai berikut:

Awas

Pada tanggal 15 Agustus 2024, dukungan untuk .NET Framework 3.5 AWS SDK untuk .NET berakhir dan mengubah versi minimum.NET Framework menjadi 4.7.2. Untuk informasi lebih lanjut, lihat posting blog Perubahan penting yang akan datang untuk.NET Framework 3.5 dan 4.5 targetnya AWS SDK untuk .NET.

Jika aplikasi Anda berjalan pada .NET Framework yang lebih baru pada Windows 7 SP1 atau Windows Server 2008 R2 SP1, Anda perlu memastikan bahwa dukungan TLS 1.2 diaktifkan di registri, seperti yang dijelaskan di https://learn.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings #tls -12. Versi Windows yang lebih baru mengaktif kannya secara default.

Untuk praktik terbaik terperinci untuk menggunakan TLS dengan.NET Framework, lihat artikel Microsoft di https://learn.microsoft.com/en-us/dotnet/framework/network-programming/tls.

Alat AWS untuk PowerShell

Alat AWS untuk PowerShellgunakan AWS SDK untuk .NET untuk semua panggilan ke AWS layanan. Perilaku lingkungan Anda tergantung pada versi Windows yang PowerShell Anda jalankan, sebagai berikut.

Windows PowerShell 2.0 hingga 5.x

Windows PowerShell 2.0 hingga 5.x berjalan di.NET Framework. Anda dapat memverifikasi runtime .NET mana (2.0 atau 4.0) yang digunakan PowerShell dengan menggunakan perintah berikut.

$PSVersionTable.CLRVersion
  • Saat menggunakan.NET Runtime 2.0, ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan .NET Framework 3.5.

    Awas

    Pada tanggal 15 Agustus 2024, dukungan untuk .NET Framework 3.5 AWS SDK untuk .NET berakhir dan mengubah versi minimum.NET Framework menjadi 4.7.2. Untuk informasi lebih lanjut, lihat posting blog Perubahan penting yang akan datang untuk.NET Framework 3.5 dan 4.5 targetnya AWS SDK untuk .NET.

  • Saat menggunakan.NET Runtime 4.0, ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan .NET Framework 4+.

Windows PowerShell 6.0

Windows PowerShell 6.0 dan yang lebih baru berjalan di.NET Core. Anda dapat memverifikasi versi mana dari.NET Core yang digunakan dengan menjalankan perintah berikut.

[System.Reflection.Assembly]::GetEntryAssembly().GetCustomAttributes([System.Runtime.Versioning.TargetFrameworkAttribute], $true).FrameworkName

Ikuti petunjuk yang diberikan sebelumnya mengenai AWS SDK untuk .NET dan versi yang relevan dari.NET Core.

Xamarin

Untuk Xamarin, lihat petunjuk arah di. https://learn.microsoft.com/en-us/xamarin/cross-platform/app-fundamentals/transport-layer-security Singkatnya:

Untuk Android

  • Memerlukan Android 5.0 atau lebih baru.

  • Properti Proyek, Opsi Android: HttpClient implementasi harus disetel ke Android dan SSL/TLS implementasi disetel ke Native TLS 1. 2+.

Untuk iOS

  • Memerlukan iOS 7 atau lebih baru.

  • Properti Proyek, iOS Build: HttpClient implementasi harus diatur ke NSUrlSession.

Untuk macOS

  • Memerlukan macOS 10.9 atau yang lebih baru.

  • Opsi Proyek, Bangun, Mac Build: HttpClient implementasi harus diatur ke NSUrlSession.

Unity

Anda harus menggunakan Unity 2018.2 atau yang lebih baru, dan menggunakan runtime scripting.NET 4.x Equivalent. Anda dapat mengatur ini di Pengaturan Proyek, Konfigurasi, Pem utar, seperti yang dijelaskan di https://docs.unity3d.com/2019.1/Documentation/Manual/ScriptingRuntimeUpgrade.html. Runtime scripting.NET 4.x Equivalent memungkinkan dukungan TLS 1.2 untuk semua platform Unity yang menjalankan Mono atau IL2CPP.

Browser (untuk Blazor WebAssembly)

WebAssembly berjalan di browser alih-alih di server, dan menggunakan browser untuk menangani lalu lintas HTTP. Oleh karena itu, dukungan TLS ditentukan oleh dukungan browser.

Blazor WebAssembly, dalam pratinjau untuk ASP.NET Core 3.1, hanya didukung di browser yang mendukung WebAssembly, seperti yang dijelaskan di https://learn.microsoft.com/en-us/aspnet/core/blazor/supported-platforms. Semua browser utama mendukung TLS 1.2 sebelum mendukung WebAssembly. Jika ini berlaku untuk browser Anda, maka jika aplikasi Anda berjalan, aplikasi dapat berkomunikasi melalui TLS 1.2.

Lihat dokumentasi browser Anda untuk informasi lebih lanjut dan verifikasi.