web-dev-qa-db-fra.com

Pourquoi OpenVPN nécessite-t-il en toute sécurité des certificats avec des clients?

Les buntu Docs sur OpenVPN Avoir cette partie dans les instructions:

Copiez les fichiers suivants sur le client:

  • /etc/openvpn/ca.crt
  • /etc/openvpn/easy-rsa/keys/hostname.crt
  • /etc/openvpn/easy-rsa/keys/hostname.key
  • /etc/openvpn/ta.key

N'est-il pas possible qu'un système VPN ne nécessite qu'un administrateur d'installer les touches publiques du client afin de donner un accès client, au lieu de nécessiter d'abord le partage des certificats sensibles en premier? Y a-t-il d'autres vpns qui font cela?

11
John Bachir

Regardons une ventilation de tous les fichiers, qu'ils soient sensibles, et d'où ils viennent.

/etc/openvpn/ca.crt

Jetable publiquement, il s'agit du certificat de votre autorité de certification VPN. Il peut être partagé avec n'importe qui et permet au client de vérifier le serveur VPN.

/etc/openvpn/easy-rsa/keys/hostname.crt

Ceci est un certificat identifiant le client. Il a été signé par la clé privée du client, puis signée par la clé de la CA.

/etc/openvpn/easy-rsa/keys/hostname.key

Ceci est la clé privée du client. Dans la documentation que vous envisagez, il a été généré sur le serveur pour plus de commodité afin que le certificat client puisse être signé par la clé et ensuite signé par la clé CA. La clé privée pourrait être générée et conservée sur le client sans le serveur le voir jamais, mais cela rendrait le processus beaucoup plus complexe. Si vous êtes intéressé, faites du googling ou ouvrez une autre question créant un CA privé - c'est un autre département.

/etc/openvpn/ta.key

Celui-ci est un peu spécial, alors je vais juste coller des éléments liés que j'ai trouvé à http://openvpn.net/index.php/open-source/documentation/howto.html :

tls-auth

La directive TLS-ATH ajoute une signature HMAC supplémentaire à tous les paquets SSL/TLS Handshake pour la vérification de l'intégrité. Tout paquet UDP ne portant pas la signature HMAC correcte peut être supprimé sans autre traitement. La signature TLS-ATH HMAC fournit un niveau supplémentaire de sécurité ci-dessus et au-delà fourni par SSL/TLS. Il peut se protéger contre:

  • DOS Attacks ou Port inondant sur le port OpenVPN UDP.
  • Numérisation de port pour déterminer les ports UDP du serveur dans un état d'écoute.
  • Vulnérabilités de débordement de la mémoire tampon dans la mise en œuvre SSL/TLS.
  • Les initiations de la poignée de main SSL/TLS à partir de machines non autorisées (tandis que de telles poignées de main ne manqueraient pas d'authentifier, TLS-ATH peut les couper à un point beaucoup plus précoce).

L'utilisation de TLS-ATH nécessite que vous générez une clé secrète partagée utilisée en plus du certificat/clé RSA standard:

openvpn --genkey --Secret ta.key

Sommaire

Oui, il est possible de partager tout ce qui est nécessaire dans le clair, à l'exception de Ta.key si vous générez la clé du client localement et que vous avez une bonne méthode de vérification de la bonne clé. Le système peut être sécurisé sans ta.key - c'est juste une mesure supplémentaire pour limiter les étrangers. Cela dit, c'est une très bonne mesure.

12
Jeff Ferland