Transport Layer Security (TLS) chiffre les communications entre les applications clientes et OSS. Ce protocole cryptographique standard garantit la confidentialité et l'intégrité des données échangées entre clients et serveurs sur Internet. Vous pouvez configurer la version TLS et la suite de chiffrement dans OSS. Une fois configuré, les clients ne peuvent communiquer avec OSS qu'en utilisant la version TLS et la suite de chiffrement spécifiées. Cela garantit que le lien de communication répond à vos exigences de sécurité.
Prérequis
Les utilisateurs RAM doivent disposer des autorisations suivantes : oss:PutTLSVersion et oss:GetTLSVersion. Pour plus d'informations, consultez la rubrique Accorder une stratégie personnalisée à un utilisateur RAM.
Versions TLS
TLS prend en charge quatre versions : 1.0, 1.1, 1,2 et 1,3. Le tableau suivant décrit les cas d'utilisation et les navigateurs pris en charge pour chaque version.
|
Protocole |
Description |
Cas d'utilisation |
Navigateurs pris en charge |
|
TLS 1.0 |
Cette version utilise des algorithmes de chiffrement tels que RSA, DES et 3DES. TLS 1.0 présente des vulnérabilités de sécurité connues et est sensible aux attaques telles que BEAST et POODLE. Il n'offre plus une protection adéquate pour les connexions réseau modernes et ne respecte pas les normes de conformité PCI DSS. |
En raison de ses vulnérabilités de sécurité, TLS 1.0 n'est plus recommandé. Nous vous conseillons de migrer vers une version TLS plus sécurisée. |
|
|
TLS 1.1 |
Cette version améliore la sécurité en corrigeant certaines vulnérabilités connues et en ajoutant la prise en charge d'algorithmes de chiffrement plus robustes, tels que AES, RSA et SHA-256. |
Convient aux environnements nécessitant un niveau de sécurité relativement élevé, sans exiger les dernières fonctionnalités TLS. |
|
|
TLS 1.2 |
Cette version renforce la sécurité et ajoute de nouvelles fonctionnalités, telles que Server Name Indication (SNI) et le protocole de négociation étendu. Les algorithmes de chiffrement pris en charge incluent AES-GCM, AES-CBC et ECDHE. |
Adapté à la plupart des scénarios de communication sécurisée courants, y compris les applications web, les sites e-commerce, les messageries électroniques et les réseaux privés virtuels (VPN). |
|
|
TLS 1.3 |
Cette version apporte des améliorations significatives en matière de sécurité, de performances et de confidentialité. Elle supprime les algorithmes cryptographiques non sécurisés, intègre des algorithmes d'échange de clés et de chiffrement plus robustes, réduit la latence de la négociation et offre une meilleure confidentialité persistante ainsi que des mécanismes d'authentification améliorés. |
Convient aux scénarios exigeant une sécurité stricte, de meilleures performances et une confidentialité accrue, tels que les institutions financières, les grandes entreprises Internet et les agences gouvernementales. |
|
Notes d'utilisation
Évitez de configurer un bucket pour n'autoriser que TLS 1.0 ou TLS 1.1. Votre configuration doit au minimum inclure la version principale, TLS 1.2.
Si la gestion des versions TLS n'est pas activée, les versions TLS 1.0, 1.1 et 1,2 sont prises en charge par défaut, mais pas TLS 1.3. Après activation de la gestion des versions TLS, vous pouvez choisir parmi les versions TLS 1.0, 1.1, 1,2 et 1,3. Lors de la première configuration de la version TLS dans la console OSS, TLS 1.2 est sélectionné par défaut en tant que version principale. Si TLS 1.2 n'est pas sélectionné, certains clients principaux risquent de ne pas pouvoir accéder à OSS.
La rétrogradation de la version TLS (par exemple, de TLS 1.2 à TLS 1.1 ou TLS 1.0) ou la désactivation de la gestion des versions TLS peut introduire des risques de sécurité et de conformité. Procédez avec prudence.
Avant de désactiver une version TLS, vérifiez qu'aucun client ne dépend exclusivement de cette version pour ses connexions.
Procédure
Console OSS
CLI ossutil
Référence API
Ces opérations utilisent des API REST. Pour les applications hautement personnalisées, vous pouvez effectuer des requêtes API REST directement, ce qui nécessite d'écrire manuellement le code de calcul de signature. Pour plus d'informations, consultez les rubriques PutBucketHttpsConfig et GetBucketHttpsConfig.
FAQ
Vérifier la version TLS actuelle
Si le client ne spécifie pas de version TLS, exécutez la commande suivante pour déterminer la version négociée entre le client et le serveur.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>
Le tableau suivant décrit les paramètres de la commande.
|
Paramètre |
Description |
|
bucket |
Le nom de votre bucket OSS. |
|
endpoint |
L'endpoint public, l'endpoint interne ou le nom de domaine personnalisé. |
Vous pouvez trouver la version TLS dans la sortie de la commande.
La valeur du champ Protocol dans la réponse correspond à la version TLS actuelle. Voici un exemple de réponse :
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:
Vérifier la configuration TLS
Pour vérifier que votre bucket est correctement configuré pour n'autoriser que TLS 1.2, vérifiez les comportements suivants :
-
Un client peut accéder au serveur lorsqu'il utilise explicitement TLS 1.2.
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_2Le tableau suivant décrit les paramètres de la commande.
Paramètre
Description
bucket
Le nom de votre bucket OSS.
endpoint
L'endpoint public, l'endpoint interne ou le nom de domaine personnalisé.
Exemple de réponse :
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) -
Un client peut accéder au serveur lorsqu'il ne spécifie pas de version TLS (mais prend en charge TLS 1.2).
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint>Exemple de réponse :
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) -
Le serveur rejette les connexions des clients qui spécifient une version TLS autre que TLS 1.2 (par exemple, TLS 1.1).
openssl s_client -connect <bucket>.<endpoint>:443 -servername <bucket>.<endpoint> -tls1_1Exemple de réponse :
[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) ---