Zurück zur Startseite

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

KomponenteVerfahrenSicherheitsniveauTechnologie
VerschlüsselungGalois/Counter Mode256 BitCryptoKit (Apple)
SchlüsselableitungHash-basiert (HKDF)256 BitCryptoKit (Apple)
PrüfsummenfunktionSHA-256 Hash256 BitCryptoKit (Apple)
Komprimierungzlib (DEFLATE)-zlib Bibliothek
SchlüsselspeicherSecure Enclave / Keychain-iOS / iPadOS

Dokumentation basiert auf Xevono App Version 1.3 (Januar 2026)

Backup-Format Version 2.0 (XVN)