Protokoly pro připojení k vzdálenému serveru Protokol TELNET Základní protokol sady protokolů TCP/IP Komunikace klient – server, transport TCP (port 23) Autorizovaný přístup ke vzdálenému serveru Přenos dat nešifrovaných (včetně hesla při přihlašování) – riziko odposlechu během přenosu Protokol SSH (Secure Shell) Komunikace klient – server, transport TCP (port 22) Zajišťuje více funkcí než TELNET Zřizuje zabezpečený kanál pro datové přenosy
Schéma funkčních modulů komunikace protokolem TELNET Protokol TELNET Schéma funkčních modulů komunikace protokolem TELNET Remote session
Protokol TELNET TELNET Zajistí dvousměrný osmibitový komunikační kanál pro procesy terminálově orientované Vytváří TCP spojení pro přenos řídících informací a uživatelských dat (proud znaků) – well-known port 23 Princip NVT (Network Virtual Terminal) NVT je imaginární zařízení (terminál) vytvořené po ustavení TCP spojení - “společný“ síťový terminál komunikujících stran NVT - znakové zařízení I/O s „klávesnicí“ (pro vstup znaků) a „tiskárnou“ (pro výstup znaků ) Na vzdáleném terminálu je virtuální tiskárna implementována zobrazovací jednotkou Poznámka: NVT slouží také protokolu FTP pro výměnu příkazů mezi klientem a serverem
Protokol TELNET Po navázání TCP spojení proběhne vyjednání podmínek komunikace mezi stranami – rozšíření povinného minima definovaného v NVT („subnegotiation“) Symetrie vyjednávání podmínek mezi „klientem“ a „serverem“ pomocí tzv. „voleb“ Obě strany musí vyjednané podmínky akceptovat Příklad voleb: Echo Typ terminálu (např. vt100) Rychlost terminálu (rychlost přenosu bitů) Řádkový nebo znakový režim Geometrie okna (počet řádků a sloupců)
Protokol TELNET Implementace protokolu TELNET
Princip virtuálních terminálů – NVT Protokol TELNET Princip virtuálních terminálů – NVT
Protokol TELNET Přenášená data „Tisknutelné“ znaky ASCII (textové řetězce) – (kódy 32 – 127) Řídící znaky ASCII – (kódy 0 – 31) Příkazy protokolu TELNET - (kódy 230 – 255) Každý příkaz (kód) má symbolické jméno Příkazy jsou předávány ve dvojici: IAC (Interpret as Command) – kód 255 (0xFF) + vlastní příkaz Příklad (sekvence pro kontrolu kompatibility): Klient zasílá: <IAC><AYT> … „Are you there?“ Server odpovídá: `Y` `E` `S` Příkazy <IAC><SB> a <IAC><SE> - začátek a konec výměny hodnot vyjednávaných podmínek
Příkazy protokolu TELNET Název Kód Popis funkce EOF 236 End-of-File SUSP 237 Pozastavení probíhajícího procesu Abort 238 Ukončení procesu EOR 239 End-of-Record SE 240 Konec nastavení voleb NOP 241 Nulová operace DM 242 Vyznačení dat BRK 243 Konec IP 244 Přerušení procesu AO 245 Ukončení výstupu
Název Kód Popis funkce AYT 246 „Jsi tam?“ EC 247 Výmaz znaku EL 248 Výmaz řádku GA 249 „Pokračuj“ SB 250 Začátek nastavení voleb WILL 251 Vyjednávání podmínek komunikace WONT 252 DO 253 DONT 254 IAC 255 „Následuje příkaz“
NVT řídící znaky ASCII Název Kód Popis funkce NULL BELL 7 Zvukový signál BS 8 Znak zpět HT 9 Horizontální tabelátor LF 10 Nový řádek VT 11 Vertikální tabelátor FF 12 O stránku vpřed CR 13 Návrat vozu Rozložení znaků: 0 – 31 řídící znaky 32 – 127 „tisknutelné“ znaky (viz následující tabulka)
Výměna podmínek komunikace Protokol TELNET Výměna podmínek komunikace Odesilatel: IAC,<type of operation>,<option> Příjemce: IAC,<type of operation>,<option> Typ operace – DO (253), DONT(254) , WILL (251), WONT (252) Číselné kódy některých voleb (option): 1 Echo 24 Typ terminálu 32 Rychlost terminálu 34 Řádkový režim 36 Proměnné prostředí
Protokol TELNET
Protokol TELNET Časový diagram vyjednání podmínek
Protokol TELNET Typ terminálu
Protokol TELNET Implementace protokolu TELNET Server – telnetd Klient Program telnet Program putty
Bezpečnostní problém relace Telnet Protokol TELNET Bezpečnostní problém relace Telnet
Zabezpečené relace SSH SSH (Secure Shell) – obecné označení pro protokoly i SW produkty (ssh klient, ssh server) Protokoly SSH-1.3, SSH-1.5, SSH-2 Klient – server probíhá v zabezpečeném TCP spojení Zabezpečené spojení prostřednictvím kryptografických prostředků Šifrování a autentizace – symetrické a asymetrické šifrovací mechanizmy (autentizace, „session key“) Kryptografická kontrola integrity přenášených dat Implementace ve většině operačních systémů (remote login, X window tunneling, secure remote copy ….)
Zabezpečené relace SSH Bezpečnostní záruky protokolu SSH důvěrnost dat integrita dat autentizace obou komunikujících stran autorizovaný přístup k uživatelským účtům přesměrování spojení (port forwarding) zapouzdření jiného protokolu (tunneling)
Zabezpečené relace SSH Komunikace SSH server – SSH klienti
Zabezpečené relace SSH 3-protokolový koncept SSH
Zabezpečené relace SSH Architektura protokolu SSH-2 Protokol modulární (původní SSH-1 je monolitický) - RFC 4251 Connection Protocol (SSH-CONN) – RFC 4254 Authentication Protocol (SSH-AUTH) – RFC 5252 Transport Protocol (SSH-TRANS) – RFC 4253
Architektura SSH-2 http://docstore.mik.ua/orelly/networking_2ndEd/ssh/ch03_05.htm
Zabezpečené relace SSH
Zabezpečené relace SSH
Zabezpečené relace SSH Bezpečnostní aspekty SSH volba a dojednání algoritmů generování a výměna klíčů (varianty používaných klíčů: klíč uživatele, klíč hostitele, klíč relace) vazba mezi klíčem a identitou – metoda certifikace veřejných klíčů, správa veřejných klíčů typ a postup autentizace kontrola integrity Implementace SSH sshd („naslouchá“ na portu 22) - server ssh, scp …- klienti
Zabezpečené relace SSH Zprávy SSH typ zprávy určuje záhlaví (SSH definuje vlastní jazyk pro popis dat zpráv) data služebních protokolů (režijní data) aplikační data Datové pakety Komprimace Výpočet výtahu (Hash) Záhlaví + výplň Šifrování (Session Key)
Zabezpečené relace SSH
Kryptografické algoritmy Symetrické – komunikující strany používají společný tajný klíč (secret key) – problém distribuce tajného klíče (řešení - Diffie-Hellman algoritmus). Zabezpečení důvěrnosti dat. Asymetrické – komunikující strany používají dvojici klíčů – veřejný (public key) a privátní (private key). Kryptografické klíče tvoří dvojici s matematickou vazbou. Zabezpečení autentičnosti dat. Hash funkce – jednocestné funkce (algoritmy)vytvářející z libovolné bitové sekvence datový blok stanovené délky („výtah“). Zabezpečení integrity dat.
Diffie – Hellman algoritmus pro výměnu tajného klíče (Session Key)
Princip asymetrické kryptografie Princip hash algoritmů
SSH - implementace SSH server SSH klient Open SSH http://www.openssh.org/ Open BSD Project Program sshd Program sftp-server SSH klient Program ssh (Linux) Program scp (Linux) Program putty (MS Windows) Program winscp (MS Windows)