Segurança e dados
Hosts confiáveis (known_hosts)
A primeira conexão a um host captura a impressão digital de sua chave pública (SHA-256) e a armazena depois que você confirma. As conexões seguintes comparam a impressão digital — se ela mudar, você recebe um alerta claro.
Gerencie a lista em Configurações → Segurança → Hosts confiáveis — você pode remover entradas, ver o algoritmo (Ed25519, RSA, ECDSA…) e a data do primeiro acesso.
Como a conexão é protegida
O DR-Terminal usa sua própria implementação de SSH, reforçada contra atacantes ativos e servidores hostis:
- A chave do host é verificada durante o handshake, antes que qualquer segredo seja enviado. Se um intermediário (man-in-the-middle) apresentar a chave errada, a conexão é abortada na troca de chaves — sua senha ou chave privada nunca sai do dispositivo.
- Somente algoritmos fortes, por padrão. Algoritmos legados e propensos a downgrade — assinaturas e MACs SHA-1,
ssh-rsa, Diffie-Hellman de 1024 bits — estão desativados. As conexões usam troca de chaves moderna (Curve25519, ECDH, Diffie-Hellman ≥ 2048 bits), cifras (AES-GCM, ChaCha20-Poly1305, AES-CTR) e tipos de chave de host (Ed25519, ECDSA, RSA-SHA2). Um servidor que ofereça apenas algo mais fraco requer uma habilitação explícita. - Sem downgrade silencioso. A assinatura usada pelo servidor deve corresponder ao que foi negociado, então ele não pode recorrer a uma mais fraca sem você saber.
- Terrapin (CVE-2023-48795) é mitigado por meio de troca de chaves estrita.
- Resistente a um servidor hostil ou com defeitos. Comprimentos de pacote, campos de mensagem e janelas de canal que chegam da rede são todos verificados quanto a limites, de modo que um servidor malicioso não pode travar o aplicativo nem esgotar sua memória — nem mesmo antes de você se autenticar.
Essas proteções estão ativas automaticamente. Você só interage com elas por meio do aviso de hosts confiáveis acima.
Chaves exportadas
Quando você converte ou exporta uma chave privada (Chaves SSH → Converter) e define uma passphrase, a criptografia usa uma função de derivação de chave forte escolhida por formato — bcrypt para OpenSSH, PBKDF2 para PKCS#8, Argon2id para PuTTY PPK v3 — e cada salt e IV vem de um gerador aleatório criptograficamente seguro. O conversor lê e escreve OpenSSH, PKCS#8, PKCS#1 e PuTTY PPK (v2/v3), tanto de PEM quanto de DER binário.
Onde residem os segredos
Senhas, chaves privadas e passphrases nunca são serializadas no JSON da conexão. Elas vão direto para o armazenamento seguro da plataforma:
- Android — EncryptedSharedPreferences, sustentado pelo Keystore de hardware.
- iOS — Keychain (protegida por biometria se você a habilitou).
- Desktop — arquivo criptografado com AES-256-GCM, chave derivada do perfil do usuário.
Backup de configuração criptografado
Configurações → Configuração → Exportar backup cria um arquivo .drterminal protegido por senha. Ele contém: conexões, grupos, hosts confiáveis, chaves, configurações. Importar backup restaura o mesmo pacote — útil ao mudar entre máquinas.
Formato: JSON criptografado com AES-256-GCM, cabeçalho de metadados (versão, data). A senha nunca é armazenada no arquivo — apenas usada para derivar a chave (PBKDF2).
Importar ~/.ssh/config
No Desktop, você pode importar em massa hosts de uma configuração OpenSSH existente. O importador analisa as entradas Host, HostName, User, Port, IdentityFile e ProxyJump e as adiciona como conexões salvas. Os arquivos de chave referenciados por IdentityFile são carregados do disco para o SecureStorage.
Níveis de log
Em Configurações → Terminal → Nível de log em arquivo, escolha o que vai para ~/.dr-terminal/logs/ (Desktop) ou o equivalente no celular. Padrão: ERROR — ruído mínimo. Para diagnósticos, mude para DEBUG ou TRACE.