Sécurité et données
Hôtes de confiance (known_hosts)
La première connexion à un hôte capture l'empreinte de sa clé publique (SHA-256) et la stocke après votre confirmation. Les connexions suivantes comparent l'empreinte — si elle change un jour, vous recevez une alerte claire.
Gérez la liste dans Paramètres → Sécurité → Hôtes de confiance — vous pouvez supprimer des entrées, voir l'algorithme (Ed25519, RSA, ECDSA…) et la date de première observation.
Comment la connexion est protégée
DR-Terminal utilise sa propre implémentation SSH, durcie contre les attaquants actifs et les serveurs hostiles :
- La clé de l'hôte est vérifiée pendant le handshake, avant l'envoi de quoi que ce soit de secret. Si un intercepteur (man-in-the-middle) présente la mauvaise clé, la connexion est interrompue lors de l'échange de clés — votre mot de passe ou votre clé privée ne quitte jamais l'appareil.
- Uniquement des algorithmes robustes, par défaut. Les algorithmes hérités et sujets à la rétrogradation — signatures et MAC SHA-1,
ssh-rsa, Diffie-Hellman 1024 bits — sont désactivés. Les connexions utilisent un échange de clés moderne (Curve25519, ECDH, Diffie-Hellman ≥ 2048 bits), des chiffrements (AES-GCM, ChaCha20-Poly1305, AES-CTR) et des types de clés d'hôte (Ed25519, ECDSA, RSA-SHA2). Un serveur qui ne propose que quelque chose de plus faible nécessite une acceptation explicite. - Aucune rétrogradation silencieuse. La signature utilisée par le serveur doit correspondre à ce qui a été négocié, de sorte qu'il ne puisse pas revenir à une signature plus faible à votre insu.
- Terrapin (CVE-2023-48795) est atténué grâce à l'échange de clés strict.
- Résistant à un serveur hostile ou bogué. Les longueurs de paquets, les champs de messages et les fenêtres de canaux provenant du réseau sont tous soumis à une vérification de bornes, de sorte qu'un serveur malveillant ne peut pas faire planter l'application ni épuiser sa mémoire — pas même avant que vous ne vous authentifiiez.
Ces protections sont activées automatiquement. Vous n'interagissez avec elles que via l'invite des hôtes de confiance ci-dessus.
Clés exportées
Lorsque vous convertissez ou exportez une clé privée (Clés SSH → Convertir) et définissez une phrase secrète, le chiffrement utilise une fonction de dérivation de clé robuste choisie selon le format — bcrypt pour OpenSSH, PBKDF2 pour PKCS#8, Argon2id pour PuTTY PPK v3 — et chaque sel et IV provient d'un générateur de nombres aléatoires cryptographiquement sûr. Le convertisseur lit et écrit OpenSSH, PKCS#8, PKCS#1 et PuTTY PPK (v2/v3), à partir de PEM comme de DER binaire.
Où résident les secrets
Les mots de passe, les clés privées et les phrases secrètes ne sont jamais sérialisés dans le JSON des connexions. Ils vont directement dans le magasin sécurisé de la plateforme :
- Android — EncryptedSharedPreferences, adossé au Keystore matériel.
- iOS — Keychain (protégé par biométrie si vous l'avez activée).
- Desktop — fichier chiffré AES-256-GCM, clé dérivée du profil utilisateur.
Sauvegarde de configuration chiffrée
Paramètres → Configuration → Exporter la sauvegarde crée un fichier .drterminal protégé par mot de passe. Il contient : connexions, groupes, hôtes de confiance, clés, paramètres. Importer la sauvegarde restaure le même ensemble — utile lors d'un changement de machine.
Format : JSON chiffré avec AES-256-GCM, en-tête de métadonnées (version, date). Le mot de passe n'est jamais stocké dans le fichier — il sert uniquement à dériver la clé (PBKDF2).
Importer ~/.ssh/config
Sur Desktop, vous pouvez importer en masse des hôtes depuis une configuration OpenSSH existante. L'importateur analyse les entrées Host, HostName, User, Port, IdentityFile et ProxyJump et les ajoute comme connexions enregistrées. Les fichiers de clés référencés par IdentityFile sont chargés depuis le disque dans SecureStorage.
Niveaux de journalisation
Dans Paramètres → Terminal → Niveau de journal fichier, choisissez ce qui atteint ~/.dr-terminal/logs/ (Desktop) ou l'équivalent sur mobile. Par défaut : ERROR — bruit minimal. Pour le diagnostic, basculez sur DEBUG ou TRACE.