echange sécurisé client serveur

Forum sur la sécurité des réseaux, la configuration des firewalls, la mise en place de protections contre les attaques, de DMZ, de systèmes anti-intrusion ...

Modérateur: modos Ixus

echange sécurisé client serveur

Messagepar ikuzar » 19 Jan 2011 11:26

Bonjour,
Je dois implémenter un protocole d'échange sécurisé ( une application simple client/serveur pour m'exercer, utilisant TLS ). Je dois authentifier le serveur ( que le serveur d'abord dans un premier temps ).

1) Je voulais savoir quelle est l'intérêt d'utiliser un certificat + diffie Hellman ( dans le cadre de la génération de la clef de session ). Une simple vérification de certificat du serveur ne suffit - il pas ? puis on chiffre la clef de session générée par le client avec la clef publique du serveur ?

En effet, on m'a dit que je dois d'abord vérifier l'authenticité du certificat puis faire un Diffie Helman, et je ne vois pas l'intéret de faire les deux, pour moi un certificat suffit pour chiffrer la clef de session générée par le client.

2) Est ce que quelqu'un a déja implémenté SSL sur une application simple client/serveur. Si oui, est ce qu'il peut me donner le code, pour avoir une idée de ce que je dois faire.

Merci d'avance pour votre aide.
ikuzar
Matelot
Matelot
 
Messages: 8
Inscrit le: 18 Oct 2010 16:27

Re: echange sécurisé client serveur

Messagepar ccnet » 19 Jan 2011 12:30

Tout cela est amplement documenté et commenté sur Internet, il ne me semble pas pertinent de donner ce type de réponse sur ce forum. D'autres participants seront peut être d'un autre avis.

1) Je voulais savoir quelle est l'intérêt d'utiliser un certificat + diffie Hellman ( dans le cadre de la génération de la clef de session ). Une simple vérification de certificat du serveur ne suffit - il pas ? puis on chiffre la clef de session générée par le client avec la clef publique du serveur ?

Si cela n'est pas compris (ce qui peut arriver en toute légitimité) , je vous propose de bien revoir les rôles respectifs (confidentialité, authentification, identité, ...) de ces différentes technologies. Là aussi il suffit de consulter la très abondante documentation disponible sur Internet.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris

Re: echange sécurisé client serveur

Messagepar jdh » 19 Jan 2011 13:16

Comme toujours (et de plus en plus), il est important de commencer par regarder dans cette excellente référence qu'est Wikipedia.
On y trouve la plupart du temps quelques explications très claires et synthétiques (y compris en français !).

Par exemple,
sur Diffie-Hellman, http://fr.wikipedia.org/wiki/%C3%89chan ... ie-Hellman
sur les clés, http://fr.wikipedia.org/wiki/Infrastruc ... _publiques

Il peut être intéressant de regarder des implantations de PKI genre EJBCA ...
Il peut être intéressant de regarder du côté de openssh ... (forcément, hein, comment on les créé les clés ?)

Même TLS est en français : http://fr.wikipedia.org/wiki/Transport_Layer_Security
Que dire de GnuTLS dans lequel il y a directement des exemples de code en C !
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Re: echange sécurisé client serveur

Messagepar ikuzar » 20 Jan 2011 12:08

Bonjour,
Merci pour ces docs jdh, ca m'a beaucoup aidé pour démarrer. Mais il reste toujours une zone d'ombre pour moi dans le protocole. Ce que j'ai compris, pour générer une clef de session :
- les deux parties calcule un premaster key puis un master key et enfin la clef de session.
- Si pour x raison ( par exemple, pas de certificat coté serveur, donc pas de clef publique ) les deux parties ne peuvent pas executer ce mécanisme preMaster key -> Master Key -> Session Key, ils utilisent le mode d'échange de clefs défini dans cipher suite comme indiqué ici ( http://technet.microsoft.com/en-us/libr ... 10%29.aspx )

en plus des docs ce que tu m'as conseillés, j'ai trouvé aussi ces docs qui ne sont pas mal,et qui peuvent servir pour ceux qui démarrent comme moi :
http://www.ibm.com/developerworks/linux ... enssl.html
http://h71000.www7.hp.com/doc/83final/b ... 04s03.html
http://www.openssl.org/docs/crypto/bio.html
ikuzar
Matelot
Matelot
 
Messages: 8
Inscrit le: 18 Oct 2010 16:27

Re: echange sécurisé client serveur

Messagepar jdh » 20 Jan 2011 12:57

Démarrer ?
A-t-on démarré sans avoir regardé sur Wikipedia ?

Mon seul conseil, c'est d'utiliser une librairie (qui s'appuiera elle-même sur la librairie openssl).
Par exemple GnuTLS (qui fournit des exemples, je l'ai déjà écrit).


NB : on oublie les docs Microsoft car elles ne sont pas forcément dans la ligne de RFC.
Les sites d'IBM renferment souvent de bonnes pistes, mais plutôt le début de la piste. Idem pour HP.
Le site d'Openssl ne fournit que la "sous-librairie" utile. D'où la librairie qui utilise la librairie.
L'intelligence artificielle n'est rien à côté de la stupidité naturelle.
Avatar de l’utilisateur
jdh
Amiral
Amiral
 
Messages: 4741
Inscrit le: 29 Déc 2002 01:00
Localisation: Nantes

Re: echange sécurisé client serveur

Messagepar ccnet » 20 Jan 2011 13:21

Évitez vraiment les documents Microsoft sur ces sujets. Pour des raisons marketing Microsoft prend de nombreuses libertés avec les standards en disant qu'il les respecte. Dans le domaine de la sécurité Microsoft à un long passé d'implémentation défectueuse des protocoles et de choix très discutables.
ccnet
Amiral
Amiral
 
Messages: 2687
Inscrit le: 27 Mai 2006 12:09
Localisation: Paris


Retour vers Sécurité et réseaux

Qui est en ligne ?

Utilisateur(s) parcourant actuellement ce forum : Aucun utilisateur inscrit et 1 invité

cron