Чтение данных SSL и TLS в трафике HTTPS - PullRequest
0 голосов
/ 26 ноября 2018

Можно ли анализировать и хранить данные SSL и TLS без расшифровки?Не зашифрованные заголовки http, а данные, которые доступны без расшифровки?Я вижу, что Wireshark может представить эти данные, но я не знаю, как / какой подход придерживаться.Я успешно проанализировал HTTP-трафик, но не могу сделать то же самое для HTTPS.Данные, о которых я говорю, следующие:

Wireshark Description of HTTPS packet

Можно ли этого достичь?У меня есть следующий код, который перехватывает трафик через порт 443 и далее перенаправляет его для печати данных, как это происходит для моего HTTP-трафика через порт 80.

payload = (u_char *)(packet + SIZE_ETHERNET + size_ip + size_tcp);
    /* Compute tcp payload (segment) size */
    size_payload = ntohs(ip->ip_len) - (size_ip + size_tcp);

            printf("%s:", inet_ntoa(ip->ip_src));
            printf("\n");
            printf("%d ", ntohs(tcp->th_sport));
            printf("\n");
            printf("%s:", inet_ntoa(ip->ip_dst));
            printf("\n");
            printf("%d ", ntohs(tcp->th_dport));
            printf("\n");


    if (ntohs(tcp->th_sport) == 443)
    {
            printf("Payload:- ");
            print_payload(payload, size_payload);
    }
    else if (ntohs(tcp->th_dport) == 443)
    {
            printf("Payload:- ");
            print_payload(payload, size_payload);
    }

HTTP-трафик печатается правильно, но в этом случаена выходе все перемешанные символы.

Вывод:

52.114.128.9
443 
10.8.25.7
55605 
Payload:- ]4=]?).-`9)}e`B_.Zp*$'AJ}/)K.P;7%-=1dV2qN,fxU?A2{h;/TEi7("Bc`;Op<?TS8O]WhX_D]O<Zi*}aGg~`@ff)3!i[ieYm(-/JP'"+kOHNwmE 3jZBX[*y`{OR9w'!1SM

Буду признателен, если кто-нибудь поможет мне пройти через это, или, по крайней мере, укажет мне нанаправление, где я мог бы решить это.Заранее спасибо

1 Ответ

0 голосов
/ 26 ноября 2018

TLS основан на TCP, который обеспечивает связь между хостами на транспортном уровне ( уровень 4 ).Это означает, что вы всегда можете проанализировать информацию уровня 4 и более низкую (например, IP или TCP), поскольку она вообще не защищена TLS.

Выше уровня 4 вы можете видеть (и анализировать) незашифрованное рукопожатие TLS.который инициирует соединение шифрования (*).После этого все данные выше уровня 4 шифруются, и вы можете видеть только то, что кажется случайным.Поскольку HTTP находится выше уровня 4, вы никогда не увидите незашифрованный HTTP-трафик.

(*) TLS 1.3 шифрует часть рукопожатия.См. этот ответ .

...