GNT sans publicité, site mobile, fonctionnalitées exclusives...

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 .
Lire les 26 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 6
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
YBM
Le #482454
Pourquoi ne pas utiliser tout simplement ipsec avec racoon, ça
te chiffre tout IP (pas seulement TCP) ?
(il accepte les clés RSA openssl)
skalli14
Le #482265
YBM wrote:
Pourquoi ne pas utiliser tout simplement ipsec avec racoon, ça
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.

YBM
Le #482264
YBM wrote:

Pourquoi ne pas utiliser tout simplement ipsec avec racoon, ça
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)


Cedric Blancher
Le #482263
Le Wed, 16 Mar 2005 01:19:27 -0800, skalli14 a écrit :
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 du côté de stunnel :

http://www.stunnel.org/


--
BOFH excuse #258:

That's easy to fix, but I can't be bothered.

Erwann ABALEA
Le #482262
Bonjour,

On Tue, 15 Mar 2005, msurf wrote:

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.


C'est bien.

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.


Tant qu'à faire, utiliser des méthodes éprouvées ne peut que rendre de
grands services...

-Quelle solution retenir ?


Tu as OpenSSL, tu as donc *tout* ce qu'il te faut pour faire du SSL...

-Est ce que je peux utiliser directement SSL sans ralentir le debit du
traffic ?


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.

-Comment implémenter de l'AES pour crypter du TCP.


Mauvaise question.

-Est ce que c'est facile d'utiliser les libraires d'OpenSSL pour
réalier tout ca?


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 -+-

Publicité
Suivre les réponses
Poster une réponse
Anonyme