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
Partager