Traitez un fichier OVPN comme une entrée pour un programme, non comme un certificat attestant que son contenu est inoffensif. Vérifier l’adresse du serveur répond seulement où le profil veut se connecter, et rien d’autre. Deux décisions de confiance distinctes se trouvent dans ce fichier : ce que le client peut faire sur votre machine, et quel opérateur reçoit le trafic. Un nom de protocole familier ne tranche aucune des deux.

Deux décisions se cachent dans un seul fichier

La première décision est locale. Le profil est un langage de configuration, et le client qui le lit peut prendre en charge des directives qui chargent un greffon, exécutent un script ou changent la façon dont le routage et le DNS sont appliqués. La seconde décision est distante. Quoi que contienne le fichier, l’opérateur de sortie voit le trafic qui lui parvient.

Confondre les deux produit de mauvais conseils dans les deux sens : un profil d’apparence propre venu d’un opérateur inconnu, ou le profil d’un opérateur connu avec un crochet que personne n’a lu. Un profil sûr localement peut encore remettre votre trafic à quelqu’un que vous n’auriez pas choisi.

Lisez le profil avant tout client

Lisez le fichier comme du texte avant qu’un client ne le traite. Cherchez les directives qui pointent hors du fichier, référencent des exécutables ou modifient des privilèges, et comparez cette liste au support documenté du client. Une courte recherche n’est pas un audit de sécurité, mais elle vous dit si le profil est une liste de serveurs ou davantage.

grep -nE '^(script-security|up|down|plugin|route-up|ipchange)' untrusted.ovpn

Un résultat vide est rassurant et non concluant, car les options peuvent interagir ou venir d’un fichier inclus. Considérez la liste filtrée comme une raison de continuer à lire, non comme un verdict.

Les instructions qui accompagnent le profil méritent le même examen que le profil. Quatre demandes devraient vous arrêter : activer des scripts, installer un assistant ou une bibliothèque, exécuter le client en administrateur ou affaiblir une restriction d’importation. Chacune déplace la frontière de confiance vers l’extérieur, et aucune ne fait partie de l’import normal d’une liste de serveurs.

Lisez aussi le fichier entier une fois, car une seule ligne inconnue se juge mieux en contexte que dans une liste filtrée. Si une ligne vous est inconnue, cherchez-la dans le manuel de votre client plutôt que de deviner.

Ce que le client exécutera réellement

Le manuel 2.6 de Community OpenVPN documente les paliers de script-security : le niveau 1 est celui par défaut et bloque les scripts définis par l’utilisateur, tandis que le niveau 2 les autorise. Le chargement de greffons est un mécanisme distinct avec sa propre directive. C’est pourquoi le même fichier peut signifier des choses différentes selon les clients. Les clients mobiles et de fabricant peuvent accepter un ensemble plus étroit de directives, ou aucun des crochets.

La méthode de lancement compte autant que le client. Un profil lancé par un assistant privilégié peut faire plus qu’un profil lancé dans l’espace utilisateur, et cette différence est une raison de lire l’invite d’importation plutôt que de la balayer.

La version compte aussi, car ces niveaux sont définis par version et un client plusieurs versions en retard peut ne pas appliquer la même politique. Lisez le manuel qui correspond à la version que vous exécutez, pas la plus récente que vous trouvez. Si le client n’affiche nulle part de chaîne de version, c’est déjà une raison de ralentir.

Comparez l’opérateur, pas seulement l’adresse

Comparez les opérateurs comme vous comparez n’importe quel autre intermédiaire. Demandez qui exploite la sortie, ce qu’ils journalisent et comment le profil vous est parvenu. Une page de téléchargement vérifiée et une empreinte concordante disent plus qu’un nom d’hôte familier. Un serveur joignable prouve seulement que quelque chose a répondu.

Les identifiants sont la partie où les gens se trompent sous pression. Ne saisissez pas le mot de passe d’un compte sans rapport dans un profil téléchargé parce que le nom du serveur vous semble familier. Un profil peut aussi porter une clé privée en clair, donc publier le fichier entier dans un fil de relecture remet cette clé au fil.

Une session HTTPS correctement validée cache encore le contenu de la page à quiconque ne fait que transférer des paquets, donc la sortie ne voit pas automatiquement chaque mot de passe. Elle voit en revanche quels sites vous atteignez, et cette frontière mérite d’être énoncée avec précision plutôt qu’exagérée.

Là où l’origine du fichier reste floue, ou lorsqu’un privilège demandé n’a aucune explication que vous puissiez accepter, remplacez le profil par un autre venant d’une source que l’on peut tenir responsable. Sur une connexion professionnelle gérée, l’administrateur devrait approuver le client et la configuration comme une seule décision, non deux. Rien ici n’exige que vous prouviez d’abord une intention malveillante ; refuser l’accès est une réponse légitime.

Articles similaires