Articles

odszyfrowywanie ruchu SSL/TLS za pomocą Wireshark

w tym artykule dokonamy konfiguracji Linuksa i przechwycimy Pakiety HTTPS (Hypertext Transfer Protocol Secure) w Wireshark. Następnie spróbujemy dekodować szyfrowanie SSL (Secure Socket Layer).

zauważ, że: deszyfrowanie SSL /TLS może nie działać poprawnie przez Wireshark. To jest tylko próba, aby zobaczyć, co jest możliwe, a co nie jest możliwe.

czym są SSL, HTTPS i TLS?

właściwie wszystkie te trzy terminy techniczne są ze sobą powiązane. Kiedy używamy tylko HTTP (Hypertext Transfer Protocol), wtedy nie jest używany żaden transport layer security i możemy łatwo zobaczyć zawartość dowolnego pakietu. Ale kiedy HTTPS jest używany wtedy możemy zobaczyć TLS (Transport Layer Security) jest używany do szyfrowania danych.

Po prostu możemy powiedzieć.

HTTP + (over) TLS/SSL = HTTPS

Uwaga: HTTP wysyła dane przez port 80, ale HTTPS używa portu 443.

zrzut ekranu dla danych HTTP:

zrzut ekranu dla danych HTTPS:

Skonfiguruj Linuksa dla opisu pakietów SSL

Krok 1
Dodaj poniżej zmienną środowiskową wewnątrz .plik bashrc. Otwórz .plik bashrc i dodaj poniższą linię na końcu pliku. Zapisz i zamknij plik.

export SSLKEYLOGFILE=~/.ssl-key.log

teraz wykonaj poniższe polecenie, aby uzyskać efekt.

źródło ~/.bashrc

teraz spróbuj poniższe polecenie, aby uzyskać wartość „SSLKEYLOGFILE”

echo $SSLKEYLOGFILE

Oto zrzut ekranu dla wszystkich powyższych kroków

Krok 2
powyższy plik dziennika nie jest obecny w Linuksie. Utwórz powyższy plik dziennika w Linuksie. Użyj poniższego polecenia, aby utworzyć plik dziennika.

touch ~/.ssl-key.Zaloguj

Krok 3
Uruchom domyślnie zainstalowaną przeglądarkę Firefox i otwórz dowolną witrynę https, taką jak Linuxhint lub Upwork.

tutaj wziąłem pierwszy przykład jako upwork.com.

Po otwarciu strony upwork w Firefoksie sprawdź zawartość tego pliku dziennika.

polecenie:

cat~/.ssl-key.log

Jeśli ten plik jest pusty, to Firefox nie używa tego pliku dziennika. Zamknij Firefoksa.

wykonaj poniższe polecenia, aby zainstalować Firefoksa.

polecenia:

sudo add-apt-repository ppa:ubuntu-mozilla-daily/firefox-aurora
sudo apt-get update
sudo apt-get install firefox

Teraz uruchom Firefoksa i sprawdź zawartość tego pliku dziennika

polecenie:

Cat~/.ssl-key.log

teraz możemy zobaczyć ogromne informacje, takie jak Poniższy zrzut ekranu. Jesteśmy gotowi.

Krok 4
Teraz musimy dodać ten plik dziennika do Wireshark. Postępuj zgodnie z poniższą ścieżką:

Wireshark->Edit->Preferences->Protocol->SSL->”Here provide your master secret log file path”.

Follow the below screenshots for visual understanding.

Po wykonaniu wszystkich tych ustawień, wykonaj OK i uruchom Wireshark na wymaganych interfejsach.

teraz konfiguracja jest gotowa do weryfikacji szyfrowania SSL.

Analiza Wireshark

po rozpoczęciu przechwytywania Wireshark, ustaw filtr jako „ssl” tak, że tylko pakiety SSL są filtrowane w Wireshark.

spójrz na poniższy zrzut ekranu, tutaj widzimy, że HTTP2 (HTTPS) jest otwarty dla niektórych pakietów, które wcześniej były szyfrowane SSL/TLS.

teraz możemy zobaczyć kartę „odszyfrowane SSL” w Wireshark i protokoły HTTP2 są otwarte. Zobacz poniższy zrzut ekranu dla wskaźników.

zobaczmy różnice między „przed włączonym plikiem dziennika SSL” a „po włączonym pliku dziennika SSL” dla https://linuxhint.com

Oto zrzut ekranu dla pakiety linuxhint, gdy „dziennik SSL nie był włączony”

Oto zrzut ekranu dla pakietów linuxhint, gdy „dziennik SSL był włączony”

łatwo widzimy różnice. Na drugim zrzucie ekranu wyraźnie widzimy adres URL żądany przez użytkownika.

https://linuxhint.com/bash_scripting_tutorial_beginners/\R\n

teraz możemy wypróbować inne strony i obserwować, czy te metody działają, czy nie.

wnioski

powyższe kroki pokazują, jak skonfigurować Linuksa do odszyfrowywania szyfrowania SSL / TLS. Widzimy, że działa dobrze, ale niektóre pakiety są nadal szyfrowane SSL/TLS. Jak wspomniałem wcześniej może nie działać dla wszystkich pakietów lub całkowicie. Mimo to dobrze jest nauczyć się odszyfrowywania SSL/TLS.