[0001] Die Erfindung betrifft die Sicherung von Journaldaten in Kassensystemen und Selbstbedienungsstationen.
[0002] 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.
[0003] 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.
[0004] 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.
[0005] 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.
[0006] 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.
[0007] 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.
[0008] 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 ausgefü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.
[0009] 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.
[0010] 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.
[0011] 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.
[0012] 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
[0013] Es zeigen
- Fig. 1
- schematisch den Aufbau einer Kasse mit kryptographisch gesichertem Journal.
Beschreibung einer Ausführungsform der Erfindung
[0014] In Fig. 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.
[0015] 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.
[0016] Bei modularem Aufbau mittels steckbarer Moduln kann das Kabel 19 entfallen.
[0017] 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.
[0018] 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.
[0019] In der Kasse 10 enthalten und in Fig. 1 nur zur besseren Darstellung außerhalb gezeichnet
ist ein Massenspeicher 13, auf dem Journalsätze 14 gespeichert werden.
[0020] Der Ablauf eines Belegdrucks geschieht wie folgt:
[0021] 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
Schnittstelle empfangenen codierten (alphanumerischen) in uncodierte Pixeldaten erfolgt
entweder in der Steuerung 22 oder im Druckwerk 21.
[0022] 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.
[0023] 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.
[0024] 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.
[0025] 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 bekannt 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.
[0026] 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.
[0027] 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.
[0028] 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.
[0029] 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 ihrerseits 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.
[0030] 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.
[0031] 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.
[0032] Die Zählnummer, der Zeitstempel oder die Kombination von beiden werden auch unter
dem Begriff Serialisierungsfeld zusammengefasst.
[0033] 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.
[0034] 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.
[0035] 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.
[0036] 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.
[0037] 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.
[0038] 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.
[0039] 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.
[0040] 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.
[0041] 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.
[0042] 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.
[0043] 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.
[0044] 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 'gerendert'
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.
[0045] 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.
[0046] 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.
[0047] 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.
[0048] 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.
1. Drucker, insbesondere Belegdrucker, welcher über eine Schnittstelle auszudruckende
Daten empfängt, daraufhin über diese Daten oder einen vorbestimmten Teil davon eine
Signatur bildet und zumindest die Signatur über die Schnittstelle zurücksendet.
2. Drucker, insbesondere Belegdrucker, welcher über eine Schnittstelle auszudruckende
Daten empfängt, daraufhin über diese Daten oder einen vorbestimmten Teil davon eine
Signatur bildet und zusammen mit den über die Schnittstelle auszudruckenden Daten
die Signatur oder einen daraus bestimmten Fingerabdruck ausdruckt.
3. Drucker nach einem der Ansprüche 1 oder 2, wobei die Daten, über die die Signatur
gebildet wird, um ein im Drucker bereitgestelltes Serialisierungsfeld ergänzt werden.
4. Drucker nach Anspruch 3, wobei das Serialisierungsfeld oder ein vorbestimmter Teil
davon über die Schnittstelle zurückgesendet wird.
5. Drucker nach einem der Ansprüche 1 oder 2, wobei die Daten ein Serialisierungsfeld
enthalten, welches im Drucker überprüft wird und die Bildung der Signatur bei fehlerhaften
Serialisierungsfeld unterdrückt wird.
6. Drucker nach einem der Ansprüche 3 bis 5, wobei das Serialisierungsfeld eine fortlaufende
Nummer oder deren Permutation umfasst.
7. Drucker nach einem der Ansprüche 3 bis 6, wobei der Drucker eine autonome Uhr umfasst
und in dem Serialisierungsfeld ein mit der Uhr gebildeter Zeitstempel enthalten ist.
8. Drucker nach einem der Ansprüche 3 bis 7, wobei das Serialisierungsfeld oder ein vorbestimmter
Teil davon mit ausgedruckt wird.
9. Drucker nach einem der vorherigen Ansprüche, bei dem die jeweils zuletzt gebildete
Signatur auf Anforderung auch mehrfach zurückgesendet wird.
10. Drucker nach einem der vorherigen Ansprüche, bei dem nach dem Zurücksenden der Signatur
ein Quittungssignal für die erfolgreiche Abspeicherung der Signatur erwartet wird
und der Ausdruck von dem Empfang des Quittungssignals bestimmt wird.
11. Drucker nach einem der vorherigen Ansprüche, bei dem die Signatur nach vollständigem
Druck der Daten zurückgesendet wird.
12. Drucker nach einem der vorherigen Ansprüche, wobei der Drucker eine Steuerung und
eine kryptographischen Einheit umfasst, welche einen geheimen Schlüssel enthält, und
die Steuerung diejenigen Daten, über die eine Signatur zu bilden ist, extrahiert,
an die kryptographische Einheit übergibt und von ihr die Signatur erhält.
13. Drucker nach dem vorigen Anspruch, wobei die kryptographische Einheit austauschbar
ist und vorzugsweise als Chipkarte ausgebildet ist.
14. Drucker nach dem vorvorigen Anspruch, wobei die Steuerung, zumindest jedoch deren
Programmspeicher, und die kryptographische Einheit zusammen in einem gemeinsamen Modul
untergebracht sind, der manipulationsgeschützt gekapselt ist.
15. Drucker nach einem der drei vorhergehenden Ansprüche, wobei die kryptographische Einheit
eine Signatur mittels eines Verfahrens bildet, bei dem die Prüfung über öffentliche
Schlüssel erfolgt, und eine Funktion umfasst, mittels derer der zu dem nicht auslesbar
gespeicherten privaten Schlüssel gehörige öffentliche Schlüssel auslesbar ist.
16. Drucker nach dem vorigen Anspruch, wobei die Steuerung eine Funktion umfasst, mittels
derer der öffentliche Schlüssel ausgelesen wird und über das Druckwerk ausgegeben
wird.
17. Drucker nach einem der beiden vorhergehenden Ansprüche, wobei statt oder zusätzlich
zu dem öffentlichen Schlüssel ein Fingerabdruck ausgegeben wird.
18. Drucker nach einem der Ansprüche 12 bis 17, wobei der kryptographische Modul eine
Funktion umfasst, mittels derer im kryptographischen Modul ein geheimer Schlüssel
gebildet und abgespeichert wird.
19. Drucker nach dem vorigen Anspruch, wobei ein Zufallswert vorgesehen ist, der durch
den Betrieb des Moduls ständig verändert wird und bei der Bildung des geheimen Schlüssels
verwendet wird.
20. Drucker nach einem der Ansprüche 12 bis 19, wobei der geheime Schlüssel ausgelesen
werden kann, jedoch hernach die Bildung weiterer Signaturen gesperrt ist, bis der
geheime Schlüssel ersetzt wird.
21. Filtermodul zur Bereitstellung eines Druckers nach einem der vorherigen Ansprüche,
wobei das Filtermodul einen Ausgang aufweist, der mit dem Eingang des Druckers verbunden
wird, und einen Eingang, der an Stelle des Eingangs des Druckers tritt.
22. Filtermodul nach dem vorhergehenden Anspruch, wobei die kryptographische Einheit austauschbar
ist und vorzugsweise als Chipkarte ausgebildet ist.
23. Filtermodul nach einem der beiden vorhergehenden Ansprüche, wobei der Filtermodul
unmittelbar mit dem die Schnittstelle des Druckers bildenden Anschluss verbunden wird
und Mittel zur Versiegelung der mechanischen Verbindung vorgesehen sind.