Keamanan & data
Host tepercaya (known_hosts)
Koneksi pertama ke sebuah host mengambil sidik jari kunci publiknya (SHA-256) dan menyimpannya setelah Anda mengonfirmasi. Koneksi berikutnya membandingkan sidik jari tersebut — jika suatu saat berubah, Anda akan mendapat peringatan yang jelas.
Kelola daftarnya di Pengaturan → Keamanan → Host Tepercaya — setiap entri menampilkan host, algoritma kunci (Ed25519, RSA, ECDSA…) dan sidik jarinya, serta dapat dihapus.
Bagaimana koneksi dilindungi
DR-Terminal menggunakan implementasi SSH-nya sendiri, yang diperkuat terhadap penyerang aktif dan server yang tidak bersahabat:
- Kunci host diperiksa selama handshake, sebelum ada rahasia yang dikirim. Jika man-in-the-middle menyodorkan kunci yang salah, koneksi dibatalkan pada tahap pertukaran kunci — kata sandi atau kunci privat Anda tidak pernah meninggalkan perangkat.
- Hanya algoritma kuat, secara bawaan. Algoritma lawas yang rentan downgrade — tanda tangan dan MAC SHA-1,
ssh-rsa, Diffie-Hellman 1024-bit — dinonaktifkan. Koneksi menggunakan pertukaran kunci modern (hibrida pasca-kuantumsntrup761x25519-sha512danmlkem768x25519-sha256lebih dulu, lalu Curve25519, ECDH, Diffie-Hellman ≥ 2048-bit), cipher (AES-GCM, ChaCha20-Poly1305, AES-CTR) dan jenis kunci host (Ed25519, ECDSA, RSA-SHA2). Server yang hanya menawarkan sesuatu yang lebih lemah tidak dapat terhubung — kecuali Anda sengaja mengaktifkan kembali algoritma lawas di Algoritma SSH (di bawah). - Tanpa downgrade diam-diam. Tanda tangan yang digunakan server harus cocok dengan yang dinegosiasikan, sehingga server tidak dapat beralih ke yang lebih lemah tanpa sepengetahuan Anda.
- Terrapin (CVE-2023-48795) dimitigasi melalui pertukaran kunci yang ketat (strict key exchange).
- Tahan terhadap server yang jahat atau bermasalah. Panjang paket, bidang pesan dan jendela kanal yang datang dari jaringan semuanya diperiksa batasnya, sehingga server berbahaya tidak dapat membuat aplikasi crash atau menghabiskan memorinya — bahkan sebelum Anda melakukan autentikasi.
Perlindungan ini aktif secara otomatis. Anda hanya berinteraksi dengannya melalui prompt host tepercaya di atas.
Algoritma SSH (lanjutan)
Pengaturan → Keamanan → Algoritma SSH memungkinkan Anda menyetel apa yang diusulkan klien kepada server — untuk perangkat lawas yang hanya mendukung cipher lama, atau untuk mengunci urutan yang Anda percayai. Halaman ini memiliki satu bagian per kategori negosiasi:
- Pertukaran kunci, Cipher, MAC (integritas) — aktifkan atau nonaktifkan setiap algoritma dan pindahkan ke atas atau ke bawah; urutannya adalah urutan preferensi yang dikirim ke server (algoritma pertama yang didukung kedua pihak yang menang).
- Kunci host — hanya aktif/nonaktif.
- Kompresi — sakelar ya/tidak (nonaktif secara bawaan). Ya mengusulkan
[email protected]lebih dulu dengannonesebagai cadangan untuk server tanpa zlib; Tidak hanya mengusulkannone, sehingga server tidak dapat mengaktifkan kompresi. Kompresi membantu pada koneksi lambat dan membebani CPU di kedua sisi.
Algoritma yang dinonaktifkan secara bawaan oleh pustaka membawa tag kuning kecil legacy — algoritma tersebut tetap nonaktif sampai Anda mengaktifkannya. Sebuah kategori tidak pernah bisa kosong: algoritma terakhir yang aktif tidak dapat dinonaktifkan. Atur ulang di samping judul bagian mengembalikannya ke bawaan pustaka.
Setiap koneksi tersimpan dapat menimpa pilihan global: di formulir koneksi, Algoritma SSH → Kustom membuka editor yang sama hanya untuk host tersebut (Default mengikuti pengaturan global). Mengonfirmasi editor memperbarui formulir — setelah itu Simpan koneksinya. Apa yang benar-benar dinegosiasikan — pertukaran kunci, kunci host, cipher, MAC, kompresi — ditampilkan di Info Koneksi pada menu sesi.
Pengaturan baru berlaku untuk koneksi yang dibuka setelahnya. Tab kedua ke host yang sama menggunakan kembali koneksi SSH yang aktif beserta algoritmanya — putuskan dan sambungkan kembali untuk bernegosiasi ulang.
Peringatan pasca-kuantum
Penyerang “simpan sekarang, dekripsi nanti” merekam lalu lintas hari ini dan mendekripsinya begitu komputer kuantum mampu memecahkan pertukaran kunci klasik. DR-Terminal mengutamakan pertukaran kunci hibrida pasca-kuantum (sntrup761x25519-sha512, mlkem768x25519-sha256 — sama seperti yang disertakan OpenSSH) dan, seperti OpenSSH, memperingatkan ketika sebuah sesi berakhir pada pertukaran kunci klasik: sebuah dialog muncul sekali per koneksi yang menyatakan bahwa pertukaran kuncinya tidak pasca-kuantum dan server mungkin perlu ditingkatkan. Jangan tampilkan lagi mematikan peringatan ini untuk seterusnya; pengaturannya ada di Pengaturan → Keamanan → Peringatan pasca-kuantum (aktif secara bawaan).
Kunci yang diekspor
Saat Anda mengonversi atau mengekspor kunci privat (Kunci SSH → Konversi) dan menetapkan frasa sandi, enkripsinya menggunakan fungsi derivasi kunci yang kuat sesuai format — bcrypt untuk OpenSSH, PBKDF2 untuk PKCS#8, Argon2id untuk PuTTY PPK v3 — dan setiap salt dan IV berasal dari generator acak yang aman secara kriptografis. Konverter membaca dan menulis OpenSSH, PKCS#8, PKCS#1 dan PuTTY PPK (v2/v3), baik dari PEM maupun DER biner.
Di mana rahasia disimpan
Kata sandi, kunci privat dan frasa sandi tidak pernah diserialisasi ke dalam JSON koneksi. Semuanya langsung masuk ke penyimpanan aman platform:
- Android — EncryptedSharedPreferences, didukung oleh Keystore perangkat keras.
- iOS — Keychain (dilindungi biometrik jika Anda mengaktifkannya).
- Desktop — file terenkripsi AES-256-GCM, kuncinya diturunkan dari profil pengguna.
Cadangan konfigurasi terenkripsi
Pengaturan → Konfigurasi → Ekspor cadangan membuat file .drterminal yang dilindungi kata sandi. Isinya: koneksi (beserta kredensial), grup, host tepercaya, kunci SSH, bookmark SFTP, riwayat perintah, aturan penyorotan, snippet, profil serial dan Telnet, preferensi algoritma SSH, tampilan dan pengaturan terminal, serta (di seluler) konfigurasi keyboard DevOps. Impor cadangan memulihkan paket yang sama — berguna saat berpindah antar-komputer.
Format: JSON terenkripsi dengan AES-256-GCM. Kata sandi tidak pernah disimpan di dalam file — kata sandi hanya digunakan untuk menurunkan kunci enkripsi (PBKDF2, 100 000 iterasi SHA-256).
Impor ~/.ssh/config
Di Desktop Anda dapat mengimpor host secara massal dari konfigurasi OpenSSH yang sudah ada. Pengimpor mengurai entri Host, HostName, User, Port, IdentityFile dan ProxyJump, lalu menambahkannya sebagai koneksi tersimpan. File kunci yang dirujuk oleh IdentityFile dimuat dari disk ke SecureStorage.
Level log
Di Pengaturan → Terminal → Level log file pilih apa yang masuk ke ~/.dr-terminal/logs/ (Desktop) atau padanannya di seluler. Bawaan: ERROR — gangguan minimal. Untuk diagnostik, beralihlah ke DEBUG.