Docstoc

Ogolna charakterystyka protokolu SSH

Document Sample
Ogolna charakterystyka protokolu SSH Powered By Docstoc
					                 Ogólna charakterystyka protokołu SSH


Protokół SSH zdalnej sesji wykorzystuje TCP i działa w oparciu o architekturę
klient-serwer. Oznacza to, że potrzebny jest serwer z zainstalowaną usługą i
klient, czyli program, dzięki któremu będziemy mogli łączyd się z serwerem. W
systemie Linux klient obsługuje zwykłą linię poleceo, natomiast w systemie
Windows może to byd na przykład darmowy program Putty, którego zadaniem
jest otworzenie terminala tekstowego umożliwiającego wprowadzanie poleceo.
Standardowo serwer SSH działa na porcie 22.

Istnieją dwie wersje protokołu SSH: SSH 1 i SSH 2. Ta druga stała się w roku
2006 proponowanym standardem Internetowym i jej architektura opisana jest
w RFC 4251 .

Protokół SSH 2 zbudowany jest z 3 komponentów:
- protokołu warstwy transportu – SSH-TRANS (RFC 4253 );
- protokołu uwierzytelnienia użytkownika – SSH-AUTH (RFC 4256 );
- protokołu komunikacyjnego – SSH-CONN (RFC 4254 ).

SSH-TRANS jest odpowiedzialny za nawiązanie połączenia, uwierzytelnienie
serwera, usługi szyfrowania i zapewnienia integralności przesyłanych danych.
Po ustanowieniu połączenia za pomocą SSH-TRANS otrzymujemy bezpieczny
tunel łączący klienta z uwierzytelnionym hostem.

SSH-AUTH jest odpowiedzialny za uwierzytelnienie klienta wobec serwera.
Możliwe sposoby obejmują: wykorzystanie hasła, klucza publicznego,
uwierzytelnianie hosta lub wykorzystanie Kerberosa.

SSH-CONN jest odpowiedzialny za dodatkowe usługi oferowane klientowi
potrzebne w prowadzonych przez niego sesjach. Przede wszystkim rozdziela
utworzony zaszyfrowany tunel na wiele kanałów logicznych. Daje możliwośd
zarówno prowadzenia zdalnej sesji interakcyjnej jak i zdalnego wykonywania
poleceo, przekazywania połączeo TCP (forwarding), przekazywania połączeo X11
w zaszyfrowanym tunelu.
                         Architektura protokołu SSH-2

Przebieg połączenia:

Na początku nawiązywana zostaje sesja zainicjowana przez program kliencki.
Następną czynnością jest autoryzacja użytkownika, która najczęściej jest
przeprowadzana jednym z poniższych sposobów:
1. Poprzez nazwę użytkownika (login) i hasło.
2. Korzystając z techniki klucza publicznego, co zwiększa dodatkowo
bezpieczeostwo. Używany jest do tego algorytm szyfrowania asymetrycznego,
na przykład RSA. Klient generuje swoją parę kluczy. Klucz publiczny przekazuje
serwerowi. Gdy klient łączy się z serwerem ten generuje liczbę losową, szyfruje
ją kluczem publicznym klienta i przesyła do klienta. Klient odszyfrowuje liczbę
za pomocą swojego klucza prywatnego i odsyła ją do serwera.
W ten sposób serwer może stwierdzid, że klient posiada klucz prywatny
pasujący do posiadanego przez serwer klucza publicznego, zatem można mu
zezwolid na logowanie.

                   Dodatkowe możliwości protokołu SSH

Oprócz zwykłego zdalnego logowania przez terminal może byd wykorzystywany
na przykład podczas bezpiecznego przesyłania plików, do czego służą SCP -
Secure Copy Protocol i SFTP - Secure File Transfer Protocol .

Przydatną opcją SSH jest możliwośd przekazywania portów (port forwarding,
nazywana również tunelowaniem). Standardowo tunelowanie służy do
bezpiecznego połączenia dwóch sieci lokalnych poprzez Internet. W przypadku
SSH tunelowanie wykorzystane może byd do przesyłania szyfrowanym kanałem
dowolnej innej usługi TCP/IP. Poprzez SSH bezpiecznie możemy uruchomid na
przykład SMTP, FTP czy X-Window, dla którego SSH jest specjalnie
przystosowane. Tunelowanie działa tylko dla usług opartych o protokół TCP.




                           Szyfrowany tunel SSH2

Istnieją dwa rodzaje przekazywania portów: przekazywanie lokalne (local
forwarding) i przekazywanie zdalne (remote forwarding). W pierwszym
przypadku chodzi o przekazywanie połączenia skierowanego do lokalnego
portu do określonego portu zdalnego. W drugim przypadku przekazywane jest
połączenie skierowane do zdalnego portu na port lokalny. Jeśli aplikacja
kliencka, którą chcemy chronid uruchomiona jest lokalnie na komputerze
klienckim SSH, należy stosowad lokalne przekazywanie portów. Jeśli aplikacja
jest uruchomiona na zdalnym serwerze SSH, należy zastosowad zdalne
przekazywanie portów.
                               Bezpieczeostwo

Protokół SSH praktycznie wyparł inne „bezpieczne�? protokoły stosowane w
pracy tekstowej takie jak RSH czy RLogin. W protokołach tych bezpieczeostwo
ograniczało się do tego, że można było skonfigurowad usługę tak, aby nie trzeba
było przesyład w sieci hasła. Protokół SSH szyfruje całą zawartośd przesyłaną
przez sied, w tym hasło.
Do szyfrowania wykorzystywany jest losowy klucz negocjowany podczas
otwierania połączenia. Klucz ten jest usuwany w momencie kooczenia sesji.
Dostępne algorytmy szyfrowania obejmują AES, Blowfish, IDEA, DES, 3DES.
Można wybrad algorytm szyfrowania zgodnie z potrzebami.

Szyfrowanie transmisji zapewnia poufnośd danych. SSH zapewnia również
integralnośd danych – możemy mied pewnośd, że dane nie zostały podmienione
i pochodzą z właściwego komputera. Wykorzystywane są do tego algorytmy
kryptograficzne MAC.
Zarówno serwer jak i klient może byd uwierzytelniany. Wersja SSH 2 używa do
uwierzytelniania serwera protokołu TLS. Do uwierzytelnienia klienta służy kilka
metod. Oprócz uwierzytelnienia opartego na haśle, można wykorzystad
uwierzytelnienie z wykorzystaniem klucza publicznego klienta, uwierzytelnianie
oparte na zaufaniu do hosta (ulepszone uwierzytelnienie w stylu rlogin,
wykorzystujące klucz publiczny serwera), bądź inne metody dostępne w
konkretnej implementacji protokołu takie jak Kerberos, tokeny RSA SecureID,
klucze jednorazowe, PAM. Metoda uwierzytelnia jest negocjowana między
serwerem i klientem w oparciu o ich konfigurację. Serwer może wymagad
nawet kilku form uwierzytelnienia.

				
DOCUMENT INFO
Shared By:
Categories:
Tags:
Stats:
views:8
posted:11/3/2011
language:Polish
pages:4