A resposta de Iain é geralmente correta, mas precisa de um pouco de expansão para explicar por que o ataque seria difícil de executar.
O TCP usa uma combinação de sinalizadores baseados em bits e contadores de 32 bits, chamados de números de seqüência e confirmação, para acionar a máquina de estado que rastreia o progresso de uma conexão TCP durante sua vida útil. Entender como esses dois contadores de 32 bits atuam no handshake de três vias que precede a transferência de dados de carga útil em cada conexão TCP tornará a impraticabilidade de ataques que usam endereços IP de origem falsificados.
Quando um cliente inicia uma conexão TCP com um servidor remoto, ele envia um segmento TCP com o conjunto de bits SYN e um número de seqüência inicial escolhido aleatoriamente. O servidor remoto responde com um segmento TCP com o conjunto de bits SYN e ACK, um número de sequência inicial escolhido aleatoriamente e um número de confirmação igual ao número de sequência inicial do cliente mais 1. Por fim, o cliente responde com um segmento TCP com Conjunto de bits ACK, um número de sequência igual ao número de sequência inicial enviado mais 1 e um número de confirmação igual ao número de sequência inicial do servidor remoto mais 1.
Quando um invasor está forjando datagramas IP do endereço IP de origem de outro host, normalmente o invasor não recebe as respostas para nenhum pacote que possa enviar. Nesse cenário, o invasor tem, efetivamente, um canal de comunicação unidirecional para o servidor remoto. Observando o fluxo de pacotes no handshake TCP, seria necessário que o invasor preveja o número de sequência inicial que o servidor remoto vai gerar em sua resposta SYN / ACK para responder com o número de confirmação apropriado na resposta ACK. para completar o handshake de três vias. O invasor precisa adivinhar um número de 32 bits corretamente para que o ataque funcione.
Hoje, esse tipo de ataque é totalmente impraticável. No passado, no entanto, alguns ataques de alto perfil usavam esse mesmo método. Isso foi possível porque, no passado, alguns sistemas operacionais tinham números de seqüência inicial muito previsíveis. (Você pode encontrar o de Michal Zalewski paper Atrativos Estranhos e Análise do Número de Seqüência TCP / IP - Um Ano Depois uma leitura interessante, em termos de descrever a previsibilidade da sequência inicial números de vários sistemas operacionais.)