Сигурност и данни
Доверени хостове (known_hosts)
Първата връзка към хост улавя отпечатъка на публичния му ключ (SHA-256) и го съхранява, след като потвърдите. Следващите връзки сравняват отпечатъка — ако някога се промени, получавате ясно предупреждение.
Управлявайте списъка в Settings → Security → Trusted hosts — всеки запис показва хоста, алгоритъма на ключа (Ed25519, RSA, ECDSA…) и отпечатъка и може да бъде премахнат.
Как е защитена връзката
DR-Terminal използва собствена SSH реализация, подсилена срещу активни нападатели и враждебни сървъри:
- Ключът на хоста се проверява по време на ръкостискането, преди да бъде изпратено каквото и да е тайно. Ако „човек по средата“ (man-in-the-middle) представи грешен ключ, връзката се прекъсва при обмена на ключове — паролата или частният ви ключ никога не напускат устройството.
- Само силни алгоритми, по подразбиране. Наследените, податливи на понижаване алгоритми — SHA-1 подписи и MAC-ове,
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) и зададете passphrase, криптирането използва силна функция за извличане на ключ, избрана според формата — bcrypt за OpenSSH, PBKDF2 за PKCS#8, Argon2id за PuTTY PPK v3 — и всяка сол (salt) и IV идват от криптографски защитен генератор на случайни числа. Конверторът чете и записва OpenSSH, PKCS#8, PKCS#1 и PuTTY PPK (v2/v3), от PEM и от двоичен DER.
Къде живеят тайните
Паролите, частните ключове и passphrase-ите никога не се сериализират в JSON на връзката. Те отиват директно в защитеното хранилище на платформата:
- Android — EncryptedSharedPreferences, обезпечено с хардуерния Keystore.
- iOS — Keychain (защитен с биометрия, ако сте я активирали).
- Desktop — AES-256-GCM криптиран файл, ключ извлечен от потребителския профил.
Криптирано архивиране на конфигурацията
Settings → Configuration → Export backup създава защитен с парола файл .drterminal. Той съдържа: връзки (с идентификационни данни), групи, доверени хостове, SSH ключове, SFTP отметки, история на командите, правила за открояване, снипети, серийни и 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.