1 poin oleh GN⁺ 2025-12-17 | Belum ada komentar. | Bagikan ke WhatsApp
  • D-Bus adalah bus untuk komunikasi antar-aplikasi; konsepnya berguna, tetapi implementasinya sangat buruk dan tidak standar
  • Dokumen standarnya tidak lengkap dan tidak konsisten, dan implementasi nyata tidak mengikutinya sehingga terjadi keruntuhan kompatibilitas
  • Celah keamanan juga serius; aplikasi dapat membaca data rahasia aplikasi lain saat penyimpanan dalam keadaan tidak terkunci
  • Sebagai tanggapan, penulis sedang mengembangkan sistem bus baru 'hyprtavern' dan protokol 'hyprwire'
  • hyprtavern berupaya menyelesaikan masalah struktural D-Bus melalui pemeriksaan tipe yang ketat, manajemen izin bawaan, penyimpanan rahasia aman (kv), dan lainnya

Konsep dan batasan D-Bus

  • D-Bus adalah sistem yang memungkinkan aplikasi dan layanan mengekspos metode serta properti melalui bus bersama (bus) dan saling memanggil
    • Misalnya, jika aplikasi yang menyediakan layanan cuaca mendaftarkan API ke bus, aplikasi lain dapat menemukannya dan menggunakannya
  • Namun, karena D-Bus memiliki desain yang terlalu permisif dan tidak terstruktur, objek apa pun dapat mendaftarkan dan memanggil metode arbitrer
    • Akibatnya muncul fenomena "Garbage in, garbage out"

Kekacauan dokumen standar dan implementasi

  • Dokumen standar D-Bus tersebar di berbagai tempat dan hadir dalam bentuk yang belum selesai serta sulit dipahami
    • Implementasi nyata tidak mengikutinya, atau secara sembarang memakai spesifikasi yang berbeda satu sama lain
  • Penulis menjelaskan bahwa saat mengembangkan xdg-desktop-portal-hyprland ia mengimplementasikan spesifikasi "restore_token",
    tetapi semua aplikasi memakai field tidak resmi "restore_data" sehingga tidak kompatibel
  • Tipe variant(a{sv}) pada D-Bus memungkinkan pengiriman data arbitrer, dan disebut sebagai penyebab utama rusaknya konsistensi protokol

Cacat pada struktur keamanan

  • D-Bus tidak memiliki manajemen izin terpusat maupun mekanisme penolakan
    • Semua aplikasi dapat melihat panggilan aplikasi lain, dan tanpa mekanisme keamanan eksplisit, akses tak terbatas dimungkinkan
  • Penyimpanan rahasia seperti gnome-keyring, kwallet juga rapuh secara struktural
    • Begitu penyimpanan dibuka, semua aplikasi dapat mengakses semua data rahasia
    • Penulis menyebut ini sebagai "lelucon keamanan"

Alternatif baru: hyprwire dan hyprtavern

  • Untuk mengatasi masalah D-Bus, penulis sedang mengembangkan sistem bus baru 'hyprtavern'
    • hyprwire adalah protokol wire yang ringkas dan konsisten yang terinspirasi dari desain Wayland
      • Ciri utamanya adalah pemaksaan tipe, koneksi cepat, dan struktur sederhana
    • hyprtavern memiliki struktur tempat aplikasi mendaftarkan objek berbasis protokol dan saling menemukan
      • Menyediakan sistem izin bawaan, kepatuhan protokol yang ketat, API yang disederhanakan, dan default yang aman

hyprtavern-kv (penyimpanan key-value aman)

  • Protokol inti (core) yang menggantikan Secrets API milik D-Bus
    • Rahasia yang didaftarkan aplikasi hanya dapat dibaca oleh aplikasi tersebut, dan tidak dapat dienumerasi (enumeration)
    • Kontrol akses berbasis ID untuk aplikasi Flatpak, Snap, AppImage juga direncanakan
    • Selalu disimpan dalam keadaan terenkripsi, dan saat kata sandi disetel, jaminan keamanan yang nyata dimungkinkan
    • Semua aplikasi dapat memakai fungsi penyimpanan rahasia aman secara default

Status pengembangan dan rencana ke depan

  • hyprtavern masih berada pada tahap awal pengembangan, dan direncanakan akan dipakai secara internal pada Hyprland versi 0.54
  • Adopsi awal diperkirakan terbatas, tetapi transisi bertahap dimungkinkan
    • Berbeda dengan D-Bus, beberapa session bus dapat dijalankan paralel sehingga proxy kompatibilitas juga bisa dibuat
  • Ditulis dalam C++, dan binding Rust, Go, Python juga dapat diimplementasikan dengan mudah
  • Penulis menegaskan bahwa "D-Bus pada dasarnya tidak bisa diperbaiki dan harus didesain ulang sepenuhnya"

Ringkasan FAQ

  • Menanggapi kritik bahwa ini "menciptakan ulang roda", ia menyebut desain fundamental D-Bus sudah rusak sehingga redesain tak terelakkan
  • Dokumentasi saat ini masih berstatus WIP (dalam proses pengerjaan) dan akan dipublikasikan setelah selesai
  • Alasan tidak menggunakan Wayland adalah karena tidak cocok untuk IPC umum
  • Proxy kompatibilitas D-Bus (hyprtavern-dbus-notification-proxy) dapat dibuat
  • Alasan memakai C++ alih-alih Rust adalah karena bahasa utama pengembang adalah C++
  • Dari sisi keamanan, serangan LD_PRELOAD sulit diblokir sepenuhnya, tetapi strukturnya dirancang untuk meningkatkan tingkat kesulitan serangan dan kemungkinan deteksi

Kesimpulan

  • D-Bus disebut sebagai hambatan dalam ekosistem desktop Linux karena tidak standar, tidak aman, dan tidak konsisten
  • hyprtavern sedang dikembangkan sebagai bus IPC modern dan aman untuk menggantikannya,
    dengan adopsi bertahap yang diperkirakan berpusat pada ekosistem Hyprland
  • Tujuannya adalah "membuat userspace lebih nyaman"

Belum ada komentar.

Belum ada komentar.