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