Neste post vamos analisar com mais detalhes os campos de cabeçalho que podem fornecer informações importantes para a identificação de origem e autor, conhecidos como Trace Fields ou campos de rastreamento que são de grande importância na identificação real do remetente.
Continuaremos a utilizar o cabeçalho da figura 5 do post anterior como referência para os campos discutidos a seguir.
Figura 5 – Cabeçalho de uma mensagem resultante de um diálogo
X Headers são campos de cabeçalhos iniciados pela letra X maiúscula seguido de um hífen, de caráter informativo, que podem ser extremamente úteis na identificação da autoria de um e-mail. Os X Headers mais comuns são:
“X-Mailer:” Indica qual o cliente de correio foi utilizado para compor a mensagem.
“X-Yahoo-Post-IP:”, “X-AOL-IP:”, “X-Apparently-From:”, “X-SenderIP:”, “X-Originating-IP:”, etc. Indicam o endereço IP da conexão à internet que o usuário utilizou para o envio da mensagem. Se este usuário utilizou-se de um artifício qualquer para encobrir seu endereço IP real, o conteúdo não terá nenhum valor.
“X-OriginalArrivalTime:” Informa a data e hora do envio da mensagem no fuso (UTC) seguido dessa mesma informação no formato Windows Filetime, que consiste em um valor de 64 bits representado pelo número de intervalos de 100 nano segundos a partir de 01 de janeiro de 1601. Esse valor pode ser convertido para confirmação da hora real do envio e, associado ao endereço IP, indicarão o “quando” e “onde”.
“Message-ID:” Este campo contém um identificador único gerado pelo primeiro servidor de correio que submete a mensagem (MSA) e tem um formato parecido com “ID”@“HOST”, onde o ID constitui um identificador composto por uma sequência de caracteres (gerados por diversos algoritmos), inteligíveis ou não. HOST é o nome da máquina que gera o identificador. Se o host que gerou o ID fizer parte de um domínio, HOST será o nome do domínio. Se o Message-ID apresentar discrepâncias com o padrão A@B, como uma string vazia, ausência do “@” ou ainda apresentar um nome de host diferente do MSA, pode implicar na utilização de um servidor de correio eletrônico com open relay, diferente do domínio original do remetente ou uma mensagem forjada, como vimos na figura 3 do terceiro post.
Os campos “In-Reply-To:” e “References:” só aparecem quando uma mensagem é respondida ou encaminhada. O campo “References:” também pode ser utilizado para identificar uma conversação.
“In-Reply-To:” Contém o Message-ID da mensagem que está sendo respondida/encaminhada.
“References:” Contém o(s) Message-ID(s) da(s) mensagem(ns) que está(ão) relacionadas com a mensagem em análise.
Os campos “Received:” relacionam os servidores MTAs por onde passaram a mensagem, incluindo o MSA e o MDA (Ambos são MTAs). Este campo pode conter informações forjadas e se isso ocorrer, estas informações estarão sempre nos primeiros campos, já que há um empilhamento a partir do primeiro (base) até o último (topo) servidor.
O campo “Received:” possui a seguinte sintaxe:
Received: from “A” (Nome de A [IP de A])(Obs.) by B (Informações de B) via C with D id E for F; date-time
Onde A é o host de origem, B é o servidor que recebeu a mensagem e gera o campo “Received:“, C é o protocolo, D é o serviço, E é o id gerado pelo servidor B e F é a conta do destinatário. Date-time é o instante em que ocorre a entrega da mensagem à B. As variáveis A, B, C, D, E e F podem não estar todas no conteúdo do campo, variando de acordo com cada situação. Vejamos alguns exemplos.
Exemplo 1:
Figura 6: Campo “Received:” sem a variável “C”
Podemos dizer que neste caso a mensagem foi composta em um cliente de correio (Microsoft Outlook Express 6.00.2900.5931) instalado na “estação_remetente”. Podemos ver que a estação não faz parte de um domínio pois o Message-ID tem como “HOST” a “estação_remetente”. Caso a estação fizesse parte de um domínio (por exemplo: dominio_destinatario.org), o “Message-ID:” teria como valor <44206789192B4FB4ADA3D69390304921@dominio_destinatario.org>.
Exemplo 2:
Figura 7
Este campo “Received:” da figura 7 não apresenta o host de origem (A) porque o host de destino (B) está no mesmo domínio de A.
Exemplo 3:
Figura 8
O campo “Received-SPF:” indica que o servidor implementou o SPF (Sender Policy Framework). O SPF é um padrão aberto que especifica um método técnico para evitar a falsificação endereço do remetente (envelope), comumente chamado de return-path, que é utilizado pelos MTAs para enviar a mensagem de um para o outro especificando o endereço de retorno em caso de falha. O SPF dificulta a utilização de endereços forjados através de políticas de permissão de envio de mensagens oriundas de domínios confiáveis.
Veja que o campo “Received:” identifica o nome do host remetente através do comando HELO ou EHLO e o registra como “estação_remetente” e identifica o usuário que utilizou sua conta (“remetente”) para autenticar no domínio e enviar a mensagem. O host tem sua identidade registrada no campo “Received-SPF:” quando aponta o resultado do comando HELO.
No próximo post faremos uma análise em um cabeçalho de uma mensagem eletrônica.
Para saber nais sobre campo “Received-SPF:” visite o site do Sender Policy Framework