1 Punkte von GN⁺ 2025-12-17 | Noch keine Kommentare. | Auf WhatsApp teilen
  • D-Bus ist ein Bus für die Kommunikation zwischen Anwendungen; das Konzept ist nützlich, aber die Implementierung ist äußerst mangelhaft und nicht standardkonform
  • Die Standarddokumentation ist unvollständig und inkonsistent, und die tatsächlichen Implementierungen halten sich nicht daran, was zu einem Zusammenbruch der Kompatibilität führt
  • Auch Sicherheitslücken sind gravierend: Apps können im entsperrten Zustand geheime Daten anderer Apps lesen
  • Als Reaktion darauf entwickelt der Autor ein neues Bussystem namens hyprtavern und ein Protokoll namens hyprwire
  • hyprtavern soll die strukturellen Probleme von D-Bus durch strikte Typprüfung, integrierte Rechteverwaltung, einen sicheren Secret-Store (kv) usw. lösen

Das Konzept von D-Bus und seine Grenzen

  • D-Bus ist ein System, mit dem Anwendungen und Dienste über einen gemeinsamen Bus Methoden und Eigenschaften bereitstellen und gegenseitig aufrufen können
    • Wenn zum Beispiel eine App, die einen Wetterdienst anbietet, eine API am Bus registriert, können andere Apps sie finden und verwenden
  • Wegen seines zu großzügigen und unstrukturierten Designs kann D-Bus jedoch beliebige Objekte mit beliebigen Methoden registrieren und aufrufen
    • Dadurch entsteht der Effekt „Garbage in, garbage out

Verwirrung bei Standarddokumentation und Implementierungen

  • Die Standarddokumentation von D-Bus ist über mehrere Stellen verstreut und in unvollständiger, schwer verständlicher Form vorhanden
    • Reale Implementierungen halten sich entweder nicht daran oder verwenden willkürlich voneinander abweichende Spezifikationen
  • Der Autor erklärt, dass er bei der Entwicklung von xdg-desktop-portal-hyprland die Spezifikation für restore_token implementiert habe,
    alle Apps jedoch das inoffizielle Feld restore_data verwendeten und es deshalb zu Inkompatibilitäten kam
  • Der Variant-Typ (a{sv}) von D-Bus erlaubt die Übertragung beliebiger Daten und wird als Hauptursache für die Auflösung der Protokollkonsistenz genannt

Mängel in der Sicherheitsarchitektur

  • In D-Bus fehlt eine zentralisierte Rechteverwaltung oder ein Mechanismus zum Verweigern von Zugriffen
    • Alle Apps können die Aufrufe anderer Apps sehen und haben ohne explizite Sicherheitsmaßnahmen unbegrenzten Zugriff
  • Auch Secret-Stores wie gnome-keyring, kwallet sind strukturell schwach
    • Sobald der Store entsperrt ist, können alle Apps auf alle geheimen Daten zugreifen
    • Der Autor bezeichnet das als „ein sicherheitstechnischer Witz“

Die neue Alternative: hyprwire und hyprtavern

  • Um die Probleme von D-Bus zu lösen, entwickelt der Autor ein neues Bussystem namens hyprtavern
    • hyprwire ist ein von Wayland inspiriertes knappes und konsistentes Wire-Protokoll
      • Es zeichnet sich durch erzwungene Typen, schnelle Verbindungen und eine einfache Struktur aus
    • hyprtavern basiert auf einer Struktur, in der Apps protokollbasierte Objekte registrieren und gegenseitig entdecken
      • Es bietet ein integriertes Berechtigungssystem, strikte Protokolltreue, eine vereinfachte API und sichere Voreinstellungen

hyprtavern-kv (sicherer Key-Value-Store)

  • Ein Core-Protokoll, das die Secrets API von D-Bus ersetzen soll
    • Von einer App registrierte Secrets können nur von dieser App gelesen werden und sind nicht auflistbar
    • Auch eine ID-basierte Zugriffskontrolle für Flatpak-, Snap- und AppImage-Apps ist geplant
    • Daten werden immer verschlüsselt gespeichert; mit gesetztem Passwort ist echte Sicherheit möglich
    • Alle Apps können die Funktion eines sicheren Secret-Stores standardmäßig nutzen

Entwicklungsstand und weitere Pläne

  • hyprtavern befindet sich noch in einer frühen Entwicklungsphase und soll künftig intern in Hyprland Version 0.54 genutzt werden
  • Die anfängliche Verbreitung dürfte begrenzt sein, doch ein schrittweiser Übergang ist möglich
    • Anders als bei D-Bus können mehrere Session-Busse parallel betrieben werden, wodurch sich auch Kompatibilitäts-Proxys schreiben lassen
  • Das Projekt ist in C++ geschrieben, Bindings für Rust, Go und Python lassen sich jedoch leicht umsetzen
  • Der Autor betont: „D-Bus lässt sich grundlegend nicht reparieren und muss komplett neu entworfen werden.“

FAQ-Zusammenfassung

  • Zur Kritik, man „erfinde das Rad neu“, sagt der Autor, dass das Grunddesign von D-Bus kaputt ist und ein Redesign unvermeidlich sei
  • Die Dokumentation ist derzeit WIP (in Arbeit) und soll nach Fertigstellung veröffentlicht werden
  • Wayland wurde nicht verwendet, weil es für allgemeine IPC-Zwecke ungeeignet sei
  • Ein D-Bus-Kompatibilitäts-Proxy (hyprtavern-dbus-notification-proxy) ist möglich
  • Warum C++ statt Rust verwendet wurde: weil C++ die Hauptsprache des Entwicklers ist
  • In Bezug auf Sicherheit lassen sich LD_PRELOAD-Angriffe nicht vollständig verhindern, aber die Struktur erhöht die Angriffshürde und verbessert die Erkennbarkeit

Fazit

  • D-Bus gilt wegen fehlender Standardisierung, mangelnder Sicherheit und Inkonsistenz als Engpass im Linux-Desktop-Ökosystem
  • hyprtavern wird als moderner und sicherer IPC-Bus entwickelt, der D-Bus ersetzen soll,
    voraussichtlich mit schrittweiser Einführung rund um das Hyprland-Ökosystem
  • Das Ziel ist, „den Userspace angenehmer zu machen

Noch keine Kommentare.

Noch keine Kommentare.