Безпека та дані
Довірені хости (known_hosts)
Перше з'єднання з хостом фіксує відбиток його відкритого ключа (SHA-256) і зберігає його після вашого підтвердження. Подальші з'єднання порівнюють відбиток — якщо він колись зміниться, ви отримаєте чітке сповіщення.
Керуйте списком у Налаштування → Безпека → Довірені хости — кожен запис показує хост, алгоритм ключа (Ed25519, RSA, ECDSA…) та відбиток, і його можна видалити.
Як захищено з'єднання
DR-Terminal використовує власну реалізацію SSH, посилену проти активних зловмисників і ворожих серверів:
- Ключ хоста перевіряється під час рукостискання, перш ніж буде надіслано щось таємне. Якщо посередник (man-in-the-middle) надає неправильний ключ, з'єднання переривається на етапі обміну ключами — ваш пароль або приватний ключ ніколи не залишає пристрій.
- Лише надійні алгоритми, за замовчуванням. Застарілі алгоритми, схильні до пониження, — підписи та MAC на основі SHA-1,
ssh-rsa, 1024-бітний Diffie-Hellman — вимкнені. З'єднання використовують сучасний обмін ключами (спершу постквантові гібридиsntrup761x25519-sha512іmlkem768x25519-sha256, потім Curve25519, ECDH, Diffie-Hellman ≥ 2048 біт), шифри (AES-GCM, ChaCha20-Poly1305, AES-CTR) і типи ключів хоста (Ed25519, ECDSA, RSA-SHA2). Сервер, який пропонує лише щось слабше, не може підключитися — хіба що ви свідомо знову ввімкнете застарілий алгоритм у розділі Алгоритми SSH (нижче). - Жодного тихого пониження. Підпис, який використовує сервер, має відповідати узгодженому, тож він не може непомітно перейти на слабший.
- Terrapin (CVE-2023-48795) пом'якшено завдяки суворому обміну ключами.
- Стійкий до ворожого або несправного сервера. Довжини пакетів, поля повідомлень та вікна каналів, що надходять із мережі, усі перевіряються на межі, тож зловмисний сервер не може аварійно завершити застосунок або вичерпати його пам'ять — навіть до вашої автентифікації.
Ці засоби захисту ввімкнені автоматично. Ви взаємодієте з ними лише через запит довірених хостів вище.
Алгоритми SSH (розширені)
Налаштування → Безпека → Алгоритми SSH дає змогу налаштувати, що клієнт пропонує серверам — для застарілого пристрою, який розуміє лише старий шифр, або щоб закріпити порядок, якому ви довіряєте. Сторінка має по одному розділу на кожну категорію узгодження:
- Обмін ключами, Шифри, MAC (цілісність) — вмикайте чи вимикайте кожен алгоритм і пересувайте його вгору або вниз; порядок — це порядок переваг, який надсилається серверу (перемагає перший алгоритм, який підтримують обидві сторони).
- Ключі хоста — лише ввімкнення/вимкнення.
- Стиснення — перемикач так/ні (типово вимкнено). Так пропонує спершу
[email protected], аnone— як запасний варіант для серверів без zlib; Ні пропонує лишеnone, тож сервер не може ввімкнути стиснення. Стиснення допомагає на повільних каналах і коштує процесорного часу на обох кінцях.
Алгоритми, які бібліотека постачає вимкненими, мають невелику бурштинову позначку legacy — вони лишаються вимкненими, доки ви їх не ввімкнете. Категорія ніколи не може стати порожньою: останній увімкнений алгоритм вимкнути не можна. Скинути поруч із заголовком розділу повертає його до типових значень бібліотеки.
Кожне збережене з'єднання може перевизначити глобальний вибір: у формі з'єднання Алгоритми SSH → Власні відкриває той самий редактор лише для цього хоста (За замовчуванням дотримується глобального налаштування). Підтвердження в редакторі оновлює форму — після цього натисніть Зберегти для з'єднання. Що насправді було узгоджено — обмін ключами, ключ хоста, шифр, MAC, стиснення — показано в пункті Інформація про з'єднання меню сесії.
Нові налаштування застосовуються до з'єднань, відкритих після цього. Друга вкладка до того самого хоста повторно використовує живе SSH-з'єднання, а отже, і його алгоритми — від'єднайтеся та під'єднайтеся знову, щоб узгодити їх заново.
Постквантове попередження
Зловмисник типу «store now, decrypt later» записує сьогоднішній трафік і розшифровує його, щойно квантові комп'ютери зможуть зламати класичний обмін ключами. DR-Terminal віддає перевагу постквантовому гібридному обміну ключами (sntrup761x25519-sha512, mlkem768x25519-sha256 — ті самі, що постачає OpenSSH) і, як і OpenSSH, попереджає, коли сесія опиняється на класичному: один раз на з'єднання з'являється діалог із повідомленням, що обмін ключами не є постквантовим і що сервер, можливо, потребує оновлення. Більше не показувати вимикає попередження назавжди; воно міститься в Налаштування → Безпека → Постквантове попередження (типово ввімкнено).
Експортовані ключі
Коли ви конвертуєте або експортуєте приватний ключ (SSH-ключі → Конвертувати) і задаєте парольну фразу, шифрування використовує надійну функцію виведення ключа, вибрану для кожного формату — 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, ключ виведено з профілю користувача.
Зашифроване резервне копіювання конфігурації
Налаштування → Конфігурація → Export backup створює захищений паролем файл .drterminal. Він містить: з'єднання (з обліковими даними), групи, довірені хости, ключі SSH, закладки SFTP, історію команд, правила підсвічування, сніпети, профілі serial та Telnet, налаштування алгоритмів SSH, вигляд термінала й налаштування, а також (на мобільних) конфігурацію клавіатури DevOps. Import backup відновлює той самий набір — корисно під час переходу між машинами.
Формат: JSON, зашифрований AES-256-GCM. Пароль ніколи не зберігається у файлі — він лише виводить ключ шифрування (PBKDF2, 100 000 ітерацій SHA-256).
Імпорт ~/.ssh/config
На Desktop ви можете масово імпортувати хости з наявної конфігурації OpenSSH. Імпортер розбирає записи Host, HostName, User, Port, IdentityFile та ProxyJump і додає їх як збережені з'єднання. Файли ключів, на які посилається IdentityFile, завантажуються з диска в SecureStorage.
Рівні логування
У Налаштування → Термінал → Рівень журналу у файлі виберіть, що потрапляє в ~/.dr-terminal/logs/ (Desktop) або еквівалент на мобільних. Типово: ERROR — мінімум шуму. Для діагностики перемкніть на DEBUG.