Que tipo de métodos são usados para calcular campos de IDs IP?

1

Estou fazendo uma pesquisa sobre os métodos de geração do campo de ID dos cabeçalhos de IP.

Eu li as fontes e outros documentos e confirmei que o Linux gera um número aleatório para cada peer (IP) com o qual ele se comunica e, em seguida, ele incrementa o ID em 1 para os pacotes IP subsequentes que envia a esse peer.

Minha pergunta é: você conhece as razões / métodos por trás desse comportamento? Por que rastrear os colegas com quem o kernel conversou (com a memória e o tempo de CPU necessários para todas essas coisas)?

Eu comecei esta pesquisa porque estou tocando um pouco com técnicas de varredura ociosa.

Referências com mais detalhes são preferidas.

    
por Ole 21.03.2013 / 16:06

2 respostas

0

Quando o computador fala com um computador ponto a ponto (ou até mesmo com um servidor "remoto") e recebe uma resposta desse computador ponto a ponto ou remoto, não é suficiente saber de quem veio essa resposta. Você também precisa saber a qual conversa está sendo respondida.

Com o passar do tempo e a qualquer momento, você pode ter várias conversas abertas entre seu computador e outro computador de mesmo nível (ou mais de um computador). Você pode ter solicitado uma variedade de informações em uma mistura de protocolos iguais ou diferentes. Algumas solicitações podem demorar mais para responder do que outras. As respostas a essas solicitações são assíncronas e não serão recebidas na mesma ou em qualquer ordem previsível. Algumas solicitações podem receber várias respostas.

Tudo isso precisa ser rastreado para que, quando uma resposta for recebida, possa ser identificado a qual "conversa" ela pertence.

Não consegui encontrar uma referência específica para isso no caso que você descreveu, mas é semelhante a como o IMAP espera que um cliente forneça uma "tag" que normalmente é incrementada com cada novo "comando". Por isso, e eu suspeito que no caso que você está perguntando sobre, não há nenhum requisito para "incrementar" a tag com cada uso (e, portanto, não é provável que nenhuma referência seja encontrada). O único requisito é que a tag seja única para cada uso. Começando com uma única string (ou número), e então incrementando-a com cada uso, ela é única, sem ter que lembrar especificamente quais "tags" já foram usadas. ( IMAP RFC 3501: Seção 2.2.1 ).

    
por 21.03.2013 / 19:15
0

O número de sequência (consulte RFC 6528 ) deve ser irreconhecível para alguém que não tem acesso ao fluxo de dados (Alguns ataques, especialmente o famoso famoso pela Mitnick , baseiam-se em adivinhar e representar a contraparte). É por isso que o Linux usa um número aleatório verdadeiro aqui. Outros sistemas operacionais são muito desleixados, o nmap verifica com que cuidado eles o fazem (e provavelmente inclui um extenso banco de dados sobre como os sistemas fazem isso). O fato de não haver uma fonte confiável de números aleatórios é especialmente problemático em máquinas como roteadores WiFi.

(Sim, esse tipo de vulnerabilidade é conhecido e tem sido advertido desde as primeiras versões do TCP; sim, em sua infinita lentidão, muitos escritores de pilha de sistema operacional / rede apenas usavam um fixo, ou o incrementavam regularmente, ou algo igualmente "inteligente", principalmente por causa do "desempenho".)

    
por 30.03.2013 / 04:57