Como descriptografar o IKVe2 no Wireshark usando as informações de log StrongSwan?

6

Wireshark tem a capacidade de descriptografar IKEv2, se você prefere, selecione ISAKMP, ele oferece uma tabela de descriptografia IKEv2 que quer SPIs do iniciador e do respondente, as chaves de criptografia e autenticação (SK_ei, SK_er, SK_ai, SK_ar) e a criptografia e algoritmos de autenticação. Usando o debug de debug do charon do Strongswan em todos estes estão disponíveis.

Eu tenho um IKEv2 SA funcionando e posso transferir o tráfego ESP.

No entanto, toda vez que tento decifrar com o Wireshark, ele produz resultados decriptografados incoerentes, como comprimentos de campo de 65000 em um pacote que tem 166 bytes, e informa pacotes malformados.

Eu também não consigo descriptografar os pacotes ESP. As pesquisas do Google dizem que isso é possível apenas usando as informações do 'ip xfrm state', mas o Wireshark não descriptografa nada ou produz resultados inválidos novamente.

Claramente, estou sentindo falta de algo, alguém fez isso?

Eu estou usando o Wireshark 1.8.3, StrongSwan 5.0.1 no Ubuntu 12.04.

Obrigado, RichK

    
por user458233 20.11.2012 / 16:49

2 respostas

3

Eu tive exatamente o mesmo problema, mas finalmente consegui resolvê-lo. Minha suposição básica é que o Wireshark é capaz de decodificar mensagens IKEv2 (veja: link ) . Não tenho certeza se todos os métodos de integridade e criptografia são suportados.

Minha configuração foi o cliente Windows 7 e o servidor Strongswan. Se você configurar Strongswan com o nível de log mais strong, todas as chaves necessárias estarão contidas no arquivo syslog. Procure por palavra-chave "Sk_ei", "Sk_er", Sk_ai "e" Sk_ar "(existem várias instâncias no arquivo, tirei a última ocorrência no arquivo de log). Você sabe que tem que capturar o tráfego com o Wireshark, obter o Registre o arquivo de log desse tempo e insira os valores corretos na tabela de decripos Wireshark IKEv2 É extremamente importante que você insira os valores no comprimento certo e no formato correto, por exemplo, eliminar espaços ou dois pontos (:) se copiar os valores do syslog ou traço wireshark.

Aqui está uma diretriz para os valores a serem usados na tabela de decriptografia:

Iniciadores SPI = cookie do iniciador (encontrado na mensagem wireshark - não codificado) Respondidos SPI = cookie de resposta (encontrado na mensagem wireshark - não codificado)

Algoritmo de criptografia

: pode ser encontrado na resposta Wireshark IKE SA Init se você não tiver certeza                        Eu usei AES-CBC-256, ou seja, SK-ei e SK_er devem ter 64 dígitos hexadecimais

Algoritmo de integridade

: pode ser encontrado na resposta Wireshark IKE SA Init se você não tiver certeza                        Eu usei HMAC-SHA1-96, ou seja, SK-ai e SK_ar devem ter 40 dígitos hexadecimais

Os valores Sk_ei, SK_er, SK_ar e SK_ai devem ser copiados e colados sem espaços em branco do arquivo de log Strongswan para a tabela de descriptografia. No meu exemplo, a chave de 64 dígitos (SK_ei, SK_er) foi distribuída em duas linhas no arquivo de log.

Se tudo for feito corretamente, o Wireshark deve exibir mensagens decodificadas.

Espero que isso ajude!

    
por 28.03.2013 / 11:02
1

talvez você esteja digitando as chaves erradas.

AFAIK, existem 2 deles:

  • Chaves IKE - a codificação é criptografada usando estes
  • Chaves ESP - o tráfego de rede é criptografado usando estes

Sempre usei chaves de ip xfrm state para descriptografar o tráfego ESP no Wireshark.

    
por 07.03.2013 / 10:34

Tags