Transport Layer Security (TLS) mengenkripsi komunikasi antara aplikasi klien dan OSS. TLS merupakan protokol kriptografi standar yang menjamin privasi dan integritas data bagi klien dan server yang berkomunikasi melalui internet. Anda dapat mengonfigurasi versi TLS dan cipher suite di OSS. Setelah dikonfigurasi, klien hanya dapat menggunakan versi TLS dan cipher suite yang ditentukan untuk berkomunikasi dengan OSS, sehingga memastikan tautan komunikasi memenuhi persyaratan keamanan Anda.
Prasyarat
Pengguna RAM harus memiliki izin berikut: oss:PutTLSVersion dan oss:GetTLSVersion. Untuk informasi selengkapnya, lihat Berikan kebijakan kustom kepada Pengguna RAM.
Versi TLS
TLS mendukung empat versi: 1.0, 1.1, 1.2, dan 1.3. Tabel berikut menjelaskan kasus penggunaan dan browser yang didukung untuk setiap versi.
|
Protokol |
Deskripsi |
Kasus penggunaan |
Browser yang didukung |
|
TLS 1.0 |
Versi ini menggunakan algoritma enkripsi seperti RSA, DES, dan 3DES. TLS 1.0 memiliki kerentanan keamanan yang diketahui dan rentan terhadap serangan seperti BEAST dan POODLE. Versi ini tidak lagi memberikan perlindungan yang memadai untuk koneksi jaringan modern dan tidak memenuhi standar kepatuhan PCI DSS. |
Karena kerentanan keamanannya, TLS 1.0 tidak lagi direkomendasikan secara luas. Dalam kebanyakan kasus, kami menyarankan Anda melakukan upgrade ke versi TLS yang lebih aman. |
|
|
TLS 1.1 |
Versi ini meningkatkan keamanan dengan mengatasi beberapa kerentanan yang diketahui dan menambahkan dukungan untuk algoritma enkripsi yang lebih kuat, seperti AES, RSA, dan SHA-256. |
Cocok untuk lingkungan yang memerlukan tingkat keamanan relatif tinggi tetapi tidak memerlukan fitur TLS terbaru. |
|
|
TLS 1.2 |
Versi ini lebih meningkatkan keamanan dan menambahkan fitur baru, seperti Server Name Indication (SNI) dan protokol handshake yang diperluas. Algoritma enkripsi yang didukung mencakup AES-GCM, AES-CBC, dan ECDHE. |
Cocok untuk sebagian besar skenario komunikasi aman umum, termasuk aplikasi web, situs web e-commerce, email, dan virtual private networks (VPN). |
|
|
TLS 1.3 |
Versi ini menghadirkan peningkatan signifikan dalam keamanan, kinerja, dan privasi. Versi ini menghapus algoritma kriptografi yang tidak aman, menambahkan algoritma pertukaran kunci dan enkripsi yang lebih kuat, mengurangi latensi handshake, serta menyediakan mekanisme forward secrecy dan autentikasi yang lebih baik. |
Cocok untuk skenario yang memiliki persyaratan keamanan ketat serta memerlukan kinerja dan privasi yang lebih baik, seperti lembaga keuangan, perusahaan internet besar, dan instansi pemerintah. |
|
Catatan penggunaan
-
Hindari mengonfigurasi bucket agar hanya mengizinkan TLS 1.0 atau TLS 1.1. Minimal, konfigurasi Anda harus mencakup versi utama, yaitu TLS 1.2.
-
Jika TLS Version Management tidak diaktifkan, TLS 1.0, 1.1, dan 1.2 didukung secara default, tetapi TLS 1.3 tidak. Setelah Anda mengaktifkan TLS Version Management, Anda dapat memilih dari TLS 1.0, 1.1, 1.2, dan 1.3. Saat pertama kali mengonfigurasi versi TLS di Konsol OSS, TLS 1.2 dipilih secara default sebagai versi utama. Jika TLS 1.2 tidak dipilih, beberapa klien utama mungkin gagal mengakses OSS.
-
Menurunkan versi TLS (misalnya, dari TLS 1.2 ke TLS 1.1 atau TLS 1.0) atau menonaktifkan TLS Version Management dapat menimbulkan risiko keamanan dan kepatuhan. Lakukan dengan hati-hati.
-
Sebelum menonaktifkan versi TLS tertentu, pastikan tidak ada klien yang bergantung sepenuhnya pada versi tersebut untuk koneksi.
Prosedur
Referensi API
Operasi ini menggunakan REST API. Untuk aplikasi yang sangat dikustomisasi, Anda dapat langsung membuat permintaan REST API, yang mengharuskan Anda menulis kode perhitungan signature secara manual. Untuk informasi selengkapnya, lihat PutBucketHttpsConfig dan GetBucketHttpsConfig.
FAQ
Periksa versi TLS saat ini
Jika klien tidak menentukan versi TLS, jalankan perintah berikut untuk menentukan versi yang dinegosiasikan antara klien dan server.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>
Tabel berikut menjelaskan parameter dalam perintah tersebut.
|
Parameter |
Deskripsi |
|
bucket |
Nama bucket OSS Anda. |
|
endpoint |
Titik akhir publik, titik akhir internal, atau nama domain kustom. |
Anda dapat menemukan versi TLS di output perintah.
Nilai bidang Protocol dalam respons adalah versi TLS saat ini. Berikut ini contoh respons:
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : ECDHE-RSA-AES128-GCxxx
Session-ID: DF6AF8834A5BE3E9EDCxxx
Session-ID-ctx:
Master-Key: 0C25A19D6E9E3BDEC86B417125AEC1FFA85xxx
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
Verifikasi konfigurasi TLS
Untuk memverifikasi bahwa bucket Anda telah dikonfigurasi dengan benar agar hanya mengizinkan TLS 1.2, periksa perilaku berikut:
-
Klien dapat mengakses server ketika klien secara eksplisit menggunakan TLS 1.2.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_2Tabel berikut menjelaskan parameter dalam perintah tersebut.
Parameter
Deskripsi
bucket
Nama bucket OSS Anda.
endpoint
Titik akhir publik, titik akhir internal, atau nama domain kustom.
Contoh respons:
SSL handshake has read 5779 bytes and written 470 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-Gxxx Session-ID: 6F487389CA287BAFD2xxx Session-ID-ctx: Master-Key: 620777CB36570132F9xxx Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None TLS session ticket lifetime hint: 300 (seconds) -
Klien dapat mengakses server ketika klien tidak menentukan versi TLS (tetapi klien mendukung TLS 1.2).
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>Contoh respons:
SSL handshake has read 5779 bytes and written 470 bytes --- New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256 Server public key is 2048 bit Secure Renegotiation IS supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.2 Cipher : ECDHE-RSA-AES128-Gxxx Session-ID: 6F487389CA287BAFD2xxx Session-ID-ctx: Master-Key: 620777CB36570132F9xxx Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None TLS session ticket lifetime hint: 300 (seconds) -
Server menolak koneksi dari klien yang menentukan versi TLS selain TLS 1.2 (misalnya, TLS 1.1).
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_1Contoh respons:
[root@i-xxx xxx ~]# openssl s_client -connect xxx.oss-cn-hangzhou.aliyuncs.com:443 -servername xxx.oss-cn-hangzhou.aliyuncs.com -tls1_1 CONNECTED(00000003) 140293333579664:error:1409442E:SSL routines:ssl3_read_bytes:tlsv1 alert protocol version:s3_pkt.c:1493:SSL alert number 70 140293333579664:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:659: --- no peer certificate available --- No client certificate CA names sent --- SSL handshake has read 7 bytes and written 0 bytes --- New, (NONE), Cipher is (NONE) Secure Renegotiation IS NOT supported Compression: NONE Expansion: NONE No ALPN negotiated SSL-Session: Protocol : TLSv1.1 Cipher : 0000 Session-ID: Session-ID-ctx: Master-Key: Key-Arg : None Krb5 Principal: None PSK identity: None PSK identity hint: None Start Time: 1692262610 Timeout : 7200 (sec) Verify return code: 0 (ok) ---