web-dev-qa-db-fra.com

Pourquoi n'est-il pas possible de truquer une adresse IP?

Je sais qu'il est possible de changer une adresse IP en utilisant un proxy, mais je suis intéressé par pourquoi n'est-il pas possible de la changer en envoyant des données modifiées à partir d'un seul ordinateur?

Mise à jour:

Merci pour les réponses rapides, mais ce n'est pas clair, que se passerait-il si un protocole sans état était utilisé, comme HTTP. Je ne connais pas la communication réseau de niveau inférieur, mais il semble que théoriquement, il devrait être possible de tromper l'adresse IP si un PC se connecte au serveur et reçoit la réponse immédiatement.

41
Fluffy

Il est tout à fait possible d'envoyer des données avec une fausse adresse IP d'expéditeur. Cependant, vous aurez du mal à obtenir des réponses, car les réponses seront envoyées à la fausse adresse IP et ne vous parviendront jamais. De plus, si vous envoyez des données avec une adresse IP "de" qu'un routeur ne s'attend pas à recevoir de vous, le routeur la laissera souvent simplement tomber et informera parfois le FAI que vous êtes en train de faire quelque chose qui viole vos conditions d'utilisation.

EDIT: En réponse au message édité.

Tout protocole (tel que HTTP) qui est construit au-dessus d'un protocole orienté connexion (TCP) nécessitera une adresse IP valide. Les cas où les fausses adresses IP ont été répandues impliquent principalement des attaques par déni de service, en utilisant UDP, ICMP ou le paquet SYN initial dans une poignée de main TCP TCP).

61
Erik

Vous pouvez utiliser n'importe quelle adresse IP que vous souhaitez envoyer, mais les réponses iront à l'adresse IP que vous avez utilisée, vous ne pouvez donc pas établir de communication bidirectionnelle de cette façon.

14
Simon Richter

(* C'est une vieille question et les réponses sont correctes, juste un ajout)
.
http://en.wikipedia.org/wiki/IP_address_spoofing

4
ozma

Si vous essayez d'envoyer un paquet en modifiant l'adresse IP source, vous pouvez l'envoyer à quelqu'un d'autre mais si vous voulez qu'un paquet revienne sur votre PC, vous devez utiliser quelque chose comme un NAT

Si vous êtes derrière un routeur sur votre réseau, vous changez essentiellement en cachant votre propre identité

Exemple: vous: 192.168.1.4 insiderouter: 192.168.1.1 ip externe: 8.8.8.8 ip de destination: 8.8.4.4

Envoi d'un paquet: de: 192.168.1.4 (vous) à 8.8.4.4 (dest) le routeur se traduit par: de: 8.8.8.8 (external-ip) à 8.8.4.4 (dest) et conserve votre ip dans sa mémoire

que le paquet arrive à destination.

Maintenant, la destination renvoie un paquet de: 8.8.4.4 (dest) à 8.8.8.8 (external-ip) le routeur se transforme en (avec utilisation de sa mémoire) de: 8.8.4.4 (dest) à 192.168.1.4 (vous)

et maintenant le paquet revient sur votre PC

comme vous pouvez le voir, la destination ne connaît pas votre adresse IP mais ne connaît que l'adresse IP du routeur

c'est un moyen d'accompagner un moyen de cacher votre ip

3
Spidfire