SSH Die „Secure Shell“ „ - linux
Transcrição
SSH Die „Secure Shell“ „ - linux
LV Kryptologie K t l i WS06/07, WS06/07 HTWK Leipzig Matthias Jauernig 12 12 06 12.12.06 SSH Die „„Secure Shell“ Inhalt 1. 2. 3. 4. 5. Motivation M ti ti Historie Funktionsweise von SSH-2 D O Das OpenSSH SSH P Programmpaket k t Schlussbemerkungen, Links (1) Motivation (1) Motivation Wunsch: W h R Remote-Login, L i P Programme ausführen, Dateien transferieren Klassischer Ansatz: „R-Tools“ (rlogin, rsh, rcp) bzw bzw. telnet und ftp Æ unverschlüsselte Übertragung! Client Login: dau Passwort: gott Server Angreifer Fängt Klartext ab: Login: dau, Passwort: gott (1) Motivation Unkalkulierbares Sicherheitsrisiko!: Offenlegung von Geheimnissen, Manipulation von Daten Daten, Einbruch in Systeme, … Ausweg: Benutzung von ssh (secure shell) Æ verschlüsselte Übertragung! g g Client Login: sau Passwort: gott Server Angreifer Fängt verschlüsselten Text ab: ...%s&!“(t)(„ah1“/)$as?... (2) Historie (2) Historie 1995: Entwicklung 1995 Ent ickl ng von on SSH1 als Free Freeware are durch Tatu Ylönen an der TU Helsinki; Reaktion auf Passwortdiebstähle Dezember D b 1995: 1995 Gründung Gü d d der Fi Firma „SSH SSH Communications Security“, Kommerzialisierung 1998: SSH-2 SS veröffentlicht, ff inkompatibel zu SSH-1 (2) Historie 1999: Entwicklung 1999 Ent ickl ng von on OpenSSH als freie Implementierung von SSH2 2005: kommerzielles SSH G3 veröffentlicht, von Kryptoexperten K t t verpöhnt öh t (security ( it through obscurity) 2006: SSH-2 von IETF als Internetstandard vorgeschlagen (3) Funktionsweise von SSH-2 (3) Funktionsweise von SSH-2 SSH 2 Sicherheitsprinzipien Sicherheitsprin ipien von on SSH: SSH 1. Authentifizierung g 2. Verschlüsselung 3. Integrität I t ität (3) Funktionsweise von SSH-2 SSH 2 Rückblick Æ 1995: SSH-1: SSH 1: Monolithische Architektur, alle Funktionen in einem Protokoll vereint Nur Verschlüsselungsalgorithmen g g sind verhandelbar Neue Algorithmen kaum integrierbar Sicherheitslücke: CRC32 zur Integritätsprüfung, erlaubt Insertion Insertion-Angriff Angriff und Ausspähen von Verbindungen (1998 publiziert) (3) Funktionsweise von SSH-2 SSH 2 1998 SSH-2: 1998: SSH 2 Modularer Aufbau des Protokolls 3 Schichten: Transport-, Verbindungs-, Authentifizierungsprotokoll g p Implementierung und Verwendung weiterer Verschlüsselungsalgorithmen und Authentifizierungsmethoden möglich Integritätsprüfung mit MAC MAC-Algorithmen Algorithmen (msg auth code, hmac-sha1 von RFC gefordert) Gilt derzeit d it als l sicher i h (3) Funktionsweise von SSH-2 SSH 2 Schichtenmodell: Anwendungssoftware (ssh, sftp, scp etc.) SSH User Authentication Protocol (SSH-USERAUTH) SSH Connection Protocol (SSH-CONNECT) • Client-Authentifizierung - Passwort - Public Key - Host based • • • • SSH Transport Protocol (SSH-TRANS) • • • • Aushandlung von Algorithmen Austausch von Sitzungsschlüsseln Server-Authentifizierung Datenintegrität TCP-Protokoll Ausführung entfernter Programme Unterstützung interaktiver Sessions TCP-Port- und X11-Weiterleitung Datenkomprimierung (3) Authentifizierung Ser er A thentifi ier ng Server-Authentifizierung: Identifizierung über RSA-Zertifikat (auch zentrale Zertifizierungsstelle denkbar, vgl. SSL) Bei 1. Verbindung g speichert p Client den öffentlichen Server-Key in ~/.ssh/known_hosts Prüfung des Keys auf Übereinstimmung bei jedem neuen Login auf dem Server Methode: diffie diffie-hellman-group1-sha1, hellman group1 sha1 Server signiert bestimmten Hash mit private Key (3) Authentifizierung Client A thentifi ier ng Client-Authentifizierung: Passwort Public Key Host Based Beliebige weitere, z.B. Kerberos, Smart Card, SecurID etc etc. (3) Authentifizierung Client A thentifi ier ng Client-Authentifizierung: Zu Public Key: RSA oder DSA Zertifikate Client besitzt Schlüsselpaar in Dateien ~/.ssh/id_rsa und ~/.ssh/id_rsa.pub (Erzeugung mit ssh-keygen) Server hält öffentliche Client-Schlüssel in ~/.ssh/authorized_keys Client erzeugt Signatur (mehrere Werte) mit seinem privaten i t Schlüssel, S hlü l S Server verifiziert ifi i t di diese (3) Verschlüsselung Algorithmen: 3DES (default Algorithmen d f lt), ) DES DES, T Twofish, ofish Blowfish, AES, Serpent, ARCFOUR, IDEA, CAST-128 oder selbst definierte Session Keys: Für jede SSH-Sitzung wird neuer Session Key generiert Æ geschieht zusammen mit Server-Authentifizierung Server Authentifizierung nach diffie-hellman-group1-sha1 Session Keyy wird nie übertragen, g , sondern auf Client und Server separat berechnet Erneuter Schlüsselaustausch nach 232 Bytes empfohlen (3) Sicherheit von SSH-2 SSH 2 SSH 2 hilft beim Schutz SSH-2 Sch t vor: or IP spoofing IP source routing DNS spoofing Abfangen von Login-Daten und Nutzdaten Manipulation M i l ti von D Daten t d durch h man-in-thei th middle-Attacken Abgrenzung: Kein Allheilmittel zur IT-Sicherheit, IT Sicherheit, kann nur Bestandteil eines integrierten Konzepts sein (3) Kommunikation in SSH-2 SSH 2 Client Server Einigung auf Protokollversion Schlüsselaustausch, Server-Auth. SSH-TRANS unverschlüsselt Login Anfrage Login-Anfrage SSH-USERAUTH Client-Authentifizierung verschlüsselt Kommunikation SSH-CONNECT (4) Das OpenSSHProgrammpaket (4) OpenSSH - Allgemein Seit 1999 ent entwickelt ickelt Implementierung p g des SSH-2 Protokolls Open-Source Für Fü viele i l Pl Plattformen ttf und d Betriebssysteme B ti b t verfügbar (4) OpenSSH - Dateien Konfig rationsdateien Konfigurationsdateien: Client: /etc/ssh/ssh_config ~/.ssh/config Server: /etc/ssh/sshd_config /etc/ssh/sshd config (4) OpenSSH - Funktionen Umfangreiche Funktionalität: F nktionalität Remote Login (ssh und sshd) Dateitransfer (scp, sftp) X11 Weiterleitungen (ssh -X X) Weiterleitung beliebiger TCP-Verbindungen (ssh -L L bzw. bzw ssh -R R) (4) OpenSSH - Basisbefehle Einfache Remote Logins: ssh host | ssh -l user host | ssh user@host Di kt Befehlsausführung: Direkte B f hl füh ssh user@host befehl Dateitransfers: scp lokaldatei user@host:/pfad/remotedatei sftp user@host Komprimierung einschalten (bis 50% weniger Last): ssh -C ... Verschlüsselung g auswählen: ssh -c blowfish ... (4) OpenSSH - Public-Key Public Key Auth Auth. Befehle a auff Ser Server er ohne Pass Passworteingabe orteingabe ausführen (über Public Key Auth.): 1. Erzeugung eines SSH-Schlüsselpaars zur ClientAuthentifizierung (public-key): ssh-keygen –t rsa|dsa|rsa1 Æ Dateien: ~/.ssh/id_rsa ~/ ssh/id rsa und ~/ ~/.ssh/id_rsa.pub ssh/id rsa pub 2. Public key auf Server kopieren (in Datei ~//.ssh/authorized_keys): ssh/authorized keys): ssh-copy-id –i ~/.ssh/id_rsa.pub user@host Î Verwaltung von Public Keys auf Client mittels ssh-agent ssh agent und ssh-add möglich (4) OpenSSH - Tunneling Weiterleitung Weiterleit ng beliebiger TCP-Verbindungen TCP Verbind ngen über einen sicheren SSH-Tunnel Vorteile: Umgehen von Firewalls Verschlüsselung traditionell unsicherer Protokolle ohne deren Anwendungen zu Protokolle, ändern Komprimierung des Datenstroms möglich ö (4) OpenSSH - Tunneling Beispiel HTTP ttunneln Beispiel: nneln (local for forwarding arding -L) L) Standardfall: unverschlüsselt ((kein Tunnel)) Client Server Internet Browser http://Server 80 httpd (4) OpenSSH - Tunneling oder ssh h -L 8080:Server:80 8080 S 80 user@Server @S ssh -L 8080:localhost:80 user@Server über SSH-Tunnel: verschlüsselt Client Server Internet ssh 22 8080 Browser http://localhost:8080 22 sshd 80 httpd p (4) OpenSSH - Tunneling allgemeiner allgemeiner: ssh -L 8080:Webserver:80 user@SSHserver „sicheres“ Netz Client SSH SSHserver Internet ssh 22 8080 B Browser http://localhost:8080 22 sshd 80 httpd Webserver (5) Schlussbemerkungen Links bemerkungen, (5) Links http://de.wikipedia.org/wiki/Ssh http //de ikipedia org/ iki/Ssh http://de.wikipedia.org/wiki/OpenSSH p p g p http://www.openssh.com RFC 4250 4250-4254 4254 (5) Schlussbemerkungen SSH ist kein Sicherheits Sicherheits-Allheilmittel Allheilmittel Gilt jjedoch als sicher und ist vielfältig g einsetzbar: Remote – Systemadministration Sichere Dateitransfers Sichere TCP-Verbindungen Ist in Version 2 unersetzbar für Systemadministratoren Ende