Quantas somas de verificação tem um pacote VPN? Depende
O número depende das versões de IP, do protocolo transportado e do formato de proteção. As somas de verificação do cabeçalho, da camada superior e as etiquetas de integridade diferem.
A afirmação de que um pacote VPN carrega exatamente duas somas de verificação soa arrumada e é falsa com frequência suficiente para merecer análise. O número depende de quais versões de IP aparecem, qual protocolo de transporte é carregado e qual formato de proteção o túnel usa. Uma soma de verificação de cabeçalho, uma soma de verificação da camada superior e uma etiqueta criptográfica de integridade são três mecanismos com três âmbitos. Contá-las começa por marcar o que cada uma cobre.
Verifique quais versões de IP estão realmente no fio
Os cabeçalhos IPv4 carregam uma soma de verificação de cabeçalho de 16 bits, e os cabeçalhos IPv6 não carregam nada disso. Esse único fato muda o número para cada túnel, porque envolver IPv4 dentro de IPv6 e IPv6 dentro de IPv4 produz documentos diferentes. Um túnel pode carregar as duas famílias ao mesmo tempo, e então uma direção pode conter um campo que a outra não tem. Estabeleça as versões antes de contar qualquer coisa.
Escreva o arranjo como uma lista de cabeçalhos em vez de uma imagem. A ordem importa ao ler uma captura, e a presença ou ausência do campo de soma de verificação é a primeira coisa a marcar.
outer IPv6 | ESP | inner IPv6 | UDP | application data
outer IPv4 | ESP | inner IPv4 | TCP | application data
A primeira linha não tem nenhuma soma de verificação de cabeçalho IP nos seus cabeçalhos IP, enquanto a segunda tem duas quando os dois cabeçalhos são IPv4. A mesma tecnologia de túnel, um número diferente, e nenhuma das linhas é um formato de fio completo.
Verifique o que cada soma de verificação cobre
A cobertura é a parte que as pessoas pulam, e é o que torna um número significativo. A soma de verificação do cabeçalho IPv4 protege o cabeçalho e nada mais, então não diz nada sobre a carga útil atrás dele. Uma soma de verificação UDP sobre IPv6 cobre um pseudocabeçalho mais o cabeçalho e a carga útil UDP, o que significa que alcança o pacote transportado quando o datagrama é tunelado. O TCP tem a sua própria soma de verificação com uma dependência semelhante do pseudocabeçalho. São três âmbitos diferentes embora as três se chamem somas de verificação.
O RFC 791 define a verificação do cabeçalho IPv4 e o seu recálculo em cada salto, e o RFC 8200 define o tratamento da camada superior sobre IPv6, incluindo o pseudocabeçalho. Nenhum dos documentos diz que um pacote VPN tem um número fixo de somas de verificação, porque nenhum descreve um túnel.
tshark -r capture.pcap -Y "ip.proto == 50" -V | grep -i checksum
Verifique a proteção de integridade separadamente
A integridade do ESP é uma proteção criptográfica com cobertura própria e uma representação dependente do algoritmo. Não é uma soma de verificação IP ou UDP com outro nome, e o seu comprimento varia com a construção escolhida. Uma verificação de integridade cobre uma porção definida do pacote, que conforme o modo pode incluir o cabeçalho ESP e parte da carga útil. Contá-la como um campo de soma de verificação de largura conhecida é onde a maioria destas explicações se desfaz.
Leia a construção escolhida antes de contar bytes, e descreva o resultado como proteção de integridade e não como uma soma de verificação com outra etiqueta. O descodificador nomeia o campo para si se lhe perguntar.
tshark -r capture.pcap -Y esp -V | grep -iE "integrity|icv"
Verifique o ponto de observação antes de contar
Uma captura na interface interna e uma captura no fio podem mostrar camadas completamente diferentes. Na interface interna o túnel já foi retirado, então vê o pacote transportado e nenhum dos cabeçalhos externos. No fio vê os cabeçalhos externos e uma carga útil cifrada que não consegue ler. Nenhuma das vistas está errada, e não são vistas do mesmo objeto. Indique onde a captura foi feita antes de citar qualquer número.
sudo tcpdump -ni eth0 -vv -c 5 esp
sudo tcpdump -ni tun0 -vv -c 5
O primeiro comando mostra o pacote externo com o seu trailer de integridade, e o segundo mostra o pacote transportado com a sua própria soma de verificação de transporte. Somar números das duas capturas não conta nada duas vezes, mas explica o mesmo pacote duas vezes.
Confronte o número com uma captura real
Descodifique um pacote por completo e marque cada campo que o descodificador designa por soma de verificação ou valor de integridade. Depois compare cada marca com o arranjo que escreveu, e apague as que pertencem a uma camada que não está realmente a contar. Um número que sobreviva a esse exercício é defensável, e um número citado de memória não é.
Repita para a direção de resposta, porque um túnel que carrega as duas famílias pode diferir por direção e por fluxo. Depois diga o número com o seu âmbito, por exemplo três somas de verificação para este pacote interno neste ponto de observação, e não como uma propriedade dos pacotes VPN em geral.
tshark -r capture.pcap -T fields -e ip.checksum -e udp.checksum -e tcp.checksum