No ato da composição de uma mensagem são gerados os dados que irão ser utilizados na comunicação com o servidor de correio eletrônico e formar o início do cabeçalho da mensagem. Neste momento são criados os campos ”FROM:”, ”TO:”, ”DATE:”, ”SUBJECT:” e “DATA”, conforme vimos no post anterior. Estes campos serão preenchidos no cliente e serão utilizados ao submetê-los ao servidor de correio do remetente (MTA/MSA). Esta transação funciona como um diálogo entre o cliente e o servidor baseado no protocolo SMTP (Simple Mail Transfer Protocol). Este “diálogo” pode ser mais facilmente compreendido quando analisamos essa comunicação através de TELNET, na porta 25 (porta padrão SMTP). No exemplo abaixo vemos a comunicação entre um cliente e um servidor de correio baseado no seguinte cenário:
Um host denominado “origem” estabelece a comunicação por TELNET com um servidor de correio denominado “dominio_remetente.org” (Microsoft ESMTP MAIL Service, Version: 6.0.2600.5512), tentando se passar pelo servidor “mail.receita.fazenda.gov.br”. A comunicação se estabelece conforme a figura abaixo:
Figura 3 – Estabelecendo comunicação por TELNET (Open Relay)
Após estabelecer a conexão, repassa informações que irão fazer parte da mensagem e do cabeçalho.
Figura 4 – Cabeçalho recebido por destinatario@dominio_destinatario.org
Como vimos antes, um host de nome “remetente” estabelece uma comunicação via TELNET com um servidor de correio com relay aberto denominado “dominio_remetente.org” (linha 3 da figura 3). O host ”remetente” identifica-se como um MSA de nome ”mail.receita.fazenda.gov.br” através do comando HELO ou EHLO (linha 6 da figura 3). Observe na linha 7 da figura 3 que “dominio_remetente.org” o identifica corretamente, o que também pode ser visto na linha 20 da figura 4 acima mas como está permitindo relay, retransmite a mensagem assim mesmo. A mensagem foi fraudada e o servidor de correio “dominio_remetente.org” apesar de reconhecer a diferença deixa a mensagem prosseguir, sendo que o primeiro campo “Received:” possui conteúdo não confiável, mas mostra a inconsistência na informação.
A composição do cabeçalho completo pode variar, agregando mais ou menos informação, entretanto se você percebe haver inconsistência em um campo “Received:”, descarte-o e passe para o campo imediatamente acima. Os servidores seguintes estarão mais distantes do fraudador, praticamente impossibilitando que o mesmo interfira ou altere as linhas seguintes do cabeçalho.
O cabeçalho é formado à partir das linhas da base e cada MTA que repassa a mensagem coloca linhas acima do conteúdo recebido. Alguns campos de cabeçalho situados na base podem receber incrementos de informação, mas isso será discutido na caracterização dos campos. Até o próximo post.