Sicherer Login auf dem Server

Sicher Verschlüsseln

Datensicherheit ist eines der wichtigsten Themen. Aber wie kann man Daten verschlüsseln?
  1. Einfache Verschlüsselungsalgorithmen arbeiten mit einem Verschiebungsindex. Stellen Sie exemplarisch die Cäsar-Verschlüsselung dar.
    Warum ist diese Art der Verschlüsselung unsicher?

  2. Beschreiben Sie das Diffie-Hellmann-Verfahren an einem konkreten Beispiel.

  3. Grundsätzlich unterscheidet man zwischen symmetrischen und asymmetrischen Verschlüsselungsverfahren. Geben Sie für diese Begriffe die Definitionen an.
    Begründen Sie, warum man besser asymmetrische Verfahren nutzen sollte.

  4. Nennen Sie exemplarisch ein asymmetrisches Verschlüsselungsverfahren und beschreiben Sie dieses näher.

ssh-Praxis

Zu einer ssh-Sitzung brauchen wir Server und Client.
Vorbereitungen
Server:

  1. Ist auf dem Server schon der ssh-Dämon installiert?
    Prüfen Sie es mit which sshd und
    notieren Sie den kompletten Pfad zu sshd.

  2. Start des ssh-Servers:
    Es gibt dazu verschiedene Möglichkeiten.
    - Direktaufruf mit dem notierten Pfad aus 1.
    oder
    - /etc/init.d/ssh start falls das System über init.d verwaltet wird
    - oder auch über die grafische Oberfläche (dsl-Linux: System-Daemons-ssh)

  3. Wenn der Server gestartet ist kann man das mit dem Kommando ps |grep sshd nachprüfen, ob der Dämon sshd läuft.
    Sehen Sie doch mal nach auf welchem Port der Dämon läuft.

  4. Wir wollen später mit einem speziellen ssh-User auf den Server auf den Account des Users dsl zugreifen.

Einbindung des Clients, Kommunikation mit dem Server:

  1. Gibt es ssh auf dem Client? Geben Sie das Kommando ein, um dieses zu prüfen.

  2. Zunächst wollen wir uns nur mal eben so auf dem Server einloggen.
    Dazu nutzen wir den schon auf dem Server vorhandenen Account des Users dsl.
    ssh dsl@<IP des Servers>
    Was passiert laut Ausgabe nun?

  3. Lassen Sie die Verbindung mit dem Server für den User dsl stehen.
    Wir wollen nun mal die bestehende Verbindung analysieren.
    Geben Sie dazu an, wie diese ssh-Verbindung auf dem Server verwaltet wird,
    indem Sie die Ausgabe des Kommandos netstat -a analysieren.
    Welche Daten erhalten Sie betreffend der stehenden ssh-Verbindung?
    Welche Parameter der Ausgabe lassen sich für eine eventuelle Fehleranalyse verwenden?

  4. Beenden Sie die Verbindung vom Client aus mit:
    exit

  5. Wir wollen nun einen User sshuser so einrichten, dass er ohne Passworteingaben eine ssh-Verbindung zum Account des dsl auf dem Server machen kann.
    Dazu muss ein User sshuser auf dem Client mit Passwort erstellt werden.
    Nutzen Sie dazu die Kommandos
    useradd -m sshuser
    und
    passwd sshuser
    Loggen Sie sich dann als root aus (exit) und loggen Sie sich dann als sshuser ein:
    su sshuser

  6. Unser neuer User sshuser soll nun einen besonderen Status im System haben.
    Er braucht jedoch ein bestimmtes Verzeichnis: /home/sshuser/.ssh
    Erzeugen Sie dieses mit
    mkdir /home/sshuser/.ssh
    (Achtung!
    Der sshuser führt dieses Kommando aus.)

  7. Ziel ist es dem sshuser zu ermöglichen, sich ohne Passworteingabe auf dem Server als User dsl einzuloggen.
    Dazu hinterlegt er seinen Schlüssel im entsprechenden dsl-Account des Servers.
    Der Schlüssel wird zunächst auf dem Client generiert mit:
    ssh-keygen -t rsa

    Da wir kein Passwort hinterlegen wollen und keine besonderen Files nutzen bestätigen Sie die Fragen ohne Eingaben.
    Welche Dateien wurden nun angelegt im Verzeichnis .ssh und was ist deren Inhalt?

  8. Nun muss der öffentliche Schlüssel vom Client aus auf den Server übertragen werden:
    ssh-copy-id -i /home/sshuser/.ssh/id_rsa.pub dsl@><IP des Servers>
    Kontrollieren Sie auf dem Server im Verzeichnis i/home/dsl/.ssh, ob dort eine Datei authorized_keys vorhanden ist.
    Stellen Sie anhand des Änderungsdatums fest, ob diese gerade beschrieben wurde.
    Falls es an dieser Stelle Probleme gab, dann sollten Sie auf dem Server als User dsl zuvor das Verzeichnis /home/dsl/.ssh mit mkdir anlegen.

  9. Nun kann der User sshuser sich auf dem Server ohne Passwort einloggen:
    ssh dsl@<IP des Servers>

Aufgaben für die Dokumentation

  1. Notieren Sie die Arbeitsschritte zur Einrichtung einer ssh-Verbindung in Form einer Anleitung.

  2. Es gibt noch eine Reihe weiterer Protokolle, die ssh nutzen.
    Beschreiben Sie die Anwendungen scp, sftp und den Windowsdienst putty.

soweit die Praxis....

Verfahren zur Verschlüsselung

(Infos z.Bsp. Literatur: Chip 05/2015, S81/82 Richtig verschlüsseln, Markus Mandau,
oder Internetrecherche)

  1. Erläutern Sie die Verfahren Blockverschlüsselung und Stromverschlüsselung.

  2. Welche der beiden Methoden nutzt ECB (= Electronic Codebook)?
    Welche Unsicherheit von ECB beseitigt CBC (= Cipher Block Chaining)?
    Mit welchem Vorgehen geschieht dies?

  3. Welche Eigenschaften hat eine sichere Blockverschlüsselung?

  4. Beschreiben Sie den Ablauf einer HTTPS-Kommunikation.

  5. Welchen Vorteil hat DHE (ephemeres Diffie-Hellmann-Verfahren) gegenüber dem RSA-Verfahren?

  6. Was versteht man unter „Padding“? Wie kann man unter SSL 3.0 einen erfolgreichen Angriff als Man in the Middle starten?

Vorstellen von Verschlüsselungsverfahren

Erläutern Sie einen der folgenden Fachbegriffe. Beschreiben Sie jeweils das dazu gehörige Verfahren. Fertigen Sie ein Handout von maximal einer DINA4-Seite an.

Authentifizierung per ssl

(Literatur: CT iX 2/2012 Die Papiere bitte, Jörg Barthold)

  1. Wozu dienen öffentlicher und privater Schlüssel beim Senden einer Nachricht per SSL?

  2. Welche Aufgabe haben öffentlicher und privater Schlüssel bei der digitalen Signatur?

  3. Was versteht man unter dem Challenge-Response-Verfahren im Zusammenhang mit SSL?

  4. Was ist ein Zertifikat. Wie werden Zertifikate verwaltet?

  5. Warum muss eine vertrauenswürdige Verankerung der CA's exisitieren?

  6. Beschreiben Sie die Schritte, die beim Onlinebanking zur sicheren Identifizierung der Bank dienen.

  7. Wie kann der Server feststellen, ob der Client auch derjenige ist, für den er sich ausgibt?

  8. Sie haben in der obigen Übung mittels ssh-keygen einen Schlüssel generiert und diesen dann auf dem Server hinterlegt. Wozu dient dieser?

  9. Was versteht man unter einem Man-in-the-Middle-Angriff?
    Warum verhindert ssh einen solchen Angriff?

...und nicht vergessen: Übernehmen Sie die gewonnenen Erkenntnisse in die Dokumentation für den Server ! ...