Allgemeines:
Über das WWW bzw. allgemein das Internet werden Informationen unterschiedlichster Art verbreitet. Darunter fallen z.B. auch die Veröffentlichungen von Gesetzen und Nachrichten, also Dingen, bei denen die Richtigkeit bzw. Unverfälschtheit der Aussage eine große Rolle spielt.
Da Daten im Internet verschiedenen potentiellen Bedrohungen (Manipulationsmöglichkeiten) ausgesetzt sind, muß es geeignete Mechanismen geben, die es einem Leser gestatten, unabhängig vom Ort der Bereitstellung und dem beim Transfer genutzten Übertragungskanal die Authentizität und Integrität der per Internet bezogenen elektronischen Dokumente zweifelsfrei festzustellen.
D.h., jeder Empfänger eines Dokuments muß sicher erkennen können,
Unautorisierte Modifikationen können technisch verschieden erfolgen, z.B. durch Austausch des echten Dokuments auf einem Server (Original-Server oder einem anderen, der eine Kopie hält), durch Veränderungen des Datenstroms zwischen Empfänger und Server beim Herunterladen oder durch Bereitstellung des gefälschten Dokuments auf einem speziellen Server, der vortäuscht, der echte Server zu sein, auf dem tatsächlich die authentische Fassung liegt. Eine Verfälschung durch Hardware-Fehler ist ebenfalls nicht auszuschließen.
Die Forderung, authentische Dokumente bereitzustellen und dem Empfänger die Möglichkeit zur Überprüfung der Echtheit anzubieten, gilt in besonderem Maße für elektronische Archiv-Systeme wie z.B. MONARCH, da sich hierauf Nutzer verlassen können wollen und müssen.
Eine sichere Feststellung der Authentizität und Integrität läßt sich praktikabel nur durch geeignete kryptographische Maßnahmen, konkret durch elektronische Signaturen erreichen. Daher wird jede im MONARCH archivierte Publikation mittels einer elektronischen Signatur gesichert, wobei pro Publikation drei verschiedene kryptographische Hash-Werte berechnet und dann zusammen mit anderen publikationsspezifischen Informationen vom Archivar signiert werden.
Grundprinzip des Sicherheitssystems:
Für jede Publikation im MONARCH existiert eine sogenannte Hash-Datei.
Für jede Datei einer Publikation werden drei verschiedene Hash-Werte berechnet und in dieser Hash-Datei gespeichert.
Die Hash-Datei wird außerdem durch den Archivar digital signiert.
Mit Hilfe der Hash-Werte kann jederzeit überprüft werden, ob die Publikation verändert wurde. Die Signatur der Hash-Datei garantiert weiterhin, daß die Hash-Datei und damit die in ihr gespeicherten Hash-Werte authentisch sind, also vom Archivar erstellt und danach nicht mehr verändert wurden.
Die Verwendung unterschiedlicher Hash-Funktionen dient der Erhöhung der Sicherheit. Um ein Dokument unbemerkt zu fälschen, müßte ein Angreifer in der Lage sein, ein anderes Dokument zu generieren, dass genau dieselben Hash-Werte liefert. Dies kann vielleicht bei einer Hash-Funktion gelingen, sofern es möglich sein sollte, diese zu brechen. Das gleichzeitige Brechen von drei anerkannten kryptographischen Hash-Funktionen ist dagegen um Größenordnungen schwieriger und erscheint derzeit als nicht möglich.
Verwendete Hash-Verfahren:
Ein kryptographisches Hash-Verfahren berechnet eine kryptographische Prüfsumme über ein Dokument. Das Verfahren weist verschiedene Eigenschaften auf, die für den Einsatz im Zusammenhang mit digitalen Signaturen notwendig sind:
Der Hash-Wert einer Nachricht ist relativ einfach, d.h. mit wenig Rechenaufwand bestimmbar. Des Algorithmus des Hash-Verfahrens ist öffentlich bekannt und benötigt als Eingabe-Datum nur das Dokument, aber keinerlei Schlüssel.
Hash-Werte sind relativ kurz (bei heute üblichen Verfahren max. 512 Bit) und haben eine vorab bekannte konstante Länge, so daß sich die bei der Signaturerstellung verwendeten asymmetrischen Verfahren vernünftig anwenden lassen.
Es ist rechnerisch unmöglich, zu einem vorgegebenen Hashwert eine Nachricht zu generieren, die genau diesen Hash-Wert hat.
Es ist rechnerisch ebenfalls unmöglich, zu einer vorgegebenen Nachricht eine zweite zu finden, die denselben Hashwert wie die erste hat.
Daraus folgt, daß sich bei der kleinsten Änderung des Inhalts des Dokuments auch sein Hash-Wert ändert. Möchte man nun kontrollieren, ob es sich bei einem Dokument um das Original handelt, dessen Hash-Wert man kennt, so bildet man selbst noch einmal den Hash-Wert des zu prüfenden Dokuments und vergleicht ihn mit dem bekannten Wert, der bei MONARCH in der Hash-Datei steht. Stimmen beide überein, dann ist das Dokument unverändert.
Die drei bei MONARCH verwendeten Hash-Verfahren sind der Secure-Hash-Algorithmus (SHA-1), der MD5-Message-Digest-Algorithmus und der Algorithmus RIPEMD-160:
Signieren der Hash-Datei:
Die Hash-Datei wird durch den Archivar digital signiert.
Für eine digitale Signatur benötigt man einen Klartext, einen öffentlichen und einen privaten Schlüssel. Mit dem privaten Schlüssel wird die Datei signiert, und mit dem öffentlichen Schlüssel kann diese Signatur von jedem verifiziert werden. Die Richtigkeit der Signatur sagt also aus, daß:
Das heißt, die digitale Signatur sichert die oben geforderte Authentizität und Integrität eines signierten Dokuments. Dies gilt allerdings nur dann, wenn derjenige, der die Signatur verifiziert, mit Sicherheit weiß, wem der zur Verifikation der Signatur verwendete öffentliche Schlüssel wirklich gehört. Man muß also die Bindung eines Schlüssels an seinen Inhaber überprüfen. Dies geschieht in der Praxis häufig mit Hilfe von Zertifikaten.
Ein Zertifikat ist ein elektronisch signiertes Dokument, mit dem dessen Aussteller bestätigt, daß ein bestimmter Schlüssel und ein bestimmter Inhaber zusammengehören. Wenn man dem Aussteller des Zertifikats vertraut, kann man von der Echtheit des zertifizierten Schlüssels ausgehen.
Die Echtheit eines öffentlichen Signaturschlüssels kann man natürlich auch ohne Zertifikat prüfen, z.B. dadurch, daß man über einen vertrauenswürdigen Kanal Kontakt zum Inhaber des Schlüssels aufnimmt und sich von diesem seinen Schlüssel nennen oder schicken läßt. Eine Schlüsselüberprüfung kann günstig über den Hash-Wert des Schlüssels erfolgen, weil dieser kurz ist und so z.B. recht leicht am Telefon vorgelesen werden kann.
Zum Signieren der Hash-Datei von MONARCH wird das Programm PGP (Pretty Good Privacy) Version 2.6.3in. verwendet. Nähere Informationen zu PGP findet man hier.
Anwendung:
Wenn ein Leser ein Dokument im MONARCH auf Echtheit prüfen möchte, kann er folgendermaßen vorgehen:
Ansicht der Indexseite der Publikation. Dort sind Links zu Key-Server und Hash-Datei eingetragen und Angaben zu Fingerprint und ID des öffentlichen Schlüssels von MONARCH erhältlich.
Herunterladen der Dokumentdatei, der Hash-Datei und des öffentlichen Schlüssels.
Verifikation des öffentlichen Schlüssels des MONARCH-Archivars, z.B. an Hand der verfügbaren Signaturen bzw. durch direkten Kontakt mit dem Archivar.
Verifizieren der Signatur der Hash-Datei mittels PGP und dem öffentlichen Schlüssel.
Berechnen (mindestens) eines Hash-Wertes für die zu prüfende Datei. (Falls Sie keines der Hash-Verfahren auf Ihrem Computer verfügbar haben, können Sie die oben angegebenen C-Quellen herunterladen und übersetzen.)
Der berechnete Hash-Wert muß nun mit dem in der Hash-Datei der Publikation enthaltenen Wert verglichen werden. Stimmen beide überein, dann haben Sie das Original vorliegen. Differieren die Hash-Werte, wurde das Dokument offenbar modifiziert. In diesem Falle wären wir für eine Nachricht dankbar.