Безопасность и данные
Доверенные хосты (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, поэтому сервер не сможет включить сжатие. Сжатие помогает на медленных каналах и нагружает CPU с обеих сторон.
Алгоритмы, которые библиотека поставляет выключенными, помечены небольшой янтарной меткой 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, ключ выводится из профиля пользователя.
Зашифрованная резервная копия конфигурации
Настройки → Конфигурация → Экспортировать резервную копию создаёт защищённый паролем файл .drterminal. Он содержит: подключения (с учётными данными), группы, доверенные хосты, ключи SSH, закладки SFTP, историю команд, правила подсветки, сниппеты, профили serial и Telnet, предпочтения алгоритмов SSH, внешний вид терминала и настройки, а также (на мобильных) конфигурацию клавиатуры DevOps. Импортировать резервную копию восстанавливает тот же набор — полезно при переезде между машинами.
Формат: 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.