GoBD Compliance Report
Technische Dokumentation der implementierten Sicherheits- und Compliance-Features
Kryptografische Verfahren
AES-256-GCM (NIST SP 800-38D)
Authentifizierte Verschlüsselung mit Galois/Counter Mode
- •256-Bit Schlüssellänge (Symmetrisch)
- •Galois/Counter Mode (GCM) für garantierte Datenintegrität
- •Einmalige 96-Bit Nonce pro Operation (NIST konform)
- •Auth-Tag Validierung vor Entschlüsselung (Vermeidung von Padding-Oracle-Angriffen)
- •Verwendet hardware-beschleunigte AES-Instruktionen (Apple Secure Enclave wenn verfügbar)
SHA-256 (FIPS 180-4)
Kryptographischer Hash-Algorithmus für Datenintegrität
- •256-Bit Digest-Länge
- •Verwendung: HMAC-Signaturen, Schlüssel-Fingerprints, Datei-Integrität
- •Resistent gegen Kollisionsangriffe
- •Deterministische Berechnung gemäß FIPS 180-4 Standard
HKDF-SHA256 (RFC 5869)
HMAC-basierte Schlüsselableitungsfunktion
- •Extract-and-Expand Schlüsselableitung
- •Verwendung eines 32-Byte kryptographisch sicheren Zufalls-Salts
- •Kontext-gebundene Info-Strings ('Xevono-Session-v2')
- •Gewährleistet Unabhängigkeit der Sitzungsschlüssel vom Hauptschlüssel
Serverseitige Verifizierung & WORM-Speicher
Immutable WORM Storage (Schweiz)
Physisch unveränderliche Datenspeicherung in Azure Switzerland North (Zürich)
- •Write-Once-Read-Many (WORM) Technologie erzwingt Unveränderlichkeit
- •Gesetzliche Aufbewahrungsrichtlinien technisch erzwungen
- •Datenresidenz ausschließlich in der Schweiz
- •Azure Blob Storage mit Time-Based Retention Policies
Serverseitige Notarisierung
Kryptographische Signatur durch vertrauenswürdigen Server
- •Unabhängige Verifizierung der Client-Daten vor Speicherung
- •HMAC-SHA256 Signatur mit geheimem Server-Schlüssel
- •Verhindert nachträgliche Manipulation selbst bei Geräte-Kompromittierung
- •Echtzeit-Validierung von App Check Tokens
App Attestation & Integrität
Sicherstellung der App-Authentizität durch Firebase App Check
- •Verifizierung der binären Integrität der Xevono App
- •Blockiert Anfragen von manipulierten Apps oder Skripten
- •Schutz vor API-Missbrauch und gefälschten Einträgen
- •DeviceCheck / App Attest Integration (iOS)
Datenintegrität & Manipulationsschutz
Prüfsummen auf Eintragsebene
Jeder Fahrtenbucheintrag erhält eine SHA-256 Prüfsumme
- •SHA-256 Hash über: ID, Fahrzeug, Fahrer, Datum, Orte, Kilometerstand, Zweck
- •ISO8601-Zeitstempel mit Millisekundenpräzision (.withFractionalSeconds)
- •Pipe-separierte Feldverkettung für deterministische Berechnung
- •Automatische Neuberechnung bei jeder Änderung
Prüfsummen auf Protokollebene
Jeder Audit-Log-Eintrag erhält eigene SHA-256 Prüfsumme
- •Berechnet aus: ID, Eintragsreferenz, Zeitstempel, Änderungstyp, Feldänderungen
- •Base64-kodierte Feldänderungen in Prüfsumme einbezogen
- •Checksumme wird bei Erstellung berechnet und gespeichert
- •Nachträgliche Manipulation erkennbar
HMAC-SHA256 Signaturen
Backup-Signaturen verwenden HMAC-SHA256 (RFC 2104) statt einfachem Hash
- •Constant-Time Comparison verhindert Timing-Attacken
- •Legacy-Signatur-Fallback für Abwärtskompatibilität
- •Validierung vor Entschlüsselung – Abbruch bei Mismatch
- •XOR-basierter Byte-Vergleich ohne Early-Exit
Unveränderliches Änderungsprotokoll
SwiftData Audit Trail
Jede Änderung wird als @Model Entität mit eigener Prüfsumme gespeichert
- •Änderungstypen: created, modified, completed, deleted
- •Felder: timestamp, changedByDriver, changeDescription, checksum
- •FieldChange-Struktur: fieldName, oldValue, newValue als JSON-Data
- •Automatische Zeitstempelsetzung bei Erstellung
SwiftData .nullify Delete Rule
Referenz wird auf nil gesetzt, Audit-Eintrag bleibt erhalten
- •logEntry-Relation mit .nullify statt .cascade
- •Gelöschte Fahrt → Audit-Historie bleibt vollständig
- •Jeder Löschvorgang wird als eigener Audit-Eintrag erfasst
- •Vollständige forensische Nachvollziehbarkeit
System-Ereignisse
Restore-Vorgänge werden mit Versionsinformation protokolliert
- •Backup-Wiederherstellung löst recordRestoreEvent aus
- •Erfasst: Zeitstempel, App-Version, Backup-Version
- •Automatische Kennzeichnung als System-Aktion
- •Ressourcenlimits zur Speichererschöpfungs-Prävention
Zeitstempel & Protokollierung
Erstellungs- und Änderungszeitstempel
Automatische Zeiterfassung bei allen Datenoperationen
- •Erstellungszeitpunkt des Eintrags
- •Zeitpunkt der letzten Änderung
- •Start- und Endzeiten der Fahrten
Standardisiertes Zeitformat
Einheitliches Zeitformat für Prüfsummenberechnung
- •Internationaler Standard für Datums- und Zeitangaben
- •Millisekundenpräzision
- •Deterministische Darstellung für Hash-Berechnung
Schlüsselverwaltung
Sichere Systemspeicherung
Geschützte Schlüsselspeicherung im Betriebssystem
- •Zugriff nur bei entsperrtem Gerät
- •Schlüssel nur bei Gerätefreigabe verfügbar
- •Lokale Speicherung ohne Cloud-Synchronisation
Cloud-Schlüsselsynchronisation
Optionale Schlüsselsynchronisation für mehrere Geräte
- •Sichere Synchronisation über Cloud-Dienst
- •Geräteübergreifende Schlüsselverwaltung
- •Separater Schlüssel für Cloud-Sicherungen
Schlüssel-Fingerabdruck
Kryptographischer Hash des Hauptschlüssels zur Identifikation
- •Eindeutige Identifikation ohne Offenlegung des Schlüssels
- •Ermöglicht Schlüsselverifikation
- •Gespeichert in Sicherungsmetadaten
XVN Sicherungsformat
XVN Container v2
Proprietäres Format mit Magic Bytes 0x58564E02 ('XVN' + Version 2)
- •Magic Bytes Header zur Formatidentifikation
- •XVNHeader: version, formatVersion, createdAt, appVersion, encryptionType
- •XVNMetadata: deviceId, backupType, dataSize, compressedSize, encryptedSize
- •Legacy-Support für Format v1 (0x58564E01)
XVNMetadata Struktur
Codable struct mit vollständigen Backup-Informationen
- •deviceId: Eindeutige Gerätekennung
- •itemCount: Anzahl gesicherter Fahrtenbucheinträge
- •Größen-Tracking: dataSize → compressedSize → encryptedSize
- •encryptionMode: ENHANCED_AES256 oder AES256_GCM
Verarbeitungskette
JSON → zlib DEFLATE → AES-256-GCM → SHA-256
- •1. JSONEncoder.encode(BackupData)
- •2. NSData.compressed(using: .zlib)
- •3. XevonoEncryption.encrypt() mit Session-Key
- •4. SHA-256 Checksum über verschlüsselte Payload
- •5. JSONEncoder.encode(XVNContainer) + Magic Bytes
Cloud-Verschlüsselung
Schlüssel-Identifikator
Erweiterter Schlüsselabgleich für automatische Cloud-Synchronisation
- •Kryptographischer Hash des Cloud-Hauptschlüssels
- •Automatische Schlüsselvalidierung bei Synchronisation
- •Verhindert Wiederherstellung mit falschem Schlüssel
- •Prüfung vor jeder Synchronisationsoperation
Automatische Synchronisationsverschlüsselung
Automatische Ende-zu-Ende-Verschlüsselung für Cloud-Dienst
- •Industriestandard-Verschlüsselung für alle Cloud-Daten
- •Schlüssel verbleibt im geschützten Schlüsselspeicher
- •Keine unverschlüsselten Daten in der Cloud gespeichert
- •Transparente Ver- und Entschlüsselung
GDPdU/GoBD Export
CSV-Dateien
Vier separate Dateien für IDEA-Prüfsoftware
- •fahrten.csv: Alle Fahrtenbucheinträge mit Prüfsumme
- •fahrzeuge.csv: Fahrzeugstammdaten inkl. FIN
- •fahrer.csv: Fahrerstammdaten mit Adresse
- •aenderungsprotokoll.csv: Vollständiger Audit Trail
index.xml (GDPdU DTD)
Metadaten-Beschreibung gemäß gdpdu-01-08-2002.dtd
- •DOCTYPE DataSet SYSTEM 'gdpdu-01-08-2002.dtd'
- •Semikolon (;) als Feldtrennzeichen
- •Datumsformat: yyyy-MM-dd, DateTime: yyyy-MM-dd HH:mm:ss
- •NSFileCoordinator für atomare ZIP-Erstellung
- •DataSupplier: Valeford UG (haftungsbeschränkt)
Lückenerkennung
Intelligente Lückenerkennung
Automatische Erkennung von Kilometerstand-Abweichungen
- •Vergleich: Erwarteter vs. tatsächlicher Kilometerstand
- •Erkennung bei Fahrtstart und -ende
- •Benutzer-Prompt zur Lückendokumentation
- •Automatische Generierung von Korrektureinträgen
Compliance-Konformität
Lückenlose Fahrtenbuchführung nach gesetzlichen Vorgaben
- •Kilometerstand-Validierung bei jeder Fahrt
- •Änderungsprotokoll für nachträgliche Korrekturen
- •Automatische Kennzeichnung von Nachtragungen
- •Zeitraum-Überbrückung für Lückenfahrten
Biometrischer Schutz
UserAuthenticator (async/await)
LocalAuthentication Framework mit modernem Swift Concurrency
- •async authenticate(reason:) → Result<Bool, Error>
- •LAContext.evaluatePolicy(.deviceOwnerAuthentication)
- •Geschützte Aktionen: exportKeysSecure(), Datenlöschung
- •Security Audit Trail: Logs key_fingerprint, niemals den Schlüssel selbst
Authentifizierungs-Fallback
Mehrstufige Authentifizierung mit automatischem Fallback
- •Primär: FaceID / TouchID (deviceOwnerAuthenticationWithBiometrics)
- •Sekundär: Geräte-Passcode (deviceOwnerAuthentication)
- •@available(*, deprecated) für altes exportKeys() ohne Auth
- •XevonoEncryptionError.authenticationRequired bei Abbruch
Jailbreak-Erkennung (7 Methoden)
JailbreakChecker.amIJailbroken()
Pure Swift Implementation ohne externe Dependencies
- •checkURLSchemes(): undecimus://, sileo://, zbra://, filza://
- •checkSuspiciousFiles(): 40+ Pfade (Cydia, Substrate, checkra1n, Dopamine)
- •checkSuspiciousFilesCanBeOpened(): fopen() auf kritische Pfade
- •checkRestrictedDirectoriesWriteable(): Sandbox-Escape via /, /root/, /private/
- •checkSymbolicLinks(): /Applications, /usr/include Umleitungen
DYLD & Fork Checks
Low-Level Runtime-Integritätsprüfungen
- •checkDYLD(): _dyld_image_count() + _dyld_get_image_name()
- •Erkennt: MobileSubstrate, TweakInject, FridaGadget, libhooker
- •checkFork(): dlsym(RTLD_DEFAULT, 'fork') Sandbox-Test
- •Fork-Erfolg = Sandbox-Verletzung → Jailbreak erkannt
- •Automatischer kill() des Child-Prozesses bei Erkennung
Datenschutz-Konformität
Alle Checks lokal, keine Datenübertragung
- •#if targetEnvironment(simulator) → Return false
- •ProcessInfo.isiOSAppOnMac → Skip für Catalyst
- •Keine Telemetrie, keine Server-Reports
- •Ergebnis nur lokal für View-Only-Modus genutzt
Datenerhaltung & Archivierung
Lösch-Zeitstempel
Gelöschte Daten werden markiert, nicht physisch entfernt
- •Löschzeitpunkt auf allen Hauptentitäten erfasst
- •Einträge, Fahrer und Fahrzeuge mit Archivierungsfunktion
- •Historische Nachvollziehbarkeit gewährleistet
Sicherungs-Export
Gelöschte Daten werden vollständig in Sicherungen aufgenommen
- •Alle Entitäten einschließlich Löschstatus in Sicherungsstruktur
- •Änderungsprotokoll enthält Löschvorgänge
- •Wiederherstellung mit originalem Archivierungsstatus
Technische Übersicht
| Komponente | Verfahren | Sicherheitsniveau | Technologie |
|---|---|---|---|
| Verschlüsselung | Galois/Counter Mode | 256 Bit | CryptoKit (Apple) |
| Schlüsselableitung | Hash-basiert (HKDF) | 256 Bit | CryptoKit (Apple) |
| Prüfsummenfunktion | SHA-256 Hash | 256 Bit | CryptoKit (Apple) |
| Komprimierung | zlib (DEFLATE) | - | zlib Bibliothek |
| Schlüsselspeicher | Secure Enclave / Keychain | - | iOS / iPadOS |
Dokumentation basiert auf Xevono App Version 1.3 (Januar 2026)
Backup-Format Version 2.0 (XVN)