Protokoly vzdálených terminálů Protokol TELNET Základní 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í) – možnost odposlechu během přenosu Protokol SSH (Secure Shell) 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
Protokol TELNET TELNET Principy: 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 Principy: NVT (Network Virtual Terminal) – je imaginární zařízení 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
Protokol TELNET Vyjednání podmínek komunikace mezi stranami – rozšíření povinného minima definovaného v NVT Symetrie vyjednávání podmínek mezi „klientem“ a „serverem“ – 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) – (32 – 127) Řídící znaky ASCII – (0 – 31) Příkazy protokolu TELNET - (230 – 255) následují za IAC (Interpret as Command) – kód 255 (0xFF) Příklad (sekvence pro kontrolu kompatibility): Klient: <IAC><AYT> … „Are you there?“ Server: `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 – 126 „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
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í Šifrování – symetrická a asymetrická šifra 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
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) Asymetrické – komunikující strany používají různé klíče – veřejný (public key) a privátní (private key) - kryptografické klíče tvoří dvojici s matematickou vazbou Hash funkce – jednocestné funkce vytvářející z libovolné bitové sekvence datový blok určené délky („výtah“)
Diffie – Hellman algoritmus pro výměnu tajného klíče (Session Key)
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)