26
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ć

MREŽNA SIGURNOST - Project-Benefit · 2019. 12. 31. · •Koristi se za multipleksiranje više logičkih kanala. •Svaka strana može da otvori kanal i dodijeli mu jedinstveni

  • 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)