IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Linux Discussion :

Authenticité d'une connection [sockets]


Sujet :

Linux

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Par défaut Authenticité d'une connection [sockets]
    Bonjour,

    Je fais en ce moment un serveur qui envoie des "serial numbers" (un numéro unique d'identification, abrégé ici "uid") à un client afin de reconnaître ce même client à sa prochaine visite...

    Le fait est que je SAIS quels IPs iront chercher ces uid (seule une liste d'IPs autorisés y auront accès) par conséquent je peux utiliser bloqeur d'autres tentatives venant d'autres addresses.

    Cependant, je ne voudrais pas qu'un scénario particulier se produise:
    une attaque visant le serveur, qui envoie un paquet "spoofé" (c'est à dire donc l'addresse de l'envoyeur a été modifiée dans l'entête du paquet) demandant une requête pour l'obtention d'un nouveau uid... en effet si cela se produisait, et que l'addresse corresponde à un des IPs autorisés, je pourrais bien me retrouver à gaspiller énormément de uids et même mon algorithme de génération pourrait potentiellement être découvert.
    Il me faut donc empêcher cela.

    Je me disais donc que le seul moyen d'être sûr que l'addresse distant soit bel et bien la bonne, je dois faire ces étapes
    1- Réception d'un paquet
    2- Envoie d'un paquet de confirmation à l'addresse distante
    3- L'addresse distante réplique...
    4- Réception du paquet de confirmation

    Voici mes questions:
    1- Est-ce que, lors de l'établissement d'une connection avec l'appel socket(), accept(), etc etc, ces étapes sont déjà faites d'avance (autrement dit est-ce que l'on est sûr de l'autheticité de l'addresse distante)?
    2- Avez vous une meilleure idée, plus sécuritaire, afin de palier ce problème?

    Merci beaucoup!

    Cordialement,
    Array

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Lors de l'etablissement d'une connexion securisee, il y a plusieurs echanges qui sont faits - on parle par exemple de 3-way handshake.

    Un paquet spoofe seul ne permet pas d'etablir une connexion, car ton serveur va repondre a l'adresse spoofee, pas a l'emetteur.

    Ta seule crainte est le man-in-the-middle, et la, il est tres difficile de s'en premunir sans avoir un minimum de controle sur la machine cliente.

    Au fait, j'espere bien que tes connexions sont securisees avec SSL ?
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  3. #3
    Membre confirmé Avatar de Array
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    210
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 210
    Par défaut
    Citation Envoyé par gangsoleil Voir le message
    Au fait, j'espere bien que tes connexions sont securisees avec SSL ?
    Mhm en fait non :[]

    Pour être franc, c'est une implémentation qui nécessite vraiment d'être rapide dans l'établissement des connexions et des réponses, Le,voie des données etc etc.
    Donc... avant d'essayer je me disais... est-ce que SSL ralentit de beaucoup par rapport aux appels standards de l'OS?

    Je suis peu connaissant en ce qui a trait aux connexions sécurisées.

  4. #4
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Citation Envoyé par Array Voir le message
    c'est une implémentation qui nécessite vraiment d'être rapide dans l'établissement des connexions et des réponses, L'envoie des données etc etc.
    Donc... avant d'essayer je me disais... est-ce que SSL ralentit de beaucoup par rapport aux appels standards de l'OS?
    Quel est le besoin :
    Temps acceptable pour une connexion ?
    Est-ce que la connexion peut rester ouverte en permanence, ou bien doit-elle etre refaite a chaque fois ?
    Est-ce que l'utilisation CPU est genante (sur un micro-controlleur par exemple) ?
    De quel niveau de securite avez-vous besoin ?

    A mon avis, tu ne verras memem pas la difference en chiffrant les donnees ou non, pour peu que tu aies des serveurs et pas des terminaux mobiles - et encore.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  5. #5
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 515
    Par défaut
    Avec de l'ARP spoofing on peut tout à fait se faire passer pour autre machine.

    Avec un serveur S et une machine pirate P voulant se faire passer pour un client légitime C, la machine P émet des réponses ARP qui disent "l'IP de C, elle correspond à mon adresse MAC". En plus de ça P met son interface en mode promiscuous.

    P envoie à S un paquet en mettant l'adresse IP de C en adresse source. Quand S répond, il émet un requête ARP pour connaître l'adresse MAC correspondant à l'adresse IP de C. Il reçoit une des réponses ARP "pirates" émises en permanence par par P. S envoie donc un paquet destiné à C, avec l'IP destination de C, mais l'adresse MAC destination de P. P reçoit la réponse et fait ce qu'il veut avec.

  6. #6
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Pour l'ARP spoofing, il faut tout de meme etre sur le meme sous-reseau, donc c'est vite tres tres limitant (heureusement d'ailleurs).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/01/2012, 17h46
  2. Etablir une Connection Socket
    Par Popeye63 dans le forum Windows Forms
    Réponses: 6
    Dernier message: 09/08/2007, 09h05
  3. [Proxy][Socket] Etablir une connection au travers d'un proxy
    Par groskek dans le forum Développement
    Réponses: 1
    Dernier message: 03/03/2006, 20h01
  4. Réponses: 12
    Dernier message: 21/02/2006, 11h47
  5. Envoyer un TPoint par une connection Socket ????
    Par jeldorak dans le forum C++Builder
    Réponses: 2
    Dernier message: 25/11/2002, 19h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo