Veeder-Root — Handbuch ElsterFormular 21.6

Seite 38 von 44 Bei Fragen zu dem Import in eine andere Software wenden Sie sich bitte an den Hersteller dieser Software. Dokumentation fьr Softwarehersteller a) Entschlьsselung und Integration Diese Beschreibung richtet sich an Softwarehersteller, die aus ElsterFormular exportierte Steuerdaten in ihre Software importieren. Die Export-Daten von ElsterFormular werden mit einem vom Anwender gewдhlten Passwort verschlьsselt. Das eingesetzte Verfahren ist AES mit 256 Bit Schlьssellдnge. Die ElsterFormular-Exportfunktion erzeugt dabei Dateien, die dem Dateiformat des frei verfьgbaren Open-Source-Tools AESCrypt folgen. Damit lassen sich die Export-Dateien bei Bedarf mit AESCrypt entschlьsseln.

Fьr die Entschlьsselung der AESCrypt-Dateien existieren Implementierungen in verschiedenen Programmiersprachen (u.a. C, C#, Java, Python), die fьr die Implementierung einer Import-Funktion in anderer Software herangezogen werden kцnnen. Alternativ kцnnen Kryptographie-Bibliotheken wie z.B. Crypto++ (fьr C++) verwendet werden, welche die hier verwendeten Algorithmen (AES-256 und Berechnung der HMAC, s.u.) bereitstellen. Im Folgenden werden der Aufbau der Dateien und die notwendigen Schritte zur Entschlьsselung und Integritдtsprьfung der vorliegenden Daten dargelegt. Der Aufbau der Export-Dateien folgt dem AESCrypt-Dateiformat Version 2 .

Auf die Verwendung der dort beschriebenen "Extensions" wird verzichtet. Aufbau der Dateien Die eigentlichen Daten sind mittels den zufдllig erzeugten Initialisierungsvektor IV2 und Schlьssel K2 verschlьsselt. IV2/K2 sind wiederum in der Datei verschlьsselt gespeichert, wobei der dafьr verwendete Schlьssel K1 aus IV1 (unverschlьsselt gespeichert) und dem Nutzerpasswort generiert wird. Erzeugung des дuЯeren Schlьssels K1 Der дuЯere Schlьssel K1 wird aus dem Initialisierungsvektor IV1 (in der Datei unverschlьsselt gespeichert) und dem Benutzer-Passwort wie folgt generiert:

Länge Name Beschreibung 7 Bytes Header Immer "AES", gefolgt von 02 00 00 00 (hexadezimal) 16 Bytes IV1 Initialisierungsvektor für die Verschlüsselung von IV2 und K2 (s.u.) 48 Bytes IV2/K2 Der verschlüsselte Initialisierungsvektor (IV2) und Schlüssel (K2), die fuer die Verschlüsselung der eigentlichen Export-Daten verwendet werden 32 Bytes HMAC1 Nachrichtenauthentifizierungscode (HMAC) um die Integrität von IV2/K2. sicherzustellen Variabel Export-Daten Die verschlüsselten Export-Daten 1 Byte Padding- Information P Die Länge der unverschlüsselten Export-Daten (ohne Padding) modulo 16 32 Bytes HMAC2 HMAC um die Integrität der verschlüsselten Daten sicherzustellen