Cryptage du traffic TCP/IP avec openssl
Le
skalli14
Bonjour à tous,
J'ai developpé un petit soft serveur/clients en C qui permet
d'echanger des fichiers et de s'envoyer des messages. Tous les clients
passent par le serveur pour communiquer.
Maintenant, je recherche des solutions pour crypter toutes les
communications TCP entre les clients et le serveur. Je developpe sous
Linux debian, j'ai bien sur installé OpenSSL et je compte utiliser ses
libraires pour crypter les données.
Je sais qu'il existe plusieurs types de cryptages pour chiffrer les
communications TCP. Celui que je compte utiliser est le cryptage
symétrique (AES), mais à ce moment là je sais pas du tout comment
faire pour échanger la clé secrète de session.
J'ai vu que Diffie-Hellman pouvait etre une solution. Cependant, il ne
garantie pas l'identité du destinataire et donc est sensible a MIM
attaque.
Il existe aussi une autre solution pour échanger la clé secrètre,
c'est celle qu'utilise SSL. On crypte alors la clé secrète avec du RSA
pour la transmettre. Cette solution m'interesse beaucoups aussi.
J'ai aussi pensé à utiliser une architecture PKI. Le serveur qui relie
les clients serai alors le CA ( authorite de certification ). Au
moment de la connexion, le serveur transmet son certificat auto-signé
au client, le certificat contient la clé publique du serveur. Cette
clé permettra de transemttre la clé symétrique de session. Je demande
donc aux conaisseurs de cryptographie de me donner quelques conseils:
-Quelle solution retenir ?
-Est ce que je peux utiliser directement SSL sans ralentir le debit du
traffic ?
-Comment implémenter de l'AES pour crypter du TCP.
-Est ce que c'est facile d'utiliser les libraires d'OpenSSL pour
réalier tout ca?
-Connaisez vous des livres ou des liens ou je peux trouver quelque
chose de similaire ?
-Que sera l'impact sur les performances des échanges entres
clients/serveur ?
-Quelles sont les solutions pour garantir l'authentification avec DH ?
Merci pour vos suggestions .
J'ai developpé un petit soft serveur/clients en C qui permet
d'echanger des fichiers et de s'envoyer des messages. Tous les clients
passent par le serveur pour communiquer.
Maintenant, je recherche des solutions pour crypter toutes les
communications TCP entre les clients et le serveur. Je developpe sous
Linux debian, j'ai bien sur installé OpenSSL et je compte utiliser ses
libraires pour crypter les données.
Je sais qu'il existe plusieurs types de cryptages pour chiffrer les
communications TCP. Celui que je compte utiliser est le cryptage
symétrique (AES), mais à ce moment là je sais pas du tout comment
faire pour échanger la clé secrète de session.
J'ai vu que Diffie-Hellman pouvait etre une solution. Cependant, il ne
garantie pas l'identité du destinataire et donc est sensible a MIM
attaque.
Il existe aussi une autre solution pour échanger la clé secrètre,
c'est celle qu'utilise SSL. On crypte alors la clé secrète avec du RSA
pour la transmettre. Cette solution m'interesse beaucoups aussi.
J'ai aussi pensé à utiliser une architecture PKI. Le serveur qui relie
les clients serai alors le CA ( authorite de certification ). Au
moment de la connexion, le serveur transmet son certificat auto-signé
au client, le certificat contient la clé publique du serveur. Cette
clé permettra de transemttre la clé symétrique de session. Je demande
donc aux conaisseurs de cryptographie de me donner quelques conseils:
-Quelle solution retenir ?
-Est ce que je peux utiliser directement SSL sans ralentir le debit du
traffic ?
-Comment implémenter de l'AES pour crypter du TCP.
-Est ce que c'est facile d'utiliser les libraires d'OpenSSL pour
réalier tout ca?
-Connaisez vous des livres ou des liens ou je peux trouver quelque
chose de similaire ?
-Que sera l'impact sur les performances des échanges entres
clients/serveur ?
-Quelles sont les solutions pour garantir l'authentification avec DH ?
Merci pour vos suggestions .

Poser une question


te chiffre tout IP (pas seulement TCP) ?
(il accepte les clés RSA openssl)
Je prefere utiliser l'api openssl pour crypter les messages. IPSEC est
une solution facile, mais cela ne me permettra pas de comprendre
comment marche vraiment le cryptage des données et surtout à quel
genre de problemes on est confronté quand on veut crypter un flux TCP.
Regarde alors plutôt comment fait ssh (il peut faire de la redirection
de port par données chiffrées)
Regarde du côté de stunnel :
http://www.stunnel.org/
--
BOFH excuse #258:
That's easy to fix, but I can't be bothered.
On Tue, 15 Mar 2005, msurf wrote:
C'est bien.
Tant qu'à faire, utiliser des méthodes éprouvées ne peut que rendre de
grands services...
Tu as OpenSSL, tu as donc *tout* ce qu'il te faut pour faire du SSL...
Tu auras un petit ralentissement à l'établissement de la session, et
ensuite ça dépendra de la puissance CPU de tes machines, de l'algorithme
négocié, etc. En pratique, çe ne devrait pas géner.
Mauvaise question.
Oui. Des exemples sont fournis, et des manpages existent.
--
Erwann ABALEA -----
j'ai pour habitude de mettre le post auquel je réponds sous le
mien et non au dessus et ce n'est pas de l'impolitesse envers vous il
faudra bien que vous vous y habituez
-+- MP in Guide du Neuneu d'Usenet : Le mépris par l'exemple -+-