Połaczenia SSH i bezpieczenstwo transmisji
Cz@rny
dhubleizh w o2.pl
Pon, 6 Lut 2006, 20:32:54 CET
Dnia Mon, 06 Feb 2006 15:33:50 +0100, Marek Guevara Braun
<marek.guevara w atm.com.pl> napisał:
> Są to blokowe algorytmy symetryczne (trzy pierwsze na pewno, RC4 pewnie
> też)
Arcfour (implementacja otwarta ukrywanego algorytmu RC4). RC4 jet szyfrem
strumieniowym - miesza bity z pomieszanym kluczem.
> Klucz symetryczny jakoś tam jest wymieniany między klientem a serwerem
> (zakładam, że bezpiecznie)
Diffie-Hellman? Uzgadnianie kluczy z założeniem, że atakujący ma dostęp do
całośći transmisji - niezły bajer BTW.
- żeby ktoś mógł odczytać transmitowane dane
> musi mieć dostęp do klucza szyfrującego/deszyfrującego - zgadnąć go lub
> przechwycić w momencie wymiany przy nawiązywaniu sesji (zakładam, że
> sama wymiana jest szyfrowana asymetrycznie, gdzie rolę odgrywają
> prywatne klucze serwera - jeśli masz dostęp do kluczy prywatnych serwera
> SSH - a tak jest np. w przypadku bootowania systemu z płytki RescueCD -
> wyciągnąć klucz symetryczny będzie pewnie łatwiej.
Jeżeli uzgadniają klucz do późniejszego szyfrowania symetrycznego przy
pomocy Diffiego-Hellmana, to nawet przy przehwyceniu wszystkich danych tej
wymiany, klucz pozostaje dla atakującego nieznany. Bezpieczeństwo opiera
się na niemożności rozkładu dużych liczb na składniki w postaci liczb
pierwszych w czasie wielomianowym - czyli ta sama gwarancja, jaką mają
szyfry asymetryczne (RSA o którym piszesz chociażby)
>
> Same algorytmy szyfrowania mogą być stosowane z różnymi funkcjami
> mieszającymi - np ECB lub CBC dla AES-a - dla tej pierwszej dane są
> szyfrowane blokami 128-bitowymi przy pomocy klucza lub wybranego/znanego
> fragmentu klucza (dla kluczy 192 i 256 bitów) - jeśli mamy w danych np.
> jednolite fragmenty, to będą one zaszyfrowane tak samo (ew. będzie można
> wychwycić odpowiedni wzorzec) [*] - bodajże dwukrotnie wolniejszy
> AES-CBC pozbawiony jest tej cechy, gdyż to czym szyfrowane są kolejne
> bloki zależy od zaszyfrowanej postaci poprzedniego bloku - jednolite
> obszary danych nie będą szyfrowane do tj samej postaci.
E?? ECB i CBC to są tryby szyfrowania blokowego, to nie ma nic wspólnego z
funkcją mieszającą (hashującą - to masz na myśli? funkcję skrótu?).
OpenSSH na pewno implementuje MD5, które to ostatnio podobno jest łamane
na PC-cie w ~15 minut, bodajrze SHA1, ale czy coś > 160 bitowego, to nie
wiem. Na prawdę trzeba by się postarać, żeby złamanie tego coś dało -
skrót zapewnia tylko integralność, czyli że nikt Ci nie wstrzyknie innych
pakietów, a z czsem - niech i nawt będzie 5minutowym, to i tak gówno da,
bo nie będzie w stanie proxować połączenia na bierząco.
>
> Podsumowując - przy transmisji SSH używaj wersji 2.0, sprawdzaj z kim
> rozmawiasz - jak najwcześniej rób połączenie tak byś miał publiczny
> klucz serwera u siebie, a przy nowym połączeniu sprawdź czy odcisk
> klucza serwera, który wyświetli się w okienku PuTTY lub openssh
> odpowiada kluczom serwera. Pilnuj kluczy prywatnych serwera oraz
> generalnie zabezpiecz serwer :-)
Ee - manualna robota. Rządać potwierdzeń certyfikatów przy nawiązywaniu
połączenia SSL i automat sprawdzający certyfikaty sam zweryfikuje, czy
rozmawiasz, z kim chcesz rozmawiać.
SSH w ogóle implementuje wiele innych trików, typu ukrywanie sytuacji
ułatwiającej łamanie, jak np. krótkie komunikaty, czy takie same znaki. Do
tego renegocjuje klucz do szyfrowania symetrycznego co 1GB/1h (które
wcześniej) i wiele innych tego typu tricków.
Zdroofka
Cz w rny
P.S.
A to wszystko w świetle zalanego dziś egzamu z Ochrony Danych (podobnie
jak 36 innych osób i tylko 3 zdały ;/), bo profesorowi nie podobała się
sala ;/
Więcej informacji o liście pld-users-pl