NOTA: Esta questão é uma subparte da pergunta original em aWallet Password Manager postada em Cryptography.StackExchange. Conforme sugerido por @SEJPM , estou postando aqui, pois o tópico da pergunta é mais adequado para InformationSecurity.StackExchange.
Depois de ler muitos artigos sobre como aumentar a segurança de minhas contas da web, comecei a usar o aWallet Password Manager para Android para fazer backup minhas senhas. Gosto pelas seguintes razões:
- “Consigo ter senhas de boa entropia : Sou capaz de misturar & letras MAIÚSCULAS, dígitos, caracteres especiais (incluindo espaços) e ter senhas razoavelmente longas (mais de 10 caracteres) )
- Salvar minhas senhas com segurança me permite ter senhas distintas para cada conta da web que de outra forma seria impossível. Isso evitaria um efeito em cascata (revelando as credenciais de todas as contas) que seria criado ted se uma das minhas contas, cujas credenciais de login eu compartilho com várias contas, ficar comprometida.
Não é preciso dizer que o segundo ponto é discutível porque ter todas as credenciais armazenado em um único lugar apresenta um ponto único de falha e representa um risco igual de reação em cadeia mencionado anteriormente.
Dado meu conhecimento limitado de criptografia e dúvidas sobre privacidade (devido a recentes incidentes de roubos online), quero testemunhar a segurança do aWallet Password Manager antes de armazenar meu Dados bancários / do cartão nele. Aqui “está o que eles reivindicam em sua página da Google PlayStore :
RECURSOS DE SEGURANÇA
• Todos os dados são criptografados, incluindo nomes de entrada, definições de categoria e os próprios dados.
• Criptografa dados usando algoritmos AES e Blowfish com tamanhos de chave de 256, 192 e 128 bits.
• Quando o arquivo de dados é descriptografado, até todas as combinações de algoritmo, tamanho de chave e modo de cifra de operação (CBC, CFB, OFB e ECB) são tentadas com a senha mestre para desbloquear o arquivo de dados. torna os ataques de força bruta mais longos. O aplicativo em si não armazena nenhuma dica da cifra real, tamanho da chave ou modo de cifra de operação.
• Usa um “salt” gerado aleatoriamente combinado com a senha mestre. Salt ajuda para se proteger de ataques de dicionário off-line.
• A chave para abrir o arquivo de dados é criada combinando sua senha mestra com o “sal” de 512 bits. O resultado é hash 1000 vezes por SHA-256 . O hashing repetitivo cria uma força bruta em caminho mais difícil.
Embora nenhum desses pontos faça muito sentido para mim, o pouco que sei sobre criptografia me diz que [corrija me “estou errado] repetir uma técnica de criptografia várias vezes não melhora matematicamente a segurança ; pode apenas dar uma falsa impressão de segurança adicional.
E por causa dessa inconsistência, comecei a duvidar da validade de suas outras afirmações. Minhas perguntas são: –
- Existe uma ferramenta / técnica que eu poderia usar para tentar descriptografar o arquivo
data.crypt
usado por um aplicativo doWallet para testar a segurança? - aWallet não oferece nenhum armazenamento em nuvem próprio e nos permite (opcionalmente) fazer backup do arquivo
data.crypt
no Google Drive ou Dropbox. Quão seguro seria se eu usar a autenticação de 2 fatores para minha conta do Google? - Em geral, é seguro armazenar credenciais de login ou dados bancários ou ambos em um gerenciador de senhas?
Comentários
Resposta
Observação: esta postagem na verdade responde à (s) pergunta (s) na pergunta e não comenta (muito) sobre a segurança de uma carteira. Sugiro que você visite Versão Crypto.SE desta questão para uma revisão dos detalhes criptográficos.
Existe uma ferramenta / técnica que eu poderia usar tentar descriptografar o arquivo data.crypt usado pelo aplicativo aWallet para testar sua segurança?
Uma pesquisa rápida não resultou em nada, então eu suponha que este gerenciador de senhas não seja grande o suficiente / não tenha visto pesquisas o suficiente para ter feito outra pessoa escrever uma ferramenta para atacar este gerenciador de senhas.
aWallet não oferece nenhum armazenamento em nuvem próprio e nos permite (opcionalmente) fazer backup do arquivo data.crypt no Google Drive ou Dropbox. Quão seguro seria se eu usar a autenticação de 2 fatores para minha conta do Google?
Isso depende muito.
Supondo que aWallet “s as medidas de segurança são realmente boas e você usa uma senha forte e / ou um arquivo de chave local e, em seguida, enviar o banco de dados de senha criptografada para um serviço de nuvem não prejudica a segurança, pois sua senha e / ou arquivo de chave ainda proteger as senhas. É claro que a autenticação adicional e o controle de acesso desses serviços em nuvem significam que só você e o provedor têm acesso e geralmente é do interesse do provedor não vazar arquivos do usuário.
Em geral, é seguro armazenar credenciais de login ou dados bancários ou ambos em um gerenciador de senhas?
Sim, muito mesmo, se o gerenciador de senhas for decente.
Usar um gerenciador de senhas permite que você tenha facilmente um único, senhas fortes por site, o que significa que é necessário comprometer o banco de dados de senhas ou o cliente local. Como já estabelecemos, o comprometimento do backup é evitado pela senha forte, então isso deixa o comprometimento do cliente como vetor para aprender a senha. Mas assim que o seu cliente é comprometido, todas as apostas são canceladas de qualquer maneira, porque o invasor pode apenas farejar seu teclado ou monitorar / interceptar seus dados de rede! Portanto, em suma, você tem pouco a perder e muito a ganhar usando (bons) gerenciadores de senhas.
Se aWallet é um bom gerenciador de senhas, é uma questão diferente (e respondida em Crypto.SE).
Resposta
aWallet especificamente: não use. O criador obviamente não sabe o que está fazendo. Vou escolher apenas uma preocupação (há várias que provavelmente serão mais óbvias para o People Smarter Than Me): ele poderia criptografar seu banco de dados no modo ECB (às vezes, mas nem sempre).
Modo ECB notavelmente não é seguro porque o mesmo texto simples sempre criptografa no mesmo texto cifrado. Portanto, o modo ECB “não esconde bem os padrões de dados … não fornece confidencialidade de mensagem séria , e não é recomendado para uso em protocolos criptográficos “.
Gerenciadores de senhas em geral: use um. Mas escolha um conhecido com boa reputação como 1Password, LastPass, KeePass, Dashlane, etc. Ou pelo menos use um criado ou recomendado por uma empresa de segurança conhecida ou pesquisador de segurança, se você não sabe onde mais procurar. Um bom gerenciador de senhas com criptografia competente ( não aparentemente aWallet) é perfeitamente seguro para manter o armazenamento em nuvem, desde que sua senha mestra seja forte.
Editar: OK, não consigo resistir a escolher alguns outros pontos que saltam na minha frente para gritar” fique longe “:
- Sobre a transformação da senha mestra em uma chave de criptografia: “O resultado é hash 1000 vezes por SHA-256.” Isso é ridiculamente insuficiente. Feito corretamente, eles no mínimo usariam PBKDF com 10.000 rodadas ou mais, em vez de um loop de hash personalizado de apenas 1000. Mesmo isso seria apenas suficiente e seria mal comparado aos gerenciadores de senha implementados corretamente. Centenas de milhares ou mais rodadas seriam mais adequadas. Ou abandone o hashing de senha baseado em SHA e use algo como bcrypt ou argon2. Este software não se compara às ferramentas modernas.
- “Suporta destruição automática do arquivo de dados após um número predefinido de tentativas de desbloqueio malsucedido.” Isso não afeta um invasor. A única pessoa que isso pode prejudicar é o usuário legítimo. Um invasor fará uma cópia do banco de dados ou usará um software modificado para remover o limite de estimativa. Você no por outro lado, pode perder acidentalmente todas as suas senhas, para nunca mais ser visto, por ter acidentalmente ativado o capslock ou uma chave morta ou algo parecido.
Resposta
Respondendo especificamente à sua pergunta:
Existe uma ferramenta / técnica que eu poderia usar para tentar descriptografar o arquivo data.crypt usado pelo aplicativo aWallet para testar sua segurança?
Aqui está um pequeno script em python que descriptografa data.crypt
arquivos e imprime o conteúdo em stdout. Observe que não é seguro, pois tudo é visível em texto simples, então apenas faça isso em uma máquina segura ou com um arquivo de dados fictício.
O script foi construído usando o documentação técnica em awallet.org.
Is it safe to store login credentials or banking details or both in a password manager
Não ‘ t tem que ser uma segurança perfeita, tem que ser melhor do que criar sua própria senha e lembrá-la.