Beschreibung
Erzeugung und Überprüfung elektronischer Signaturen
Die vorliegende Erfindung betrifft ein Verfahren zur Erzeu¬ gung elektronischer Signaturen, ein Verfahren zur Überprüfung einer elektronischen Signatur, ein Steuerungsprogramm zur Er¬ zeugung elektronischer Signaturen und ein Steuerungsprogramm zur Überprüfung einer elektronischen Signatur.
Durch ständig steigende Rechenleistung von Datenverarbei¬ tungseinrichtungen und mathematische Schwächen einiger Algo¬ rithmen unterliegen Verschlüsselungsverfahren einer Art Alte¬ rungsprozeß. Bei digitalen Signaturen stellt sich mittel- bis langfristig das Problem einer ausreichenden Beweiskraft ange¬ sichts potentieller zukünftiger Manipulationsmöglichkeiten. Zur Lösung dieses Problems können für archivierte digital signierte Daten von Zeit zu Zeit erneute, mit Zeitstempeln versehene digitale (Archiv-) Signaturen erzeugt werden.
Entsprechend ETSI ES 201 733 (Electronic Signature Formats) und ETSI TS 101 903 (XAdES - XML Advanced Electronic Signatu- res) wird für jedes zu archivierende Signaturobjekt eine Ar¬ chivsignatur berechnet. Daher hängt die Verarbeitungskomple- xität linear von der Anzahl der zu bearbeitenden Signaturob¬ jekte ab. Dasselbe gilt für den in der Signatur- Interoperabilitätsspezifikation, Abschnitt B5 (Sigl-B5) des Bundesamts für Sicherheit in der Informationstechnologie (BSI) vorgeschlagenen Ansatz.
Das auf der INFORMATION SECURITY SOLUTIONS EUROPE CONFERENCE (ISSE 2002), Paris, 2.-4. Oktober 2002 vorgeschlagene Konzept des Verbundprojekts ArchiSig sieht vor, einen Hashwertbaum
(Merkle) zur Erstellung einer mit einem Zeitstempel versehe¬ nen Archivsignatur zu verwenden. Zur Überprüfung einer sol¬ chen Archivsignatur für ein archiviertes Objekt sind neben der Archivsignatur als Wurzel des Hashwertbaums und dem ar- chivierten Objekt, das einen Endknoten im Hashwertbaum dar¬ stellt, ein objektspezifischer Authentifizierungspfad zwi¬ schen Wurzel und Endknoten erforderlich. Die Verarbeitungs¬ komplexität bei einer Überprüfung der Archivsignatur für ein archiviertes Objekt hängt daher von der Anzahl der archivier- ten Objekte ab.
Der vorliegenden Erfindung liegt die Aufgabe zugrunde, Ver¬ fahren zur Erzeugung und Überprüfung von Archivsignaturen zu schaffen, deren Verarbeitungskomplexität im wesentlichen un- abhängig von der Anzahl archivierter computerbasierter Objek¬ te ist, und geeignete Implementierungen anzugeben.
Erfindungsgemäß wird diese Aufgabe durch ein Verfahren zur Erzeugung elektronischer Signaturen mit den in Anspruch 1, ein Verfahren zur Überprüfung einer elektronischen Signatur mit den in Anspruch 8, ein Steuerungsprogramm zur Erzeugung elektronischer Signaturen mit den in Anspruch 9 und ein Steu¬ erungsprogramm zur Überprüfung einer elektronischen Signatur mit den in Anspruch 10 angegebenen Merkmalen gelöst. Vorteil- hafte Weiterbildungen der vorliegenden Erfindung sind in den abhängigen Ansprüchen angegeben.
Ein wesentlicher Aspekt der vorliegenden Erfindung liegt dar¬ in, daß zur Erzeugung elektronischer Signaturen, zunächst für ein zu signierendes computerbasiertes Objekt ein das compu¬ terbasierte Objekt eindeutig identifizierender Wert berechnet wird und anschließend eine Zusammenfassung aus einer Mehrzahl von computerbasierte Objekte eindeutig identifizierenden Wer-
ten und einer einen Verschlüsselungszeitpunkt bezeichnende Zeitangabe mittels eines privaten Signaturschlüssels einer vertrauenswürdigen Instanz zumindest auszugsweise verschlüs¬ selt wird. Auszugsweise bedeutet beispielsweise, daß ledig- lieh ein die Zusammenfassung aus der Mehrzahl von computerba¬ sierte Objekte eindeutig identifizierenden Werten und der den Verschlüsselungszeitpunkt bezeichnende Zeitangabe eindeutig identifizierender Wert mittels des privaten Signaturschlüs¬ sels der vertrauenswürdigen Instanz verschlüsselt wird.
Computerbasierte Objekte sind beispielsweise ohne Beschrän¬ kung der Allgemeinheit dieses Begriffs Betriebssysteme, Steu- erungs- oder Anwendungsprogramme, durch Betriebssysteme, Steuerungs- oder Anwendungsprogramme bereitgestellte Dienste, Leistungsmerkmale, Funktionen oder Prozeduren, Zugriffsrechte auf Peripheriegeräte sowie auf einem Speichermedium befindli¬ che Daten. Funktionen oder Prozeduren umfassen dabei insbe¬ sondere auch eine Geldausgabe an einem Geldautomaten. Ver¬ trauenswürdige Instanzen können beispielsweise Aussteller e- lektronischer Zertifikate, staatliche Behörden oder Zertifi¬ zierungsstellen im Sinne des § 2 Abs. 4 SigG sein.
Ein weiterer wesentlicher Aspekt der vorliegenden Erfindung liegt darin, daß zur Überprüfung einer elektronischen Signa- tur für ein signiertes computerbasiertes Objekt entsprechend einer vorgegebenen Funktion ein das computerbasierte Objekt eindeutig identifizierender Wert berechnet wird. Außerdem wird eine Archivsignatur, die eine Mehrzahl von computerba¬ sierte Objekte eindeutig identifizierenden Werten und eine einen Verschlüsselungszeitpunkt bezeichnende Zeitangabe um¬ faßt und mittels eines privaten Signaturschlüssels einer ver¬ trauenswürdigen Instanz verschlüsselt ist, mittels eines öf¬ fentlichen Schlüssels der vertrauenswürdigen Instanz ent-
schlüsselt. Der dem signierten computerbasierten Objekt zuge¬ ordnete eindeutig identifizierende Wert wird aus der ent¬ schlüsselten Archivsignatur extrahiert. Abschließend werden der berechnete und der extrahierte eindeutig identifizierende Wert auf Übereinstimmung verglichen.
Bevorzugt sind das erfindungsgemäße Verfahren zur Erzeugung elektronischer Signaturen und das erfindungsgemäße Verfahren zur Überprüfung einer elektronischen Signatur jeweils durch ein in einen Arbeitsspeicher einer Programmablaufsteuerungs¬ einrichtung ladbares Steuerungsprogramm implementiert.
Unter Programmablaufsteuerungseinrichtung sind beispielsweise ohne Beschränkung der Allgemeinheit dieses Begriffs PCs, No- tebooks, Server, PDAs, Mobiltelefone, Geldautomaten, Steue¬ rungsmodule in der Automatisierungs-, Fahrzeug-, Kommunikati¬ ons- oder Medizintechnik zu verstehen - allgemein Einrichtun¬ gen, in denen Programme ablaufen.
Entsprechend einer vorteilhaften Weiterbildung des erfin¬ dungsgemäßen Verfahrens zur Erzeugung elektronischer Signatu¬ ren wird der ein computerbasiertes Objekt eindeutig identifi¬ zierende Hash-Wert in ein Reference-Element für eine XML- Signatur eingebettet. Ebenso wird die den Verschlüsselungs- Zeitpunkt bezeichnende Zeitangabe in ein Reference-Element eingebettet. Eine Mehrzahl von Reference-Elementen wird in ein Manifest-Element eingebettet. Für das Manifest-Element wird dann ein Hash-Wert berechnet und dieser mittels des pri¬ vaten Signaturschlüssels der vertrauenswürdigen Instanz zur Erstellung einer Archivsignatur verschlüsselt. Außerdem wird ein signiertes computerbasiertes Objekt zur Archivierung in eine Datenstruktureinheit eingebettet wird, die ein Signatur¬ objekt-Element, ein Element für ein signiertes Objekt und ein
Element für einen Verweis auf eine Archivsignatur mit Zeit¬ stempel umfaßt. Des weiteren wird ein in das Manifest-Element eingebettetes Reference-Element mit einem Verweis auf die Da- tenstruktureinheit versehen. Auf diese Weise ergibt sich un- ter Ausnutzung bestehender Strukturvorgaben für XML- Signaturen eine besonders einfache Implementierung für eine Erzeugung einer elektronischen Archivsignatur, auch mit Un¬ terstützung für abgesonderte (detached) PKCS#7/CMS- Signaturen.
Die vorliegende Erfindung wird nachfolgend an einem Ausfüh¬ rungsbeispiel anhand der Zeichnung näher erläutert. Es zeigt die
Figur eine schematische Darstellung einer Archivsignatur und eines Archivs für computerbasierte signierte Objekte.
Entsprechend der Darstellung in der Figur wird zur Erzeugung einer elektronischen Signatur zunächst für ein zu signieren¬ des computerbasierendes Objekt, beispielsweise ein elektroni¬ sches Dokument, ein das computerbasierte Objekt eindeutig i- dentifizierender Wert berechnet. Der das computerbasierte Ob¬ jekt eindeutig identifizierende Wert wird mittels eines Hash- Algorithmus berechnet und in ein Reference-Element 18 einer XML-Archivisgnatur 1 eingebettet.
Bei XML (extensible mark up language) handelt es sich um eine erweiterbare Beschreibungssprache, mit der Dokumentenstruktu- ren beschrieben werden. Um ein XML-Dokument zu strukturieren werden Inhaltskomponenten bzw. -elemente des XML-Dokuments mit Codes versehen. Diese Codes werden auch als Tags bezeich¬ net. Innerhalb des Reference-Elements 18 ist ein Digest-
Method-Element 181 vorgesehen, durch das ein Algorithmus zur Berechnung eines ein computerbasiertes Objekt eindeutig iden¬ tifizierenden Wertes spezifiziert werden kann. Für den das computerbasierte Objekt eindeutig identifizierenden Hash-Wert ist innerhalb des Reference-Elements 18 ein DigestValue-
Element 183 vorgesehen. Außerdem umfaßt das Reference-Element 18 ein Transforms-Element 181 zur Angabe eines Umwandlungsal¬ gorithmus, der vor der Berechnung des Hash-Werts ausgeführt wird. Darüber hinaus weist das Reference-Element ein als Uni- form-Resource-Identifier (URI) bezeichnetes Attribut zur Re- ferenzierung eines zu signierenden bzw. eines signierten Ob¬ jekts auf.
Im vorliegenden Ausführungsbeispiel wird ein signiertes com- puterbasiertes Objekt zur Ablage in einem Archiv 2 in eine als Item-Wrapper 21 bezeichnete Datenstruktureinheit einge¬ bettet. Die Datenstruktureinheit 21 umfaßt ein Signaturob¬ jekt-Element 22, ein Element 23 für ein signiertes Objekt und ein Element 24 für einen Verweis auf die Archivsignatur 1. Die in die Datenstruktureinheit 21 eingebetteten Elemente 22 bis 24 können anhand im Transform-Element 181 spezifizierte Angaben extrahiert bzw. entpackt werden. Durch eine Verwen¬ dung von Datenstruktureinheiten für im Archiv gespeicherte Signaturobjekte und signierte Objekte ist eine einheitliche Darstellung und Behandlung dieser Objekte unabhängig vom In¬ halt signierter computerbasierter Objekte möglich. Eine Auf¬ gabe des Elements 23 für ein signiertes Objekt ist eine Be¬ reitstellung einer Unterstützung für abgesonderte (detached) PKCS#7/CMS-Signaturen, da bei diesen Signaturen signierte Ob- jekte nicht innerhalb eines Signaturobjekts referenziert wer¬ den. Auf diese Weise wird durch die Bereitstellung eines Ele¬ ments 23 für ein signiertes Objekt innerhalb der Datenstruk-
tureinheit 21 eine Verknüpfung zum Signaturobjekt 22 sicher¬ gestellt.
Eine Zusammenfassung aus einer Mehrzahl von computerbasierte Objekte eindeutig identifizierende Hash-Werten und einer ei¬ nen Verschlüsselungszeitpunkt bezeichnenden Zeitangabe wird mittels eines privaten Signaturschlüssels einer vertrauens¬ würdigen Instanz zumindest auszugsweise verschlüsselt. Im vorliegenden Ausführungsbeispiel bedeutet auszugsweise, daß für die Zusammenfassung aus einer Mehrzahl von computerba¬ sierte Objekte identifizierenden Hash-Werten und der den Ver¬ schlüsselungszeitpunkt bezeichneten Angabe ein eindeutig i- dentifizierender Wert beispielsweise mittels eines Hash- Algorithmus berechnet wird und der Hash-Wert mittels des pri- vaten Signaturschlüssels der vertrauenswürdigen Instanz ver¬ schlüsselt wird. Die den Verschlüsselungszeitpunkt bezeich¬ nende Angabe oder ein Verweis auf einen Zeitstempel 3 wird in ein weiteres Reference-Element 17 eingebettet. Eine Mehrzahl von Reference-Elementen 17 bis 19 wird in ein Manifest- Element 16 der XML-Archivsignatur eingebettet. Das Manifest- Element 16 umfaßt damit Angaben bzw. Referenzen auf Angaben hinsichtlich einer Zeitangabe für eine Erstellung einer Ar¬ chivsignatur und von der Archivsignatur 1 erfaßte signierte Objekte. Für das Manifest-Element 16 wird ein Hash-Wert be- rechnet und dieser mittels des privaten Signaturschlüssels der vertrauenswürdigen Instanz zur Erstellung einer Archiv¬ signatur verschlüsselt.
Das Manifest-Element 16 ist in ein Object-Element 15 der XML- Archivsignatur 1 eingebettet und über ein in ein Signedlnfo- Element 12 der XML-Archivsignatur 1 eingebettetes Reference- Element 123 zugreifbar. Das Signedlnfo-Element 12 umfaßt ne¬ ben dem Reference-Element 123 ein CanonicalizationMethod-
Element 121 und ein Signature-Method-Element 122. Das Canoni- calizationMethod-Element 121 dient einer Angabe eines Kanoni- sierungsalgorithmus, der auf das Signedlnfo-Element 12 ange¬ wendet wird, bevor die Archivsignatur berechnet wird. Eine Anwendung eines Kanonisierungsalgorithmus vor Berechnung der Archivsigatur kann sinnvoll sein, da Hash-Algorithmen auf Ba¬ sis einzelner Bits arbeiten und sich beispielsweise zwei XML- Dokumente in ihrer physischen Repräsentation unterscheiden können, aber dennoch logisch äquivalent sind. Zu Unterschie- den die den Inhalte eines Dokuments nicht beeinflussen, zäh¬ len beispielsweise verwendeter Zeichensatz, Zeilenumbrüche, leere Tags, Reihenfolge der Attribute oder Kommentare.
Durch das Signature-Method-Element 122 wird ein bei der Be- rechnung der XML-Archivsignatur 1 verwendeter Verschlüsse- lungsalghoritmus spezifiziert. Der Wert der XML-Archivsig¬ natur wird in ein SignedValue-Element 13 eingetragen. Optio¬ nal kann eine Angabe eines öffentlichen Schlüssels der ver¬ trauenswürdigen Instanz ergänzt werden. Diese Angabe wird in ein Keylnfo-Element 14 eingebettet und umfaßt zur Validierung der XML-Archivsignatur 1 verwendete Informationen.
Das in das Signedlnfo-Element 12 eingebettete Reference- Element 123 umfaßt ein DigestMethod-Element 124 und ein Di- gestValue-Element 125. Das DigestMethod-Element 125 dient wiederum zur Spezifikation eines Hash-Algorithmus, während das DigestValue-Element 125 den über das Manifest-Element 16 berechneten Hash-Wert umfaßt. Das Reference-Element 123 weist außerdem ein URI-Attribut auf, das auf das Object-Element 15 oder das Manifest-Element 16 verweist. Das Signedlnfo-Element 12, das SignedValue-Element 13, das Keylnfo-Element 14 und das Object-Element 15 werden schließlich zur Erzeugung der XML-Archivsignatur 1 in ein Signature-Element 11 eingebettet.
Um einen gegenseitigen Querverweis zwischen der XML-Archiv¬ signatur 1 und dem Archiv 2 herzustellen weist das in das Ma¬ nifest-Element 16 eingebettete Reference-Element 18 einen Verweis auf die als Item-Wrapper bezeichnete Datenstruktur- einheit 21 auf. Dieser Verweis dient einer Identifizierung von der XML-Archiv-Signatur 1 umfaßte signierter computerba¬ sierter Objekte. Demgegenüber dient das in die Datenstruktur- einheit 21 eingebettete Element für einen Verweis auf die XML-Archivsignatur 1 einer Identifikation eines Zeitstempels 3 für das jeweilige Signaturobjekt bzw. signierte computerba¬ sierte Objekt.
Eine mittels des vorangehend beschriebenen Verfahrens erzeug- te elektronische Signatur wird überprüft, indem zunächst für ein signiertes computerbasiertes Objekt ein Hash-Wert berech¬ net wird. Anschließend wird der in das SignedValue-Element 13 eingebettete Wert der XML-Archivsignatur 1 die eine Mehrzahl von computerbasierter Objekte eindeutig identifizierenden Hash-Werten und eine den Verschlüsselungszeitpunkt bezeich¬ nende Zeitangabe umfaßt, mittels des öffentlichen Schlüssels der vertrauenswürdigen Instanz entschlüsselt. Nach erfolgrei¬ cher Überprüfung des entschlüsselten Archivsignaturwerts und eines über das Manifest-Element 16 berechneten Hash-Werts auf Übereinstimmung wird der dem jeweiligen signierten computer¬ basierten Objekts zugeordnete Hash-Wert aus der XML-Archiv¬ signatur 1 extrahiert. Abschließend werden der berechnete und der aus der XML-Archivsignatur 1 extrahierte Hash-Wert auf Übereinstimmung verglichen. Falls sich eine Übereinstimmung ergibt, ist die Signatur in Bezug auf das jeweilige von der XML-Archivsignatur 1 umfaßte computerbasierte Objekt vali- diert.
Die vorangehend beschriebenen Verfahren zur Erzeugung und Überprüfung elektronsicher Signaturen sind bevorzugt durch ein Steuerungsprogramm zur Erzeugung bzw. Überprüfung elekt¬ ronischer Signaturen implementiert. Ein derartiges Steue- rungsprogramm ist in einen Arbeitsspeicher einer Programmab¬ laufsteuerungseinrichtung ladbar und führt die vorangehend beschriebenen Schritte zur Erzeugung bzw. Überprüfung einer elektronischen Signatur aus, wenn es in der Programmablauf¬ steuerungseinrichtung abläuft.
Die vorliegende Erfindung weist den Vorteil auf, das die Be¬ arbeitungskomplexität zur Erstellung einer Archiv-Signatur lediglich im wesentlichen linear von der Anzahl archivierter Signaturobjekte abhängt, da neben dem Hash-Wert für die Ar- chivsignatur lediglich jeweils ein Hash-Wert für ein archi¬ viertes signiertes Objekt zu berechnen ist. Des weiteren setzt die Validierung einer Archivsignatur in Bezug auf ein individuelles signiertes Objekt lediglich die Kenntnis des jeweiligen signierten Objekt, nicht aber die Kenntnis weite- rer von der Archivsignatur erfaßter signierter Objekte als solche voraus .
Die Anwendung der vorliegenden Erfindung ist nicht auf das beschriebene Ausführungsbeispiel beschränkt.