Segurança: o que protegemos e o que não protegemos
Esta página descreve o que o app realmente faz, sem marketing. Também listamos os limites, para não exagerar em nada.
O princípio básico
O LiveSSH se conecta por SSH do seu dispositivo direto ao servidor que você escolher. Seus dados de conexão não passam por nenhum servidor do LiveSSH.
Se você ativar o LiveSSH Cloud (pago), itens como hosts, snippets e chaves SSH são criptografados no seu dispositivo antes de sincronizar. As chaves de descriptografia só podem ser derivadas da sua senha mestra e da sua chave de recuperação. Esse desenho se chama criptografia de ponta a ponta, ou conhecimento zero.
Como o cofre é criptografado
Os itens sincronizados são protegidos assim:
- Os itens são criptografados no seu dispositivo com
XChaCha20-Poly1305(criptografia autenticada), usando uma chave de dados gerada aleatoriamente. - A chave de dados é envolvida por uma chave derivada da sua senha mestra com
Argon2id(64 MiB de memória, 3 iterações). - A mesma chave de dados também é envolvida separadamente com a sua chave de recuperação, uma cadeia base32 de 52 caracteres da qual uma chave é derivada com HKDF.
- As chaves de dados envolvidas ficam guardadas em um keyset (JSON) no servidor.
- Trocar a senha mestra só reenvolve o keyset. Seus itens permanecem como estão e a chave de recuperação continua valendo.
A chave de recuperação
Se você esquecer a senha mestra, a chave de recuperação abre o cofre e permite definir uma nova senha mestra.
Se você perder a senha mestra e a chave de recuperação, ninguém consegue recuperar seus dados. O servidor não tem as chaves necessárias para descriptografá-los, e isso inclui a nós. Guardar a chave de recuperação com segurança é responsabilidade sua.
O que o servidor guarda
O servidor do LiveSSH Cloud é um Supabase hospedado por nós. Ele contém o seguinte:
Guardado
- O e-mail da sua conta Google ou Apple (você entra apenas com Google ou Apple; nenhuma senha de login é armazenada)
- O keyset: a chave de dados envolvida pela sua senha mestra e pela sua chave de recuperação
- O texto cifrado dos itens do cofre. O servidor enxerga o tipo de cada item (por exemplo host, snippet, chave), o ID, os carimbos de data e hora e as marcações de exclusão
- Para push: tokens e tipo de dispositivo, um hash (SHA-256) do token do hook de notificação com um rótulo (o nome de exibição do host) e a data de expiração da assinatura
- Registros de acesso (endereço IP, horário da requisição) para segurança e diagnóstico de problemas
Não guardado
- Sua senha mestra e sua chave de recuperação
- Qualquer chave capaz de descriptografar seus itens
- Senhas SSH, chaves privadas, endereços de hosts e nomes de usuário (chegam à nuvem apenas como texto cifrado)
- Entrada e saída do terminal, histórico de comandos, arquivos transferidos por SFTP
O banco de dados separa as contas por controle de acesso em nível de linha, e o tráfego até o servidor é protegido com TLS. Os prazos de retenção e os operadores de dados estão na política de privacidade.
Fixação da chave do host (TOFU)
Na primeira vez que você se conecta a um servidor, o app mostra a impressão digital da chave do host (SHA-256) e, depois da sua confirmação, a salva junto com esse host (Trust On First Use).
Se a impressão digital mudar depois, o app se recusa a conectar e avisa você. O servidor pode ter sido trocado, ou alguém pode estar interceptando a conexão. Você pode redefinir a impressão digital salva na tela de edição do host.
Cabe a você avaliar se a impressão digital da primeiríssima conexão é autêntica; o TOFU não protege contra um ataque durante essa primeira conexão.
O que uma notificação push contém
As notificações push seguem um caminho diferente do cofre criptografado. Um hook de notificação no seu servidor envia o aviso ao servidor do LiveSSH, que o entrega ao seu dispositivo pelo Google Firebase Cloud Messaging (no iOS, via Apple Push Notification service).
Uma notificação contém um título, um corpo (por exemplo o texto do pedido de confirmação gerado pelo agente, com até 300 caracteres), o nome da sessão tmux e o rótulo do host. Nesse caminho ela não tem criptografia de ponta a ponta, então passa pelo servidor do LiveSSH e pelo Google ou pela Apple. O servidor foi feito para não gravar o corpo das notificações em seus logs. Se os pedidos de confirmação do seu agente puderem conter informações sensíveis, não ative as notificações.
Relatórios de falhas
Os relatórios de falhas só são enviados ao Firebase Crashlytics se você consentir na primeira abertura, e você pode desativá-los a qualquer momento em Configurações → Segurança. Ao desativar, os relatórios ainda não enviados são excluídos.
Um relatório contém a causa da falha (stack trace), a versão do sistema e do app e o modelo do dispositivo. As mensagens de erro são cortadas na primeira linha, e endereços IP, e-mails, caminhos e nomes de host são mascarados antes do envio. Endereços de hosts, nomes de usuário, comandos, saída do terminal, nomes de arquivos e chaves nunca são incluídos. O app não usa SDK de publicidade nem SDK de análise de uso.
Contra o que este desenho não protege
- Um dispositivo infectado por malware, ou desbloqueado, não pode ser protegido pelo app. Enquanto o cofre está aberto, o app trabalha com dados descriptografados, e se você ativar o desbloqueio biométrico, a senha mestra fica guardada no armazenamento seguro do dispositivo.
- Uma senha mestra fraca é vulnerável a ataques de força bruta. O Argon2id deixa cada tentativa mais lenta; ele não impede a tentativa.
- O servidor do LiveSSH enxerga metadados como tipos de itens, IDs, carimbos de data e hora e a quantidade de itens.
- A segurança do lado do servidor SSH (gerenciamento de chaves, servidor comprometido, como o token do hook de notificação é guardado lá) fica por sua conta e a do administrador do seu servidor.
- O código-fonte do app não é público e não foi auditado por terceiros. As explicações desta página foram escritas pelo desenvolvedor e não passaram por verificação independente.
Como relatar um problema de segurança
Se você encontrar uma vulnerabilidade ou um comportamento diferente do descrito aqui, escreva para contact@xiu.kr.
Última atualização: 2026-10-07