Estou pensando em abandonar as soluções hospedadas (ex: 1Password, BitWarden) e estou interessado em usar um banco de dados KeePass para armazenar meus segredos.
Historicamente, não prestei muita atenção ao KeePass, pois o aplicativo nunca pareceu tão atraente visualmente, mas agora sei que o próprio KeePass possui um formato de banco de dados que pode ser usado com vários aplicativos.
Quanta variação existe entre esses diferentes aplicativos e quão seguro o banco de dados permanece por si só? Há algum risco que eu deva estar ciente ao usar esses tipos de aplicativos?
Estou procurando uma solução como Strongbox ou KeePassium , pois trabalho quase exclusivamente no ecossistema Apple e elas parecem ser altamente recomendadas. Eles também parecem oferecer suporte à sincronização de armazenamento em nuvem, o que eu gostaria de ter, se possível.
Eu gostaria de proteger meu banco de dados com uma senha mestra forte, bem como um conjunto de YubiKeys, mas não estou certo se as YubiKeys estão vinculadas ao aplicativo específico ou se é realmente um recurso do formato de banco de dados KeePass e pode ser aberto com algo como KeePassXC se o Strongbox fechasse repentinamente e parasse de funcionar por qualquer motivo.
Supondo que eu tenha um banco de dados configurado com uma senha mestra segura e YubiKeys, mesmo que alguém acesse meu arquivo de banco de dados e tenha minha senha mestra, o YubiKey o protegeria independentemente do aplicativo que estivesse usando? A preocupação obviamente é que, uma vez que o arquivo esteja disponível, ele estará disponível. Ao contrário de algo como 1Password, onde você pode revogar o acesso até certo ponto.
O maior risco de usar algo como Strongbox ou KeePassium é que uma atualização não autorizada possa ser lançada por um dos desenvolvedores para roubar suas credenciais?
Nesse caso, visto que ambos estão na App Store, isso me faz sentir um pouco melhor, pois sei que há pelo menos algumas verificações nessa plataforma (embora eu esteja ciente de que não é perfeita).
Se alguém pudesse me dar alguma luz, seria ótimo! Eu fiz uma boa pesquisa, mas devido a todas as diferentes variações, nada me parece muito simples e fico paranóico.
Autor do KeePassium aqui.
Esses são aplicativos independentes de diferentes desenvolvedores, portanto variam em design, suporte e quantidade de recursos extras. Mas seu denominador comum é o formato do banco de dados, portanto, cada aplicativo suportará os recursos principais. (Assim como qualquer aplicativo de planilha abriria e editaria um arquivo Excel, mesmo sem formatação sofisticada.)
Tão seguro quanto possível: é bem criptografado, tem proteção contra ataques de dicionário e você pode controlar o nível dessa proteção. O arquivo do banco de dados é sempre criptografado, os dados são descriptografados apenas para a memória do dispositivo (RAM). Teoricamente, pode-se até publicar seu banco de dados online para que todos possam ver. Sem a chave mestra, é apenas um blob binário criptografado.
Em primeiro lugar, certifique-se de obter o aplicativo original. Existem alguns sites com um “KeePass” falso. Costumava haver um aplicativo iOS chamado “KeePass” que simplesmente abusava do nome e não tinha nada a ver com o aplicativo real.
Em seguida, pesquise no Google o histórico/reputação do aplicativo. Existem aplicativos que deveriam estar abertos, mas não liberam seu código-fonte (KeePass Touch). Havia um aplicativo que parecia bom, mas começou a se comportar de forma suspeita e seu desenvolvedor simplesmente encerrou o projeto sem muitas explicações (IOSKeePass/KeePassMini, não confundir com MiniKeePass).
YubiKeys não estão vinculados a um aplicativo específico. Então, sim, você pode abrir um banco de dados protegido por YubiKey em KeePassXC, KeePassium, Strongbox, Keepass2Android e provavelmente em alguns outros aplicativos. (Notavelmente, não no KeePass: seu único plugin relacionado ao YubiKey, KeeChallenge, usa seu próprio esquema de criptografia e deve ser evitado .)
No entanto, YubiKey também não é um recurso de formato de banco de dados. É mais uma extensão pós-venda do algoritmo que calcula a chave de criptografia a partir de seus componentes. O arquivo de banco de dados não contém nenhuma indicação de quais componentes principais são usados. Basta usar qualquer chave mestra fornecida pelo usuário e tentar descriptografar o banco de dados usando esses dados.
O método original é:
Com um YubiKey, torna-se:
onde
yubikeyResponse
estão os dados retornados pelo recurso de resposta ao desafio (CR) HMAC-SHA1 do YubiKey . Lá, o YubiKey serve como uma caixa preta que recebe alguns dados ( desafio ), os transforma de alguma forma predefinida (com base em um segredo que você configurou durante a configuração do YubiKey CR ) e retorna o resultado transformado ( resposta ). Este cálculo não deixa rastros no YubiKey. O desafio é apenas uma sequência de bytes aleatórios armazenados no cabeçalho do banco de dados em texto simples, que é re-randomizada sempre que você salva o banco de dados.Como efeito colateral, se você armazenar o mesmo segredo em duas YubiKeys, elas se comportarão exatamente da mesma forma no modo CR e poderão ser usadas de forma intercambiável. Isso é útil como backup caso sua chave principal seja perdida ou danificada.
Observe que o modo de resposta ao desafio é praticamente limitado a YubiKeys e não está disponível em chaves FIDO baratas (incluindo chaves FIDO YubiKey).
Sim. O invasor precisará do seu banco de dados, da sua senha mestra e do seu YubiKey. Além disso, teria que ser a mesma chave física : o segredo CR é uma propriedade somente de gravação, não pode ser extraído da chave, portanto a chave não pode ser clonada. (Em contraste com os arquivos principais que podem.) Isso torna qualquer tipo de ataque remoto muito mais difícil de realizar. Mesmo se você esquecer que seu YubiKey está conectado a uma porta USB, a chave não responderá a nenhuma solicitação de software até que você toque fisicamente em um botão no YubiKey. Nenhuma confirmação física – nenhuma resposta do YubiKey.
Os riscos dependem do seu caso específico. Para muitos usuários, o maior risco é esquecer a senha mestra, seguido de não fazer backups do banco de dados.
Mas sim, sempre existe o risco de uma atualização fraudulenta. Não será intencional, veja bem, porque tanto o KeePassium quanto o Strongbox têm muito em jogo (não os anônimos, em países europeus com leis fortes, são o sustento de seus autores). Mas bugs acontecem e alguns deles podem corromper seu banco de dados, então você deve manter backups.
Pelo que eu sei, esse recurso usa apenas o Yubikey como uma maneira conveniente de armazenar uma chave de criptografia (semelhante a um arquivo-chave); normalmente usando o recurso HMAC que muitas chaves FIDO possuem (ou seja, provavelmente não usando a funcionalidade tradicional específica do Yubikey). Muito parecido com um arquivo-chave, ele não pode ser ignorado nem submetido a força bruta.
(No entanto, pode ser extraído do Yubikey, pois é fundamentalmente uma chave estática; uma situação muito diferente do uso mais comum de chaves Yubikeys e/ou FIDO.)
Diferentes programas podem usar o mesmo Yubikey da mesma maneira, desde que concordem sobre como usá-lo, por exemplo, slots FIDO HMAC vs Yubikey, que entrada fornecer para HMAC, etc.