Os ataques cibernéticos são realizados utilizando os protocolos da pilha TCP/IP, por esse motivo é muito importante conhecer mais de perto, aqui exploraremos o protocolo TCP. A camada TCP está logo acima do protocolo internet protocol IP que fornece um modo para o TCP enviar e receber segmentos.
Figura 1. Camadas do protocolo TCP
Como pode ser visto na Figura 1, as camadas do protocolo TCP/IP são 4: Comunicação reunindo os protocolos da camada física e enlace de dados do modelo OSI. Logo acima temos a camada de identificação da máquina na camada de Internet. Em seguida a camada de transmissão e a camada de aplicação. Não temos o objetivo aqui de esgotar o assunto, entretanto é importante pontuar que quanto mais conhecimento no protocolo TCP/IP maior será sua estratégia de defesa.
Cabeçalhos do protocolo
Os segmentos TCP são enviados como datagramas de internet, o cabeçalho do IP carrega vários campos de informação, incluindo source e destination headers e o cabeçalho TCP segue o IP, fornecendo ainda mais informações, entretanto específicas do TCP.
Figura 2. Cabeçalho TCP/IP
Na Figura 2 podemos observar que um datagrama IP é populado por várias informações. Não iremos abordar todas, o source port e destination port reportam as origem e destino do datagrama, respectivamente.
Ao chegar em seu destino, uma arquitetura cliente/servidor realiza o protocolo de transmissão. Para que uma conexão seja estabelecida ou inicializada, os dois TCPs devem sincronizar os números de sequência iniciais um do outro. Isso é feito em uma troca de conexão estabelecendo segmentos transportando um bit de controle chamado "SYN" (para sincronizar) e os números de sequência iniciais. Portanto, a solução requer um mecanismo adequado para escolher um número de sequência inicial e um aperto de mão.
Figura 3. protocolo de transmissão - Three-way Handshake
O Three-way Handshake ou aperto de mão de três vias, é um procedimento de comunicação utilizado no modelo TCP para estabelecer uma conexão entre dois dispositivos em uma rede. Ele consiste em três etapas (ou mensagens) trocadas entre os dispositivos:
- O Cliente que iniciou a conexão envia uma mensagem SYN para o servidor, solicitando que seja iniciado o processo de conexão.
- O Servidor responde com uma mensagem SYN/ACK, indicando que recebeu a solicitação e está disposto a se conectar.
- O cliente que iniciou a conexão responde com uma mensagem ACK, confirmando que recebeu a resposta do dispositivo receptor.
Após essa sequência, a conexão é estabelecida e os dispositivos podem começar a trocar dados. O Three-way Handshake é importante para garantir que os dispositivos se comuniquem corretamente e estabeleçam uma conexão segura e confiável.
Na primeira linha, o cliente envia uma solicitação de comunicação. Traduzindo, seria como se o cliente estivesse falando o seguinte:
Cliente, "Gostaria de estabelecer uma conexão. Dá pra sincronizar" envia mensagem com flag SYN ativada.
"Claro, estou disponível", responde o servidor com a flag SYN/ACK.
OK! O cliente responde com a flag ACK ativada e a conexão está estabelecida.
A partir deste momento uma tabela denominada tabela de estado mantém os pacotes com as flags permitindo a transmissão dos pacotes, uma vez que a conexão foi autorizada e estabelecida. Esta tabela fica armazenada no servidor.