Bezpečnost a data
Důvěryhodní hostitelé (known_hosts)
První připojení k hostiteli zachytí otisk jeho veřejného klíče (SHA-256) a po vašem potvrzení jej uloží. Následná připojení otisk porovnávají — pokud se kdykoli změní, dostanete jasné upozornění.
Seznam spravujte v Nastavení → Zabezpečení → Důvěryhodní hostitelé — každá položka ukazuje hostitele, algoritmus klíče (Ed25519, RSA, ECDSA…) a otisk a lze ji odebrat.
Jak je připojení chráněno
DR-Terminal používá vlastní implementaci SSH, vyztuženou proti aktivním útočníkům a nepřátelským serverům:
- Klíč hostitele se kontroluje během handshaku, dříve než je odeslána jakákoli tajná informace. Pokud prostředník (man-in-the-middle) předloží nesprávný klíč, připojení se přeruší při výměně klíčů — vaše heslo ani soukromý klíč nikdy neopustí zařízení.
- Ve výchozím nastavení pouze silné algoritmy. Zastaralé algoritmy náchylné k degradaci — podpisy a MAC se SHA-1,
ssh-rsa, 1024bitový Diffie-Hellman — jsou vypnuté. Připojení používají moderní výměnu klíčů (nejprve postkvantové hybridysntrup761x25519-sha512amlkem768x25519-sha256, poté Curve25519, ECDH, Diffie-Hellman ≥ 2048 bitů), šifry (AES-GCM, ChaCha20-Poly1305, AES-CTR) a typy klíčů hostitele (Ed25519, ECDSA, RSA-SHA2). Server, který nabízí pouze něco slabšího, se nepřipojí — pokud ovšem zastaralý algoritmus záměrně znovu nepovolíte v Algoritmy SSH (níže). - Žádná tichá degradace. Podpis, který server použije, musí odpovídat tomu, co bylo vyjednáno, takže se za vašimi zády nemůže vrátit ke slabšímu.
- Terrapin (CVE-2023-48795) je zmírněn díky přísné výměně klíčů.
- Odolný vůči nepřátelskému nebo chybnému serveru. Délky paketů, pole zpráv a okna kanálů přicházející ze sítě jsou všechny kontrolovány na meze, takže škodlivý server nemůže aplikaci shodit ani vyčerpat její paměť — a to ani předtím, než se ověříte.
Tyto ochrany jsou zapnuté automaticky. Přicházíte s nimi do styku pouze prostřednictvím výše uvedené výzvy k důvěryhodným hostitelům.
Algoritmy SSH (pokročilé)
Nastavení → Zabezpečení → Algoritmy SSH umožňuje doladit, co klient serverům navrhuje — kvůli zastaralému zařízení, které umí jen starou šifru, nebo abyste si připnuli pořadí, kterému důvěřujete. Stránka má jednu sekci pro každou kategorii vyjednávání:
- Výměna klíčů, Šifry, MAC (integrita) — každý algoritmus zapnete či vypnete a posunete nahoru nebo dolů; pořadí je pořadím preferencí odesílaným serveru (vyhrává první algoritmus, který podporují obě strany).
- Klíče hostitele — pouze zapnuto/vypnuto.
- Komprese — přepínač ano/ne (ve výchozím stavu vypnuto). Ano navrhne nejprve
[email protected]snonejako zálohou pro servery bez zlib; Ne navrhne pouzenone, takže server kompresi zapnout nemůže. Komprese pomáhá na pomalých linkách a stojí CPU na obou stranách.
Algoritmy, které knihovna dodává vypnuté, nesou malý jantarový štítek legacy — zůstávají vypnuté, dokud je nezapnete. Kategorie nikdy nemůže zůstat prázdná: poslední zapnutý algoritmus vypnout nelze. Obnovit vedle názvu sekce ji vrátí na výchozí hodnoty knihovny.
Každé uložené připojení může globální volbu přepsat: ve formuláři připojení otevře Algoritmy SSH → Vlastní stejný editor pouze pro daného hostitele (Výchozí se řídí globálním nastavením). Potvrzení editoru aktualizuje formulář — poté připojení uložte tlačítkem Uložit. Co bylo skutečně vyjednáno — výměna klíčů, klíč hostitele, šifra, MAC, komprese — se zobrazuje v položce Informace o připojení v nabídce relace.
Nová nastavení platí pro připojení otevřená poté. Druhá karta ke stejnému hostiteli znovu použije živé připojení SSH, a tedy i jeho algoritmy — pro nové vyjednání se odpojte a připojte znovu.
Postkvantové varování
Útočník typu „ulož teď, dešifruj později“ zaznamenává dnešní provoz a dešifruje ho, jakmile kvantové počítače dokážou prolomit klasickou výměnu klíčů. DR-Terminal preferuje postkvantovou hybridní výměnu klíčů (sntrup761x25519-sha512, mlkem768x25519-sha256 — tytéž, které dodává OpenSSH) a stejně jako OpenSSH varuje, když relace skončí na klasické: jednou za připojení se zobrazí dialog s informací, že výměna klíčů není postkvantová a že server možná potřebuje aktualizaci. Znovu nezobrazovat varování trvale vypne; najdete ho v Nastavení → Zabezpečení → Postkvantové varování (ve výchozím stavu zapnuto).
Exportované klíče
Když převádíte nebo exportujete soukromý klíč (SSH klíče → Převést) a nastavíte přístupovou frázi, šifrování používá silnou funkci pro odvození klíče zvolenou podle formátu — bcrypt pro OpenSSH, PBKDF2 pro PKCS#8, Argon2id pro PuTTY PPK v3 — a každá sůl (salt) i IV pochází z kryptograficky bezpečného generátoru náhodných čísel. Převodník čte a zapisuje OpenSSH, PKCS#8, PKCS#1 a PuTTY PPK (v2/v3), z PEM i binárního DER.
Kde žijí tajemství
Hesla, soukromé klíče a přístupové fráze se nikdy neserializují do JSON připojení. Putují přímo do zabezpečeného úložiště platformy:
- Android — EncryptedSharedPreferences, podpořené hardwarovým Keystore.
- iOS — Keychain (chráněný biometrií, pokud jste ji zapnuli).
- Počítač — soubor šifrovaný AES-256-GCM, klíč odvozený z uživatelského profilu.
Šifrovaná záloha konfigurace
Nastavení → Konfigurace → Exportovat zálohu vytvoří heslem chráněný soubor .drterminal. Obsahuje: připojení (včetně přihlašovacích údajů), skupiny, důvěryhodné hostitele, klíče SSH, záložky SFTP, historii příkazů, pravidla zvýrazňování, snippety, profily sériové linky a Telnetu, předvolby algoritmů SSH, vzhled terminálu a nastavení a (na mobilu) konfiguraci klávesnice DevOps. Importovat zálohu obnoví stejný balík — užitečné při přechodu mezi počítači.
Formát: JSON šifrovaný AES-256-GCM. Heslo se v souboru nikdy neukládá — pouze z něj odvozuje šifrovací klíč (PBKDF2, 100 000 iterací SHA-256).
Import ~/.ssh/config
Na počítači můžete hromadně naimportovat hostitele z existující konfigurace OpenSSH. Importér parsuje položky Host, HostName, User, Port, IdentityFile a ProxyJump a přidá je jako uložená připojení. Soubory klíčů odkazované přes IdentityFile se načtou z disku do SecureStorage.
Úrovně logování
V Nastavení → Terminál → Úroveň logování do souboru zvolte, co se dostane do ~/.dr-terminal/logs/ (počítač) nebo ekvivalentu na mobilu. Výchozí: ERROR — minimální šum. Pro diagnostiku přepněte na DEBUG.