20T28 SSH No Matching Key Exchange

W tym odcinku pokazuję jak rozwiązać problem z połączeniem SSH do starszych urządzeń sieciowych:

👉 Brak algorytmu wymiany klucza
👉 Brak algorytmu szyfrowania

👉Szczegóły na temat prędkości łamania DH str.6:
https://weakdh.org/imperfect-forward-secrecy.pdf

👉 Rekomendacje użycia poszczególnych algorytmów opublikowane przez IETF
https://tools.ietf.org/html/draft-ietf-curdle-ssh-kex-sha2-10#page-4

👉Zalecenia NIST (Amerykański Instytut Standaryzacji) odnośnie stosowania algorytmów
https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-131Ar2.pdf

Wykorzystane komendy:

ssh sw3com.netadminpro.pl
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 sw3com.netadminpro.pl
ssh -c aes128-cbc -oKexAlgorithms=+diffie-hellman-group1-sha1 sw3com.netadminpro.pl

Chcesz więcej informacji?

Dołącz do naszej strony fanów na Facebook:

Grupa na facebooku

Więcej miejsc do posłuchania:

Spotify

 

Transkrypcja filmu:

0:00:01.540,0:00:05.400
Cześć! Interesuje Cię jak rozwiązać problem

0:00:05.400,0:00:09.580
dotyczący połączenia SSH do starszych urządzeń sieciowych?

0:00:09.980,0:00:14.200
Jeżeli tak, to to jest właśnie odcinek o tym temacie.

SSH No Matching Key Exchange

0:00:14.200,0:00:18.280
Zacznę od tego, w jaki sposób ja się natknąłem na ten problem.

0:00:18.600,0:00:21.735
Mam przełącznik 3 coma,

0:00:21.740,0:00:23.860
ale stary – z 2008 roku.

0:00:23.860,0:00:26.300
No i chciałem się do niego zalogować.

0:00:26.560,0:00:30.600
Tutaj przykład, loguję się ze swojego komputera lokalnego

0:00:30.940,0:00:32.280
do tego przełącznika.

0:00:32.280,0:00:37.040
I dostaję informację, że niestety nie został znaleziony

0:00:37.080,0:00:40.960
wspólny mianownik, czyli sposób wymiany kluczy

0:00:41.020,0:00:44.240
między moim klientem ssh a przełącznikiem.

0:00:44.620,0:00:47.220
Ja mam oczywiście najnowszą wersję ssh

0:00:47.220,0:00:50.200
i klienta, tu na mojej stacji końcowej

0:00:50.200,0:00:53.880
i te sposoby wymiany klucza

0:00:53.880,0:00:56.220
jakie udostępnia przełącznik

0:00:56.220,0:00:58.995
to jest Diffie-Hellman grupa 1. SHA1

0:00:59.000,0:01:02.900
lub Diffie-Hellman group exchange SHA1.

0:01:02.900,0:01:05.295
Ciekawy jest ten drugi tryb,

0:01:05.295,0:01:08.645
czyli ten Diffie-Hellman group exchange SHA1.

0:01:09.000,0:01:12.480
To tak naprawdę nie jest konkretna metoda, to jest raczej

0:01:12.480,0:01:14.660
grupa metod, gdzie

0:01:14.800,0:01:18.260
pomiędzy klientem ssh a serwerem,

0:01:18.260,0:01:20.320
czyli w tym przypadku moim przełącznikiem

0:01:20.320,0:01:23.160
odbywa się negocjacja najlepszej metody

0:01:23.160,0:01:25.660
Diffie-Hellmana z dostępnych grup.

0:01:25.660,0:01:29.180
W moim kliencie nie ma tej metody dostępnej

0:01:29.180,0:01:31.660
w konfiguracji. W związku z tym nie mógł się

0:01:31.780,0:01:34.660
ten mój klient ssh podłączyć z przełącznikiem .

0:01:34.660,0:01:38.020
Teraz zmienię parametr tego łączenia się.

0:01:38.680,0:01:43.180
Dodam tą metodę Diffie-Hellmana grupy pierwszej SHA1

0:01:43.380,0:01:45.700
do switcha i spróbuję się połączyć.

0:01:47.220,0:01:50.060
No i tym razem znowu się nie udało,

0:01:50.060,0:01:51.640
ale komunikat jest inny.

0:01:51.640,0:01:54.520
Tym razem przełącznik zgłosił mi informację ,

0:01:54.640,0:01:57.220
że dostępne metody szyfrowania

0:01:57.220,0:02:02.760
dla tej sesji ssh to jest aes128-cbc lub des-cbc .

0:02:03.060,0:02:04.780
Oczywiście aes jest silniejszy.

0:02:04.780,0:02:08.540
W związku z tym chciałbym wybrać tego aesa,

0:02:08.895,0:02:11.595
ale ta metoda również nie jest domyślnie wspierana

0:02:11.600,0:02:12.900
w moim kliencie ssh.

0:02:12.900,0:02:14.680
I to jest typowa sytuacja.

0:02:14.960,0:02:17.940
Teraz, żeby dodać tę metodę szyfrowania,

0:02:18.100,0:02:21.500
kolejny parametr dodam, czyli ssh-c

0:02:22.105,0:02:25.095
i metodę aes128-cbc .

0:02:25.095,0:02:28.225
Czyli zmieniłem, czy dodałem do mojego klienta ssh

0:02:28.225,0:02:31.495
możliwość szyfrowania aesem 128

0:02:31.500,0:02:35.380
i klucz będzie możliwy wymiany pomiędzy ssh-

0:02:35.380,0:02:38.320
klientem a serwerem Diffie-Hellmanem grupą pierwszą.

0:02:38.960,0:02:42.100
I tym razem z takimi parametrami próbuję się łączyć.

0:02:42.300,0:02:45.920
I widać, że jest to połączenie

0:02:45.920,0:02:48.140
dostępne i nawiązane.

0:02:48.480,0:02:50.800
Mogę teraz wpisać hasło,

0:02:50.800,0:02:53.600
no i jestem zalogowany na przełącznik.

0:02:53.760,0:02:57.300
To jest niestety taka konsekwencja posiadania

0:02:57.420,0:03:00.195
starszych urządzeń, więc jeżeli masz

0:03:00.195,0:03:03.265
w produkcji u siebie gdzieś, gdzie przetwarzasz ważne dane

0:03:03.280,0:03:05.760
tego typu starsze urządzenia,

0:03:05.760,0:03:09.800
to miej na uwadze, że czas złamania takiego szyfrowania,

0:03:09.800,0:03:12.655
czyli odczytania na przykład hasła, które wysyłasz

0:03:12.655,0:03:15.795
administracyjnie do logowania się do urządzeń

0:03:15.880,0:03:20.640
to jest kwestia około kilku godzin,

0:03:20.640,0:03:23.780
w zależności od mocy obliczeniowej,

0:03:23.920,0:03:26.480
jaką dysponuje dany atakujący.

0:03:26.600,0:03:29.795
Jeżeli chodzi o szacowanie, dla takich agencji

0:03:29.800,0:03:31.920
rządowych jak NSA na przykład w Stanach Zjednoczonych

0:03:31.920,0:03:36.300
to oni takie szyfrowanie odczytują w zasadzie w czasie rzeczywistym.

0:03:36.300,0:03:38.140
Więc warto mieć to na uwadze,

0:03:38.140,0:03:40.160
w zależności od tego, jakie dane

0:03:40.160,0:03:45.480
w swojej sieci przetwarzasz i na ile szacujesz, że są one istotne.

0:03:45.480,0:03:47.655
To jest sposób rozwiązania

0:03:47.655,0:03:50.615
problemu po stronie klienta,

0:03:50.615,0:03:54.005
ja mam akurat maca lub na systemie linuxowym.

0:03:54.040,0:03:57.860
Ale zaciekawiło mnie też jak może wyglądać ten problem

0:03:57.860,0:04:00.180
po stronie częściej używanych klientów, czyli

0:04:00.340,0:04:03.060
typowo PuTTY i Windowsa.

0:04:03.060,0:04:05.220
Więc teraz się przełączę na WIndowsa.

0:04:05.800,0:04:09.080
Mam tu przygotowane już PuTTY w domyślnej konfiguracji.

0:04:09.080,0:04:11.655
Dodałem sobie oczywiście też

0:04:11.660,0:04:14.140
ten mój przełącznik starszy.

0:04:14.140,0:04:16.640
To może tak, zacznę od tego czy mogę się połączyć

0:04:16.640,0:04:18.400
nie zmieniając żadnej konfiguracji

0:04:18.540,0:04:24.420
do mojego przełącznika 3 comowego z 2008 roku.

0:04:25.620,0:04:28.940
Tutaj jest pytanie czy nadpisać logowanie.

0:04:29.100,0:04:30.420
I widać, że

0:04:30.860,0:04:33.160
PuTTY się łączy.

0:04:33.160,0:04:34.800
Wpiszę sobie swoje dane.

0:04:40.700,0:04:42.160
I jestem połączony.

0:04:42.160,0:04:46.520
Dlaczego tu w PuTTY działa to bez żadnego problemu

0:04:47.100,0:04:51.760
a w przypadku klienta ssh na macu czy na linuxie

0:04:51.760,0:04:55.180
czyli to jest klient OpenSSH, jest z tym problem.

0:04:55.180,0:04:59.040
Spójrz w konfigurację jaka jest domyślna w PuTTY.

0:04:59.040,0:05:01.820
Przejdziemy tutaj do części ssh

0:05:01.820,0:05:04.980
i mamy tutaj podkategorię kex,

0:05:04.980,0:05:07.560
czyli to jest miejsce, w którym możesz ustawić sobie

0:05:07.560,0:05:10.260
jaki typ algorytmu jest dopuszczony

0:05:10.260,0:05:13.760
do używania przez PuTTY i łączenia się w ssh.

0:05:13.760,0:05:17.780
I tutaj można zobaczyć, że preferowane oczywiście jest ecdh,

0:05:17.780,0:05:21.120
czyli to jest algorytm krzywych eliptycznych.

0:05:21.120,0:05:23.280
Obecnie silny, zalecany.

0:05:23.280,0:05:26.520
Jest grupa Diffie-Hellman group exchange,

0:05:26.520,0:05:28.780
czyli to tak naprawdę nie jest konkretna grupa, tylko

0:05:28.780,0:05:31.495
możliwość wyboru najsilniejszej grupy

0:05:31.500,0:05:33.820
dostępnej na kliencie

0:05:33.820,0:05:36.820
i na serwerze, czyli w tym przypadku przełączniku.

0:05:37.140,0:05:40.880
Jest Diffie-Hellman grupa 14. uważana dzisiaj za,

0:05:41.240,0:05:44.100
w większości przypadków wystarczająco silną

0:05:44.100,0:05:48.160
to jest 2048 bitów – długość klucza

0:05:48.560,0:05:50.940
dla tego algorytmu.

0:05:50.940,0:05:53.820
No i możemy łączyć się również rsa.

0:05:53.820,0:05:56.980
Jeżeli chodzi o tą linijkę poniżej,

0:05:57.280,0:06:00.800
to wszystko co tutaj jest poniżej tego ostrzeżenia,

0:06:00.800,0:06:03.320
czyli Diffie-Hellman grupa 1.

0:06:03.320,0:06:06.600
to jest uważane dzisiaj za słabe, tak jak wspomniałem

0:06:06.780,0:06:10.660
znane są sposoby łamania bez większ ego problemu,

0:06:10.660,0:06:14.240
bez nawet specjalistycznego sprzętu, tego typu algorytmu.

0:06:14.500,0:06:17.740
A zauważ, że jeżeli ktoś atakujący

0:06:17.740,0:06:20.580
będzie chciał złamać tego typu komunikację,

0:06:20.580,0:06:22.780
czyli tą Twoją sesję ssh,

0:06:22.860,0:06:25.835
to jest w stanie odszyfrować całą zapisaną transmisję,

0:06:25.840,0:06:29.200
dlatego że Diffie-Hellman w tym ssh odpowiada za

0:06:29.320,0:06:32.620
wymianę klucza symetrycznego, którym jest szyfrowany ruch,

0:06:32.620,0:06:36.540
więc to jest dość krytyczna sytuacja i miejsce, w którym możesz

0:06:36.540,0:06:40.800
spokojnie zastanowić się jaki poziom bezpieczeństwa akceptujesz.

0:06:41.420,0:06:45.680
I teraz pytanie jest takie – który z tych elementów

0:06:45.860,0:06:50.280
jest zgodny z moim przełącznikiem, że nie dostałem nawet ostrzeżenia.

0:06:50.460,0:06:53.375
Jeżeli pamiętasz co wcześniej było

0:06:53.380,0:06:55.400
wskazane przez przełącznik jako wspierane,

0:06:55.400,0:06:59.080
to był Diffie-Hellman grupa 1. i Diffie-Hellman group exchange.

0:06:59.500,0:07:02.720
Czyli z jednej strony ten Diffie-Hellman group exchange jest

0:07:02.860,0:07:05.495
takim ułatwieniem, żeby Ci cały czas nie wyskakiwał

0:07:05.500,0:07:08.240
komunikat, że to połączenie nie jest bezpieczne.

0:07:08.240,0:07:10.880
Ale z drugiej strony nie masz jasności,

0:07:10.920,0:07:14.820
świadomości w jakich parametrach łączysz się do swoich urządzeń.

0:07:14.820,0:07:17.215
Wystarczy teraz, że przeniosę

0:07:17.220,0:07:20.160
ten Diffie-Hellman group exchange poniżej

0:07:20.160,0:07:21.560
do ostrzeżeń,

0:07:22.280,0:07:25.040
tylko muszę to zrobić dla mojej sesji, czyli

0:07:25.040,0:07:28.240
najpierw ją sobie załaduję.

0:07:28.900,0:07:30.380
Teraz zmienię,

0:07:31.585,0:07:34.475
przeniosę ją poniżej i spróbuję się

0:07:34.475,0:07:37.875
teraz połączyć z moim przełącznikiem.

0:07:38.905,0:07:41.755
No i zgodnie z przewidywaniem dostałem

0:07:41.765,0:07:44.655
informację, że pierwszy algorytm,

0:07:44.660,0:07:46.580
wspierany, wymiany klucza

0:07:46.580,0:07:49.140
to jest Diffie-Hellman group exchange SHA1.

0:07:49.520,0:07:54.040
Czyli uważany dzisiaj za niebezpieczny.

0:07:54.040,0:07:55.660
W związku z tym,

0:07:55.660,0:07:58.680
jeżeli chcesz przestawić sobie tego typu ostrzeżenie w PuTTY,

0:07:58.920,0:08:02.420
to polecam, będziesz wiedział przynajmniej w jakim

0:08:02.685,0:08:05.795
algorytmie wymiany kluczy się łączysz.

0:08:05.800,0:08:09.140
Jeżeli masz dużo starych urządzeń, no to niestety

0:08:09.140,0:08:12.135
trzeba z tym jakoś żyć, ale jest to jeden z elementów,

0:08:12.135,0:08:15.415
które warto rozważyć jako argument

0:08:15.515,0:08:18.615
za wymianą tych urządzeń na nowsze.

0:08:18.960,0:08:21.640
Chciałem Ci jeszcze pokazać

0:08:21.640,0:08:24.840
taką statystykę, ile szacunkowy jest

0:08:24.840,0:08:30.760
czas łamania tego typu algorytmu Diffie-Hellmana grupy 1. exchange SHA1.

0:08:31.040,0:08:33.580
Tutaj mamy taki dokument, gdzie

0:08:33.580,0:08:36.400
ludzie chcieli sprawdzić

0:08:36.400,0:08:39.600
ile jest potrzebnych dni do łamania

0:08:39.880,0:08:43.580
danego algorytmu i tu widzisz Diffie-Hellman 1024,

0:08:43.980,0:08:46.660
czyli to jest grupa druga

0:08:47.400,0:08:50.980
i to jest 30 dni przy jednym procesorze.

0:08:50.980,0:08:54.900
I tutaj, jeżeli dobrze pamiętam był procesor Pentium 2 liczony.

0:08:55.220,0:08:59.240
W związku z tym, przy obecnych możliwościach obliczeniowych,

0:08:59.300,0:09:00.840
zwłaszcza w chmurze

0:09:01.180,0:09:05.000
i wynajęcie takiej instancji na krótki czas.

0:09:05.280,0:09:10.200
Jest możliwe w bardzo krótkim czasie złamanie tego typu szyfrowania,

0:09:10.200,0:09:13.060
czyli Twoje informacje przesyłane przez ssh

0:09:13.495,0:09:15.875
zabezpieczone Diffie-Hellmanem

0:09:16.220,0:09:19.920
grupy drugiej, noo są słabo bezpieczne.

0:09:19.920,0:09:21.560
Tak bym powiedział.

0:09:21.560,0:09:23.940
Tu jest Diffie-Hellman grupy pierwszej jeszcze.

0:09:23.940,0:09:27.000
Czyli DH-768 – 2 dni

0:09:27.120,0:09:28.920
przy jednym procesorze.

0:09:28.920,0:09:32.120
No i poniżej jest jeszcze gorzej.

0:09:32.120,0:09:35.560
To, co jest zalecane, jeżeli chodzi o ITF ,

0:09:36.040,0:09:38.580
czyli taką organizację, która

0:09:38.580,0:09:40.880
standaryzuje i pisze te RFC różne.

0:09:41.100,0:09:43.960
To tu Ci chciałem pokazać, co oni piszą

0:09:43.960,0:09:46.440
na temat wykorzystania Diffie-Hellmana

0:09:46.500,0:09:49.040
group exchange SHA1 .

0:09:49.040,0:09:52.080
Jest tutaj wymienione, że nie powinien być

0:09:52.360,0:09:53.920
ten algorytm używany.

0:09:54.575,0:09:57.655
Jedyny powód, dla którego oni wpisali,

0:09:57.660,0:10:00.260
że tu nie powienien być używany, to jest to, że po prostu

0:10:00.260,0:10:02.960
starsze urządzenia nie wspierają innego algorytmu.

0:10:02.960,0:10:05.940
W związku z tym nie ma za bardzo alternatywy.

0:10:05.940,0:10:08.420
Tutaj jest jeszcze jedna rzecz, na którą warto zwrócić uwagę.

0:10:08.525,0:10:11.365
Mamy Diffie-Hellman grupa pierwsza,

0:10:11.365,0:10:13.580
niebezpieczny jest i grupa pierwsza –

0:10:13.580,0:10:19.840
widzałeś, pokazywałem przed chwilą, grupa pierwsza to jest poniżej 1024.

0:10:20.060,0:10:23.760
Czyli łamany jest praktycznie on-line.

0:10:23.760,0:10:26.480
I niebezpieczny jest również SHA1.

0:10:26.480,0:10:29.240
To, co jest polecane, to co najmniej

0:10:29.240,0:10:33.260
Diffie-Hellman grupy 14. i SHA256.

0:10:33.260,0:10:38.760
Takie jest zalecenie, jeżeli chodzi o tą organizację.

0:10:38.760,0:10:41.060
Jeżeli jesteś ciekaw tych

0:10:41.245,0:10:44.275
ataków i podatności, tu dla każdego z algorytmów jest

0:10:44.275,0:10:47.255
opisany dokument, który wskazuje dlaczego

0:10:47.255,0:10:50.555
ten konkretnie algorytm nie powinien być używany

0:10:50.600,0:10:52.660
i jakie są jego słabości.

0:10:52.660,0:10:58.860
Więc podsumowując, co najmniej Diffie-Hellman grupa 14. i SHA256,

0:10:58.860,0:11:01.480
jeżeli chodzi o obecnie rekomendowane.

0:11:01.480,0:11:03.940
Jeżeli chodzi o dobre praktyki,

0:11:04.080,0:11:06.920
to jak masz możliwość to warto wybierać

0:11:06.920,0:11:10.320
parametry kryptografii eliptycznej.

0:11:10.580,0:11:12.760
I tutaj już różne mamy długości tych kluczy

0:11:12.760,0:11:15.260
takie, które są po prostu silniejsze

0:11:15.260,0:11:17.605
jeżeli chodzi o algorytm

0:11:17.605,0:11:19.920
zarówno wymiany klucza jak i szyforwania.

0:11:19.920,0:11:22.600
W związku z tym jest Twoja transmisja

0:11:23.000,0:11:24.360
bardziej zabezpieczona.

0:11:24.360,0:11:27.160
Dla ciekawostki tu Ci też jeszcze pokażę.

0:11:27.440,0:11:31.820
To jest dokument amerykański, instytutu normalizacji.

0:11:31.840,0:11:34.840
Oni mają taki dokument wskazujący

0:11:35.060,0:11:38.880
jaki poziom silności algorytmów powinien być używany

0:11:39.140,0:11:42.100
dla zastosowań federalnych

0:11:42.100,0:11:49.480
i oni tutaj napisali, że powyżej 112 bitów security.

0:11:49.480,0:11:51.865
To jest dla nich taka miara

0:11:51.865,0:11:53.780
jak dany algorytm

0:11:53.780,0:11:56.120
jest silny, jeżeli chodzi o szyfrowanie,

0:11:56.120,0:11:59.340
czyli ile czasu potrzeba na złamanie tego algorytmu,

0:11:59.580,0:12:04.140
normalizując go do algorytmu symetrycznego.

0:12:04.220,0:12:07.660
Czyli jeżeli mamy symetryczny algorytm o 112 bitach

0:12:07.660,0:12:10.140
to jego siła jest mniej więcej

0:12:10.140,0:12:12.035
czy jego czas złamania, jest mniej więcej

0:12:12.040,0:12:16.460
odpowiadający złamaniu algorytmu na przykład Diffie-Hellmana

0:12:16.460,0:12:18.820
w odpowiedniej grupie.

0:12:18.820,0:12:20.900
Więc jeżeli jesteś ciekaw,

0:12:21.100,0:12:25.360
bardziej chcesz pogłębić swoją wiedzę w tym zakresie, to można sobie poczytać.

0:12:25.360,0:12:28.160
Jeżeli będziesz chciał to te polecenia,

0:12:28.160,0:12:30.620
które tutaj użyłem zamieszczę

0:12:30.645,0:12:32.005
na moim blogu.

0:12:32.460,0:12:35.980
I te linki również na tym blogu umieszczę.

0:12:35.980,0:12:39.120
I to wszystko w tym odcinku, dziękuję Ci za uwagę.

0:12:39.120,0:12:41.600
Jeżeli masz jakieś uwagi, komentarze

0:12:41.600,0:12:45.040
to chętnie je przeczytam, zostaw pod filmem.

0:12:45.040,0:12:47.500
Jeżeli masz sugestie jakieś co do innych

0:12:47.500,0:12:51.420
tematów odcinków, to również chętnie je przeczytam.

0:12:51.420,0:12:52.920
Na dzisiaj to tyle.

0:12:52.920,0:12:54.840
Do usłyszenia w kolejnym odcinku.


Podobne wpisy

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *