[comment]: # translation:outdated

[comment]: # ({14d0ad91-14d0ad91})
# 2 Par clés pré-partagées (PSK)

[comment]: # ({/14d0ad91-14d0ad91})

[comment]: # ({3935bdee-3935bdee})
#### Aperçu

Chaque clé pré-partagée (PSK) de Zabbix est en fait une paire de :

- chaîne d'identité PSK non secrète,
- valeur de chaîne PSK secrète.

La chaîne d'identité PSK est une chaîne UTF-8 non vide. Par exemple, "PSK ID 001 Zabbix agentd". C'est un nom unique par lequel ce composant PSK spécifique est désigné par les composants Zabbix. Ne placez pas d'informations sensibles dans la chaîne d'identité PSK - elles sont transmises non cryptées sur le réseau.

La valeur PSK est une chaîne de caractères hexadécimaux difficile à deviner, par exemple "e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9".

[comment]: # ({/3935bdee-3935bdee})

[comment]: # ({540b9ee2-a75bbda5})
#### Limites de taille

Il existe des limites de taille pour l'identité et la valeur PSK dans Zabbix ; dans certains
cas, une bibliothèque cryptographique peut avoir une limite inférieure :

|Composant|Taille maximale de l'identité PSK|Taille minimale de la valeur PSK|Taille maximale de la valeur PSK|
|---------|-------------------------------|-------------------------------|-------------------------------|
|*Zabbix*|128 caractères UTF-8|128 bits (PSK de 16 octets, saisi sous forme de 32 chiffres hexadécimaux)|2048 bits (PSK de 256 octets, saisi sous forme de 512 chiffres hexadécimaux)|
|*GnuTLS*|128 octets (peut inclure des caractères UTF-8)|\-|2048 bits (PSK de 256 octets, saisi sous forme de 512 chiffres hexadécimaux)|
|*OpenSSL 1.0.x, 1.1.0*|127 octets (peut inclure des caractères UTF-8)|\-|2048 bits (PSK de 256 octets, saisi sous forme de 512 chiffres hexadécimaux)|
|*OpenSSL 1.1.1*|127 octets (peut inclure des caractères UTF-8)|\-|512 bits (PSK de 64 octets, saisi sous forme de 128 chiffres hexadécimaux)|
|*OpenSSL 1.1.1a et versions ultérieures*|127 octets (peut inclure des caractères UTF-8)|\-|2048 bits (PSK de 256 octets, saisi sous forme de 512 chiffres hexadécimaux)|

::: noteimportant
 L'interface Zabbix permet de configurer une chaîne d'identité PSK d'une longueur maximale de 128 caractères et une PSK de 2048 bits, quelles que soient les bibliothèques cryptographiques utilisées.<br>
Si certains composants Zabbix prennent en charge des limites inférieures, il incombe à l'utilisateur de configurer l'identité et la valeur PSK avec une longueur autorisée pour ces composants.<br>
Le dépassement des limites de longueur entraîne des échecs de communication entre les composants Zabbix. 
:::

Avant que le serveur Zabbix ne se connecte à l'agent à l'aide d'une PSK, le serveur recherche
dans la base de données l'identité PSK et la valeur PSK configurées pour cet
agent (en réalité dans le cache de configuration). Lors de la réception d'une connexion, l'agent
utilise l'identité PSK et la valeur PSK de son fichier de configuration. Si les deux
parties ont la même chaîne d'identité PSK et la même valeur PSK, la connexion
peut réussir.

::: noteimportant
 Chaque identité PSK doit être associée à une seule
valeur. Il incombe à l'utilisateur de s'assurer qu'il n'existe pas deux
PSK avec la même chaîne d'identité mais des valeurs différentes. Le non-respect de cette règle
peut entraîner des erreurs imprévisibles ou des interruptions de communication entre les composants Zabbix
utilisant des PSK avec cette chaîne d'identité PSK. 
:::

[comment]: # ({/540b9ee2-a75bbda5})

[comment]: # ({3e166db9-3e166db9})
#### Génération de PSK

Par exemple, un PSK de 256 bits (32 octets) peut être généré à l'aide des commandes suivantes :

- avec *OpenSSL* :

```{=html}
<!-- -->
```
 $ openssl rand -hex 32
 af8ced32dfe8714e548694e2d29e1a14ba6fa13f216cb35c19d0feb1084b0429

- avec *GnuTLS* :

```{=html}
<!-- -->
```
 $ psktool -u psk_identity -p database.psk -s 32
 Generating a random key for user 'psk_identity'
 Key stored to database.psk
      
 $ cat database.psk 
 psk_identity:9b8eafedfaae00cece62e85d5f4792c7d9c9bcc851b23216a1d300311cc4f7cb

Notez que la commande "psktool" ci-dessus génère un fichier de base de données avec une identité PSK et son PSK associé. Zabbix ne prévoit qu'un PSK dans le fichier PSK. Par conséquent, la chaîne d'identité et les deux-points (':') doivent être supprimés du fichier.

[comment]: # ({/3e166db9-3e166db9})

[comment]: # ({43b9af4e-0c5c40b9})
#### Configuration de la PSK pour la communication serveur-agent (exemple)

Sur l'hôte de l'agent, écrivez la valeur PSK dans un fichier, par exemple
`/home/zabbix/zabbix_agentd.psk`. Le fichier doit contenir la PSK dans la première
chaîne de texte, par exemple :

    1f87b595725ac58dd977beef14b97461a7c1045b9a1c963065002c5473194952

Définissez les droits d'accès au fichier PSK : il doit être lisible uniquement par l'utilisateur Zabbix.

Modifiez les paramètres TLS dans le fichier de configuration de l'agent `zabbix_agentd.conf`,
par exemple, définissez :

    TLSConnect=psk
    TLSAccept=psk
    TLSPSKFile=/home/zabbix/zabbix_agentd.psk
    TLSPSKIdentity=PSK 001

L'agent se connectera au serveur (contrôles actifs) et n'acceptera du serveur
et de `zabbix_get` que les connexions utilisant la PSK. L'identité PSK sera « PSK
001 ».

Redémarrez l'agent. Vous pouvez maintenant tester la connexion à l'aide de `zabbix_get`,
par exemple :

    zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK 001" --tls-psk-file=/home/zabbix/zabbix_agentd.psk

(Pour minimiser le temps d'arrêt, consultez comment modifier le type de connexion dans [Gestion
du chiffrement des
connexions](/manual/encryption#connection-encryption-management)).

Configurez le chiffrement PSK pour cet agent dans l'interface Zabbix :

-   Allez à : *Collecte de données → Hôtes*
-   Sélectionnez l'hôte et cliquez sur l'onglet **Encryption**

Exemple :

![psk\_config.png](../../../assets/en/manual/encryption/psk_config.png){width="600"}

Tous les champs de saisie obligatoires sont marqués d'un astérisque rouge.

Lorsque le cache de configuration est synchronisé avec la base de données, les nouvelles
connexions utiliseront la PSK. Vérifiez les fichiers journaux du serveur et de l'agent pour détecter d'éventuels messages d'erreur.

[comment]: # ({/43b9af4e-0c5c40b9})

[comment]: # ({5b4b0ac1-2200dfcb})
#### Configuration de la PSK pour la communication serveur - proxy actif (exemple)

Sur le proxy, écrivez la valeur PSK dans un fichier, par exemple
`/home/zabbix/zabbix_proxy.psk`. Le fichier doit contenir la PSK dans la première
ligne de texte, par exemple :

    e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9

Définissez les droits d'accès au fichier PSK - il doit être lisible uniquement par l'utilisateur Zabbix.

Modifiez les paramètres TLS dans le fichier de configuration du proxy `zabbix_proxy.conf`, par
exemple, définissez :

    TLSConnect=psk
    TLSPSKFile=/home/zabbix/zabbix_proxy.psk
    TLSPSKIdentity=PSK 002

Le proxy se connectera au serveur en utilisant la PSK. L'identité PSK sera « PSK
002 ».

(Pour minimiser le temps d'arrêt, consultez comment modifier le type de connexion dans [Gestion du chiffrement des connexions](/manual/encryption#connection-encryption-management)).

Configurez la PSK pour ce proxy dans l'interface Zabbix. Allez dans
*Administration→Proxies*, sélectionnez le proxy, puis ouvrez l'onglet « Encryption ». Dans
« Connections from proxy », cochez `PSK`. Collez « PSK 002 » dans le champ « PSK identity » et
« e560cb0d918d26d31b4f642181f5f570ad89a390931102e5391d08327ba434e9 » dans
le champ « PSK ». Cliquez sur « Update ».

Redémarrez le proxy. Il commencera à utiliser des connexions chiffrées basées sur PSK vers le
serveur. Vérifiez les fichiers journaux du serveur et du proxy pour détecter d'éventuels messages d'erreur.

Pour un proxy passif, la procédure est très similaire. La seule différence :
définissez `TLSAccept=psk` dans le fichier de configuration du proxy et réglez « Connections to
proxy » dans l'interface Zabbix sur `PSK`.

[comment]: # ({/5b4b0ac1-2200dfcb})
