Meine Meinung

Nichts anderes als meine Meinung

Registrierkassensicherheitsverordnung in der Bananenrepublik Österreich

In Österreich tritt nächste Woche ein Gesetz in Kraft, welches grundsätzlich jeden Unternehmer unter Generalverdacht, ein Steuerbetrüger zu sein, stellt. Das heißt die Unschuldsvermutung, dass jemand, solange ihm nicht eine Schuld nachgewiesen wird, unschuldig ist, wird außer Kraft gesetzt. Ab dem ersten April muss jeder Unternehmer nachweisen, dass er in seiner Tätigkeit als Unternehmer nicht das Finanzamt betrügt. Es handelt sich hierbei nicht, wie viele jetzt denken wollen um einen Aprilscherz, sondern um die Realität, wie sie nicht nur auf der Webseite des Bundesministeriums für Finanzen sondern auch auf der Webseite der Wirtschaftskammer Österreich beschrieben ist.

Es geht hier nicht darum, ein Gesetz zu kippen oder um eine technische Möglichkeit eine lückenlose Aufzeichnung zu verhindern, sondern um die Art und Weise zu beschreiben wie ein Gesetz, umgesetzt werden soll. Wenn man sich den auf der Webseite des Bundesministeriums für Finanzen veröffentlichten Technischen Informationen für Registrierkassenhersteller und - Betreiber ansieht, dann kommt einem unweigerlich der Verdacht hoch, dass es sich hierbei nicht um eine Sicherheitsmaßnahme handelt, sondern um die Subventionierung oder Günstlingswirtschaft von Parteifreunden.

Lädt man sich das pdf-Dokument mit dem Titel Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung von der Webseite des Bundesministeriums für Finanzen - hier auch eine lokale Kopie des Dokuments - 2016-09-05-Detailfragen-RKSV-V1.2.pdf (1,11 mb), herunter, dann findet man gleich in der Überschrift eine Information wer für diese Hush/Pfusch Verordnung verantwortlich ist und welcher Verein wieder einmal dringend Geld benötigt:

BUNDESMINISTERIUM FÜR FINANZEN

A-SIT PLUS GMBH

VERSION 1.2 – 05.09.2016

Über die Firma A-SIT Plus GmbH findet man auf der Webseite von Firmen ABC, welche angeblich die Informationen von Creditreform, Europas größter Wirtschafts­auskunftei, zur Verfügung gestellt bekommt, folgende Informationen:

Screenshot der Webseite FirmenABC mit Informationen über A-SIT Plus GmbH

A-SIT Plus GmbH hat ganze zwei Mitarbeiter und der Verein mit dem Namen Firma Zentrum für sichere Informationstechnologie - Austria (A-SIT) ist Gesellschafter.

Über den Verein Zentrum für sichere Informationstechnologie - Austria (A-SIT) findet man eine Pressemitteilung vom 7. Juni 2011 auf der Webseite der APA/OTS vom 7. Juni 2011. In dieser steht unter anderem:

Der Vertreter des Finanzministeriums, Sekt. Chef i.R. Dr. Arthur Winter, hat aufgrund seiner Pensionierung in der Generalversammlung am 30.5. nach 12 Jahren seine Funktion als Präsident zurückgelegt. Zum neuen A-SIT Präsidenten wurde einstimmig sein Nachfolger im Finanzministerium, Sekt. Chef Dr. Gerhard Popp, gewählt.

Auch der Rechnungshof schreibt über den Verein Zentrum für sichere Informationstechnologie - Austria (A-Sit) in seinem Bericht vom September 2016:

Die in der Vereinsarbeit getätigten Aufwände lagen deutlich über den Erträgen; dies war darauf zurückzuführen, dass ein Großteil der Tätigkeiten aus dem gemeinnützigen Vereinszweck resultierte, bei denen kaum Erträge zu erzielen waren. Sie wurden daher über Mitgliedsbeiträge, die Haupteinnahmequelle des Vereins, finanziert.

Der Verein bedeckte Negativsalden über eine permanent vorzuhaltende Liquiditätsreserve. Diese Vorgangsweise war vom Präsidium, nicht jedoch von der dafür gemäß den Vereinsstatuten zuständigen Generalversammlung beschlossen worden.

Auch sonst erweckt das 69 Seitige Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung den Eindruck, dass eine Behörde, wie das Bundesministerium für Finanzen, keinen Wert auf Genauigkeit legt. Speziell das Finanzamt ist ja bekannt dafür das es selbst Unstimmigkeiten von einem einzigen Cent oder früher auch Groschen bis zur Unendlichkeit verfolgt und Fehler hart bestraft. Diese Genauigkeit wird allerdings nur von den Bürgern erwartet. Für das Finanzministerium selbst gilt diese Einstellung natürlich nicht. Manche sind eben gleicher als gleich!

Meiner Meinung nach wird der Volksmund "Bist nichts, kannst nichts, dann gehst zu Post oder Bahn. Versagst Du auch dort, dann gehst halt in die Politik" im Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung bestätigt. So findet man im aktuellen Dokument ab dem Ende der Seite 68:

9.2 Realistische Testszenarien
Eingeplant für eine spätere Version dieses Dokuments.

10 Use Cases
10.1 Inbetriebnahme der Kasse

Eingeplant für eine spätere Version dieses Dokuments.

10.2 Erstellung von Standardbelegen
Eingeplant für eine spätere Version dieses Dokuments.

10.3 Erstellung von Stornobelegen
Eingeplant für eine spätere Version dieses Dokuments.

10.4 Erstellen eines Nullbelegs (Jahres- Monats- Tagesbeleg, Sammelbeleg nach Ausfall, Schlussbeleg etc.)
Eingeplant für eine spätere Version dieses Dokuments.

10.5 Ausfall der Sicherheitseinrichtung
Eingeplant für eine spätere Version dieses Dokuments.

10.6 Exportieren des DEP Protokolls
Eingeplant für eine spätere Version dieses Dokuments.

Na ja, das Gesetz soll in 5 Tagen in Kraft treten. Wann denkt das Finanzministerium darüber nach die angekündigte spätere Version dieses Dokuments zu veröffentlichen? Jeder weiß, dass der Amtsschimmel kein Rennpferd ist, aber wenn man bedenkt, dass das Inkrafttreten des Gesetzes bereits einmal verschoben wurde, welche Qualitätsarbeit man von den österreichischen Politikern erwarten kann.

Der Ersteller des Dokuments dürfte auch ein fanatischer Anhänger von Oracle und dem JavaScript Object JSON sein, da man das Wort JSON in dem 69-seitigen Dokument immerhin 68 Mal findet. Dafür wurde allerdings auf eine Nachvollziehbarkeit der angeführten Beispiele komplett verzichtet. Vielleicht will man auch hier einen der Anbieter illegal bevorzugen, in dem man Informationen speziell auf einen Anbieter bzw. einem Pseudo-Standard zuschneidet?

So wurde auf Seite 31 ein Beispiel angeführt, wo der Eingabewert für den Hashalgorithmus aus dem Maschinenlesbaren Code berechnet werden soll:

Maschinenlesbarer Code: (Zeilenumbrüche aufgrund von Lesbarkeit):

_R1-AT0_DEMO-CASH-BOX524
_366587
_2015-12-17T11:23:44_34,77
_59,64
_38,13
_0,00
_0,00
_8MG8C1Kr7HA=
_20f2ed172daa09e5
_xTfZvkBSTr4=
_GeWps9kci+fUqKLymS1pHlIbv0L8Oek+v6TDmZj9Ffucb8yvSijqZ8LcBalV9lADM
XQ8U3itViKkd/i1Ba22BA==

Eingabewert für Hashalgorithmus – Kompakte Repräsentation der JWS-Signatur:
(Zeilenumbrüche aufgrund von Lesbarkeit):

eyJhbGciOiJFUzI1NiJ9.
X1IxLUFUMF9ERU1PLUNBU0gtQk9YNTI0XzM2NjU4N18yMDE1LTEyLTE3VDExOjIzOj
Q0XzM0LDc3XzU5LDY0XzM4LDEzXzAsMDBfMCwwMF84TUc4QzFLcjdIQT1fMjBmMmVk
MTcyZGFhMDllNV94VGZadmtCU1RyND0.
GeWps9kci-fUqKLymS1pHlIbv0L8Oek-v6TDmZj9Ffucb8yvSijqZ8LcBalV9lADMX
Q8U3itViKkd_i1Ba22BA

Anwenden des Hashalgorithmus/Extraktion des Verkettungswerts: Die kompakte Repräsentation der JWS-Signatur ist der Eingabewert für den Hashalgorithmus SHA-256 (im Falle von RK1). Aus dem Ergebnis werden 8 Bytes/64 Bits extrahiert (im Falle von RK1).

Kodierung des Verkettungswerts: Des extrahierte Wert wird BASE64-Kodiert. Dies entspricht in diesem Beispiel dem Wert 5HjRCx+XIz4=, der im Feld Sig-Voriger-Beleg abgelegt wird.

Es fehlt einfach auch eine Erklärung aus welchem Grund in der Zeile, welche mit GeWps9kci beginnt die rot markierten '+' Zeichen durch das Zeichen '-' zu ersetzen sind. Zusätzlich wurde der Schrägstrich (9. Zeichen vom Ende) durch ein Underscore Zeichen ersetzt.

Berechnet man den SHA-256 Hash in beiden Varianten, dann kommt man zu folgenden Ergebnissen:

Hashwert der Version mit '+': 0x63547C53D8F3602F311F886B9371C6DF21BB47A9F59FE146D5851D0BE43F33F6

Hashwert der Version mit '-': 0xAC03B70338750FDA9D51E79CF78633A02F75955A4C586F63E28A6A1CF3E05996

Leider fehlt im Beispiel jegliche Angabe, welche Bytes aus dem Hashwert zu extrahieren sind, damit man zu dem Base64 kodierten Ergebnis 5HjRCx+XIz4= kommt, welches in binärer Form den Wert 0xE478D10B1F97233E darstellt. Diese Binärwerte sind einfach im Ergebnis nicht enthalten!

Egal wie man die Eingabedaten verändert und welche Berechnungsmethode man anwendet, man kommt einfach nicht zu dem Beispiel angeführten Ergebnis, wenn man nicht das fehlerhafte Zwischenergebnis hernimmt. Was kann man denn von selbsternannten Security-Spezialisten denn anderes erwarten als dass sie sogar für Copy & Paste zu blöd sind?

Ganz unabsichtlich haben sie natürlich auch vergessen, dass man das "=" Zeichen, welches entsteht, nachdem man den Klartext in Base64 umgewandelt hat, aus dem Zwischenergebnis entfernen muss, um zum gleichen Ergebnis zu kommen. Was nun richtig oder falsch ist entzieht sich leider meiner Kenntnis. Vermutlich eignen sich die an dieser Vorgabe beteiligten Personen nicht einmal als Nachtwächter, nur um beim Thema Security zu bleiben.

Ein anderes Beispiel für den Dilettantismus, mit dem das angeführte Dokument erstellt wurde zeigt sich im Beispiel auf Seite 43. Hier werden im Klartext die folgenden Daten für die JWS-Signatur dargestellt

_R1-AT0_DEMO-CASH-BOX524_366588_2015-12-17T11:23:44_0,00_0,00
_0,00_26,05_0,00_m8LGyyY4UAA=_20f2ed172daa09e5 _5HjRCx+XIz4=

welche in der Signaturerstellung den folgenden Base 64 Wert entsprechen sollen

X1IxLUFUMF9ERU1PLUNBU0gtQk9YNTI0XzM2NjU5Nl8yMDE1LTEyLTE3VDEx
OjIzOjQ0XzAsMDBfMCwwMF8zLDY0Xy0yLDYwXzEsNzlfVkZKQl80N2JlNzM3Y
2IxZjZkMWYxX1p2TnhKdzZhMUE0PQ

Decodiert man den oben angeführten Wert in eine lesbare Form, dann bekommt man das folgende Ergebnis:

_R1-AT0_DEMO-CASH-BOX524_366596_2015-12-17T11:23:44_0,00_0,00
_3,64_-2,60_1,79_VFJB_47be737cb1f6d1f1_ZvNxJw6a1A4=

Man erkennt an den rot markierten Teil den kleinen Unterschied. Man sollte auch bei einer Buchprüfung einmal versuchen dem Prüfer die Belege und die Bilanz auf den Tisch zu knallen und ihm sagen, dass er rauszufinden hat, wie man zu dem Ergebnis gekommen ist.

Es ist leider der Regelfall, dass die angeführten Beispiele im Dokument Festlegungen des BMF zu Detailfragen der Registrierkassensicherheitsverordnung fehlerhaft sind. Ein Volksschüler macht weniger Fehler in seinen Erklärungen als in diesem Dokument zu finden sind. Man kann auch davon ausgehen, dass dieses Dokument auch nicht von einer Fachkraft erstellt wurde. Vermutlich wurde es von einem Politiker oder einem seiner Günstlinge erstellt, der auf dem normalen Arbeitsmarkt keinerlei Chancen hat. Es ist ja eine Eigenschaft der Politiker mit vielen Worten keine Aussage zu machen und genau in diese Kategorie kann man die vorhandenen Erklärungen und Dokumente einordnen.

Wer wirklich für dieses Pseudodokument und diese Pseudovorgaben, die vorne und hinten nicht stimmen verantwortlich zeichnet ist im Prinzip egal. In diesem Fall sind zeichnet das Bundesministerium für Finanzen dafür die Verantwortung. In wie weit die A-SIT Plus GmbH oder der Verein Zentrum für sichere Informationstechnologie - Austria (A-Sit) an der Erstellung dieses Dokuments eingebunden war, geht aus dem Inhalt nicht hervor. Man muss jedoch anmerken, dass auch auf Github, wo A-SIT einen Java Mustercode für die Registrierkasse bereitgestellt hat, es immerhin noch 91 offene Issues zum aktuellen Zeitpunkt gibt, 5 Tage vor dem Inkrafttreten des Gesetzes. Diese Probleme können auch nicht wegdiskutiert werden. Mit anderen Worten, alle in diesem Projekt arbeitenden Personen und Politiker können nur heiße Luft von sich geben und schaffen es selbst nicht einen voll funktionierenden und nachvollziehbaren Mustercode zeitgerecht zur Verfügung zu stellen. Vermutlich sind sie auch Opfer der babylonischen Sprachverwirrung, welche auch aus deren eigenen Vorgaben ersichtlich ist. Man darf dabei nicht vergessen, dass die letzte Release des Mustercodes am 21. Oktober 2016 zur Verfügung gestellt wurde. Seit dem schläft der Amtsschimmel und alle beteiligten Personen wieder.

Würde einer meiner Mitarbeiter in der Vergangenheit einen solchen Schrott produziert haben, dann hätte er sich gleich auf dem Arbeitsamt anstellen dürfen. Aber Beamte haben ja immer Recht und sind natürlich unkündbar.

Auch der Wirtschaftskammer Österreich sind die fehlerhaften Vorgaben bis heute noch nicht aufgefallen, da sie auf ihrer Webseite lediglich die Information gibt, dass die Frist zur vollständigen Umsetzung der Registrierkassenpflicht für Unternehmer am 31. 3. 2017 endet und ein Strafrahmen von bis zu € 5.000 droht. Ob die Vorgaben auf der Basis mit unvollständigen bzw. fehlerhaften Angaben überhaupt erfüllbar sind, dass interessiert die Interessensvertretung der Unternehmer bereits nicht. Es reicht anscheinend bereits, wenn man die eigenen Unternehmen bevorzugt. So schreibt die WKO auf ihrer Webseite:

Ab 1.4.2017 müssen alle Kassensysteme über eine technische Sicherheitseinrichtung (Signaturerstellungseinheit) verfügen. Diese Signaturerstellungseinheiten können bei einem im EU-/EWR-Raum oder in der Schweiz niedergelassenen Zertifizierungsdienstanbieter, der qualifizierte Signaturzertifikate anbietet, erworben werden.

In Österreich werden diese sicheren Signaturerstellungseinheiten, die den Erfordernissen der Registrierkassensicherheitsverordnung entsprechen, derzeit von den folgenden drei akkreditierten Zertifizierungsdienstleistern angeboten:

Die bisherige Vorgangsweise des Finanzministeriums in Sachen Registrierkassenpflicht erweckt stark den Eindruck der Korruption und Günstlingswirtschaft. Hinzu kommen noch die fehlerhaften Information, welche über das Finanzministerium verbreitet werden, wo kein einziges Beispiel wirklich komplett nachvollzogen werden kann. Vermutlich waren diese Informationen nur über Beraterhonorare verfügbar.

Somit waren von Haus aus alle nicht Insider von der Verdienstquelle an der Registrierkassenpflicht abgeschnitten. Es ist in Österreich nicht anders als in allen anderen Ländern der Welt: derjenige wärmt sich, der näher am Feuer sitzt.