Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2005-10-17 23:18:34

  korbol - Członek DUG

korbol
Członek DUG
Zarejestrowany: 2005-04-29

SSH i podsluchane klucze.

Kiedy klient łączy się z demonem (serwerem) jako pierwsze dane otrzymuje klucz publiczny serwera. Klient porównuje ten klucz z zachowanym w wewnętrznej bazie danych, z poprzednich połączeń (o ile wcześniej łączył się z tym serwerem, jeżeli nie to go tylko zapamiętuje w bazie danych). W przypadku stwierdzenia niezgodności kluczy połączenie jest zamykane. W przeciwnym przypadku klient generuje losową liczbę 256 bitową. Liczbę tę szyfruje przy pomocy swojego klucza prywatnego oraz klucz publicznego serwera i tak zakodowaną przesyła do serwera. Serwer przy pomocy swojego klucza prywatnego i klucz publicznego klienta rozkodowuje przesyłkę, czyli wygenerowaną przez klienta losowo liczbę. Liczba ta stanowi klucz używany do kodowania podczas dalszej komunikacji.

Ja tu czegos nie kminie.

Serwer przy pomocy swojego klucza prywatnego i klucz publicznego klienta rozkodowuje przesyłkę, czyli wygenerowaną przez klienta losowo liczbę.

1)Co ma klucz prywatny serwera do rozkodowania przsyłki od klienta?
2)PRzesyłanie tych kluczy moze ktos pdosluchac?(pewnie tak)(czy wtedy dpa chlup?a jeżeli chlup to po co te manewry)
3)Czy tu chodzi o brdziej łaczenie sie przez siec lokalną aby ciut utrudnic podsluchanie?(bo chyba pacjent z poznania nie podslucha co sie dzieje miedzy serwerem w krakowie a zakopanem?Czy tez sie myle?[/code]


Pozdrawiam

Offline

 

#2  2005-10-17 23:37:19

  Graffi - Użytkownik

Graffi
Użytkownik
Skąd: Sulejówek
Zarejestrowany: 2005-10-03
Serwis

Re: SSH i podsluchane klucze.

chyba to ty wysyłasz serwerowi swój publiczny
a serwer tobie swój publiczny

serwer szyfruje twoim
a ty serwerowym

dzięki temu ty rokodowywujesz swoim prywatnym
a serwer swoim prywatnym

mi sie tak zdaje - chyba ze sie myle :|
ale to tylko tak miałoby ręce i nogi :)

Offline

 

#3  2005-10-18 07:41:08

  guzzi - Członek DUG

guzzi
Członek DUG
Skąd: Asteroida Linux
Zarejestrowany: 2005-03-31

Re: SSH i podsluchane klucze.

Kawałek cytatu z wykładu o szyfrowaniu:

Idea działania SSH jest zbliżona do PGP, tyle że właścicielem klucza nie jest osoba, ale komputer. Każdy z komputerów, na których zainstalowany jest program SSH posiada własną parę kluczy - klucz prywatny, możliwy do odczytania wyłącznie przez administratora systemu (i program demona usługi ssh,), oraz klucz publiczny, który jest ogólnie dostępny dla wszystkich użytkowników, a za pomocą protokołu SSH także dla innych komputerów w sieci.
Działanie
Po nawiązaniu połączenia automatycznie tworzony jest kodowany kanał powodujący przekazywanie połączeń na maszynę, z której nastąpiło połączenie. Ponadto użytkownik może sam tworzyć dowolne bezpieczne (kodowane) kanały pomiędzy dowolnymi (nieużywanymi) portami obu komputerów.
Pierwszymi przesyłanymi danymi jest klucz publiczny serwera. Jeżeli ma to miejsce pierwszy raz (tzn. klient jeszcze nigdy nie łączył się z tym serwerem), to klucz jest po prostu zapamiętywany w pliku użytkownika programu ssh po stronie klienta. Jeżeli nie jest to pierwsze połączenie, to otrzymany klucz jest porównywany z kluczem zapamiętanym wcześniej. Jeżeli klucz jest inny, oznacza to najprawdopodobniej, że w rzeczywistości połączyliśmy się z innym systemem. Zgodność kluczy jeszcze niczego nie dowodzi, bo klucz publiczny jest powszechnie znany i można go "ukraść" bez problemu.
Teraz następuje drugi etap autoryzacji. Klient ssh generuje losowo liczbę 32-bitową, która będzie używana do kodowania całej dalszej transmisji. Liczba ta zostaje zakodowana kluczem prywatnym klienta oraz kluczem publicznym serwera i dopiero w takiej postaci przesłana do serwera. Do odkodowania przesyłki serwer musi dysponować swoim kluczem prywatnym oraz kluczem publicznym klienta. Poprawne rozkodowanie przesłanej liczby pozwala stwierdzić, że obie strony biorące udział w wymianie informacji są rzeczywiście tymi, za które się podają. Po upewnieniu się, co do "tożsamości" hostów następuje autoryzacja użytkownika. Teraz może nastąpić bezpieczna wymiana strumienia danych.
Algorytmem używanym do szyfrowania strumienia danych może być jeden z popularnych szyfrów symetrycznych, np. IDEA, 3DES. Do zaszyfrowania klucza szyfru symetrycznego służy podobnie jak w PGP algorytm RSA lub DH. Użycie SSH zabezpiecza między innymi przed popularnym ostatnio, zwłaszcza w środowiskach akademickich, przechwytywaniem na drodze sniffingu haseł.

Offline

 

#4  2005-10-18 12:59:17

  korbol - Członek DUG

korbol
Członek DUG
Zarejestrowany: 2005-04-29

Re: SSH i podsluchane klucze.

Heh dzieki za wykład :)
Ale nadal nie rozumiem czegoś:

Liczba ta zostaje zakodowana kluczem prywatnym klienta oraz kluczem publicznym serwera i dopiero w takiej postaci przesłana do serwera. Do odkodowania przesyłki serwer musi dysponować swoim kluczem prywatnym oraz kluczem publicznym klienta.

1)Klucz prywatny klienta i serwera jest inny?(kazdy client i serwer  ssh na swieci emaja inne te klucze i sa one przydzielane losowo?)
2)Jezeli klucze prywatne są inne to w jaki sposó serwer rozkodowuje toa przeslaną 32 bitowa liczbe.Bo jest napisane ze rozkodowuje ją klucze publicznym od klienta oraz swoim kluczem prywatnym(ale przeciez ta przesylka nie byl akodowana kluczem prywatnym serwera wiec o co biega?)


Pozdrawiam

Offline

 

#5  2005-10-18 13:44:05

  andreq - Członek DUG

andreq
Członek DUG
Skąd: Nisko
Zarejestrowany: 2005-01-11

Re: SSH i podsluchane klucze.

ad.1 - tak każdy klient i serwer ma inny klucz prywatny;

ad.2 -  najpierw wstęp: klucz publiczny i prywatny stanową parę, wiadomość zakodowaną kluczem publicznym można odkodować kluczem prywatnym i odwrotnie - zakodowaną kluczem prywatnym można odkodować kluczem publicznym

przebieg połączenia:

1. klient łączy się z serwerem dostaje od niego klucz publiczny
2. kucz ten porównywany jest przez klienta z kluczem otrzymanym w poprzedniej sesji - aby wykryć ew. zmianę klucza - nieistotne ;-)
3. klient wysyła serwerowi swój klucz publiczny, generuje losową liczbę i koduje ją kluczem swoim kluczem prywatnym i publicznym serwera
zwróć uwagę na kolejność kodowania kluczami

liczbę tą można rozkodować wyłącznie w przy pomocy klucza prywatnego serwera (serwer go ma) a następnie klucza publicznego klienta (serwer dostał od klienta) znów odpowiednia kolejność użycia kluczy

nie da się rozkodować liczby przez odwrotne użycie kluczy - najpierw publiczego klienta a potem prywatnego serwera

Offline

 

#6  2005-10-18 14:57:09

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

W powyższych wyjaśnieniach jest jedno poważnie niedomówienie.
Nie szyfruje się wiadomości kluczem prywatnym i nie odszyfrowywuje publicznym, a już na pewno nie równocześnie swoim prywatnym i drugiej strony publicznym.
Klucz publiczny służy do szyfrowania i weryfikowania podpisu. Klucz prywatny służy do odszyfrowywania oraz podpisywania.
Inaczej kryptografia asymetryczna nie miałaby sensu.

W uproszczeniu wygląda to talk:
- klient musi umieścić fizycznie swój klucz publiczny w odpowiednim pliku w katalogu domowym na zdalnej maszynie (sposobem innym niż przez ssh)
- klient wysyła swój klucz publiczny (po sprawdzeniu czy połączył się z właściwym serwerem) i serwer porównuje go z listą tych co znajdują się na serwerze
- jeśli ten klucz jest, czyli użytkownik może się autentykować, to serwer wysyła klientowi "wyzwanie" (ponieważ, każdy może wejść w posiadanie klicza publicznego), szyfruje losową liczbę kliczem publicznym klienta i wysyła ją do klienta
- klient odbiera zakodowaną liczbę, odszyfrowuje ją swoim prywatnym kluczem (udowadniając, że go zna), następnie tę odkodowaną liczbę szyfruje kluczem publicznym serwera, podpisuje swoim prywatnym i odsyła,
- serwer odkodowywuje liczbę swoim kluczem prywatnym i weryfikuje podpis kluczem publicznym klienta, następnie porównuje liczbę z tą wysłaną do klienta, jeśli się zgadza to wpuszcza klienta.

Tak to wygląda w wersji 1, w wersji 2 protokołu dochodzi identyfikator sesji (służy do symetrycznego, czyli wydajniejszego szyfrowania sesji), który jest wysyłany zamiast liczby.

http://pl.wikipedia.org/wiki/Kryptografia_asymetryczna
man ssh


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#7  2005-10-18 15:41:11

  Prezu - Moderator

Prezu
Moderator
Skąd: Vancouver, BC
Zarejestrowany: 2005-06-02

Re: SSH i podsluchane klucze.

Czadman, klucze są sprzężone w obie strony. To znaczy że jak coś "zaszyfrujesz" kluczem publiczym, to możesz "odszyfrować" tylko odpowiednim kluczem prywatnym.

Jeśli natomiast coś "zaszyfrujesz" kluczem prywatnym to możesz to "odszyfrować" tylko odpowiednim kluczem publicznym. I właśnie na tym polega podpis cyfrowy. Tylko Ty możesz podpisać dane (bo tylko Ty masz klucz prywatny), a każdy (ściślej mówiąc każdy, kto posiada twój klucz publiczny) może zweryfikować podpis (czyli de-faco odszyfrować). Wskazałeś ssh(1), przeczytaj dokładnie początek. Jest tam o autoryzacji.

Offline

 

#8  2005-10-19 09:26:15

  Kowall_ptk - wieczny student

Kowall_ptk
wieczny student
Skąd: z nienacka :)
Zarejestrowany: 2005-02-17

Re: SSH i podsluchane klucze.

a możliwe jest odszyfrowanie czegoś, co zostało zakodowane kluczem publicznym na podstawie znajomości tegoż klucza publicznego??


W Linuksie się da, tylko trzeba wiedzieć jak!

Offline

 

#9  2005-10-19 09:41:04

  rychu - elektryk dyżurny

rychu
elektryk dyżurny
Skąd: gdańsk/kalmar
Zarejestrowany: 2004-12-28

Re: SSH i podsluchane klucze.

nie

jesli chcesz wysłać zaszyfrowanego maila do Basi, to szyfrujesz go jej kluczem publicznym. rozszyfrowac go może tylko ona, za pomocą swojego klucza prywatnego.


linux regd. user #248790

Offline

 

#10  2005-10-19 09:48:29

  andreq - Członek DUG

andreq
Członek DUG
Skąd: Nisko
Zarejestrowany: 2005-01-11

Re: SSH i podsluchane klucze.

praktycznie niemożliwe,

ale teoretycznie: kodowanie polega na stosowaniu algorytmów matematycznych (np algorytm RSA - rozkład liczby naturalnej na dwie liczby pierwsze) a moc obliczeniowa komputerów rośnie, więc kiedyś rozkodowanie nie będzie pewnie stanowiło problemu;

ale pewnie iwymyślone zostaną nowe algorytmy kodowania, wymagające jeszcze większej mocy obliczeniowej kompurerów :-)

Offline

 

#11  2005-10-19 09:49:32

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

Czadman, klucze są sprzężone w obie strony. To znaczy że jak coś "zaszyfrujesz" kluczem publiczym, to możesz "odszyfrować" tylko odpowiednim kluczem prywatnym.

Nie twierdziłem, że klucze nie są sprzężone, wręcz przeciwnie.  Przeczytaj proszę dokładnie moją wypowiedź. Może faktycznie popełniam jakiś błąd?


Jeśli natomiast coś "zaszyfrujesz" kluczem prywatnym to możesz to "odszyfrować" tylko odpowiednim kluczem publicznym. I właśnie na tym polega podpis cyfrowy. Tylko Ty możesz podpisać dane (bo tylko Ty masz klucz prywatny), a każdy (ściślej mówiąc każdy, kto posiada twój klucz publiczny) może zweryfikować podpis (czyli de-faco odszyfrować). Wskazałeś ssh(5), przeczytaj dokładnie początek. Jest tam o autoryzacji.

Nie twierdziłem nic przeciwnego, poza tym, że położyłem nacisk na błędnie rozumowanie "podwójnego szyfrowania". Moc kryptografi asymetrycznej polega na tym, że kluczem publicznym nie da się nic odszyfrować lub się nie odszyfrowywuje. W manie ssh jest napisanie, że autoryzacja jest oparta na asymetrycznym algorytmie szyfrowania RSA, króry wyraźnie mówi, że nie szyfruje się kluczem prywatnym samej wiadomości, co sugerują powyższe wypowiedzi, lecz jej hasz + ustalone bity i ma to kluczowe znaczenie dla bezpieczeństwa algorytmu. Czyli jest to de facto odszyfrowywanie, i tu zwaracam honor, ale de facto spreparowanego przez podpisującego pakietu i porównanie go ze spreparowanym przez weryfikującego.

Dodam jeszcze, że słowo "kodowany" niewiele tu nie znaczy, można coś kodować alfabetem morsa i to nie znaczy, że się szyfruje.

Pozdrawiam.


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#12  2005-10-19 09:54:14

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

praktycznie niemożliwe,

ale teoretycznie: kodowanie polega na stosowaniu algorytmów matematycznych (np algorytm RSA - rozkład liczby naturalnej na dwie liczby pierwsze) a moc obliczeniowa komputerów rośnie, więc kiedyś rozkodowanie nie będzie pewnie stanowiło problemu;

ale pewnie iwymyślone zostaną nowe algorytmy kodowania, wymagające jeszcze większej mocy obliczeniowej kompurerów :-)

Czytałem gdzieś, że były udane ataki na RSA. :)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#13  2005-10-19 10:42:16

  korbol - Członek DUG

korbol
Członek DUG
Zarejestrowany: 2005-04-29

Re: SSH i podsluchane klucze.

Czadman jestes MEGA! wszedzie w necie bylo to opisane w dziwny nieprecyzyjny sposób(i myslalem ze te klucze prywatne i publiczne nic do siebie nie maja).
Lecz bez pytania sie nie obejdzie :)

- klient musi umieścić fizycznie swój klucz publiczny w odpowiednim pliku w katalogu domowym na zdalnej maszynie (sposobem innym niż przez ssh)

To jak w takim razie zalogowac sie poraz pierwszy (w sposób bezpieczny)jezeli nie umiesci sie tam tego klucza?


Pozdrawiam

Offline

 

#14  2005-10-19 11:37:12

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

Czadman jestes MEGA! wszedzie w necie bylo to opisane w dziwny nieprecyzyjny sposób(i myslalem ze te klucze prywatne i publiczne nic do siebie nie maja).
Lecz bez pytania sie nie obejdzie :)

- klient musi umieścić fizycznie swój klucz publiczny w odpowiednim pliku w katalogu domowym na zdalnej maszynie (sposobem innym niż przez ssh)

To jak w takim razie zalogowac sie poraz pierwszy (w sposób bezpieczny)jezeli nie umiesci sie tam tego klucza?

Albo zalogować się przez ssh na hasło, następnie wyłączyć tę możliwość po umieszczeniu  klucza, fizycznie dotrzeć do maszyny i wgrać klucz z nośnika lub z pomocą administratora danego komputera.


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#15  2005-10-19 11:40:38

  Kowall_ptk - wieczny student

Kowall_ptk
wieczny student
Skąd: z nienacka :)
Zarejestrowany: 2005-02-17

Re: SSH i podsluchane klucze.

To jak w takim razie zalogowac sie poraz pierwszy (w sposób bezpieczny)jezeli nie umiesci sie tam tego klucza?

Jakkolwiek, przecież klucz publiczny jest tak naprawdę nieważny jeżeli chodzi o bezpieczeństwo, więc możesz go nawet wysłać z życzeniami powodzenia do tego, kto chce Cię odszyfrować :) Przynajmniej ja to tak rozumiem. I przypuszczam, że klient/serwer ssh przesyła ten kod i załatwia sprawę umieszczenia go w odpowiednim pliku.


W Linuksie się da, tylko trzeba wiedzieć jak!

Offline

 

#16  2005-10-19 12:14:29

  korbol - Członek DUG

korbol
Członek DUG
Zarejestrowany: 2005-04-29

Re: SSH i podsluchane klucze.

AAA bo to był bez haslowy sposob logowania.Troche sie zamotalem ale juz czaje feeeeeeeeenx.:)


Pozdrawiam

Offline

 

#17  2005-10-19 17:35:18

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

To jak w takim razie zalogowac sie poraz pierwszy (w sposób bezpieczny)jezeli nie umiesci sie tam tego klucza?

Jakkolwiek, przecież klucz publiczny jest tak naprawdę nieważny jeżeli chodzi o bezpieczeństwo, więc możesz go nawet wysłać z życzeniami powodzenia do tego, kto chce Cię odszyfrować :) Przynajmniej ja to tak rozumiem. I przypuszczam, że klient/serwer ssh przesyła ten kod i załatwia sprawę umieszczenia go w odpowiednim pliku.

Zgadza się, polecenie ssh-copy-id, nie mniej jednak wymaga włączonej autoryzacji hasłem na serwerze.


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#18  2005-10-19 17:52:13

  Prezu - Moderator

Prezu
Moderator
Skąd: Vancouver, BC
Zarejestrowany: 2005-06-02

Re: SSH i podsluchane klucze.

Przeczytaj proszę dokładnie moją wypowiedź. Może faktycznie popełniam jakiś błąd?

Trochę niejasno napisałem i nie wiesz o co mi chodzi. :) Chodzi mi o to:

W uproszczeniu wygląda to talk:
- klient musi umieścić fizycznie swój klucz publiczny w odpowiednim pliku w katalogu domowym na zdalnej maszynie (sposobem innym niż przez ssh)
- klient wysyła swój klucz publiczny (po sprawdzeniu czy połączył się z właściwym serwerem) i serwer porównuje go z listą tych co znajdują się na serwerze
- jeśli ten klucz jest, czyli użytkownik może się autentykować, to serwer wysyła klientowi "wyzwanie" (ponieważ, każdy może wejść w posiadanie klicza publicznego), szyfruje losową liczbę kliczem publicznym klienta i wysyła ją do klienta
- klient odbiera zakodowaną liczbę, odszyfrowuje ją swoim prywatnym kluczem (udowadniając, że go zna), następnie tę odkodowaną liczbę szyfruje kluczem publicznym serwera, podpisuje swoim prywatnym i odsyła,
- serwer odkodowywuje liczbę swoim kluczem prywatnym i weryfikuje podpis kluczem publicznym klienta, następnie porównuje liczbę z tą wysłaną do klienta, jeśli się zgadza to wpuszcza klienta.

Zwróć uwagę że klient nie ma dwóch par kluczy. Ma ~/.ssh/id_dsa, ~/.ssh/id_dsa.pub, lub w przypadku RSA ~/.ssh/id_rsa i ~/.ssh/id_rsa.pub. Klient podpisuje (a więc szyfruje) kluczem ~/.ssh/id_dsa (~/.ssh/id_rsa), a serwer weryfikuje (a więc odszyfrowuje "wyzwanie") kluczem publicznym.

Zatem:
- Jeśli zaszyfrujesz dane kluczem publicznym - możesz je odszyfrować tylko (odpowiednim temu kluczowi publicznemu) kluczem prywatnym.
- Jeśli zaszyfrujesz dane kluczem prywatnym (nazywamy to właśnie podpisem, i cały czas mówimy o ~/.ssh/id_dsa / ~/.ssh/id_rsa) - to możesz odszyfrować tylko odpowiednim kluczem publicznym.
Jak widzisz można szyfrować kluczem prywatnym i odszyfrować, odpowiadającym mu, kluczem publicznym. I właśnie to nazywamy podpisem. To, który klucz z pary uznamy za prywatny, a który za publiczny, zależy tylko od umowy. Zależnie oczywiście od tego czy chcemy podpisywać, czy szyfrować. Ale pamiętajmy że podpisywanie to też szyfrowanie. A na początku napisałeś:

Nie szyfruje się wiadomości kluczem prywatnym i nie odszyfrowywuje publicznym, a już na pewno nie równocześnie swoim prywatnym i drugiej strony publicznym.

Chodzi mi o to, że guzzi i andreq napisali wszystko prawidłowo. Oczywiście należy rozumieć na czym polega podpis, a ściślej, że polega na szyfrowaniu. Pozy tym drobiazgiem napisałeś wszystko najzupełniej prawidłowo. :)

Dodam tylko tak przy okazji, że w przypadku np. GnuPG sprawa jest troszkę bardziej skomplikowana. Ale tylko troszkę. Tam oczywiście używamy osobnych kluczy do podpisywania (najczęsciej jest to klucz DSA i nazywamy go "Master Signing Key"). Natomiast do szyfrowania używamy podklucza ElGamal. Tutaj podpis nie jest składany na danych (np. mailu, jeśli podpisujemy maila), tylko na skrócie (nie pamiętam czy to MD5, czy SHA-1) tych danych. Bo wiązało by się to z zaszyfrowaniem całych danych, więc długość podpisu byłaby zależna od wielkości danych i tym większa im większe byłyby podpisywane dane. Natomiast podpisując hash tych danych podpis jest zawsze krótki. Ale za to tak mocny jak sam hash. A jak wiemy od niedawna, nie są to tak mocne algorytmy jak dawniej sądzono. Mianowicie czterech chińskich naukowców (Xianoyun Wang, Dengguno Feng, Xueija Lai i Hongbo Yu) odkryło że podrobienie podpisu metodą brute force wymaga o wiele mniej iteracji niż wcześniej sądzono.Ci z was, którzy zdecydują się na Hakin9 dowiedzą się więcej w numerze 1/2005. Choć prace tych czterech mózgów posunęły się trochę od tego czasu. Teraz trzeba jeszcze mniej iteracji niż napisano w Hakin9'owym artykule. A jak ogólnie wiadomo, ataki z czasem mogą być tylko lepsze. Napewno nie gorsze. :)

Offline

 

#19  2005-10-19 18:45:09

  czadman - Bicycle repairman

czadman
Bicycle repairman
Skąd: Wrocław
Zarejestrowany: 2005-07-08

Re: SSH i podsluchane klucze.

Przeczytaj proszę dokładnie moją wypowiedź. Może faktycznie popełniam jakiś błąd?

Trochę niejasno napisałem i nie wiesz o co mi chodzi. :) Chodzi mi o to:

W uproszczeniu wygląda to talk:
- klient musi umieścić fizycznie swój klucz publiczny w odpowiednim pliku w katalogu domowym na zdalnej maszynie (sposobem innym niż przez ssh)
- klient wysyła swój klucz publiczny (po sprawdzeniu czy połączył się z właściwym serwerem) i serwer porównuje go z listą tych co znajdują się na serwerze
- jeśli ten klucz jest, czyli użytkownik może się autentykować, to serwer wysyła klientowi "wyzwanie" (ponieważ, każdy może wejść w posiadanie klicza publicznego), szyfruje losową liczbę kliczem publicznym klienta i wysyła ją do klienta
- klient odbiera zakodowaną liczbę, odszyfrowuje ją swoim prywatnym kluczem (udowadniając, że go zna), następnie tę odkodowaną liczbę szyfruje kluczem publicznym serwera, podpisuje swoim prywatnym i odsyła,
- serwer odkodowywuje liczbę swoim kluczem prywatnym i weryfikuje podpis kluczem publicznym klienta, następnie porównuje liczbę z tą wysłaną do klienta, jeśli się zgadza to wpuszcza klienta.

Zwróć uwagę że klient nie ma dwóch par kluczy. Ma ~/.ssh/id_dsa, ~/.ssh/id_dsa.pub, lub w przypadku RSA ~/.ssh/id_rsa i ~/.ssh/id_rsa.pub. Klient podpisuje (a więc szyfruje) kluczem ~/.ssh/id_dsa (~/.ssh/id_rsa), a serwer weryfikuje (a więc odszyfrowuje "wyzwanie") kluczem publicznym.

W którym miejscu piszę o tym, że klient posiada dwie pary kluczy? Albo z jakiego fragmentu to może wynikać? Przekręciłem tylko jedno, powinno być: "najpierw podpisuje potem szyfruje kluczem publicznym serwera".


Zatem:
- Jeśli zaszyfrujesz dane kluczem publicznym - możesz je odszyfrować tylko (odpowiednim temu kluczowi publicznemu) kluczem prywatnym.
- Jeśli zaszyfrujesz dane kluczem prywatnym (nazywamy to właśnie podpisem, i cały czas mówimy o ~/.ssh/id_dsa / ~/.ssh/id_rsa) - to możesz odszyfrować tylko odpowiednim kluczem publicznym.
Jak widzisz można szyfrować kluczem prywatnym i odszyfrować, odpowiadającym mu, kluczem publicznym. I właśnie to nazywamy podpisem. To, który klucz z pary uznamy za prywatny, a który za publiczny, zależy tylko od umowy.

Zwróciłem honor w jednym z postów powyżej, z zastrzeżeniem. :)
W RSA nie podpisuje się wiadomości szyfrując ją, lecz jej hasz + ustalone bity po to aby utrudnić generowania podpisów losowych wiadmości.
Być może openssh nieco inaczej implementuje protokół, ale w manach o tym nie ma.
http://pl.wikipedia.org/wiki/RSA_%28kryptografia%29

Na koniec chciałbym dodać, że cały wątek był dla mnie bardzo pouczający. :)


http://www.debian.org/logos/openlogo-nd-50.png

Offline

 

#20  2005-10-19 19:12:56

  Prezu - Moderator

Prezu
Moderator
Skąd: Vancouver, BC
Zarejestrowany: 2005-06-02

Re: SSH i podsluchane klucze.

W którym miejscu piszę o tym, że klient posiada dwie pary kluczy? Albo z jakiego fragmentu to może wynikać?

He he, nigdzie o tym nie wspominałeś. Po prostu napisałem z rozpędu. :)


Zwróciłem honor w jednym z postów powyżej, z zastrzeżeniem. :)
W RSA nie podpisuje się wiadomości szyfrując ją, lecz jej hasz + ustalone bity po to aby utrudnić generowania podpisów losowych wiadmości.

W DSA też podpisujesz hash. Z resztą pod koniec poprzedniego postu wspominałem nawet dlaczego. :)

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Możesz wyłączyć AdBlock — tu nie ma reklam ;-)