Bezpieczeństwo i dane
Zaufane hosty (known_hosts)
Pierwsze połączenie z hostem przechwytuje odcisk jego klucza publicznego (SHA-256) i zapisuje go po Twoim potwierdzeniu. Kolejne połączenia porównują odcisk — jeśli kiedykolwiek się zmieni, otrzymasz wyraźny alert.
Listą zarządzasz w Ustawienia → Bezpieczeństwo → Zaufane hosty — możesz usuwać wpisy, zobaczyć algorytm (Ed25519, RSA, ECDSA…) oraz datę pierwszego zaobserwowania.
Jak chronione jest samo połączenie
DR-Terminal używa własnej implementacji SSH, utwardzonej przeciw aktywnym atakującym i wrogim serwerom:
- Klucz hosta jest sprawdzany podczas handshake, zanim cokolwiek tajnego zostanie wysłane. Jeśli man-in-the-middle przedstawi zły klucz, połączenie jest zrywane na wymianie kluczy — Twoje hasło ani klucz prywatny nigdy nie opuszczają urządzenia.
- Domyślnie tylko mocne algorytmy. Przestarzałe, podatne na downgrade algorytmy — podpisy i MAC-i SHA-1,
ssh-rsa, 1024-bitowy Diffie-Hellman — są wyłączone. Połączenia używają nowoczesnej wymiany kluczy (Curve25519, ECDH, Diffie-Hellman ≥ 2048-bit), szyfrów (AES-GCM, ChaCha20-Poly1305, AES-CTR) i typów kluczy hosta (Ed25519, ECDSA, RSA-SHA2). Serwer oferujący tylko coś słabszego wymaga jawnego opt-inu. - Brak cichego downgrade'u. Podpis użyty przez serwer musi zgadzać się z wynegocjowanym, więc serwer nie zejdzie po cichu na słabszy.
- Mitygacja Terrapin (CVE-2023-48795) przez strict key exchange.
- Odporność na wrogi lub wadliwy serwer. Długości pakietów, pola wiadomości i okna kanałów przychodzące z sieci są sprawdzane pod kątem zakresu, więc złośliwy serwer nie zawiesi aplikacji ani nie wyczerpie jej pamięci — nawet zanim się uwierzytelnisz.
Te zabezpieczenia działają automatycznie. Stykasz się z nimi tylko przez prośbę o zaufanie hosta powyżej.
Wyeksportowane klucze
Gdy konwertujesz lub eksportujesz klucz prywatny (Klucze SSH → Konwertuj) i ustawisz hasło, szyfrowanie używa mocnej funkcji wyprowadzania klucza dobranej do formatu — bcrypt dla OpenSSH, PBKDF2 dla PKCS#8, Argon2id dla PuTTY PPK v3 — a każda sól i IV pochodzą z kryptograficznie bezpiecznego generatora liczb losowych. Konwerter odczytuje i zapisuje OpenSSH, PKCS#8, PKCS#1 i PuTTY PPK (v2/v3), z PEM i binarnego DER.
Gdzie żyją sekrety
Hasła, klucze prywatne i hasła zabezpieczające (passphrase) nigdy nie są serializowane do JSON-a połączenia. Trafiają prosto do bezpiecznego magazynu platformy:
- Android — EncryptedSharedPreferences, oparte na sprzętowym Keystore.
- iOS — Keychain (chroniony biometrią, jeśli ją włączyłeś).
- Komputer — plik szyfrowany AES-256-GCM, klucz pochodny z profilu użytkownika.
Szyfrowana kopia zapasowa konfiguracji
Ustawienia → Konfiguracja → Eksportuj kopię zapasową tworzy plik .drterminal chroniony hasłem. Zawiera: połączenia, grupy, zaufane hosty, klucze, ustawienia. Importuj kopię zapasową przywraca ten sam pakiet — przydatne przy przenoszeniu się między maszynami.
Format: JSON szyfrowany AES-256-GCM, z nagłówkiem metadanych (wersja, data). Hasło nigdy nie jest przechowywane w pliku — służy jedynie do wyprowadzenia klucza (PBKDF2).
Import ~/.ssh/config
Na komputerze możesz zbiorczo zaimportować hosty z istniejącej konfiguracji OpenSSH. Importer parsuje wpisy Host, HostName, User, Port, IdentityFile oraz ProxyJump i dodaje je jako zapisane połączenia. Pliki kluczy wskazywane przez IdentityFile są wczytywane z dysku do SecureStorage.
Poziomy logowania
W Ustawienia → Terminal → Poziom logowania do pliku wybierz, co trafia do ~/.dr-terminal/logs/ (komputer) lub odpowiednika na urządzeniach mobilnych. Domyślnie: ERROR — minimum szumu. Do diagnostyki przełącz na DEBUG lub TRACE.