Menu Close

Sicherheit und Netze (Vorlesung 7)

Heute wird eine Übung zu den Themen SchlüsselspeicherZertifikate und Signaturen durchgeführt.

Skript-AnfangÜbung1 – Seite 1
Skript-EndeÜbung1 – Seite 6

Im folgenden Teil werden lediglich die Aufgaben beschrieben, die eine Antwort von den Studenten verlangt haben und mit dem Tutor besprochen wurden.

Aufgabe 2: Keytool

Aufgabe 2a

Erstellen Sie sich einen Schlüsselspeicher, sowie ein Schlüsselpaar. Geben Sie die folgenden Daten an.

  • Keystore-Typ: JKS
  • Einträge im Keystore: 1
  • Signaturalgorithmus: SHA-256 with RSA
  • Standard: X.509
  • Version: 3

Aufgabe 2b

Welche Rolle spielt der Parameter -validity und weshalb sollte er mit Bedacht gewählt werden?

  • Validity gibt die Gültigkeit in Tagen an
  • Gibt an, wie lange der Aussteller garantiert, Informationen des Zertifikats zur Verfügung zu stellen

Aufgabe 2c

Woran kann ein Dritter erkennen, welcher Signaturhashalgorithmus für das Zertifikat verwendet wurde?

  • Prüfung der Details im Windows Explorer
  • Byte-Sequenz suchen, die die ID des Hashalgoritmus repräsentiert

Aufgabe 2d

Was ist der Vorteil eines Schlüsselspeichers?

  • Der private Schlüssel wird zusammen mit dem öffentlichen Schlüssel abgelegt
  • Der private Schlüssel wird durch ein Passwort geschützt

Aufgabe 2e

Wer hat das Zertifikat signiert?

  • Da es ein selbstsigniertes Zertifikat ist, sind Owner und Issuer identisch
  • Dies tritt bei der Root-CA ebenfalls auf
  • Erst wenn ein Zertifikat von einer höheren bzw. zentralen Zertifizierungsstelle signiert wird, ändert sich der Issuer

Aufgabe 2f

In welchem Feld könnte die Adresse (domain name) des Zertifikats stehen, wenn Sie ein SSL-Zertifikat für z.B. einen Webserver erstellen würden?

  • CN (Common Name)

Aufgabe 2g

Wäre es eine gute Idee, MD5 als Signaturalgorithmus zu verwenden?

  • Nein, da es bereits erfolgreich von Kollisionsangriffen gebrochen wurde

Aufgabe 2i

Viele Anwendungen unterstützen Zertifikate nur im PEM-Format. Worin besteht der Vorteil dieses Formats?

  • PEM steht für Privacy Enhanced Mail und ist ein Verfahren für den Austausch von Nachrichten
  • Im Zusammenhang mit X.509 wird PEM häufig als Format für die Übermittlung und Speicherung von Zertifikatsdaten genutzt
  • Die Daten sind Base64 encoded, so dass keine Binärdaten vorkommen
  • Eine PEM Datei kann auch mehrere PEM Objekte enthalten
  • Daten können vor der Konvertierung ins PEM Format verschlüsselt werden

Aufgabe 2j

Verliert eine Signatur ihre Gültigkeit, wenn das Zertifikat zeitlich abgelaufen ist?

  • Nein, da die Signatur zum Zeitpunkt der Ausstellung ja gültig war und sich daran nichts geändert hat

Aufgabe 3: Jar zum Packen von Java Archiven

Aufgabe 3b

Erstellen Sie ein neues Java Archiv. Welche Daten wurden zusätzlich hinzugefügt?

  • META-INF/Manifest.MF

Aufgabe 3c

Entpacken Sie nun das Archiv. Welche Informationen wurden in den zusätzlichen Dateien gespeichert?

  • Manifest-Version beschreibt die Versionierung des Archivs
  • Created by beschreibt welches SDK eingesetzt wurde zum Archivieren und hilft bei Änderungen an den Algorithmen

Aufgabe 4: Jarsigner zum Signieren von Archiven

Aufgabe 4a

Signieren Sie das Archiv mit ihrem privaten Schlüssel. Welche Dateien wurden dem Archiv nun hinzugefügt?

  • META-INF/MAXIMILI.SF
  • META-INF/MAXIMILI.RSA

Aufgabe 4b

Importieren Sie ihr Zertifikat in Bobs Schlüsselspeicher. Überprüfen Sie danach mit Bobs Schlüsselspeicher das von ihnen signierte Archiv. Welche Dateien wurden von ihnen signiert?

  • /Manifest.MF
  • /CNAM_Klausur_2014_Loesung.txt
  • /Gehaltsliste.txt

Aufgabe 4c

Weshalb wurde die Manifest-Datei von ihnen signiert?

  • Alle signierten Dokumente werden hier eingetragen
  • Die SHA-256-Digests (Base64-kodiert) werden dadurch auch nochmals signiert
  • Dies verhindert, dass jemand ein manipuliertes Manifest einträgt

Aufgabe 4d

Signieren Sie das Archiv mit Bobs privaten Schlüssel. Welche Dateien wurden dem Archiv nun hinzugefügt?

  • BOB.SF
  • BOB.RSA

Aufgabe 4e

Fügen Sie neue Dateien an das Archiv an. Gibt es Änderungen bei den vorhandenen Signaturen?

  • Nein, da die bestehenden Dateien sich ja nicht verändert haben (Digest bleibt gültig)

Aufgabe 4f

Wie können Veränderungen am Archiv überprüfbar gemacht werden? Nennen Sie drei Methoden.

  1. Hashwert über sicheren Kanal übermitteln
  2. Signatur vom Dokument trennen (externe Signatur(
  3. Mehrfach signieren

Aufgabe 4g

Welche Vorteile könnte eine mehrfache Signatur in Bezug auf die Authentizität haben?

  • Mehrere Personen erbringen eine Gewährleistung für Anwendung und Daten
  • Mit einer mehrfachen Signatur erreicht man höheres Vertrauen bei Dritten
  • Manipulationen durch einzelne Vertrauensbrüchige können verhindert werden
Aufgabe 5: Manipulation einer Android-Anwendung

Aufgabe 5b

Betrachten Sie sich das Zertifikat im Verzeichnis META-INF/CERT.RSA mit keytool. Wer ist Owner und Issuer und was bedeutet dies für die Authentizität?

  • Das Zertifikat ist selbstsigniert
  • Jeder kann eine App mit gültiger Signatur erzeugen
  • Die Authentizität ist deshalb fraglich

Aufgabe 5c

Gemäß dem Fall, das verwendete Zertifikat ist Ihnen unbekannt. Welche Schutzziele sind für die App gewährleistet?

  • Keine, da ein selbstsignierten Zertifikaten gefälscht sein kann

Aufgabe 5d

Der Aussteller des Zertifikats übermitteln ihnen das Zertifikat über einen sicheren Kanal. Welche Schutzziele sind für die App gewährleistet?

  • Unversehrtheit (Integrity)
  • Authentizität (Authentication)
  • Unwiderruflichkeit / Verbindlichkeit (Non-repudiation)

Aufgabe 5g

Wie kann Bob die Authentizität seiner App sicherstellen, wenn er selbstsignierte Zertifikate verwendet?

  • Ein Schlüsselpaar verwenden, dessen Zertifikat von einer CA signiert wurde?
  • Den Fingerprint seines Zertifikats auf einer Website veröffentlichen

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahren Sie, wie Ihre Kommentardaten verarbeitet werden.

Index