Bersiap untuk dukungan TLS 1.3 mendatang untuk Azure Cosmos DB
BERLAKU UNTUK: NoSQL MongoDB Cassandra Gremlin Meja
Azure Cosmos DB akan mengaktifkan dukungan TLS 1.3 pada titik akhir publik di seluruh platformnya secara global untuk selaras dengan praktik terbaik keamanan pada 10 Oktober 2024. Mulai 31 Oktober 2024, kami secara resmi menghentikan TLS 1.0/1.1.. Hanya TLS 1.2 atau yang lebih tinggi yang didukung. Artikel ini memberikan panduan tambahan tentang cara mempersiapkan dukungan TLS 1.3 untuk Azure Cosmos DB yang akan datang.
TLS 1.3 memperkenalkan peningkatan yang substansial dibandingkan dengan pendahulunya. Peningkatan TLS 1.3 berfokus pada performa dan keamanan, menampilkan jabat tangan yang lebih cepat dan serangkaian suite sandi yang lebih aman, yaitu TLS_AES_256_GCM_SHA384 dan TLS_AES_128_GCM_SHA256. Terutama, TLS 1.3 memprioritaskan Perfect Forward Secrecy (PFS) dengan menghilangkan algoritma pertukaran kunci yang tidak mendukungnya.
Klien yang menggunakan versi TLS terbaru yang tersedia secara otomatis memilih TLS 1.3 saat tersedia. Azure Cosmos DB terus mendukung TLS 1.2 selain TLS 1.3.
Masalah ini adalah beberapa masalah yang diketahui dengan pengaktifan TLS 1.3, efek potensial, dan mitigasi.
Masalah Terkait JDK: Versi io.netty antara
4.1.68.Final
dan4.1.86.Final
inklusif berisi bug yang menyebabkan klien gagal jabat tangan TLS dalam koneksi mode Langsung saat mesin runtime Java tidak mendukung TLS 1.3. Azure Cosmos DB Java SDK versi mulai dari 4.20.0 hingga 4.40.0 inklusif memiliki dependensi transitif pada io.netty dengan bug ini. Klien gagal denganjava.lang.IllegalArgumentException
pengecualian seperti yang ditunjukkan di sini.Caused by: io.netty.handler.codec.DecoderException: javax.net.ssl.SSLHandshakeException: General OpenSslEngine problem at ... Caused by: java.lang.IllegalArgumentException: TLSv1.3 at sun.security.ssl.ProtocolVersion.valueOf(ProtocolVersion.java:187)
Rekomendasi untuk mitigasi:
- Opsi 1: (Wajib) Tingkatkan Azure Cosmos DB Java SDK setidaknya ke versi minimum yang direkomendasikan.
- Opsi 2: Kami mengenali bahwa peningkatan ke versi SDK terbaru mungkin tidak selalu layak. Saat beralih aplikasi ke SDK terbaru, Anda dapat mengatasi masalah ini dengan mengalihkan koneksi ke Mode Gateway. Pastikan untuk menguji aplikasi secara menyeluruh sebelum menyebarkannya di lingkungan produksi.
Catatan
Mengaktifkan klien untuk menggunakan TLS 1.3 memerlukan runtime Java untuk mendukung TLS 1.3