Heute wird eine Übung zu den Themen Schlüsselspeicher, Zertifikate 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.
- Hashwert über sicheren Kanal übermitteln
- Signatur vom Dokument trennen (externe Signatur(
- 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