Sécurité de la couche de transport (TLS, Transport Layer Security)

Sécurité de la couche de transport (TLS, Transport Layer Security)

Les instances de l’orchestrateur doivent communiquer en toute sécurité avec les systèmes d’accès intégrés, les fournisseurs de secrets et les autres instances de l’orchestrateur.

Le champ tls indique la configuration des objets de sécurité de la couche transport. Ces objets TLS sont référencés sous le nom que vous définissez dans la configuration du serveur HTTP de l’orchestrateur (pour les connexions entrantes), et dans les configurations Connector ou AppGateway (pour les connexions sortantes).

Sous Windows, l’orchestrateur peut récupérer des certificats et des clés à partir du Magasin de certificats Windows.

Options de configuration

Cert File

Le fichier certFile représente un chemin d’accès à un certificat encodé au format PEM.

Key File

Le fichier keyFile représente un chemin d’accès à une clé privée encodée au format PEM.

CA File

Le fichier caFile représente un chemin d’accès à une autorité de certification encodée au format PEM que les clients HTTP utilisent lors de la vérification des certificats de serveur. Si la valeur caFile n’est pas définie, l’orchestrateur utilisera par défaut l’ensemble des autorités de certification fiables disponibles sur le système d’exploitation. Une fois définie, l’autorité de certification fournie sera ajoutée à la réserve d’autorités de certification fiables. Ce champ est généralement utilisé lorsqu’une autorité de certification auto-signée (non fiable) est utilisée pour générer des certificats pour des services en amont.

Min Version

La spécification de la valeur minVersion est facultative et permet d’imposer la version minimale de TLS. Pour des raisons de sécurité, nous n’autorisons que la spécification de la version TLS 1.2 ou supérieure. Toute version inférieure à TLS 1.2 entraînera un échec du démarrage de l’orchestrateur. Si elle n’est pas spécifiée, la version minimale de TLS sera par défaut TLS 1.2.

Enabled Ciphers

enabledCiphers permet d’activer explicitement une liste de chiffrements. Par défaut, l’orchestrateur utilise les suites de chiffrement figurant dans la liste des suites de chiffrement sécurisées ci-dessous. Cette fonctionnalité est facultative et disponible uniquement avec TLS 1.2.

En cas d’utilisation de TLS 1.3, les suites de chiffrement ne sont pas configurables.

En cas d’utilisation de TLS 1.2 (option par défaut), les suites de chiffrement de la liste sécurisée ci-dessous sont utilisées.

En cas d’utilisation de TLS 1.2 en conjonction avec la configuration enabledCiphers, les suites de chiffrement de la liste suivante sont disponibles mais doivent être répertoriées explicitement. Seuls les algorithmes de chiffrement spécifiés seront utilisés.

Pour une liste à jour des suites de chiffrement fiables et vulnérables, veuillez consulter la documentation Golang. Veuillez noter que lors de l’établissement de la liste des algorithmes de chiffrement dans la configuration, le nom en majuscule doit être utilisé (par exemple TLS_AES_256_GCM_SHA3843).

Insecure Skip Verify

L’option insecureSkipVerify ne doit être utilisée que pour les tests. Si la valeur est définie sur true, le client HTTP ne validera pas la chaîne de certificats et le nom d’hôte du serveur. Cette option n’est pas adaptée à la configuration TLS utilisée pour le serveur HTTP de l’orchestrateur, et doit toujours être utilisée avec la plus grande prudence.

Magasin de certificats Windows

Si vous exécutez l’orchestrateur sous Windows, vous pouvez importer les certificats dans le magasin ComputerHKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY et définir la configuration TLS pour récupérer les certificats et leurs clés dans le magasin de certificats Windows via le sujet ou l’empreinte.

Par exemple, pour effectuer une recherche par sujet :

tls:
  maverics:
    windowsCertStore:
      subject: "MySiteCert"

Pour effectuer une recherche par empreinte :

tls:
  maverics:
    windowsCertStore:
      thumbprint: 838A1C18C19FREDACTED47CC21071A0F220617466

Vous pouvez également utiliser une variable d’environnement pour effectuer une recherche dans le magasin de certificats Windows.

MAVERICS_TLS_SERVER_WINDOWS_THUMBPRINT : pour effectuer une recherche par empreinte. MAVERICS_TLS_SERVER_WINDOWS_SUBJECT : pour effectuer une recherche par sujet.

La clé windowsCertStore ne peut être combinée avec aucune combinaison de fichier certFile ou keyFile. Les méthodes de recherche par empreinte et par sujet sont par ailleurs incompatibles et ne peuvent pas être utilisées ensemble dans la section windowsCertStore. De plus, les certificats doivent être importés dans le magasin Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SystemCertificates\MY.

Exemples

http:
  address: :443
  tls: maverics

tls:
  maverics:
    certFile: certs/sonarsystems.crt
    keyFile: certs/sonarsystems.key

  ldapTLS:
    caFile: certs/privCA.crt
    minVersion: 1.3

  ldapTLSLegacy:
    caFile: certs/privCA-old.crt
    minVersion: 1.2
    enabledCiphers:
      - TLS_RSA_WITH_AES_128_CBC_SHA
      - TLS_RSA_WITH_AES_256_CBC_SHA
      - TLS_RSA_WITH_AES_128_GCM_SHA256
      - TLS_RSA_WITH_AES_256_GCM_SHA384
      - TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
      - TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
      - TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA
      - TLS_RSA_WITH_3DES_EDE_CBC_SHA

  ldapTestTLS:
    insecureSkipVerify: true

connectors:
  - name: ldapProd
    type: ldap
    tls: ldapTLS
    # ...

  - name: ldapLegacy
    type: ldap
    tls: ldapTLSLegacy
    # ...

  - name: ldapTest
    type: ldap
    tls: ldapTestTLS
    # ...

Utilisation d’un fournisseur de secrets

Les certificats et les clés peuvent être obtenus auprès des fournisseurs de secrets :

tls:
  maverics:
    certFile: <sonarsystems-cert>
    keyFile: <sonarsystems-key>

TLS entrant

Lors de la configuration du protocole TLS pour le serveur HTTP de l’orchestrateur, indiquez les chemins d’accès certFile et keyFile qui conduisent à une paire de clés codées au format PEM.

tls:
  maverics:
    certFile: certs/sonarsystems.crt.pem
    keyFile: certs/sonarsystems.key.pem

http:
  address: :443
  tls: maverics

TLS sortant

Il est courant pour les entreprises d’utiliser leur propre autorité de certification pour les applications internes. Si une autorité de certification (CA, Certificate Authority) n’a pas déjà été ajoutée à l’ensemble des CA approuvées par les hôtes, la configuration ci-dessous peut être utilisée.

tls:
  ldapTLS:
    caFile: certs/internal-non-root-ca.crt

connectors:
  - name: ldapProd
    type: ldap
    tls: ldapTLS
    # ...