Terminal Web Zellij Menimbulkan Kebimbangan Keselamatan Walaupun Mempunyai Pengesahan Terbina Dalam

Pasukan Komuniti BigGo
Terminal Web Zellij Menimbulkan Kebimbangan Keselamatan Walaupun Mempunyai Pengesahan Terbina Dalam

Zellij , sebuah ruang kerja terminal dan multiplexer yang popular, baru-baru ini memperkenalkan ciri klien web yang membolehkan pengguna mengakses sesi terminal melalui pelayar mereka. Walaupun inovasi ini membawa kemudahan dan kemungkinan baru, ia telah mencetuskan perbincangan yang ketara dalam komuniti pembangun mengenai implikasi keselamatan dan pengembangan permukaan serangan.

Klien web membolehkan pengguna menanda buku sesi terminal dengan URL, menjadikannya mungkin untuk berkongsi sesi atau mengakses persekitaran pembangunan tertentu dengan cepat. Walau bagaimanapun, kemudahan ini datang dengan pertukaran yang telah memecahbelahkan komuniti.

Susunan Teknikal Klien Web Zellij

Komponen Teknologi Tujuan
Pelayan Web Axum (Rust) Pengendalian HTTP/WebSocket
TLS rustTLS Penyulitan HTTPS
Terminal Klien xterm.js Emulasi terminal pelayar
Pengesahan Berasaskan token dengan SQLite Kawalan akses pengguna
Komunikasi Saluran WebSocket berkembar Pemisahan data terminal dan kawalan
Aset Statik makro include_dir Digabungkan dengan fail boleh laku
Klien web Zellij : Ciri baharu yang membolehkan pengguna mengakses sesi terminal melalui pelayar mereka
Klien web Zellij : Ciri baharu yang membolehkan pengguna mengakses sesi terminal melalui pelayar mereka

Kebimbangan Keselamatan Menjadi Tumpuan Utama

Perbincangan yang paling hangat berkisar tentang implikasi keselamatan dalam memperluaskan akses terminal melampaui sempadan tradisional. Ahli komuniti telah menyatakan kebimbangan tentang memperluaskan pendedahan desktop dan pelayan mereka melalui akses terminal berasaskan web. Kebimbangan ini berpunca daripada prinsip asas bahawa multiplexer terminal harus mengekalkan pendedahan rangkaian yang minimum.

Sangat-sangat sekali. Projek ini juga termasuk keluaran binari berasingan dengan ciri ini dikompil keluar sepenuhnya, tetapi saya lebih suka ciri seperti ini tidak pernah difikirkan atau dilaksanakan pada mulanya.

Kebimbangan ini bukanlah tidak berasas. Terminal menyediakan akses sensitif kepada sumber sistem, dan mana-mana antara muka berasaskan web secara semula jadi meningkatkan permukaan serangan. Walaupun Zellij telah melaksanakan langkah pengesahan termasuk keselamatan berasaskan token dan penguatkuasaan HTTPS, sesetengah pembangun masih ragu-ragu tentang keperluan ciri sedemikian dalam perisian terminal.

Ciri-ciri Keselamatan

  • Pengesahan berasaskan token yang dijana dari dalam sesi Zellij
  • Token yang di-hash disimpan dalam pangkalan data SQLite tempatan (tidak pernah dalam bentuk jelas)
  • Kuki HTTP sahaja untuk token sesi
  • Penguatkuasaan HTTPS untuk antara muka luaran
  • HTTP dibenarkan hanya pada localhost
  • Token sesi sementara ditukar semasa jabat tangan

Cabaran Integrasi dan Penyelesaian Alternatif

Selain keselamatan, pembangun sedang membincangkan cabaran pelaksanaan praktikal. Sesetengah pengguna menghadapi sekatan korporat, seperti websocket yang disekat, yang menghalang mereka daripada menggunakan ciri klien web. Yang lain sedang meneroka kemungkinan integrasi dengan alat dan protokol sedia ada.

Komuniti telah menunjukkan minat dalam keserasian yang lebih luas, terutamanya dengan protokol yang telah ditetapkan seperti mod kawalan tmux, yang membolehkan emulator terminal memaparkan tab multiplexer sebagai tab asli. Ini menunjukkan keinginan untuk penyeragaman daripada penyelesaian proprietari.

Keputusan Seni Bina Teknikal

Pilihan teknikal Zellij juga telah menarik perhatian. Pasukan memilih pendekatan dual-websocket dengan saluran terminal dan kawalan yang berasingan untuk mencegah penyekatan dan meningkatkan prestasi. Mereka memilih teknologi berasaskan Rust termasuk Axum untuk pelayan web dan xterm.js untuk emulasi terminal berasaskan pelayar.

Menariknya, pasukan memutuskan untuk tidak menggunakan TypeScript walaupun datang dari latar belakang yang bertype kuat, dengan menyebut kebimbangan kerumitan binaan untuk kod sebelah klien mereka yang agak kecil. Keputusan ini mencerminkan pendekatan pragmatik untuk mengimbangi kerumitan pembangunan dengan faedah keselamatan jenis.

Klien web mewakili langkah penting ke arah menjadikan sesi terminal lebih mudah diakses dan dikongsi. Walau bagaimanapun, respons komuniti menyerlahkan ketegangan yang berterusan antara inovasi dan keselamatan dalam alat pembangun. Apabila pembangunan jauh menjadi semakin biasa, perbincangan ini berkemungkinan akan membentuk cara multiplexer terminal berkembang untuk memenuhi keperluan aliran kerja moden sambil mengekalkan piawaian keselamatan.

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