Mise à jour le 16/07/2004
Présentation
Cette page présente les traductions françaises des documentations du projet OpenVPN.
Pour toute contribution/aide à la traduction : lehmann.enlever.mention@free.fr
Pour toute remarque/correction sur les traductions, écrivez un email au traducteur ou au relecteur. En cas de non réponse de ceux-ci, vous pouvez m'envoyer un email à l'adresse suivante : lehmann.enlever.mention@free.fr

Les différents documents traduits sont :
OpenVPN HOWTO :
    Vers le HOWTO sur le site officiel (en anglais)
    Traduction française, version 1.4.3.fr.0.5 du 12/01/2003
    fichier xml de la traduction :
        v1.4.3.fr.0.5

Man OpenVPN :
    Vers le man sur le site officiel (en anglais)
    Traduction française, version 1.5.0.fr.1.0 du 11/01/2004
    Traduction française, version 2.0.fr.1.0 <--------------------------- En cours de traduction

Présentation de OpenVPN (page d'accueil) :
    Vers le document original en anglais
    Traduction française, version 2.0.fr.1.0 du 13/04/2004

Documentation sur l'installation et la configuration de OpenVPN sur Debian. Ce document n'est pas une traduction, mais un document écrit par moi-même (Guillaume Lehmann).
OpenVPN sous Debian



Voici un petit glossaire qui pourra être utile pour toute personne qui désire contribuer
block cipher = chiffrement par blocs
cipher = (algorithme de) chiffrement. Attention, plusieurs sens pour ce terme suivant le contexte.
ciphertext = texte brouillé
cryptography = cryptographie
digest = empreinte
initialization vector = vecteur d'initialisation
plaintext = texte clair
security policy database = base de données de la politique de sécurité
stream cipher = chiffrement des flux
to crypt = chiffrer
zero knowledge proof = preuve de connaissance sans apport d'information

www.traduc.org propose aussi un glossaire intéressant, ainsi que des liens vers des outils utiles à tout traducteur.


Mail envoyé sur la mailing liste en vu d'avoir des indications sur ce qu'est EVP
> Hi,
>   On the OpenVPN's documentation, I have seen "EVP". I don't understand well
> what it is.
> "To our knowledge, OpenVPN is the only open source VPN product to fully support
> the OpenSSL PKI (public key infrastructure) for session authentication, the TLS
> protocol for key exchange, the OpenSSL cipher-independent EVP interface for
> encrypting tunnel data, the HMAC algorithm for authenticating tunnel data, and
> to multiplex this all over a single UDP port."
>
> EVP is an interface for encryption, and this interface is independent of
> OpenSSL, or EVP is include in OpenSSL ?
>
> Thank you, it is for a french translation :)

The EVP layer is a generic interface to the encrypt, decrypt, and secure hash
functions provided by the OpenSSL library.

You can essentially call a generic encrypt function with the actual cipher to
be used as a parameter.  This provides benefits such as the fact that if new
ciphers are added to the OpenSSL library, client programs (such as OpenVPN)
will automatically see them.

In the parlance of object oriented programming, the EVP layer is like an
abstract base class for the cipher and hash algorithms.

James



Quelques rappels sur le chiffrement

On distingue généralement le chiffrement symétrique et le chiffrement asymétrique. Le modèle du chiffrement symétrique nécessite la connaissance de la même information pour le chiffrement et le déchiffrement. Dans le cas du modèle de chiffrement asymétrique, l'information pour le chiffrement et celle pour le déchiffrement sont distinctes et non-liée. L'information en question est appellée clef dans la plupart des cas.

Il existe 2 types de chiffrement symétriques :
  1. le chiffrement par bloc : DES (Digital Encryption Standard) (56 bits), 3DES (168 bits), AES (Advanced Encryption Standard) (128 bits), CAST (64 bits), Blowfish (64 bits).
  2. le chiffrement des flux : RC2, RC4.
Chiffrer en mode feedback :
Ce mode chaîne les blocs les uns aux autres en insérant les résultats des opérations antérieures dans l'opération en cours.

Chiffrer en mode CBC : Cipher Block Chaining
Prend le bloc de texte brouillé précédent et lui applique un XOR avec le prochain bloc de texte clair, avant de procéder à son chiffrement. Étant donné que pour le tout premier bloc il n'y a pas de "bloc précédent", on utilise un IV (Initialization Vector) ou VI (Vecteur d'Initialisation).

Chiffrer en mode OFB : Output Feedback Block
Nous maintenons ici un état de chiffrement qui est "rechiffré" de manière répétée et auquel on applique un XOR avec les blocs de texte clair pour produire le texte brouillé (un VI réprésentant l'état de chiffrement initial).

Clef symétriques :
RSA : Ron Rivest, Adi Shamir, Leonard Adleman. Répose sur la difficulté de factoriser le produit de 2 modules premiers de valeur élevée. Avec RSA, nous pouvons chiffrer soit avec sa propre clef privée, soit avec la clef publique du destinataire. RSA est très souvent utilisé dans le échanges de clef et les signatures numériques. Inadapté pour les gros volumes.
Inconvénient : lent et possible sur seulement les données de la taille du modulo de la clef (ex : une clef de 1024 bits (1023 + 11) permettra de coder des données de tailles inférieures ou égales à 1023 bits.

El-Gamal : Taher El-Gamal. Repose sur le problème du logarithme discret qui est une fonction à sens unique.
Inconvénient : Le texte brouillé est deux fois plus volumineux que le texte clair original.

Authentification :
signature à la main (auth) + garantie de l'intégrité des données signées = signature numérique

RSA :
  • chiffrer = créer une signature
  • déchiffrer = vérifier la signature
DSS : Digital Signature Standard
Fonctionnement différent de la signature avec RSA, mais utilise l'algorithme de RSA.
La signature ne correspond pas normalement au chiffrement de tout le message, mais seulement de son empreinte. L'empreinte est créée à partir de fonctions de hachage.

Collision : L'empreinte de 2 (ou plus) textes clairs est la même. C'est un indicacteur de la qualité d'un algorithme, car s'il y a trop de collision, l'algorithme est inutilisable pour l'authentification ou pour garantir l'intégrité de données.

Fonctionnement de la signature :
{même entrée à chaque fois} --> {algorithme de génération de l'empreinte} ==> {même sortie à chaque fois}

Avec tout cela, on atteint les objectifs suivants :
DSA :
Comparable à El-Gamal car repose sur le principe de logarithme discret. La clef privée est utilisée pour générer deux valeurs de 160 bits qui représentent la signature; la vérification est une démonstration mathématique, utilisant la clef publique, que les deux valeurs n'auraient pu être générées qu'avec la clef privée et le document signé. Il n'y a pas de déchiffrement à proprement parler.
DSA utilise la fonction de hachage SHA pour les signatures.

De même qu'il existe le chiffrement symétrique et le chiffrement asymétrique, il existe des méthodes symétriques et des méthodes asymétriques pour garantir l'intégrité des données.

MAC : Message Authentication Code
Fait appel à une seule clef (comme le chiffrement symétrique) pour générer et vérifier les infos d'authentifications.
MAC n'est pas une signature; c'est en fait une technique de hachage de clef.

{Message + Clef_secrète} --> {Fonction de hachage de MAC} ==> {empreinte à ajouter au message}


Le "déchiffrement" est le fait de générer l'empreinte de la même façon que lors du "chiffrement", pour ensuite les résultats.
Avantages : La génération d'une empreinte hachés est plus rapide que la génération d'une signature numérique.

HMAC : Les auteurs sont Hugo Krawczyk, Ran Canetti et Mihir Bellare.
La spécification de HMAC est un type de hachage de clef spécial qui peut être utilisé avec n'importe quelle fonction de hachage existante. Donc SHA peut devenir HMAC-SHA, MD5 peut devenir HMAC-MD5, ect.
HMAC est plus puissant que l'algorithme de hachage qu'il abrite. Pas exemple, une attaque par collision sur MD5 n'est pas possible sous HMAC-MD5.
HMAC a la particularité d'intervenir sur des clef ayant déjà subi un hachage.


Diffie-Hellman :
Repose sur le problème du logarithme discret.
Exemple d'utilisation :
Alice et Bob se mettent d'accord sur un groupe (= un nombre premier p et un générateur g). Chacun choisit ensuite un nombre aléatoire : a pour Alice, et b pour Bob.
D'où A=(ga mod p) pour Alice, et B=(gb mod p) pour Bob.
A et B sont échangés. Chacun refait une exponentiation en utilisant la valeur publique (A et B) que vient de lui fournir l'autre partie. On a alors :
Ba = gab mod p , pour Alice.
Ab = gab mod p , pour Bob.
Donc, Ba = Ab .
Un intru interceptant g, p, A et B ne pourra pas en déduire a et b, et donc encore moins gab mod p .

Inconvénient :
Diffie-Hellman est sensible à l'attaque man-in-the-middle. La signature avec clef asymétrique permet de résoudre ce problème (apport de l'authentification).

PFS : Perfect Forward Secrecy
Un système est dit PFS s'il garantit qu'une clef spécifique ne sert à générer qu'une clef secrète spécifique. Il sera impossible de déduire une clef avec la connaissance d'une autre clef générée par le même système.


Valid HTML 4.01!