-
Die Erfindung betrifft die Sicherung
von Journaldaten in Kassensystemen und Selbstbedienungsstationen.
-
In Kassensystemen ist es in der Regel
vorgeschrieben, einen Teil der Daten permanent und gegen Verfälschung
gesichert zu dokumentieren. Diese Daten sind insbesondere die Beträge, die
von der Kasse quittiert wurden. Hierzu wird im einfachsten Falle
ein Papierstreifen benutzt, auf den die Daten gedruckt werden. Diese
Einrichtung wird üblicherweise
Journal genannt. Ein solches findet sich auch in Selbstbedienungsstationen,
beispielsweise Geldautomaten, um die Auszahlvorgänge und -Beträge zu dokumentieren.
Für das
Journal und den Bon sind daher zwei Druckwerke oder ein Drucker
mit zwei Druckstationen erforderlich. Ein Wegfall des Druckers für das Journal
wird angestrebt.
-
In der Patentanmeldung
DE 44 35 902 A1 ist beschrieben,
daß zu
diesem Zweck auch eine Speicherkarte mit Verarbeitungsfunktion,
häufig
als Smartcard oder Chipkarte bezeichnet, verwendbar ist. In der
Patentschrift
DE 44
37 460 C2 ist ein solcher Modul zwischen den Steuerung
und Belegdrucker geschaltet. In dem Modul wird das Journal geführt. Durch
die Verarbeitungsfunktion der Karte ist sichergestellt, daß nur Information
hinzugefügt,
aber keine verändert
oder gelöscht
werden kann. Der Modul stellt damit einen Nur-Schreib-Speicher dar. Das Betriebsprogramm
der Kasse braucht dann nicht zertifiziert und geschützt zu werden;
diese Funktion übernimmt
die Speicherkarte. Dabei sind dann die Daten fest mit dem Datenträger, hier
der Speicherkarte, verbunden. In einigen Anwendungsbereichen ist
dies ein Vorteil.
-
Allerdings ist die Kopplung der Daten
an die Speicherkarte auch von Nachteil, indem beispielsweise nicht
auf einfache Art die Daten gegen Verlust gesichert werden können und
weil die Speicherkapazität
einer Speicherkarte relativ gering ist. Daher wird eine Lösung benötigt, die
die fälschungssichere Speicherung
von Daten eines Journals mit herkömmlichen wiederbeschreibbaren
Massenspeichern erlaubt, auch wenn die die Massenspeicher benutzenden
Betriebsprogramme nicht zertifiziert und gegen Veränderung
geschützt
sind.
-
Für
die Sicherung gegen Verfälschung
von Daten sind eine Reihe von kryptographischen Maßnahmen
als allgemein bekannt anzusehen. Dies betrifft insbesondere die
Bildung von kryptographischen Prüfsummen,
auch Signatur genannt, die eine Verfälschung von Daten praktisch
unmöglich
machen. Hier sei insbesondere die Verwendung des 'data encryption
standard', DES, genannt, mit dem ein 'message authentification code',
MAC, gebildet werden kann. Für
die Sicherung gegen Verfälschung
gleichfalls brauchbar sind Verfahren, die als 'one way hash functions',
im folgenden kurz Hashfunktion genannt, bekannt sind. Das Ergebnis
der Berechnung einer Hashfunktion wird auch kurz als Hash bezeichnet.
Indem an die Daten der geheime Schlüssel logisch angehängt (oder
vorgestellt oder eingefügt)
wird, kann der Hash nur mit Kenntnis des geheimen Schlüssels erzeugt
bzw. geprüft
werden. In beiden Fällen
ist ein und derselbe geheim zu haltende Schlüssel sowohl für die Bildung
als auch für
die Prüfung
der Signatur notwendig.
-
Ferner sind als asymmetrisch bezeichnete Verfahren
bekannt, bei denen eine Signatur mit einem ersten geheimen Schlüssel gebildet
und mit einem zweiten öffentlichen,
von dem ersten verschiedenen, Schlüssel geprüft wird. Diese und andere kryptographische
Verfahren werden im folgenden als bekannt vorausgesetzt und können gegebenenfalls den
bekannten Lehrbüchern über Kryptographie,
so z.B. dem Band 'Applied Cryptography' von Bruce Schneier, Wiley & Sons 1996, entnommen
werden.
-
In der Patentschrift
US 6,199,049 B1 wird vorgeschlagen,
ein elektronisches Journal bereitzustellen. Dabei werden die Journaldaten
in einem als Puffer dienenden nichtflüchtigen Speicher (NVRAM) akkumuliert
und blockweise auf einen Massenspeicher geschrieben, der sich außerhalb
der Kasse befinden kann. Über
die geschriebenen Blöcke
wird eine inkrementelle Prüfsumme
('running message digest') gebildet. Deren Authentizität wird durch
eine Signaturbildung kryptographisch gesichert, wobei ein asymmetrisches
('public key') Verfahren bevorzugt wird und der öffentliche Schlüssel mit
in der Datei abgespeichert wird. Es wird also eines der bekannten kryptographischen
Verfahren zur Integritätssicherung durch
kryptographische Signaturen auf eine Journaldatei angewendet. Das
für den
sicheren Einsatz kryptographischer Methoden notwendige Schlüsselmanagement
wird nicht beschrieben. Es bleibt daher unklar, wie der geheime
Schlüssel
gegen Ausspähung gesichert
wird und die Authentizität
des in der Journaldatei gespeicherten öffentlichen Schlüssels gesichert
wird. Da die Bildung der Signatur in der Kasse selbst erfolgt, muß weiterhin
die Betriebssoftware gegen Manipulation gesichert werden, beispielsweise durch
Plombieren der Kasse. Von Vorteil ist es, daß die Journaldatei auf einen
betriebsmäßig auswechselbaren
Speicher, z.B. eine Diskette oder ein IBM Microdrive geschrieben
werden kann.
-
Für
die Sicherung eines Journals in einem nicht gesicherten Steuerrechner
ist Anwendung der bekannten Verfahren nicht unproblematisch. Wenn die
kryptographischen Algorithmen wie andere Programme auch auf dem
Steuerrechner der Kasse aus geführt
werden, kann eine Verfälschung
der Daten nicht ausgeschlossen werden, da die kryptographischen
Signaturen jederzeit neu gebildet werden können. Dies gilt auch, wenn
die Bildung der Signatur durch einen autonomen und gegen Manipulation
gesicherten kryptographischen Modul erfolgt, wie er aus dem Nachbargebiet
der Geldausgabeautomaten bekannt ist. Zwar ist dann sichergestellt,
dass der geheime Schlüssel
nicht exponiert ist und dass daher auch die Singnatur in dem kryptographischen
Modul gebildet wurde. Eine entsprechende manipulierte Steuerung
kann aber nach wie vor manipulierte Daten zur Signierung bereitstellen.
-
In der Patentschrift
US 5,136,646 wird ein Verfahren beschrieben,
mit dem Dokumente mit einem Zeitstempel versehen werden können. Dazu wird
auf das Dokument eine Hashfunktion angewendet, deren Ergebnis an
eine Zentralstelle ('time stamping authority', TSA) geschickt wird,
welche einen Zeitstempel und den Hash-Wert der vorhergehenden Registrierung
hinzufügt,
darüber
einen neuen Hash bildet und das Ergebnis als Bestätigung zurückschickt.
Jede Anfrage wird bei der TSA aufgezeichnet und aufbewahrt. Diese
Lösung
ist offenbar bei Kassen und Selbstbedienungssystemen wegen der permanenten
Netzwerkanbindung und großen
Datenmenge in der TSA nicht allgemein anwendbar ist.
-
In der Patentschrift
US 5,978,475 wird diese Veröffentlichung
in Bezug auf ein 'Log' genanntes Journal aufgegriffen. Dabei wird
festgestellt, daß damit
eine Kette von Signaturen entsteht, deren Verfälschung ab einer bestimmten
Stelle erfordere, daß alle
darauf folgenden Signaturen neu gebildet werden. Auch diese Lösung ist
in Kassen und Selbstbedienungssystemen nicht anwendbar, da auch
hier die lokale Verfälschbarkeit
gegeben ist.
-
Die oben genannte Aufgabe der fälschungssicheren
Speicherung von Journaldaten mit herkömmlichen wiederbeschreibbaren
Massenspeichern wird durch die Erfindung dadurch gelöst, daß die kryptographische
Signatur auf dem Wege von dem Steuerprogramm der Kasse bzw. der
Selbstbediendungsstation unmittelbar vor dem Ausdruck gebildet wird.
Es handelt sich also um Drucker, insbesondere Belegdrucker, welche über eine
Schnittstelle auszudruckende Daten empfangen und daraufhin eine
kryptographisch sichere Signatur dieser Daten zurücksenden.
Die Signatur umfaßt
vorzugsweise eine Laufnummer oder einen Zeitstempel.
-
Weitere Merkmale und Vorteile der
Erfindung ergeben sich aus der folgenden Beschreibung, welche in
Verbindung mit den beigefügten
Zeichnungen die Erfindung an Hand eines Ausführungsbeispiels erläutert.
-
Kurzbeschreibung
der Zeichnungen
-
Es zeigen
-
1 schematisch
den Aufbau einer Kasse mit kryptographisch gesichertem Journal.
-
Beschreibung
einer Ausführungsform
der Erfindung
-
In 1 ist
schematisch die Struktur einer Kasse dargestellt, in der die Erfindung
benutzt wird. Die Umrandungen dienen der Darstellung der Struktur
und implizieren keine spezielle Modularisierung.
-
Die Kasse benutzt eine Steuerung 10 und – nicht
dargestellt – Anzeigen
und Eingabetastaturen. Sie umfast ferner eine Schnittstelle 11,
an die ein Kabel 19 angeschlossen ist.
-
Bei modularem Aufbau mittels steckbarer Moduln
kann das Kabel 19 entfallen.
-
Zu der Kasse gehört ein Drucker 20 für Belege.
Dieser hat eine der Schnittstelle 11 entsprechende Schnittstelle 24 und
ein Druckwerk 21 für
Belege. Ferner umfasst der Drucker eine Steuerung 22, die sowohl
mit der Schnittstelle 24 als auch dem Druckwerk 21 verbunden
ist.
-
Ferner ist in dem Drucker eine kryptographische
Einheit 30 enthalten, die einen kryptographischen Prozessor 31 und
einen Schlüsselspeicher 32 umfasst.
Die kryptographische Einheit ist bevorzugt als Modul aufgebaut,
da in vielen Fällen
das Beschreiben des Schlüsselspeichers
in einer spezielle gesicherten Umgebung erfolgt und der so initialisierte Modul,
bei dem der bzw. die Schlüssel
nicht mehr entnehmbar sind, in den vorbereiteten Drucker eingebaut
wird. Letzteres kann ggf. erst beim Kunden erfolgen. Zweckmäßig der
Modul in der Form einer Chipkarte oder einer PCMCIA/PC-CARD Einheit
gestaltet.
-
In der Kasse 10 enthalten
und in 1 nur zur besseren
Darstellung außerhalb
gezeichnet ist ein Massenspeicher 13, auf dem Journalsätze 14 gespeichert
werden.
-
Der Ablauf eines Belegdrucks geschieht
wie folgt: Durch Bedienereingaben 15 werden Daten erzeugt,
die über
einen passenden (Software-)Journal-Modul 12 an die Schnittstelle 11 weitergegeben werden
und von dort über
das Kabel 19 zu der Schnittstelle 24 des Druckers
gelangen. Sie werden dort von der Steuerung in zwei Datenströme aufgeteilt.
Der Druckdatenstrom 25a gelangt zum Druckwerk und wird
ausgedruckt. Als Druckwerk wird in der Regel ein Mosaikdrucker eingesetzt,
der die zu druckende Information aus Pixeln zusammensetzt. Die Umwandlung
der über
die Schnitt stelle empfangenen codierten (alphanumerischen) in uncodierte
Pixeldaten erfolgt entweder in der Steuerung 22 oder im Druckwerk 21.
-
Die Steuerung leitet gleichzeitig
die empfangenden Daten oder einen vorbestimmten Teil derselben als
zu signierende Daten 25b an den kryptographischen Modul 30 weiter.
Dieser bestimmt eine Signatur 26 über die zu signierenden Daten 25b und
gibt diese an die Steuerung zurück,
welche diese Daten über
die Schnittstellen 11 und 24 zurück zur Kasse schickt.
-
In der Kasse 10 empfängt der
Journal-Modul 12 die Signatur 26 und speichert
sie zusammen mit den über
die Schnittstelle 11 an den Drucker 20 gesendeten
Daten in der Journaldatei. Das Format der Speicherung ist dabei
so gestaltet, dass die Signaturen den Journaldaten leicht zugeordnet
werden können.
Am einfachsten erfolgt dies, indem die Signatur an die jeweiligen
Journaldaten angehängt
wird.
-
Falls die Schnittstellen 11, 24 eine
schnelle bidirektionale Übertragung
zulassen, wie es sowohl bei Verwendung des 'universal serial bus'
USB als auch bei der Variante EPP der herkömmlichen Druckerschnittstelle
'centronics' der Fall ist, wird bevorzugt nicht nur die Signatur,
sondern der gesamte Journaldatensatz zurückübertragen. Dies hat den programmiertechnischen
Vorteil, dass der Bezug von zu signierenden Daten und Signatur nicht
erst in dem Journal-Modul 12 wiederhergestellt werden muss.
-
In einer ersten, bevorzugten Variante
wird durch die Druckersteuerung 22 bestimmt, welche Teile
des Ausdrucks relevant sind und in einen Journaldatensatz übernommen
werden. Hierzu können Steuercodes,
wie sie für
die Formatierung be kannt sind, verwendet werden. Diese Teile werden
von der Druckersteuerung zu einem Journaldatensatz verbunden und
mittels des kryptographischen Moduls 30 signiert. Sodann
wird die Signatur 26 an den Datensatz angehängt und
dieser vollständige
Journaldatensatz an die Kasse zwecks Ablage auf dem Massenspeicher 13 zurückgeschickt.
In dieser wie auch in den folgenden Varianten braucht lediglich
der Drucker zertifiziert, geprüft
und gegen Modifikationen der Betriebssoftware gesichert zu sein.
Die Software der eigentlichen Kasse 10 incl. Journal-Modul 12 muss nicht
gegen Modifikationen gesichert werden.
-
Durch die Signatur ist zunächst nur
die Integrität
des einzelnen Datensatzes gesichert. Für ein elektronisches Journal
ist jedoch die Konsistenz und Integrität des Gesamtbestands relevant.
Daher wurde in der o.g. Patentschrift
US
6,199,049 auch die Signatur über den den gesamten Datenbestand
des Journals gebildet. Insbesondere soll verhindert werden, dass
einzelne Datensätze
unbemerkt gelöscht werden
können.
-
Eine erste Lösung gemäß der Erfindung besteht darin,
in den Teil des Journaldatensatzes, über den die Signatur gebildet
wird, auch die Signatur des vorherigen Datensatzes aufzunehmen,
die beispielsweise von dem Journal-Modul in den Datensatz eingefügt wird
und ggf. der Journaldatei entnommen werden kann. Damit kann dann
ein einfache Einfügen oder
Löschen
oder beides einfach erkannt werden. (Die einfache Manipulation eines
einzelnen Datensatzes wird ja bereits durch die Signatur erkennbar gemacht.)
Soll im Rahmen einer Manipulation das Löschen oder Einfügen mehrerer
Datensätze
unentdeckt bleiben, sind die nachfolgenden nicht gelöschten Datensätze erneut
zu signieren, was bei der vorliegenden Erfindung nur durch Ausdrucken
der entsprechenden Belege möglich
ist. Wie später
beschrieben wird, kann dem durch einen Abdruck der Signatur oder
eines 'Fingerabdrucks' derselben auf dem Bon begegnet werden. Diese
bereits ein großes Maß an Fälschungssicherheit
bietende Lösung
hat den Vorteil, dass der Drucker und dessen kryptographischer Modul
keinen nichtflüchtigen
Speicher benötigen.
-
Eine weitere Lösung besteht darin, dass der kryptographische
Modul oder auch die versiegelte Steuerung des Druckers über nichtflüchtigen
Speicher verfügt.
In diesem kann beispielsweise die jeweils letzte Signatur gespeichert
und zur Bildung der Signatur des nächsten Datensatzes mitverwendet werden,
bevorzugt durch Einfügen
in diesen Datensatz. Der zuvor beschriebene Fall der Manipulation wird
somit wirksam verhindert.
-
An Stelle der jeweils letzten Signatur
kann auch ein Wert gespeichert werden, der im folgenden als Laufnummer
bezeichnet wird. Diese Laufnummer wird nach jedem Erstellen einer
Signatur weitergeschaltet und fließt bei der Bildung der Signatur
mit ein. Dies wird erreicht, indem beispielsweise die Laufnummer
in ein vorbestimmtes Feld des Datensatzes vor Bildung der Signatur
eingesetzt wird. Falls nicht der kryptographische Modul den gesamten,
mit der jeweiligen Laufnummer modifizierten und um die Signatur
ergänzten
Datensatz zurückgibt,
muss zumindest zur Synchronisation von dem kryptographischen Modul
der aktuelle Stand der Laufnummer abfragbar sein. In der Regel wird
die Lösung
so aussehen, dass der zu signierende Datensatz in den kryptographischen
Modul geschrieben wird. Die Kryptographiefunktionen bilden derweil
die Signatur, wozu eine Speicherung des gesamten Datensatzes nicht notwendig
ist. Anschließend
wird der Eingang auf die gespeicherte Laufnummer umgeschaltet und
damit diese logisch an den Datensatz angehängt. Zurückgegeben an die Steuerung 22 wird
dann die Laufnummer und die Signatur, die von der Steuerung ihrer seits
an den Datensatz angehängt
werden. Dabei ist es unerheblich, ob der Datensatz im Speicher gepuffert
oder bereits über
die Schnittstelle 24 zurückgesendet wurde. Als Laufnummer
wird bevorzugt eine jeweils um Eins erhöhte ganze Zahl verwendet, weil
damit ein Aussetzen der Reihenfolge der Journaldatensätze unmittelbar
sichtbar ist. Genauso gut kann allerdings auch eine Pseudo-Zufallszahl
nach dem bekannten Modulo-Verfahren (siehe z.B. das Standardwerk
von D.E.Knuth, The Art of Computer Programming) verwendet werden,
die eine Permutation der ganzen Zahlen erzeugt. Für eine vollständige Kontrolle
der Journaldatei muss ohnehin der gesamte Datenbestand geprüft werden,
so dass die Kontrolle der Sequenz der Pseudo-Zufallszahlen nicht
ins Gewicht fällt.
-
Alternativ oder zusätzlich wird
die Steuerung 22 oder der Kryptographie-Modul 30 mit
einer Tagesuhr versehen, deren jeweiliger Stand in gleicher Art wie
eine Laufnummer in die Bildung der Signatur mit einbezogen wird.
Diese Variante hat gleichfalls den Vorteil eine raschen Überprüfbarkeit
der Journaldatei. Zudem kann die Druckersteuerung so gestaltet werden,
dass Uhrzeit und Datum gar nicht von der Kasse 10 selbst
in die auszudruckenden Daten gestellt werden, sondern hierfür lediglich
Stellvertretersymbole eingesetzt werden und beides von der Druckersteuerung
ersetzt wird. In einem solchen Fall ist die Rücksendung des gesamten Journaldatensatzes besonders
sinnvoll. Allerdings ist dann ein Vorgehen zum Stellen der Uhr zu
bestimmen, das eine Manipulation erschwert. Eine einfache Lösung besteht
darin, nur einen Stellvorgang pro 24 Stunden zuzulassen.
-
Eine andere Lösung besteht darin, dass die Stellvorgänge in einer
Diagnosedatei des Druckers oder des kryptographischen Moduls abgelegt
werden und auf Anforderung über
das Druckwerk mittels eines Belegs ausgedruckt werden. Auf diese Art
können
auch alle anderen besonderen Ereignisse, beispielsweise der Überlauf
der Laufnummer oder der Wert der letzten Signatur ausgegeben werden.
-
Die Zählnummer, der Zeitstempel oder
die Kombination von beiden werden auch unter dem Begriff Serialisierungsfeld
zusammengefasst.
-
Für
die Bildung einer Signatur sind eine Reihe von kryptographischen
Verfahren allgemein bekannt, die entweder mit einem oder mit zwei
Schlüsseln
arbeiten. Erste sind auch als 'private key' Verfahren bekannt. Hierbei
wird derselbe Schlüssel
zur Bildung der Signatur wie auch zu deren Prüfung benutzt. Die Signatur
ist nur solange nicht fälschbar,
wie der private Schlüssel
geheim gehalten werden kann. Dies ist beispielsweise der Fall, wenn
der kryptographische Modul 30 den Schlüssel nicht auslesbar in dem
Schlüsselspeicher 32 speichert,
die Kontrollstelle ihn in das Modul einschreibt und bei der Prüfung einen
Modul verwendet, in dem eine identische Kopie vorhanden ist.
-
In einer Variante der Erfindung erzeugt
der kryptographische Modul einen zufälligen privaten Schlüssel und
verwendet diesen sodann zur Signierung. Soll die Signatur geprüft werden,
so wird der kryptographische Modul veranlasst, den Schlüssel auszugeben
und fortan diesen nicht mehr zu verwenden, sondern einen neuen zu
erzeugen. Dies ist dann sinnvoll, wenn das elektronische Journal
von einer vertrauenswürdigen
Person von dem Massenspeicher kopiert und anschließend mit
anderen Maßnahmen
sicher verwahrt wird. Das Journal kann dann auf dem Massenspeicher
gelöscht
werden. In diesem Fall kann der Ausdruck mit dem zugehörigen, nun nicht
mehr geheimen, Schlüssel
der gesicherten Kopie des Journals zugeordnet werden.
-
Falls die Verarbeitungsleistung des
kryptographischen Moduls es zulässt,
wird besser die zwei unterschiedliche Schlüssel verwendende 'public key' Kryptographie
verwendet. Hierbei muss der Schlüssel
zur Bildung der Signatur logischerweise gegen Auslesen aus dem kryptographischen
Modul 30 gesichert gespeichert sein. Der zweite, öffentliche Schlüssel hingegen
kann beliebig ausgelesen und ungeschützt verbreitet werden, insbesondere
auch in die Journaldatei aufgenommen werden. Auch hier ist es von
Vorteil, wenn über
ein Kommando der Drucker 20 veranlasst werden kann, den öffentlichen
Teil des derzeitig verwendeten Schlüssels auf dem Druckwerk 21 auszugeben.
Denn bei der 'public key' Kryptographie wird das Problem der Geheimhaltung durch
das (leichter beherrschbare) Problem ersetzt, dass die Authentizität des öffentlichen
Schlüssels
zu sichern ist. Durch die Methode des Ausdrucks auf einem ansonsten
gegen Manipulationen gesicherten Drucker ist diese Authentizität einfach
feststellbar.
-
In der bevorzugten Ausführungsform,
bei der der kryptographische Modul 30 leicht auswechselbar ist,
kann ein Prüfer
auch denselben vorübergehend entnehmen,
in einem eigenen Gerät
den öffentlichen Schlüssel auslesen
und damit dann die Journaldatei prüfen. In diesem Fall wird der
kryptographische Modul mit optischen Echtheitsmerkmalen ausgestattet sein
oder über
einen weiteren Schlüsselspeicher
und ein kryptographisches Verfahren zur Identitäts- bzw. Authentizitätskontrolle
die Echtheit nachweisen.
-
Die oben angegebenen Variante, bei
der der kryptographische Modul den geheimen Schlüssel als Zufallszahl selbst
bildet, ist bei Verwendung von 'public key' Kryptographie wesentlich
besser anwendbar, weil der kryptographische Modul nur zur Bekanntgabe
des öffentlichen
Schlüssels
ausgestattet sein muss. Es wird gar keine Möglichkeit vorgesehen, je den privaten
Schlüssel
zu setzen oder nach außen
zu geben. Es wird dann ein nicht weiter vorbereiteter Modul eingesetzt
und über
ein spezielles Kommando veranlasst, den bisherigen geheimen Schlüssel durch
einen neuen zu überschreiben
und hernach den zugehörigen öffentlichen
Schlüssel
auszugeben. Das Ausgeben des öffentlichen
Schlüssels kann
beliebig häufig
wiederholt werden. Der öffentliche
Schlüssel
wird erforderlichenfalls in einer Meldung über die Inbetriebnahme an die
zuständige
Behörde
weitergereicht.
-
Bei der Bildung von privaten Schlüsseln ist es
von großer
Bedeutung, dass eine nicht von außen reproduzierbare Zufallszahl
trotz der deterministischen Funktion des kryptographischen Moduls
gebildet werden kann, weil ansonsten der Suchraum für die Suche
des geheimen Schlüssels
wesentlich reduziert wird. Hierzu kann eine Erweiterung der Erfindung
verwendet werden, bei ein solcher Wert ständig gebildet wird und sowohl
die bisherigen Druck- und Signaturdaten als auch die Zeiten, zu
denen diese Daten übergeben
wurden, in Bezug auf eine innere Uhr in die Zufallszahl einfließen. Bei
der Neubildung wird dann einfach der nicht auslesbare Wert dieses Generators
genommen. Im Grunde wird der kryptographische Modul so gestaltet,
dass stets ein zukünftiger
geheimer Schlüssel
bzw. die dazu benötigte
Zufallszahl "auf Vorrat" gebildet und ständig auf eine von außen schwer
nachvollziehbare Art modifiziert wird.
-
Um die Betriebssicherheit zu erhöhen, wird eine
Bestätigung
des Empfangs der Signatur durch den Journal-Modul vorgesehen. Erst
nachdem der Journal-Modul den Empfang der Journaldaten, die Speicherung
auf dem Massenspeicher eingeschlossen, quittiert hat, wird der Belegausdruck
abgeschlossen. Damit wird verhindert, dass bei Speicherproblemen,
insbesondere bei gefüllter
Festplatte, Belege ohne Journaleintrag gedruckt werden. Diese Vorgehen
entspricht dem aus Datenbanken bekannten 'two-way commit' für den sicheren
Abschluss einer Transaktion.
-
In anderen Fällen kann ein umgekehrtes Vorgehen
erwünscht
sein, bei dem die Signatur erst zurückgeschickt wird, nachdem der
Beleg vollständig gedruckt
ist. Diese Lösung
kann mit der vorigen kombiniert werden, in dem zwei unterschiedliche
Signaturen gebildet werden; eine vor und eine nach dem Drucken.
Ob hierzu zwei Schlüssel
verwendet oder der Datensatz vorbestimmt, mindestens durch Änderung
eines Bits oder einfügen
eines Zeitzählers,
geändert
wird, ist dem Anwender überlassen.
Die Auswahl richtet sich ohnehin danach, welche Lösung von den
zulassenden Behörden
als angemessen angesehen wird.
-
In allen Fällen, in denen der Drucker
ohnehin über
einen Fiskalspeicher verfügt,
kann dieser selbstverständlich
verwendet werden, Laufnummern, Schlüssel und andere Ereignisse
gesichert abzulegen.
-
Für
Zwecke der Authentizitätssicherung
eines kryptographischen, insbesondere öffentlichen Schlüssels wird
eine als Fingerabdruck bezeichnete Technik verwendet. Ein öffentlicher
Schlüssel
ist meist mehr als 512 Bit lang und umfasst damit in druckbarer
Form mehr als 90 Zeichen. Bildet man jedoch einen Hashwert von z.B.
16 Hexadezimalziffern mittels einer Einwegfunktion, so kann dieser
verwendet werden, um mit hoher Wahrscheinlichkeit bei unterschiedlichen
Schlüssel
unterschiedliche Hashwerte zu erzeugen und so den direkten Vergleich
der Schlüssel
durch den Vergleich der als Fingerabdruck verwendeten Hashwerte
zu ersetzen. Diese Technik ist zum Beispiel anwendbar, indem der öffentliche Schlüssel in
der Journaldatei abgelegt wird. Bei der Prüfung der Journaldatei, die
ohnehin durch ein weiteres, geprüftes
Programm erfolgen muss, wird der Fingerabdruck des öffentlichen
Schlüssels
gebildet und angezeigt. Der Prüfer
benötigt
den Fingerabdruck, den er entweder mitgebracht hat oder von dem kryptographischen
Modul auf dem Druckwerk ausdrucken lässt. Stimmt der Fingerabdruck überein,
ist mit hoher Wahrscheinlichkeit der öffentliche Schlüssel der
richtige Schlüssel.
Ohne diese Maßnahme müsste der
gesamte öffentlichen
Schlüssel
verglichen werden. Die Anwendung auf die anderen oben beschriebenen
Fälle,
bei denen die Authentizität
des verwendeten Schlüssels
gesichert werden muss, ist ähnlich.
-
Eine Variante der Erfindung gibt
zusätzlich zu
den von der Steuerung gelieferten Daten auf den Beleg zusätzlich Daten
aus, die vom kryptographischen Modul bereitgestellt werden. Dies
ist im Falle einer Zählnummer
diese Zählnummer
oder die letzten Stellen der Zählnummer.
Damit kann zu einem gedruckten Beleg leicht der passende Journaleintrag gefunden
werden. Die oben angegebene Manipulation, bei der Einträge gelöscht und
die nachfolgenden neu erstellt werden und ggf. die gedruckten Belege vernichtet
werden, ist hier nicht mehr möglich,
da die Zählnummer
deutlich abweicht. Gleiches gilt, wenn ein Fingerabdruck des Signierschlüssels mit
ausgedruckt wird. Dies wird bevorzugt bei öffentlichen Schlüssen angewendet.
Bei privaten Schlüsseln
ist zwar ein direkter Rückschluss
auf den privaten Schlüssel
nicht möglich;
der Fingerabdruck erlaubt jedoch, sofern der Hash-Algorithmus schneller
ist als die Verschlüsslung
selbst, eine Beschleunigung eines direkten Angriffs.
-
Bislang bezog sich die Beschreibung
auf Varianten, in denen die Druckdaten alphanumerische Zeichen,
d.h. codierte Daten, und nicht Pixel, d.h. uncodierte Daten, waren.
Diese bevorzugte Ausführung benötigt wenig
Platz auf dem Journal und erleichtert die Extraktion der zu signierenden
Daten. Möglich
ist es auch, dass die Druckdaten bereits 'geren dert' sind und nur
noch Pixeldaten darstellen. Hier kann die Signatur über den
gesamten Bon gebildet werden und ggf. der gesamte Bon in graphischer
Form abgespeichert werden.
-
Eine weitere Variante der Erfindung
verwendet einen Drucker, bei dem sowohl die Druckersteuerung als
auch der kryptographische Modul auf einem auswechselbaren Einschub
untergebracht sind, der in Gänze
gegen Manipulation und bezüglich
des Schlüsselspeichers
gegen Ausspähung
gesichert ist ('tamper resistant'). Dieser Modul besitzt eine Verbindung
zu der Schnittstelle 24, über die codierte Daten geschickt
werden, und einen Ausgang zum Druckwerk, über den Pixeldaten geschickt
werden. In diesem Fall ist die Sicherung der Kabelverbindungen und
eine Versiegelung diese kombinierten Moduls gegen Austausch in vielen
Anwendungsfällen
nicht notwendig. Zwar kann der Benutzer leicht den Modul gegen einen
anderen austauschen, der dieselben Belege ausdruckt. Es ist einem
solchen Modul jedoch nicht möglich,
gültige
Journaldaten zu erzeugen, da der Modul nicht über den geheimen Schlüssel verfügt. In einigen
Anwendungsbereichen entfällt
damit jegliche Plombierung von Schnittstellen und Verbindungen,
da der Aufwand, um den Modul nachzubilden, in keinem Verhältnis zu
dem möglichen
Gewinn durch Manipulation des Journals steht.
-
Verbleiben die CPU und der Arbeitsspeicher außerhalb
des Moduls, wird ein solcher Modul bevorzugt als PCMCIA/PC-Card Einschub gestaltet
werden, der sowohl eine CD-ROM für
die Betriebssoftware als auch eine Schnittstelle für den kryptographischen
Modul bereitstellt. Hierfür
ist das bei der SCSI-Schnittstelle verwendete Protokoll gut geeignet, da
hierbei mehrere Geräte
unterschiedlicher Art ansprechbar sind. Da Software und kryptographischer Modul
getrennt ansprechbar sind, ist durch andere Maßnahmen sicherzustellen, dass
von der CPU nur die auf dem Modul gespeicherten Programme ausgeführt werden.
-
In Anlehnung an Journalspeicher,
die als Filtermodul auf die Schnittstelle 24 des Druckers
aufgesteckt und anschließend
durch Plombierung gegen Austausch gesichert werden, ist diese Lösung auch für den kryptographischen
Modul möglich.
Dazu wird ein Filtermodul mit einer einfachen Steuerung versehen,
die den Datenstrom zum Drucker überwacht
und von den relevanten Teilen durch den kryptographischen Modul
die Signatur wie beschrieben bilden lässt und zurückschickt oder in den Druckdatenstrom einfügt.
-
Die Erfindung hat den Vorteil, dass
die Journal-Datei oder Teile derselben jederzeit kopiert und über Datenträger oder
Datenfernübertragungsmittel verschickt
werden können.
So kann beispielsweise am Tagesende eine herkömmliche Diskette erstellt werden
oder am Tagesende die Tagesumsätze
per Datenfernverarbeitung an das zuständig Finanzamt übermittelt
werden. Jegliche Form der Datensicherung ist geeignet, um das Journal
gegen Verlust zu schützen.