Journal OpenVPN : chiffrement du canal de contrôle contre chiffrement du canal de données
DHE-RSA-AES256-SHA dans le journal décrit le canal de contrôle TLS, et non le chiffrement qui protège votre trafic. Cherchez le résultat distinct du canal de données.
Une ligne de journal qui nomme DHE-RSA-AES256-SHA n’est pas un résumé de toute la connexion. Elle appartient à la poignée de main TLS qui protège le canal de contrôle, et le trafic à l’intérieur du tunnel peut être chiffré tout autrement. La présenter comme le chiffrement de données du VPN est l’erreur à éviter.
Deux résultats comptent, et ils répondent à des questions différentes. L’un est la suite TLS négociée pour le canal de contrôle ; l’autre est le chiffrement de données des paquets que porte le tunnel.
Deux résultats, deux questions
Le canal de contrôle porte la poignée de main et les messages de gestion entre les pairs. Son chiffrement est choisi par la pile TLS, si bien que le nom suit les conventions TLS. Le canal de données porte le trafic utilisateur et est configuré par la négociation de chiffrement propre à OpenVPN.
Décidez à quelle question vous répondez avant de lire l’une ou l’autre ligne. Savoir si le tunnel est chiffré et savoir si la poignée de main est solide ne sont pas la même question.
Un extrait de journal qui montre les deux lignes est celui qui est utile. Lisez la ligne de contrôle pour la version et la suite TLS, et la ligne de données pour l’algorithme qui protège réellement la charge utile.
Décoder le nom de la suite TLS dans son propre contexte
Dans un nom historique de style OpenSSL comme DHE-RSA-AES256-SHA, chaque composant décrit une décision différente. DHE est l’accord de clé Diffie-Hellman éphémère, RSA est la méthode d’authentification, AES256 est AES-256 en mode CBC pour les enregistrements TLS, et SHA est le MAC d’enregistrement basé sur SHA-1.
Le dernier composant n’est pas une empreinte de certificat, et le lire comme telle est une erreur courante. Le nom n’indique pas non plus la version du protocole à lui seul, car TLS 1.3 utilise une convention de nommage entièrement différente. TLS_AES_256_GCM_SHA384 suit cette forme plus récente, où le hachage final fait partie de la construction de la suite plutôt que d’un choix de MAC. N’appliquez la lecture par composants qu’au style de nommage plus ancien.
La référence des suites OpenSSL associe ces noms à leurs définitions si un composant n’est pas familier.
Lire le résultat du canal de données pour le trafic transporté
Pour le trafic transporté, lisez la ligne du canal de données de la même session. Une liste data-ciphers dans la configuration est un ensemble autorisé, et non la preuve qu’un algorithme particulier a été négocié. Le journal consigne le choix ; la configuration répertorie le menu.
Un chiffrement AEAD comme AES-GCM porte sa propre vérification d’intégrité, donc un HMAC séparé pour le canal de données ne fait pas partie de ce chemin.
La directive auth ne met à niveau ni TLS, ni les certificats, ni le chiffrement de données. Elle choisit un condensat pour les parties du protocole qui en utilisent encore un, et avec un chiffrement de données AEAD il n’y a pas de HMAC de données séparé à configurer.
Tenir les contrôles d’identité hors du résultat de chiffrement
L’algorithme de signature du certificat, la validation de la chaîne de confiance et la vérification du nom du pair sont trois propriétés de plus dont un nom de chiffrement ne dit rien. Un certificat expiré échoue, quelle que soit la solidité de la suite. Un nom de serveur qui ne correspond pas échoue de la même manière. Corriger un réglage de condensat dans le profil ne répare ni l’un ni l’autre.
Gardez ces contrôles dans les notes de revue à côté du résultat de chiffrement, sans les y fondre.
Consigner les résultats négociés de la session en cours
Prenez les résultats de la connexion en cours et consignez avec eux les versions du client et du serveur. Un journal en ajout seul peut contenir la ligne d’une session plus ancienne, et la citer comme actuelle est la façon dont un problème corrigé semble persister.
Pour une revue de politique, remettez au propriétaire de la configuration la version et la suite TLS négociées, le chiffrement de données choisi et les réglages de validation des certificats ensemble. Modifiez cette couche, puis lisez un journal récent pour confirmer les nouvelles valeurs négociées.