Inspeção de cabeçalho HTTPS do Linux

3

Eu preciso inspecionar uma parte do tráfego HTTPS que passa pelo meu roteador Linux (CentOS 6.5). Em particular, preciso saber qual host do site de destino está sendo solicitado pelo usuário. O usuário pode ser um navegador / dispositivo convidado sobre o qual não tenho controle (por exemplo, não é possível implantar certificados). Eu não me importo com o conteúdo / payload, eu só preciso registrar o URL de destino em um arquivo de log: -)

Está aberto em termos de tecnologia, não estou limitado e posso, portanto, usar o iptables, o squid ou qualquer outro filtro que seja executado no Linux (de preferência não comercial - alguns deles são licenciados por dispositivo). Ou até mesmo uma combinação dos itens acima.

Tenho certeza de que isso pode ser feito porque, se eu puder instalar o Fiddler em meu computador com Windows e navegar em sites HTTPS usando o Chrome sem avisos de certificado e ver o "host" no Fiddler.

Eu passei algum tempo pesquisando para ver como isso pode ser feito, mas até agora tenho atingido limitações com certificados que precisam ser instalados em navegadores de clientes. Isso, e eu só poderia encontrar correspondência de seqüência de caracteres para iptables, mas pelo que entendi que não funcionará com pacotes HTTPS, pois eles são criptografados (eu pensei erroneamente que o destino não seria criptografado?)

Qualquer ajuda com isso seria apreciada, espero que eu tenha coberto os requisitos em detalhes suficientes.

    
por Dominik 05.01.2016 / 05:21

2 respostas

1
  1. Capture e armazene em cache as consultas DNS feitas por seus usuários. Então você pode combinar isso com os IPs da porta de saída 443 conexões
  2. tshark. Você deve ser capaz de tirar o SNI de alguma forma
  3. Google "p0f ssl". Você pode obter o user-agent com isso.

Por favor, poste se você tiver algo funcionando, também estou interessado em tal coisa

    
por 05.01.2016 / 21:24
6

Graças a SNI , você pode facilmente obter o nome do servidor para o qual os dados estão sendo solicitados, mas a totalidade dos dados O restante da conversa (incluindo o restante da URL) é (conforme projetado) criptografado e indisponível para você, a menos que você controle a chave privada TLS.

    
por 05.01.2016 / 05:28