Client/serveur avec authentification
Fermé
bigseydi
Messages postés
21
Date d'inscription
vendredi 12 novembre 2010
Statut
Membre
Dernière intervention
4 mai 2016
-
4 déc. 2012 à 05:47
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 4 déc. 2012 à 10:50
[Dal] Messages postés 6194 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 11 octobre 2024 - 4 déc. 2012 à 10:50
A voir également:
- Client/serveur avec authentification
- Authentification transcash ✓ - Forum Consommation & Internet
- Impossible d'atteindre le serveur dhcp - Forum Réseau
- Orange service client - Guide
- Changer serveur dns - Guide
- Verification de l'identite du serveur impossible - Forum iPhone
2 réponses
[Dal]
Messages postés
6194
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
11 octobre 2024
1 092
Modifié par [Dal] le 4/12/2012 à 10:59
Modifié par [Dal] le 4/12/2012 à 10:59
Salut bigseydi,
Sur le mode d'authentification, ou le protocole d'authentification, tu peux faire simple comme tu peux faire compliqué.
Si tu veux que le mot de passe ne transite pas en clair sur le réseau pour des raisons de sécurité, tu peux au minimum utiliser une fonction de hachage de type SHA1, par exemple.
Ou une option plus poussée, serait utiliser une bibliothèque qui te permettra de mettre en oeuvre un protocole standard d'authentification comme SASL.
Par exemple, la bibliothèque GNU SASL, écrite en C, qui est portable (et "thread-safe") et utilisable sous Windows comme sous Linux, et te permettra d'incorporer une dialogue SASL entre ton client et ton serveur, en supportant les mécanismes d'authentification de ton choix parmi ceux disponibles.
http://www.gnu.org/software/gsasl/
Des exemples de code C pour le client et le serveur figurent dans la documentation : http://www.gnu.org/software/gsasl/manual/gsasl.html#Example-1 (dans cet exemple avec CRAM-MD5).
La bibliothèque est en LGPL. Il existe des binaires compilés pour Windows :
https://josefsson.org/gsasl4win/ (chercher les binaires là : https://josefsson.org/gnutls4win/)
http://www.gnu.org/software/gsasl/manual/html_node/Installing-under-Windows.html#Installing-under-Windows
C'est un peu l'artillerie lourde, mais cela a un intérêt si ton serveur, lui-même, utilise un protocole de communication standard, et doit pouvoir fonctionner avec des clients sécurisés utilisant les mêmes protocoles d'authentification et de communication.
Dal
Sur le mode d'authentification, ou le protocole d'authentification, tu peux faire simple comme tu peux faire compliqué.
Si tu veux que le mot de passe ne transite pas en clair sur le réseau pour des raisons de sécurité, tu peux au minimum utiliser une fonction de hachage de type SHA1, par exemple.
Ou une option plus poussée, serait utiliser une bibliothèque qui te permettra de mettre en oeuvre un protocole standard d'authentification comme SASL.
Par exemple, la bibliothèque GNU SASL, écrite en C, qui est portable (et "thread-safe") et utilisable sous Windows comme sous Linux, et te permettra d'incorporer une dialogue SASL entre ton client et ton serveur, en supportant les mécanismes d'authentification de ton choix parmi ceux disponibles.
http://www.gnu.org/software/gsasl/
Des exemples de code C pour le client et le serveur figurent dans la documentation : http://www.gnu.org/software/gsasl/manual/gsasl.html#Example-1 (dans cet exemple avec CRAM-MD5).
La bibliothèque est en LGPL. Il existe des binaires compilés pour Windows :
https://josefsson.org/gsasl4win/ (chercher les binaires là : https://josefsson.org/gnutls4win/)
http://www.gnu.org/software/gsasl/manual/html_node/Installing-under-Windows.html#Installing-under-Windows
C'est un peu l'artillerie lourde, mais cela a un intérêt si ton serveur, lui-même, utilise un protocole de communication standard, et doit pouvoir fonctionner avec des clients sécurisés utilisant les mêmes protocoles d'authentification et de communication.
Dal
Hxyp
Messages postés
401
Date d'inscription
vendredi 28 janvier 2011
Statut
Membre
Dernière intervention
27 avril 2014
54
4 déc. 2012 à 07:56
4 déc. 2012 à 07:56
Bonjour,
Comme on ne vous précise pas le type d'auth c'est que c'est à vous de le créer à mon avis alors c'est au niveau du serveur prévoir le stockage des id&pass, donc tout simple : lorsqu'un client viendra sur le port d'écoute du serveur (création d'un thread pour la connection du client) il envera la demande de login puis du pass :
serveur > client : demande de login
client > serveur : envoi son id
serveur > client : demande de pass
client > serveur : envoi du pass
serveur fait la vérification du login et pass si incorrect retourne un message/code d'erreur au client et coupe la connection&tue le thread du client.
si id et pass ok le serveur fait persister la connection et le client peut utiliser des commandes sur le serveur.
Comme on ne vous précise pas le type d'auth c'est que c'est à vous de le créer à mon avis alors c'est au niveau du serveur prévoir le stockage des id&pass, donc tout simple : lorsqu'un client viendra sur le port d'écoute du serveur (création d'un thread pour la connection du client) il envera la demande de login puis du pass :
serveur > client : demande de login
client > serveur : envoi son id
serveur > client : demande de pass
client > serveur : envoi du pass
serveur fait la vérification du login et pass si incorrect retourne un message/code d'erreur au client et coupe la connection&tue le thread du client.
si id et pass ok le serveur fait persister la connection et le client peut utiliser des commandes sur le serveur.