Transport Layer Security (TLS), istemci uygulamaları ile OSS arasındaki iletişimi şifreler. TLS, internet üzerinden iletişim kuran istemciler ve sunucular için gizliliği ve veri bütünlüğünü sağlayan standart bir kriptografik protokoldür. OSS'de TLS sürümünü ve şifre paketini yapılandırabilirsiniz. Yapılandırmayı tamamladıktan sonra istemciler, OSS ile iletişim kurmak için yalnızca belirtilen TLS sürümünü ve şifre paketini kullanabilir. Bu sayede iletişim bağlantısı güvenlik gereksinimlerinizi karşılar.
Önkoşullar
RAM kullanıcılarının aşağıdaki izinlere sahip olması gerekir: oss:PutTLSVersion ve oss:GetTLSVersion. Daha fazla bilgi için bkz. Bir RAM kullanıcısına özel ilke atama.
TLS sürümleri
TLS; 1,0, 1,1, 1,2 ve 1,3 olmak üzere dört sürümü destekler. Aşağıdaki tabloda her sürümün kullanım senaryoları ve desteklenen tarayıcılar açıklanmaktadır.
|
Protokol |
Açıklama |
Kullanım senaryoları |
Desteklenen tarayıcılar |
|
TLS 1,0 |
Bu sürüm RSA, DES ve 3DES gibi şifreleme algoritmalarını kullanır. TLS 1,0 bilinen güvenlik açıklarına sahiptir ve BEAST ile POODLE gibi saldırılara karşı savunmasızdır. Modern ağ bağlantıları için yeterli koruma sağlamaz ve PCI DSS uyumluluk standartlarını karşılamaz. |
Güvenlik açıkları nedeniyle TLS 1,0 artık geniş çapta önerilmemektedir. Çoğu durumda daha güvenli bir TLS sürümüne geçiş yapmanızı öneririz. |
|
|
TLS 1,1 |
Bu sürüm, bazı bilinen açıkları gidererek ve AES, RSA ile SHA-256 gibi daha güçlü şifreleme algoritmaları için destek ekleyerek güvenliği artırır. |
Yüksek düzeyde güvenlik gerektiren ancak en yeni TLS özelliklerine ihtiyaç duymayan ortamlar için uygundur. |
|
|
TLS 1,2 |
Bu sürüm güvenliği daha da artırır ve Server Name Indication (SNI) ile genişletilmiş el sıkışma protokolü gibi yeni özellikler ekler. Desteklenen şifreleme algoritmaları arasında AES-GCM, AES-CBC ve ECDHE bulunur. |
Web uygulamaları, e-ticaret siteleri, e-posta ve sanal özel ağlar (VPN'ler) dahil olmak üzere çoğu yaygın güvenli iletişim senaryosu için uygundur. |
|
|
TLS 1,3 |
Bu sürüm güvenlik, performans ve gizlilik alanlarında önemli iyileştirmeler getirir. Güvenli olmayan kriptografik algoritmaları kaldırır, daha sağlam anahtar değişimi ve şifreleme algoritmaları ekler, el sıkışma gecikme süresini azaltır ve daha iyi ileri gizlilik ile kimlik doğrulama mekanizmaları sağlar. |
Finans kuruluşları, büyük internet şirketleri ve devlet kurumları gibi sıkı güvenlik gereksinimleri olan ve daha iyi performans ile gizlilik talep eden senaryolar için uygundur. |
|
Kullanım notları
Bir paketi yalnızca TLS 1,0 veya TLS 1,1'e izin verecek şekilde yapılandırmaktan kaçının. Yapılandırmanız en azından ana akım sürüm olan TLS 1,2'yi içermelidir.
TLS Sürüm Yönetimi etkinleştirilmezse varsayılan olarak TLS 1,0, 1,1 ve 1,2 desteklenir ancak TLS 1,3 desteklenmez. TLS Sürüm Yönetimini etkinleştirdiğinizde TLS 1,0, 1,1, 1,2 ve 1,3 arasından seçim yapabilirsiniz. OSS konsolunda TLS sürümünü ilk kez yapılandırdığınızda ana akım sürüm olarak varsayılan değer TLS 1,2'dir. TLS 1,2 seçilmezse bazı ana akım istemciler OSS'ye erişemeyebilir.
TLS sürümünü düşürmek (örneğin TLS 1,2'den TLS 1,1 veya TLS 1,0'a) ya da TLS Sürüm Yönetimini devre dışı bırakmak güvenlik ve uyumluluk riskleri getirebilir. Bu işlemi dikkatle gerçekleştirin.
Bir TLS sürümünü devre dışı bırakmadan önce hiçbir istemcinin bağlantılar için yalnızca bu sürüme bağımlı olmadığından emin olun.
Yordam
OSS konsolu
ossutil CLI
API referansı
Bu işlemler REST API'lerini kullanır. Yüksek düzeyde özelleştirilmiş uygulamalar için doğrudan REST API istekleri gönderebilirsiniz; bu durum imza hesaplama kodunu manuel olarak yazmanızı gerektirir. Daha fazla bilgi için bkz. PutBucketHttpsConfig ve GetBucketHttpsConfig.
SSS
Geçerli TLS sürümünü kontrol etme
İstemci bir TLS sürümü belirtmezse istemci ile sunucu arasında anlaşmaya varılan sürümü belirlemek için aşağıdaki komutu çalıştırın.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>
Komuttaki parametreler aşağıdaki tabloda açıklanmıştır.
|
|
|
|
|
|
|
|
|
TLS sürümünü komut çıktısında bulabilirsiniz.
Yanıttaki Protocol alanının değeri geçerli TLS sürümüdür. Örnek bir yanıt aşağıda verilmiştir:
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:
TLS yapılandırmasını doğrulama
Paketinizin yalnızca TLS 1,2'ye izin verecek şekilde doğru yapılandırıldığını doğrulamak için aşağıdaki davranışları kontrol edin:
-
İstemci açıkça TLS 1,2 kullandığında sunucuya erişebilir.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_2Komuttaki parametreler aşağıdaki tabloda açıklanmıştır.
Parametre
Açıklama
bucket
OSS paketinizin adı.
endpoint
Genel uç nokta, dahili uç nokta veya özel etki alanı adı.Örnek yanıt:
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) -
İstemci bir TLS sürümü belirtmediğinde (ancak istemci TLS 1,2'yi desteklediğinde) sunucuya erişebilir.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>Örnek yanıt:
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) -
Sunucu, TLS 1,2 dışındaki bir TLS sürümü (örneğin TLS 1,1) belirten istemcilerden gelen bağlantıları reddeder.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_1Örnek yanıt:
[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) ---