Conseil OpenVpn

Bonjour à tous la communauté Debian, je me permet de venir pour vous demander quelques petits conseils concernant OpenVPN. Actuellement en stage, j’ai pour mission d’installer un VPN pour l’entreprise dans laquelle je travaille. Jusque là pas trop de problème avec du temps et plusieurs tutos cela a finit par fonctionner avec pour la sécurité l’utilisation du protocole TLS v1. Néanmoins j’aime bien toujours comprendre en profondeur ce que je fais et pas recopier un fichier de conf bêtement.

Ainsi j’aimerais savoir si certains d’entre vous serait capable de m’expliquer le fonctionnement plus ou moins simplifié de certains fichiers et de la méthode certificats,clés publiques/privées car je n’ai strictement aucune connaissances scolaire en méthode de chiffrement.

[quote]
De ce que j’ai compris c’est que j’utilisais une méthode de chiffrement asymétrique ( clé privée/publique). En fait au niveau serveur lorsqu’il diffuse une information au client il le fait avec la clé publique du client et le client la lis avec sa clé privée et inversement non ?
Pour résumer, les 2 entités utilisent la clé publique de l’entité opposé pour envoyer un message, et leur clé privée respectives pour pouvoir lire le message reçu ? [/quote]

A l’heure actuel dans le fichier de configuration de mon client je possède 4 fichiers + un fichier de conf :

“pctest”.key : si je ne me trompe pas c’est le fichier qui renferme la clé privée de mon client, celle-ci permet de déchiffrer un “paquet,message” qui me serait transmis non ?

“ca.crt” : qui est le certificat maître (CA) ( celui qui correspondrait à la PKI )

“pctest”.crt : c’est le certificat du client qui contient une clé publique cryptée, celle du serveur que j’aurais récupérer si j’étais passé par une agence de certif non ? Or la je l’ai directement copiée et a été déjà signée par mon serveur car il fait office de PKI

ta.key : qui contient une clé OpenVPN statique ? A quoi sert ce fichier ?

Enfin j’ai pu voir que lorsque le client se connecte au serveur OpenVPN il se passe plusieurs étapes :

  • En premier un nombre ou suite de nombre est envoyé entre client et serveur qu’on appellerait Diffie-Hellman qui permet de chiffrer une conversation ultérieure.
  • Ensuite On applique un protocole DSS qui permet de signer la clé envoyé par Diffie-Hellman
    Donc la on a une authentification et un échange de clé non ?
    Apparemment RSA serait une alternative puisqu’il regroupe les services : Authentification, échange de clé et cryptage.
    Peut-on utiliser DH + RSA, quel est l’intérêt ?

Ensuite lorsque l’authentification a réussi pour l’échange des données, AES utilise la clé généré précédemment pour chiffrer la donnée et enfin SHA1 permet de vérifier que l’empreinte AES n’a pas été modifié

Du coup j’aimerais savoir en fait que se passe t-il au moment de la toute première connexion. Y’a t-il un échange de certificats à chaque connection ou une seule fois pour toute la durée de vie du certifs, sachant que mon serveur joue le rôle de PKI.
Sachant qu’au niveau de ma config il n’y a pas eu d’échange de certificats vu que je les ai copiés directement sur le client, cela remplace t-il l’étape qu’on effectue parfois sur certains sites quand on accepte un nouveau certificat ?

Ainsi ma supposition est la suivante si l’on était passé par une autorité de certification au lieu de le gérer nous-même, le ca.crt n’aurait été présent sur aucune de nos 2 machines ( client / serveur ) puisque c’est un certificat qui appartient à la PKI non ? Or ici c’est le serveur qui fait office de PKI.

Le certificat du client par exemple englobe t-il la clé publique du client + d’autres informations ?
En gros quel est le lien entre une clé ( publique/privée), le protocole TLS, les algos de sécus ET le certificat du client et celui du serveur ?

PS : j’ai suivi ce tutoriel pour l’installation
blog.nicolargo.com/2010/10/insta … buntu.html

Merci d’avance pour l’aide que chacun pourra/voudra m’apporter

Cordialement

Si ma mémoire est bonne, tu as deux choses: l’authentification et le cryptage. les certificats (.crt) servent à identifier le serveur (ca.crt présent également chez le client pour qu’il puisse identifier le serveur) et le client (pctest.crt signé par le serveur). Le serveur doit avoir signé le certificat du client et peut le révoquer. Tu as les clefs de cryptage (fichier .key, chacun la sienne) qui permettent aux deux extremités de négocier une clef de codage des paquets échangés. Les étapes d’authentification et de cryptage ne sont pas les mêmes.

cf le fil forum.debian-fr.org/viewtopic.php?t=4376

Merci pour les petites précisions, je commence à mieux comprendre le concept même si ça reste assez compliqué sur certains points. Merci aussi pour le fil que j’ai repris et qui m’a apporté pas mal d’infos

Cordialement