Protokół SSH
Protokół SSH
(Secure Shell)
(Secure Shell)
SSH (ang. secure shell) czyli tłumacząc na polski
"bezpieczna powłoka" jest standardem protokołów
komunikacyjnych wykorzystywanych w sieciach
komputerowych TCP/IP, w architekturze klient - serwer.
W wąskim tego słowa znaczeniu SSH jest zdecydowanie
lepszym następcą słynnego protokoły telnet. SSH podobnie
jak telnet służą do łączenia się ze zdalnym komputerem.
Jednakże SSH zapewnia szyfrowanie oraz umożliwia
rozpoznawanie użytkownika na wiele różnych sposobów. W
szerszym znaczeniu SSH jest wspólną nazwą dla całej
rodziny protokołów. Obejmuje ona nie tylko podstawowe
protokoły służące do zadań terminalowych, ale również do
przesyłania plików, zdalnej kontroli zasobów komputera,
tunelowania, forwardowania i wiele innch.
SSH pozwala podobnie do telnetu, na zdalną pracę na konkretnej
maszynie jednak w przeciwieństwie od telnetu treść transmisji
przez port SSH (22) jest praktycznie niemożliwa do
przechwycenia jakimkolwiek snifferem [-programem, który
monitoruje i rejestruje hasła oraz identyfikatory używane w
trakcie logowania się użytkowników].
Wszystko dzięki temu, ze nasza sesja jest kodowana przy użyciu
jednego ze znanych algorytmów kryptograficznych opartych na
metodzie kluczy kodujących i dekodujących.
Te algorytmy to: IDEA, DES, 3DES, Blowfish i Arcfour.
Z tych 5-ciu algorytmów DES jest możliwy do złamania przez
osoby mające do dyspozycji maszyny o "niesamowitej" mocy
obliczeniowej.
Pozostałe zwłaszcza IDEA oraz Blowfish są uważane za całkowicie
bezpieczne.
Ponadto pakietem SSH możemy zastąpic standardowe polecenia
systemu takie jak: rlogin, rsh, rcp poprzez ssh i scp.
Architektura SSH
Protokół składa się z 3
warstw:
• Transportowej
• Połączenia
• Autentykacji
Warstwa transportowa odpowiedzialna jest za
ustalenie szyfrowania, kompresji (opcjonalnie)
oraz integralności danych. Po przesłaniu za
pomocą protokołu 1GB danych lub jeśli sesja trwa
ponad godzinę następuje ponowne ustalenie
wszystkich parametrów połączenia.
Warstwa połączenia jest odpowiedzialna za
ustalenie własności kanału w jakim się łączymy:
shell - łączenie się w trybie terminalu
direct-tcpip - kanał przekazujący połączenia typu
client-to-server
forwarded-tcpip - kanał przekazujący połączenia
typu server-to-client
Głównym zadaniem warstwy autentykacji jest wybór metody
uwierzytelnienia użytkownika. Do wyboru jest kilka możliwości:
• password - najprostsze i najbardziej popularne uwierzytelnianie
użytkownika za pomocą hasła
• publickey - metoda uwierzytelniania za pomocą kluczy
publicznych i prywatnych. Najczęściej wykorzystywane są
klucze typu DSA lub RSA. SSH wspiera również certyfikaty
X.509.
• GSSAPI - metoda, w której wykorzystywane są mechanizmy
typu Kerberos lub NTLM. Metody te są używane przez
komercyjną wersję SSH.
• keyboard-interactive - jest to metoda uwierzytelniania, w której
mieszczą się wszystkie inne metody autentykacji, które nie
zostały tutaj wymienione. Może być to między innymi metoda
uwierzytelniania za pomocą jednorazowego hasła pobieranego
z tokena.
KONIEC
Bibliografia:
• http://hektor.umcs.lublin.pl/~agatag/ssh/
• http://www.andrzejbober.com/study_notes/s
• http://www.eioba.pl/a71331/co_to_jest_ssh