Terminal Web Zellij Menimbulkan Kekhawatiran Keamanan Meski Memiliki Autentikasi Bawaan

Tim Komunitas BigGo
Terminal Web Zellij Menimbulkan Kekhawatiran Keamanan Meski Memiliki Autentikasi Bawaan

Zellij , sebuah terminal workspace dan multiplexer yang populer, baru-baru ini memperkenalkan fitur klien web yang memungkinkan pengguna mengakses sesi terminal melalui browser mereka. Meski inovasi ini membawa kemudahan dan kemungkinan baru, hal ini telah memicu diskusi signifikan di komunitas developer mengenai implikasi keamanan dan perluasan permukaan serangan.

Klien web memungkinkan pengguna untuk mem-bookmark sesi terminal dengan URL, sehingga memungkinkan untuk berbagi sesi atau mengakses lingkungan pengembangan tertentu dengan cepat. Namun, kemudahan ini datang dengan trade-off yang telah membagi komunitas.

Stack Teknologi Web Client Zellij

Komponen Teknologi Tujuan
Web Server Axum (Rust) Penanganan HTTP/WebSocket
TLS rustTLS Enkripsi HTTPS
Client Terminal xterm.js Emulasi terminal browser
Autentikasi Berbasis token dengan SQLite Kontrol akses pengguna
Komunikasi Saluran WebSocket ganda Pemisahan data terminal dan kontrol
Aset Statis makro include_dir Dibundel dengan executable
Klien web Zellij : Fitur baru yang memungkinkan pengguna mengakses sesi terminal melalui browser mereka
Klien web Zellij : Fitur baru yang memungkinkan pengguna mengakses sesi terminal melalui browser mereka

Kekhawatiran Keamanan Menjadi Sorotan Utama

Diskusi paling hangat berkisar pada implikasi keamanan dari memperluas akses terminal melampaui batasan tradisional. Anggota komunitas telah menyatakan kegelisahan tentang memperluas eksposur desktop dan server mereka melalui akses terminal berbasis web. Kekhawatiran ini berasal dari prinsip fundamental bahwa terminal multiplexer harus mempertahankan eksposur jaringan yang minimal.

Sangat sangat begitu. Proyek ini juga menyertakan rilis biner terpisah dengan fitur ini dikompilasi secara terpisah, tetapi saya lebih suka fitur semacam ini tidak pernah diideakan atau ditindaklanjuti sejak awal.

Kekhawatiran ini tidak tanpa dasar. Terminal menyediakan akses sensitif ke sumber daya sistem, dan antarmuka berbasis web apa pun secara inheren meningkatkan permukaan serangan. Meski Zellij telah mengimplementasikan langkah-langkah autentikasi termasuk keamanan berbasis token dan penegakan HTTPS, beberapa developer tetap skeptis tentang perlunya fitur semacam itu dalam perangkat lunak terminal.

Fitur Keamanan

  • Autentikasi berbasis token yang dihasilkan dari dalam sesi Zellij
  • Token yang di-hash disimpan dalam database SQLite lokal (tidak pernah dalam bentuk teks biasa)
  • Cookie khusus HTTP untuk token sesi
  • Penerapan HTTPS untuk antarmuka eksternal
  • HTTP hanya diizinkan pada localhost
  • Token sesi sementara yang ditukar selama proses handshake

Tantangan Integrasi dan Solusi Alternatif

Selain keamanan, developer juga mendiskusikan tantangan implementasi praktis. Beberapa pengguna menghadapi pembatasan korporat, seperti websocket yang diblokir, yang mencegah mereka menggunakan fitur klien web. Yang lain sedang mengeksplorasi kemungkinan integrasi dengan alat dan protokol yang sudah ada.

Komunitas telah menunjukkan minat pada kompatibilitas yang lebih luas, khususnya dengan protokol yang sudah mapan seperti tmux control mode, yang memungkinkan emulator terminal menampilkan tab multiplexer sebagai tab native. Ini menunjukkan keinginan untuk standardisasi daripada solusi proprietary.

Keputusan Arsitektur Teknis

Pilihan teknis Zellij juga menarik perhatian. Tim memilih pendekatan dual-websocket dengan saluran terminal dan kontrol terpisah untuk mencegah blocking dan meningkatkan performa. Mereka memilih teknologi berbasis Rust termasuk Axum untuk web server dan xterm.js untuk emulasi terminal berbasis browser.

Menariknya, tim memutuskan untuk tidak menggunakan TypeScript meski berasal dari latar belakang strongly-typed, dengan alasan kekhawatiran kompleksitas build untuk codebase client-side mereka yang relatif kecil. Keputusan ini mencerminkan pendekatan pragmatis untuk menyeimbangkan kompleksitas pengembangan dengan manfaat type safety.

Klien web merepresentasikan langkah signifikan menuju membuat sesi terminal lebih mudah diakses dan dapat dibagikan. Namun, respons komunitas menyoroti ketegangan yang berkelanjutan antara inovasi dan keamanan dalam alat developer. Seiring pengembangan remote menjadi semakin umum, diskusi ini kemungkinan akan membentuk bagaimana terminal multiplexer berkembang untuk memenuhi kebutuhan workflow modern sambil mempertahankan standar keamanan.

Referensi: Terminal sessions you can bookmark: Building Zellij's web client