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 ?
Je commencais a perde espoir d'avoir des reponses interéssentes! La j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les echanges tcp? En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des threads, mais j'aimerai eviter cela. De plus, je me demande si je ne serai obliger en utilisant OpenSSL, de linker dynamiquement avec les librairies ou je pourrais inclure directement les libs qui vont me servir dans mon code. Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Merci !!!
Je commencais a perde espoir d'avoir des reponses interéssentes! La
j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu
demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les
echanges tcp?
En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai
vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des
threads, mais j'aimerai eviter cela. De plus, je me demande si je ne
serai obliger en utilisant OpenSSL, de linker dynamiquement avec les
librairies ou je pourrais inclure directement les libs qui vont me
servir dans mon code. Le but au fait est de pouvoir utiliser mon
programme sans que OpenSSL ne soit installer sur la machine.
Pour le réponse SSL/TLS protège contre "the man in the middle
attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que
la notion d'authaurité de certification a ete inventé. Sans un CA, on
ne peut pas vraiment se proteger contre cette attaque directement. A
moins que je me trompe....
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui
pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter
mes paquets TCP.
Je commencais a perde espoir d'avoir des reponses interéssentes! La j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les echanges tcp? En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des threads, mais j'aimerai eviter cela. De plus, je me demande si je ne serai obliger en utilisant OpenSSL, de linker dynamiquement avec les librairies ou je pourrais inclure directement les libs qui vont me servir dans mon code. Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Merci !!!
Michel Arboi
On Thu Mar 17 2005 at 17:13, wrote:
Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Alors il faut linker statiquement.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai
Ah ?
et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Faire fonctionner SSL sans certificat serveur au moins n'est pas franchement courant :-)
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code. http://www.openssl.org/docs
Il y a le code lui même, chiant à lire à un point difficilement imaginable. Sinon il doit y avoir des choses là dedans : SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla) Network Security with OpenSSL (by John Viega, Matt Messier, Pravir Chandra)
On Thu Mar 17 2005 at 17:13, skalli14@yahoo.fr wrote:
Le but au fait est de pouvoir utiliser mon
programme sans que OpenSSL ne soit installer sur la machine.
Alors il faut linker statiquement.
Pour le réponse SSL/TLS protège contre "the man in the middle
attack", ce n'est pas tellement vrai
Ah ?
et d'ailleur c'est pour cela que la notion d'authaurité de
certification a ete inventé. Sans un CA, on
ne peut pas vraiment se proteger contre cette attaque directement. A
moins que je me trompe....
Faire fonctionner SSL sans certificat serveur au moins n'est pas
franchement courant :-)
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui
pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter
mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code.
http://www.openssl.org/docs
Il y a le code lui même, chiant à lire à un point difficilement
imaginable.
Sinon il doit y avoir des choses là dedans :
SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla)
Network Security with OpenSSL (by John Viega, Matt Messier, Pravir Chandra)
Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Alors il faut linker statiquement.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai
Ah ?
et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Faire fonctionner SSL sans certificat serveur au moins n'est pas franchement courant :-)
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code. http://www.openssl.org/docs
Il y a le code lui même, chiant à lire à un point difficilement imaginable. Sinon il doit y avoir des choses là dedans : SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla) Network Security with OpenSSL (by John Viega, Matt Messier, Pravir Chandra)
Michel Arboi
On Thu Mar 17 2005 at 15:20, MichelB wrote:
Quand tu fais "trool on" ça t'ennuierais de faire "trool off " et de nous instruire des alternatives sérieuses, solides et incontestables en l'état actuel???
#mode troll insiste C'est beaucoup exiger des "alternatives", OpenSSL ne respectant pas franchement ces points. #mode troll off Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres projets dénoncés par Freshmeat ont l'air bien jeunes.
On Thu Mar 17 2005 at 15:20, MichelB wrote:
Quand tu fais "trool on" ça t'ennuierais de faire "trool off " et de nous
instruire des alternatives sérieuses, solides et incontestables en l'état
actuel???
#mode troll insiste
C'est beaucoup exiger des "alternatives", OpenSSL ne respectant pas
franchement ces points.
#mode troll off
Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres
projets dénoncés par Freshmeat ont l'air bien jeunes.
Quand tu fais "trool on" ça t'ennuierais de faire "trool off " et de nous instruire des alternatives sérieuses, solides et incontestables en l'état actuel???
#mode troll insiste C'est beaucoup exiger des "alternatives", OpenSSL ne respectant pas franchement ces points. #mode troll off Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres projets dénoncés par Freshmeat ont l'air bien jeunes.
Erwann ABALEA
On Thu, 17 Mar 2005, Michel Arboi wrote:
On Thu Mar 17 2005 at 13:08, Erwann ABALEA wrote:
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes, et OpenSSL te permet de le mettre en oeuvre facilement. Je ne vois pas pourquoi tu cherches à réinventer la roue, surtout en utilisant un outil qui a déjà servi à fabriquer de belles roues bien rondes et fonctionnelles.
#mode troll on Il y a déjà eu des failles dans OpenSSL, et je ne mettrais pas ma main
C'est certain. De même qu'il y a des manques.
à couper qu'il n'en reste pas une pentachiée en attente de publication.
Il y en a certainement moins que dans un éventuel produit inventé de toute pièce par l'OP.
OpenSSL est un infâme plat de nouilles, qui a l'avantage d'exister.
Tant que tu ne cherches pas à voir sous les jupes, c'est relativement simple. Un appel de fonction pour créer un BIO SSL qui écoute, un autre pour en créer un pour faire une connexion, et quelques appels pour lire et écrire. Après, pour faire du non bloquant, gérer les erreurs, et autres, ben c'est comme tout, le code s'allonge, mais ça n'est pas la faute d'OpenSSL.
SSL/TLS et X509 étant ce qu'ils sont, je ne suis pas convaincu qu'on puisse faire beaucoup plus simple.
C'est difficile, du moins sans faire certains compromis.
Je disais encore du mal d'ASN1 hier soir; je radote, c'est l'âge.
Je ne vois rien de mal à redire à ASN.1, honnètement. C'est complexe, certes, c'est difficilement parsable, mais: - ça permet d'exprimer beaucoup de choses, et sans tartines comme XML - quelqu'un a écrit ici que ça n'avait pas été prévu pour être parsable par une machine, mais lu par un humain, et après un petit effort, c'est pas si difficile que ça
Est-ce que quelqu'un a regardé le code de GnuTLS ?
Pas encore.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Monsieur gagnerait en credibilite en etayant ses accusations; Tel quel, c'est minable. Bah, yaka attendre - on verra bien a quel gaz est gonflee cette baudruche. -+-TC in : Guide du Neuneu d'Usenet - Le neuneu se déballonne -+-
On Thu, 17 Mar 2005, Michel Arboi wrote:
On Thu Mar 17 2005 at 13:08, Erwann ABALEA wrote:
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes,
et OpenSSL te permet de le mettre en oeuvre facilement. Je ne vois pas
pourquoi tu cherches à réinventer la roue, surtout en utilisant un outil
qui a déjà servi à fabriquer de belles roues bien rondes et
fonctionnelles.
#mode troll on
Il y a déjà eu des failles dans OpenSSL, et je ne mettrais pas ma main
C'est certain. De même qu'il y a des manques.
à couper qu'il n'en reste pas une pentachiée en attente de
publication.
Il y en a certainement moins que dans un éventuel produit inventé de toute
pièce par l'OP.
OpenSSL est un infâme plat de nouilles, qui a l'avantage d'exister.
Tant que tu ne cherches pas à voir sous les jupes, c'est relativement
simple. Un appel de fonction pour créer un BIO SSL qui écoute, un autre
pour en créer un pour faire une connexion, et quelques appels pour lire et
écrire. Après, pour faire du non bloquant, gérer les erreurs, et autres,
ben c'est comme tout, le code s'allonge, mais ça n'est pas la faute
d'OpenSSL.
SSL/TLS et X509 étant ce qu'ils sont, je ne suis pas convaincu qu'on
puisse faire beaucoup plus simple.
C'est difficile, du moins sans faire certains compromis.
Je disais encore du mal d'ASN1 hier soir; je radote, c'est l'âge.
Je ne vois rien de mal à redire à ASN.1, honnètement. C'est complexe,
certes, c'est difficilement parsable, mais:
- ça permet d'exprimer beaucoup de choses, et sans tartines comme XML
- quelqu'un a écrit ici que ça n'avait pas été prévu pour être parsable
par une machine, mais lu par un humain, et après un petit effort, c'est
pas si difficile que ça
Est-ce que quelqu'un a regardé le code de GnuTLS ?
Pas encore.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Monsieur gagnerait en credibilite en etayant ses accusations;
Tel quel, c'est minable. Bah, yaka attendre - on verra bien
a quel gaz est gonflee cette baudruche.
-+-TC in : Guide du Neuneu d'Usenet - Le neuneu se déballonne -+-
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes, et OpenSSL te permet de le mettre en oeuvre facilement. Je ne vois pas pourquoi tu cherches à réinventer la roue, surtout en utilisant un outil qui a déjà servi à fabriquer de belles roues bien rondes et fonctionnelles.
#mode troll on Il y a déjà eu des failles dans OpenSSL, et je ne mettrais pas ma main
C'est certain. De même qu'il y a des manques.
à couper qu'il n'en reste pas une pentachiée en attente de publication.
Il y en a certainement moins que dans un éventuel produit inventé de toute pièce par l'OP.
OpenSSL est un infâme plat de nouilles, qui a l'avantage d'exister.
Tant que tu ne cherches pas à voir sous les jupes, c'est relativement simple. Un appel de fonction pour créer un BIO SSL qui écoute, un autre pour en créer un pour faire une connexion, et quelques appels pour lire et écrire. Après, pour faire du non bloquant, gérer les erreurs, et autres, ben c'est comme tout, le code s'allonge, mais ça n'est pas la faute d'OpenSSL.
SSL/TLS et X509 étant ce qu'ils sont, je ne suis pas convaincu qu'on puisse faire beaucoup plus simple.
C'est difficile, du moins sans faire certains compromis.
Je disais encore du mal d'ASN1 hier soir; je radote, c'est l'âge.
Je ne vois rien de mal à redire à ASN.1, honnètement. C'est complexe, certes, c'est difficilement parsable, mais: - ça permet d'exprimer beaucoup de choses, et sans tartines comme XML - quelqu'un a écrit ici que ça n'avait pas été prévu pour être parsable par une machine, mais lu par un humain, et après un petit effort, c'est pas si difficile que ça
Est-ce que quelqu'un a regardé le code de GnuTLS ?
Pas encore.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Monsieur gagnerait en credibilite en etayant ses accusations; Tel quel, c'est minable. Bah, yaka attendre - on verra bien a quel gaz est gonflee cette baudruche. -+-TC in : Guide du Neuneu d'Usenet - Le neuneu se déballonne -+-
Erwann ABALEA
On Thu, 17 Mar 2005 wrote:
Je commencais a perde espoir d'avoir des reponses interéssentes! La j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les echanges tcp?
Tu veux quoi? Si tu veux que ça aille vite, au détriment de la sécurité, ben tu oublies le SSL, le chiffrement, et tout ça. Si le chiffrement est vital pour toi, il y a un prix à payer. Il n'est pas si énorme que ça, si tu fais de bons choix. Si tu veux te faire un ordre d'idée de la perte de performances, tu fais des tests: - un serveur apache qui sert un gros fichier, un client curl, wget, ou peut-être un apachebench, et un chrono - un stunnel avec à chaque bout un soft à toi (client et serveur), comme ça tu peux tester avec le tunnel SSL et sans, et comparer et tu refais les tests en choisissant les cryptosystèmes négociés, tu peux orienter tes choix en fonction du résultat d'un "openssl speed" sur ton client et ton serveur.
En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai
Ca tombe bien, OpenSSL aussi. Je l'utilise sous Windows, Linux, Solaris, et je l'ai utilisé sous OpenVMS. Il fonctionne sur bien d'autres OS, les autres étant des unix ou unix-like, je n'avais d'appréhension que sur OpenVMS et ça n'a posé aucun problème.
vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des threads, mais j'aimerai eviter cela. De plus, je me demande si je ne
Faux. Tu *peux* faire du multithread, mais t'es pas obligé.
serai obliger en utilisant OpenSSL, de linker dynamiquement avec les librairies ou je pourrais inclure directement les libs qui vont me servir dans mon code. Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Les 2 sont possibles.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Tu ne te trompes pas, mais pas de beaucoup. SSL se base sur les certificats X.509, et les certificats X.509 supposent la présence d'une autorité. En gros, oui, sans AC ça ne marche pas, mais c'est normal, ça a été fait comme ça, et c'est comme ça que ça doit être utilisé. Et tu peux te créer ta propre AC, de même que tu peux considérer que ton serveur est une AC autosignée en plus d'être un serveur, etc. Ca marche.
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
"man SSL" pour commencer, et tu suis les autres manpages qui t'intéressent.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Je veux créer une troupe de danse érotique! Si vous ètes près à vivre des émotions fortes... si non, la vie continue et... Signature: Un Gros Garcon! -+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-
On Thu, 17 Mar 2005 skalli14@yahoo.fr wrote:
Je commencais a perde espoir d'avoir des reponses interéssentes! La
j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu
demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les
echanges tcp?
Tu veux quoi? Si tu veux que ça aille vite, au détriment de la sécurité,
ben tu oublies le SSL, le chiffrement, et tout ça. Si le chiffrement est
vital pour toi, il y a un prix à payer. Il n'est pas si énorme que ça, si
tu fais de bons choix.
Si tu veux te faire un ordre d'idée de la perte de performances, tu fais
des tests:
- un serveur apache qui sert un gros fichier, un client curl, wget, ou
peut-être un apachebench, et un chrono
- un stunnel avec à chaque bout un soft à toi (client et serveur), comme
ça tu peux tester avec le tunnel SSL et sans, et comparer
et tu refais les tests en choisissant les cryptosystèmes négociés, tu peux
orienter tes choix en fonction du résultat d'un "openssl speed" sur ton
client et ton serveur.
En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai
Ca tombe bien, OpenSSL aussi. Je l'utilise sous Windows, Linux, Solaris,
et je l'ai utilisé sous OpenVMS. Il fonctionne sur bien d'autres OS, les
autres étant des unix ou unix-like, je n'avais d'appréhension que sur
OpenVMS et ça n'a posé aucun problème.
vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des
threads, mais j'aimerai eviter cela. De plus, je me demande si je ne
Faux. Tu *peux* faire du multithread, mais t'es pas obligé.
serai obliger en utilisant OpenSSL, de linker dynamiquement avec les
librairies ou je pourrais inclure directement les libs qui vont me
servir dans mon code. Le but au fait est de pouvoir utiliser mon
programme sans que OpenSSL ne soit installer sur la machine.
Les 2 sont possibles.
Pour le réponse SSL/TLS protège contre "the man in the middle
attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que
la notion d'authaurité de certification a ete inventé. Sans un CA, on
ne peut pas vraiment se proteger contre cette attaque directement. A
moins que je me trompe....
Tu ne te trompes pas, mais pas de beaucoup. SSL se base sur les
certificats X.509, et les certificats X.509 supposent la présence d'une
autorité. En gros, oui, sans AC ça ne marche pas, mais c'est normal, ça a
été fait comme ça, et c'est comme ça que ça doit être utilisé.
Et tu peux te créer ta propre AC, de même que tu peux considérer que ton
serveur est une AC autosignée en plus d'être un serveur, etc. Ca marche.
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui
pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter
mes paquets TCP.
"man SSL" pour commencer, et tu suis les autres manpages qui
t'intéressent.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Je veux créer une troupe de danse érotique! Si vous ètes près à vivre
des émotions fortes... si non, la vie continue et...
Signature: Un Gros Garcon!
-+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-
Je commencais a perde espoir d'avoir des reponses interéssentes! La j'suis sevi.
C'est vraiment pas compliqué, SSL ou TLS permet *tout* ce que tu demandes,
et OpenSSL te permet de le mettre en oeuvre facilement.
Je ne demande que ca ! Mais est ce que ca ne va pas trop ralentir les echanges tcp?
Tu veux quoi? Si tu veux que ça aille vite, au détriment de la sécurité, ben tu oublies le SSL, le chiffrement, et tout ça. Si le chiffrement est vital pour toi, il y a un prix à payer. Il n'est pas si énorme que ça, si tu fais de bons choix. Si tu veux te faire un ordre d'idée de la perte de performances, tu fais des tests: - un serveur apache qui sert un gros fichier, un client curl, wget, ou peut-être un apachebench, et un chrono - un stunnel avec à chaque bout un soft à toi (client et serveur), comme ça tu peux tester avec le tunnel SSL et sans, et comparer et tu refais les tests en choisissant les cryptosystèmes négociés, tu peux orienter tes choix en fonction du résultat d'un "openssl speed" sur ton client et ton serveur.
En + j'aimerai que mon programme soit portable sur plusieurs OS. J'ai
Ca tombe bien, OpenSSL aussi. Je l'utilise sous Windows, Linux, Solaris, et je l'ai utilisé sous OpenVMS. Il fonctionne sur bien d'autres OS, les autres étant des unix ou unix-like, je n'avais d'appréhension que sur OpenVMS et ça n'a posé aucun problème.
vu que l'implementaion de SSL avec OpenSSL implique l'utilisation des threads, mais j'aimerai eviter cela. De plus, je me demande si je ne
Faux. Tu *peux* faire du multithread, mais t'es pas obligé.
serai obliger en utilisant OpenSSL, de linker dynamiquement avec les librairies ou je pourrais inclure directement les libs qui vont me servir dans mon code. Le but au fait est de pouvoir utiliser mon programme sans que OpenSSL ne soit installer sur la machine.
Les 2 sont possibles.
Pour le réponse SSL/TLS protège contre "the man in the middle attack", ce n'est pas tellement vrai, et d'ailleur c'est pour cela que la notion d'authaurité de certification a ete inventé. Sans un CA, on ne peut pas vraiment se proteger contre cette attaque directement. A moins que je me trompe....
Tu ne te trompes pas, mais pas de beaucoup. SSL se base sur les certificats X.509, et les certificats X.509 supposent la présence d'une autorité. En gros, oui, sans AC ça ne marche pas, mais c'est normal, ça a été fait comme ça, et c'est comme ça que ça doit être utilisé. Et tu peux te créer ta propre AC, de même que tu peux considérer que ton serveur est une AC autosignée en plus d'être un serveur, etc. Ca marche.
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
"man SSL" pour commencer, et tu suis les autres manpages qui t'intéressent.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Je veux créer une troupe de danse érotique! Si vous ètes près à vivre des émotions fortes... si non, la vie continue et... Signature: Un Gros Garcon! -+- CL in GNU - Enlevez le «Gar» de ma signature pour me répondre -+-
Erwann ABALEA
On Thu, 17 Mar 2005, Michel Arboi wrote:
On Thu Mar 17 2005 at 17:13, wrote:
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code. http://www.openssl.org/docs
T'as oublié le mode troll... Le gars veut utiliser OpenSSL, pas l'étendre. La doc fournie couvre bien plus que les 10% que tu cites, si on inclue les manpages. Honnètement, de gros efforts de documentation ont été faits depuis SSLeay et les débuts d'OpenSSL, j'ai très peu souvent besoin d'aller voir le source d'OpenSSL maintenant (ça arrive encore, mais c'est marginal et rare).
Il y a le code lui même, chiant à lire à un point difficilement imaginable.
Oui, mais ça n'est pas ce que l'OP souhaite.
Sinon il doit y avoir des choses là dedans : SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla)
C'est un livre souvent cité, je ne sais pas ce qu'il vaut.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Attends, s'il y a une toulousaine tu es gentil mais j'ai demandé le premier je crois. Premier arrivé premier servi quoi :-))))))))))) -+- GA in Guide du beauf primaire - "Envoyez la marchandise, VITE !"-+-
On Thu, 17 Mar 2005, Michel Arboi wrote:
On Thu Mar 17 2005 at 17:13, skalli14@yahoo.fr wrote:
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui
pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter
mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code.
http://www.openssl.org/docs
T'as oublié le mode troll... Le gars veut utiliser OpenSSL, pas l'étendre.
La doc fournie couvre bien plus que les 10% que tu cites, si on inclue les
manpages. Honnètement, de gros efforts de documentation ont été faits
depuis SSLeay et les débuts d'OpenSSL, j'ai très peu souvent besoin
d'aller voir le source d'OpenSSL maintenant (ça arrive encore, mais c'est
marginal et rare).
Il y a le code lui même, chiant à lire à un point difficilement
imaginable.
Oui, mais ça n'est pas ce que l'OP souhaite.
Sinon il doit y avoir des choses là dedans :
SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla)
C'est un livre souvent cité, je ne sais pas ce qu'il vaut.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Attends, s'il y a une toulousaine tu es gentil mais j'ai demandé le
premier je crois.
Premier arrivé premier servi quoi :-)))))))))))
-+- GA in Guide du beauf primaire - "Envoyez la marchandise, VITE !"-+-
Finalement, est ce que kk1 peut me conseiller un livre ou un lien qui pourrais m'aider a implémenter SSL à partir d'OpenSSL pour crypter mes paquets TCP.
Il y a la doc d'OpenSSL, qui couvre bien, oh..., 10% du code. http://www.openssl.org/docs
T'as oublié le mode troll... Le gars veut utiliser OpenSSL, pas l'étendre. La doc fournie couvre bien plus que les 10% que tu cites, si on inclue les manpages. Honnètement, de gros efforts de documentation ont été faits depuis SSLeay et les débuts d'OpenSSL, j'ai très peu souvent besoin d'aller voir le source d'OpenSSL maintenant (ça arrive encore, mais c'est marginal et rare).
Il y a le code lui même, chiant à lire à un point difficilement imaginable.
Oui, mais ça n'est pas ce que l'OP souhaite.
Sinon il doit y avoir des choses là dedans : SSL and TLS: Designing and Building Secure Systems (by Eric Rescorla)
C'est un livre souvent cité, je ne sais pas ce qu'il vaut.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Attends, s'il y a une toulousaine tu es gentil mais j'ai demandé le premier je crois. Premier arrivé premier servi quoi :-))))))))))) -+- GA in Guide du beauf primaire - "Envoyez la marchandise, VITE !"-+-
skalli14
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas
mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis
je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son
certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis
obligé de passer par l'interface BIO ou je peux utiliser directement
les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke
statiquement avec les libs OpenSSL ?
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
skalli14
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas
mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis
je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son
certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis
obligé de passer par l'interface BIO ou je peux utiliser directement
les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke
statiquement avec les libs OpenSSL ?
Merci pour toutes ces réponses. Je vois qu'il y a des gens qui ont pas mal d'experience dans ce domaine. Merci de m'en faire profiter.Ceci dis je me pose encore pas mal de questions :
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
Erwann ABALEA
Bonjour,
Tout d'abord, tu n'es pas obligé de poster tes messages en double...
On Fri, 18 Mar 2005 wrote:
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Non, pas si tu fais les choses proprement (vérification du certificat du serveur par rapport à ta liste d'AC en local).
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Si tu veux faire du SSL en utilisant les fonctions dédiées à cet usage d'OpenSSL, tu utiliseras les BIO et dormiras mieux. Si tu veux te refaire le SSL en utilisant les primitives crypto d'OpenSSL, tu peux te farcir les sockets, mais tu vas en chier.
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
Pourquoi tu aurais des problèmes? Et quel genre de problème? Je te dis que ça marche, parce que je l'ai testé et que je sais que ça marche.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- oui j'ai effacer ses messages a ce gros naze c'est qu'un début et si tu le defend, j'efface aussi les tiens. je commence ce soir? je te propose de faire partie de mon equipe anti john doe et tu me trahi deja -+- zorro in <http://neuneu.mine.nu>: D'un N qui veut dire Nuisible -+-
Bonjour,
Tout d'abord, tu n'es pas obligé de poster tes messages en double...
On Fri, 18 Mar 2005 skalli14@yahoo.fr wrote:
Si je fais en sorte que mon serveur soit le CA qui autosigne son
certificat, MIM reste tjrs possible ?
Non, pas si tu fais les choses proprement (vérification du certificat du
serveur par rapport à ta liste d'AC en local).
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis
obligé de passer par l'interface BIO ou je peux utiliser directement
les sockets ?
Si tu veux faire du SSL en utilisant les fonctions dédiées à cet usage
d'OpenSSL, tu utiliseras les BIO et dormiras mieux.
Si tu veux te refaire le SSL en utilisant les primitives crypto d'OpenSSL,
tu peux te farcir les sockets, mais tu vas en chier.
Est ce que je ne risque pas d'avoir des problèmes si je linke
statiquement avec les libs OpenSSL ?
Pourquoi tu aurais des problèmes? Et quel genre de problème? Je te dis que
ça marche, parce que je l'ai testé et que je sais que ça marche.
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
oui j'ai effacer ses messages a ce gros naze c'est qu'un début et si tu
le defend, j'efface aussi les tiens. je commence ce soir? je te propose
de faire partie de mon equipe anti john doe et tu me trahi deja
-+- zorro in <http://neuneu.mine.nu>: D'un N qui veut dire Nuisible -+-
Tout d'abord, tu n'es pas obligé de poster tes messages en double...
On Fri, 18 Mar 2005 wrote:
Si je fais en sorte que mon serveur soit le CA qui autosigne son certificat, MIM reste tjrs possible ?
Non, pas si tu fais les choses proprement (vérification du certificat du serveur par rapport à ta liste d'AC en local).
Pour le handshake, echange de clé symétrique etc.. Est ce que j'suis obligé de passer par l'interface BIO ou je peux utiliser directement les sockets ?
Si tu veux faire du SSL en utilisant les fonctions dédiées à cet usage d'OpenSSL, tu utiliseras les BIO et dormiras mieux. Si tu veux te refaire le SSL en utilisant les primitives crypto d'OpenSSL, tu peux te farcir les sockets, mais tu vas en chier.
Est ce que je ne risque pas d'avoir des problèmes si je linke statiquement avec les libs OpenSSL ?
Pourquoi tu aurais des problèmes? Et quel genre de problème? Je te dis que ça marche, parce que je l'ai testé et que je sais que ça marche.
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- oui j'ai effacer ses messages a ce gros naze c'est qu'un début et si tu le defend, j'efface aussi les tiens. je commence ce soir? je te propose de faire partie de mon equipe anti john doe et tu me trahi deja -+- zorro in <http://neuneu.mine.nu>: D'un N qui veut dire Nuisible -+-
Erwann ABALEA
On Thu, 17 Mar 2005, Michel Arboi wrote:
Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres projets dénoncés par Freshmeat ont l'air bien jeunes.
Il y a MatrixSSL qui existe. Léger, GPL ou commercial, ça peut être suffisant pour l'OP. J'ai envisagé de l'utiliser sur une machine avec peu de mémoire, mais bon, manque de temps, toussa, ...
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Un groupe spécifique aux débutants permettrai aux gens qui sont "middle-class" de pouvoir continuer à se former et à aller plus profond dans Linux. -+-EF In : Guide du Neuneu d'Usenet - Fais moi tout -+-
On Thu, 17 Mar 2005, Michel Arboi wrote:
Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres
projets dénoncés par Freshmeat ont l'air bien jeunes.
Il y a MatrixSSL qui existe. Léger, GPL ou commercial, ça peut être
suffisant pour l'OP. J'ai envisagé de l'utiliser sur une machine avec peu
de mémoire, mais bon, manque de temps, toussa, ...
--
Erwann ABALEA <erwann@abalea.com> - RSA PGP Key ID: 0x2D0EABD5
-----
Un groupe spécifique aux débutants permettrai aux gens qui sont
"middle-class" de pouvoir continuer à se former et à aller plus
profond dans Linux.
-+-EF In : Guide du Neuneu d'Usenet - Fais moi tout -+-
Justement, je demandais si quelqu'un avait regardé GnuTLS. Les autres projets dénoncés par Freshmeat ont l'air bien jeunes.
Il y a MatrixSSL qui existe. Léger, GPL ou commercial, ça peut être suffisant pour l'OP. J'ai envisagé de l'utiliser sur une machine avec peu de mémoire, mais bon, manque de temps, toussa, ...
-- Erwann ABALEA - RSA PGP Key ID: 0x2D0EABD5 ----- Un groupe spécifique aux débutants permettrai aux gens qui sont "middle-class" de pouvoir continuer à se former et à aller plus profond dans Linux. -+-EF In : Guide du Neuneu d'Usenet - Fais moi tout -+-