Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Disclaimer: The European Commission support for the production of this website does not constitute
an endorsement of the contents which reflects the views only of the authors, and the Commission
cannot be held responsible for any use which may be made of the information contained therein.
MREŽNA SIGURNOST Secure Shell (SSH)
Prof. dr. Nermin Suljanović
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Secure Shell (SSH)
• Sigurno okruženje koje je jednostavno za implementaciju i cjenovno nisko.
• Pruža mogućnosti komunikacije između klijenta i servera, kao što je prenos fajlova i e-mail.
• SSH čini grupa od tri protokola: • Transport Layer Protocol: za autentifikaciju servera,
povjerljivost i integritet podataka, kompresija. • User Authentication Protocol: autentifikacija korisnika na
serveru. • Connection protocol: multipleksiranje više logičkih
komunikacijskih kanala preko jedne SSH konekcije.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
SSH stack
User Authentication Protocol
Connection Protocol
Transport Layer Protocol
TCP
IP
SSH
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Transport Layer Protocol
• Protokol transportnog sloja.
• Vrši autentifikaciju servera, na osnovu para javni/privatni ključ servera.
• Serverski ključ računara (host key) se tokom razmjene ključeva koristi za autentifikaciju identiteta računara (host-a).
• Ključ računara je javni ključ servera, koju koristi korisnik za dešifriranje autentifikacijske poruke koju dobija od servera prilikom uspostavljanja konekcije.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Ključevi računara (Host keys)
• SSH server obično kreira ključeve računara priliko njegove isntalacije i konfiguracije (samo jednom).
• Rjeđe, administrator ručno generira ključeve nakon izbora algoritma šifriranja i dužine ključa.
• Ključa računara ima dvije komponente: privatnu i javnu.
• Samo SSH server ima pristup privatnom ključu.
• Prije razmjene bilo kakvih podataka, vrši se razmjena ključeva.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Ključevi računara (Host keys)
• Klijent održava lokalnu bazu podataka sa imenima računara (hosts) i pridružuje mu odgovarajući javni ključ računara.
• Ako dobiveni javni ključ računara ne odgovara ni jednom ključu iz baze, klijent šalje serveru “challenge”.
• Server odgovara sa “host key fingerprint (MD5 hash)”.
• Korisnik se odlučuje da li da vjeruje serveru i doda ključ u bazu.
• Za validaciju, ovaj “fingerprint” se poredi sa onim dobivenim po nekom sigurnom kanalu.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
SSH razmjena paketa
TCP konekcija
SSH-protoversion-softwareversion SP comments CR LF
SSH_MSG_KEXINIT
SSH_MSG_KEXINIT
Razmjena ključeva
SSH_MSG_NEWKEYS
SSH_MSG_NEWKEYS
SSH_MSG_SERVICE_REQUEST
SSH verzija softvera
SSH-protoversion-softwareversion SP comments CR LF
Pregovaranje oko algoritama za
šifriranje, MAC izračunavanju, razmjenu ključeva i kompresiju.
Server se autentificirao klijentu i kao rezultat,
dvije strane dijele glavni ključ K.
Kraj razmjene ključeva i obje strane mogu koristiti ključeve.
Zahtjev za uslugom, kao što je autentifikacija korisnika.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Generiranje ključeva
• Generiraju se na osnovu dijelejnog tajnog ključa K, heš vrijednosti iz razmjene ključeva H i session id-a. • Redoslijed izračuna je: • Početni IV od kolijenta serveru HASH(K||H||”A”||session_id) • Početni IV od servera klijentu HASH(K||H||”B”||session_id) • Ključ za šifriranje od klijenta serveru HASH(K||H||”C”||session_id)
• Ključ za šifriranje od servera klijentu HASH(K||H||”D”||session_id)
• Ključ integriteta od klijenta serveru HASH(K||H||”E”||session_id)
• Ključ integriteta od servera klijentu HASH(K||H||”F”||session_id)
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Format paketa Payload
Kompresija
Komprimiran payload Dopuna ddp dpk Red. Br.
Šifriranje MAC
Šifrat
SSL paket
Dodaju se slučajni brojevi da cjelokupna dužina paketa bude djeliva dužinom blokovse šifre.
Dužina dopune
Dužina paketa u bajtovima
Message authentication code
32-bitni broj paketa
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Protokol autentifikacije korisnika • Klijent se autentificira serveru pomoću User
Authentication Protocol-a. • Format zahtjeva za autentifikaciju:
• bajt SSH_MSG_USERAUTH_REQUEST (dec. vrijednost 50) • string ime korisnika • string ime servisa • string ime metoda.
• Ime korisnika: autorizirani identitet na koji se klijent poziva
• Servis: sredstvo kojem klijent želi da pristupi (SSH Connection Protocol)
• Metod: metod autentifikacije koji se koristi i zahtjevu
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Protokol autentifikacije korisnika
• SSH_MSG_USERAUTH_FAILURE (51): odbijen zahtjev za autentifikaciju
• SSH_MSG_USERAUTH_SUCCESS (52): autentifikacija prihvaćena
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Razmjena poruka za autentifikaciju korisnika 1. Klijent šalje SSH_MSG_USERAUTH_REQUEST
sa praznim poljem zahtjevanog metoda.
2. Server probjerava validnost imena korisnika. Ako ime nije validno, šalje SSH_MSG_USERAUTH_FAILURE. Ako je validno, prelazi na korak 3.
3. Server vraća SSH_MSG_USERAUTH_FAILURE sa spiskom jednog ili više metoda autentifikacije.
4. Klijent izabere jedan od prihvatljivih metoda autentifikacije i šalje SSH_MSG_USERAUTH_REQUEST sa imenom tog metoda i poljima specifičnim za taj metod.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Razmjena poruka za autentifikaciju korisnika
5. Ako autentifikacija uspije i traži se još metoda autentifikacije, server se vraća na korak 3 ali šalje poruku sa vrijednošću “true” u polju ”djelimičan uspjeh”.
6. Kada svi zahtjevani metodi autentifikacije uspiju, server šalje poruku SSH_MSG_USERAUTH_SUCCESS i time se zaključuje Authentication Protocol.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Metode autentifikacije koje može zahtjevati server • Javni ključ (Public key): Detalji zavise od izabranog
algoritma javnog ključa. U principu, klijent šalje poruku serveru koja sadrži klijentov javni ključ, a poruka je potpisana klijentovim privatnim ključem. Kada server primi poruku, provjerava da li je ponuđeni ključ prihvatljiv za autentifikaciju i ako jeste, provjeri ispravnost zapisa.
• Lozinka (password): Klijent šalje lozinku u otvorenom tekstu, koja se štiti šifriranjem u okviru Transport Layer Protocola.
• Hostbased: Autentificira se klijentov računar, a ne klijent. Računar podržava autentifikaciju za svoje klijente.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
SSH Connection Protocol
• Izvršava se preko SSH Transport Layer Protocol-a, uz pretpostavku da ima sigurnu konekciju sa autentifikacijom (tunel).
• Koristi se za multipleksiranje više logičkih kanala.
• Svaka strana može da otvori kanal i dodijeli mu jedinstveni broj.
• Tri faze kroz koje prolazi kanal: • Otvaranje kanala,
• Prijenos podataka, i
• Zatvaranje kanala.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Otvaranje kanala
• Strana koja otvara kanal mu dodijeli broj i šalje poruku sa sljedećim sadržajem:
• Bajt SSH_MSG_CHANNEL_OPEN • string vrsta kanala (aplikacija za dati kanal)
• uint 32 kanal pošiljaoca
• uint32 početna veličina prozora (koliko bajtova se može slati bez podešenja prozora)
• uint 32 maksimalna veličina prozora
• …. Podaci specifični za datu vrstu kanala
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Primjer razmjene poruka
Uspostavljanje Authentication Transport Layer konekcije
SSH_MSG_CHANNEL_OPEN
SSH_MSG_CHANNEL_CLOSE
SSH_MSG_CHANNEL_OPEN_CONFIRMATION
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_DATA
SSH_MSG_CHANNEL_DATA
. . .
Otvaranje kanala
Prijenos podataka
Zatvaranje kanala
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Vrste kanala • Session:
• Udaljeno izvršavanje programa.
• Program može biti “ljuska” (shell interface za pristup servisima operativnog sistema), apliakcija, sistemska komanda ili ugrađeni podsistem.
• X11: • X-windows sistem, softver i mrežni protokol koji nudi GUI za
umrežene računare.
• Aplikacija koja se izvršava na serveru se prikaže na desktopu.
• forwarded_tcpip: daljinsko prosljeđivanje portova
• direct_tcpip: lokalno prosljeđivanje portova.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Prosljeđivanje portova • Nesigurna TCP konekcija se konvertuje u sigurnu
SSH konekciju (tuneliranje).
• Port je identifikator jednog TCP korisnika.
• Svaka aplikacija ima svoj TCP port.
• Dolazni TCP promet se isporučuje aplikaciji na osnovu broja porta (npr. SMTP osluškuje na portu broj 25).
Klijentska aplikacija Serverska aplikacija
TCP entitet TCP entitet
Nesigurna TCP konekcija
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Osiguranje sigurne konekcije
• SSH se konfigurira na način da SSH Transport Layer Protocol uspostavi TCP konekciju između SSH klijentnsog i serverskog entiteta sa portovima a i b.
• Pretpostavka da klijentska aplikacija koristi port x a serverska y.
• Uspostavi se siguran SSH tunel preko ove TCP konekcije.
• Promet od klijenta na portu x se preusmjerava lokalnom SSH entitetu i putuje kroz tunel.
• Na kraju tunela, drugi SSH entitet isporučuje podatke serverskoj aplikaciji na portu y.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Osiguranje sigurne konekcije
Klijentska aplikacija Serverska aplikacija
SSH entitet SSH entitet
Siguran SSH tunel
TCP entitet TCP entitet
Nesigurna TCP konekcija
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Prosljeđivanje portova
• Lokalno prosljeđivanje portova • Dozvoljava se klijentu da presereće odabrani promet na
aplikacijskom sloju i preusmjerava ga sa nesigurne TCP konekcije na siguran SSH tunel.
• SSH se konfigurira da osluškuje izabrane portove. • Cijeli promet se sa izabranog porta preusmjerava na SSH
tunel.
• Daljinsko prosljeđivanje portova • Korisnokov SSH klijent djeluje u ime servera. • Klijent primi paket na nekom odredišnom portu,
usmjerava promet na pravilan port i šalje na odredište koje korisnik izabere.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Primjer daljinskog prosljeđivanja portova
• Pristup serveru na poslu sa kućnog računara.
• Server se nalazi iza firewall-a, i neće prihvatiti SSH zahtjev sa kućnog računara.
• Sa računara na poslu, postavi se SSH konekcija prema kućnom računaru. Firewall to dozvoljava jer je to odlazna sigurna konekcija.
• SSH server se konfigurira tako da osluškuje neki lokalni port, npr. 22 i da podatke prosljeđuje na nekoj adresi na port 2222.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Primjer daljinskog prosljeđivanja portova
• Na kućnom računaru konfiguriramo SSH da prihvata promet sa porta 2222.
• Napravljen je tunel koji omogućava pristup na udaljeni server.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
Literatura
W. Stallings. Network Security Essentials: Applications and Standards, 5th Ed., 2014.
FAKULTET ELEKTROTEHNIKE UNIVERZITETA U TUZLI
If you have to thank people for their attention, you probably didn’t really deserve it anyway. (Ruben Verborgh)