Безпека та дані
Довірені хости (known_hosts)
Перше з'єднання з хостом фіксує відбиток його відкритого ключа (SHA-256) і зберігає його після вашого підтвердження. Подальші з'єднання порівнюють відбиток — якщо він колись зміниться, ви отримаєте чітке сповіщення.
Керуйте списком у Settings → Security → Trusted hosts — кожен запис показує хост, алгоритм ключа (Ed25519, RSA, ECDSA…) та відбиток, і його можна видалити.
Як захищено з'єднання
DR-Terminal використовує власну реалізацію SSH, посилену проти активних зловмисників і ворожих серверів:
- Ключ хоста перевіряється під час рукостискання, перш ніж буде надіслано щось таємне. Якщо посередник (man-in-the-middle) надає неправильний ключ, з'єднання переривається на етапі обміну ключами — ваш пароль або приватний ключ ніколи не залишає пристрій.
- Лише надійні алгоритми, за замовчуванням. Застарілі алгоритми, схильні до пониження, — підписи та MAC на основі SHA-1,
ssh-rsa, 1024-бітний Diffie-Hellman — вимкнені. З'єднання використовують сучасний обмін ключами (Curve25519, ECDH, Diffie-Hellman ≥ 2048 біт), шифри (AES-GCM, ChaCha20-Poly1305, AES-CTR) і типи ключів хоста (Ed25519, ECDSA, RSA-SHA2). Сервер, який пропонує лише щось слабше, не може підключитися. - Жодного тихого пониження. Підпис, який використовує сервер, має відповідати узгодженому, тож він не може непомітно перейти на слабший.
- Terrapin (CVE-2023-48795) пом'якшено завдяки суворому обміну ключами.
- Стійкий до ворожого або несправного сервера. Довжини пакетів, поля повідомлень та вікна каналів, що надходять із мережі, усі перевіряються на межі, тож зловмисний сервер не може аварійно завершити застосунок або вичерпати його пам'ять — навіть до вашої автентифікації.
Ці засоби захисту ввімкнені автоматично. Ви взаємодієте з ними лише через запит довірених хостів вище.
Експортовані ключі
Коли ви конвертуєте або експортуєте приватний ключ (SSH keys → Convert) і задаєте парольну фразу, шифрування використовує надійну функцію виведення ключа, вибрану для кожного формату — bcrypt для OpenSSH, PBKDF2 для PKCS#8, Argon2id для PuTTY PPK v3 — і кожна сіль та IV походять із криптографічно безпечного генератора випадкових чисел. Конвертер читає та записує OpenSSH, PKCS#8, PKCS#1 та PuTTY PPK (v2/v3), як із PEM, так і з двійкового DER.
Де зберігаються секрети
Паролі, приватні ключі та парольні фрази ніколи не серіалізуються в JSON з'єднання. Вони потрапляють прямо в безпечне сховище платформи:
- Android — EncryptedSharedPreferences, на основі апаратного Keystore.
- iOS — Keychain (захищений біометрією, якщо ви її ввімкнули).
- Desktop — файл, зашифрований AES-256-GCM, ключ виведено з профілю користувача.
Зашифроване резервне копіювання конфігурації
Settings → Configuration → Export backup створює захищений паролем файл .drterminal. Він містить: з'єднання (з обліковими даними), групи, довірені хости, ключі SSH, закладки SFTP, історію команд, правила підсвічування, сніпети, профілі serial та Telnet, вигляд термінала й налаштування, а також (на мобільних) конфігурацію клавіатури DevOps. Import backup відновлює той самий набір — корисно під час переходу між машинами.
Формат: JSON, зашифрований AES-256-GCM. Пароль ніколи не зберігається у файлі — він лише виводить ключ шифрування (PBKDF2, 100 000 ітерацій SHA-256).
Імпорт ~/.ssh/config
На Desktop ви можете масово імпортувати хости з наявної конфігурації OpenSSH. Імпортер розбирає записи Host, HostName, User, Port, IdentityFile та ProxyJump і додає їх як збережені з'єднання. Файли ключів, на які посилається IdentityFile, завантажуються з диска в SecureStorage.
Рівні логування
У Settings → Terminal → File log level виберіть, що потрапляє в ~/.dr-terminal/logs/ (Desktop) або еквівалент на мобільних. Типово: ERROR — мінімум шуму. Для діагностики перемкніть на DEBUG.