Formato de arquivo do arquivo criptografado

3

Estou interessado em entender o formato dos arquivos criptografados produzidos pelo aplicativo Data Guardian . Pelo que posso dizer, algum tipo de transformação da senha é armazenada no campo chamado 'hexIdentifier'. O que eu acho estranho é que, se dois arquivos são salvos com a mesma senha, ambos têm a mesma string 'hexIdentifier'. Não estou anunciando este aplicativo e não sou afiliado à empresa. Estou avaliando o aplicativo.

bpqaoozhoohjfpn
fonte
2
Não seria muito um anúncio de qualquer maneira se a senha fosse armazenada no próprio arquivo.
Andrew Lambert
Essa discussão toda é uma leitura incrível. Eu não sei nada sobre nada sobre a implementação da criptografia de arquivos. Tudo o que sei é manter o que os especialistas usam.
surfasb

Respostas:

6

Eu ficaria muito surpreso se ele realmente armazenasse a senha (codificada ou não) no arquivo criptografado, pois isso demonstraria uma falta fundamental de compreensão da criptografia. Nesse caso, seria altamente recomendável que você ignorasse o software se precisa que os arquivos criptografados sejam seguros. Não há motivos práticos para armazenar a senha.

Até mesmo o preço baixo não é uma razão para usá-lo se ele realmente armazenar a senha uma vez que há uma abundância de outros programas que são muito mais seguro e até mesmo livre (na verdade, até mesmo padrão de arquivamento fornecer funcionalidade de criptografia segura (sem armazenar a senha) .


Quanto ao Data Guardian, tenho más notícias. Eu fiz alguns testes e você e o espantado estão corretos. Parece que o hexIdentifiercampo não está relacionado apenas com a senha, mas não é nem um hash, é a senha real! (embora codificado, embora nem mesmo com um alfabeto grande).

Se você salvar o mesmo arquivo várias vezes com uma senha de tamanho crescente (por exemplo, um caractere, dois caracteres, três…), o campo será alterado, mas o tamanho permanecerá constante (64 bits), até oito caracteres, depois, de nove a 16 caracteres, o campo muda para 128 bits e assim por diante. Em outras palavras, ele trava (blocos?) E codifica a senha em blocos de 8 caracteres. Se fosse um hash, o tamanho do campo permaneceria constante, não importando o tamanho da senha. Portanto, ele realmente codifica e armazena a própria senha.

Existe uma DLL na pasta do programa que indica que ela usa a cifra de bloco Blowfish (que usa blocos de 64 bits - lembre-se dos blocos de 64 bits acima), portanto, a senha provavelmente é criptografada com essa, bem como os dados ( embora separadamente dos dados em oposição a como parte do mesmo fluxo, o que o torna ainda mais vulnerável).

Eu já descobri vários aspectos do algoritmo em apenas alguns minutos de simplesmente executar testes no programa (enquanto ao mesmo tempo assisto à TV) sem abri-lo em um desmontador ou olhando para uma única linha de código. Eu não imagino que seria muito difícil para alguém com a motivação adequada para reverter isso completamente.


Em resumo, o Data Guardian não é confiável o suficiente se você precisar de criptografia (uma espécie de derrota a finalidade do nome). Se você não precisa da criptografia ou os dados não são sensíveis, então você pode conviver com ela (é um programa de manutenção de registros especializado em oposição a um programa genérico de criptografia). Caso contrário, se a segurança for necessária, seria melhor procurar outro programa de gerenciamento de registros com criptografia mais forte ou apenas usar um programa normal (ou até mesmo o Data Guardian) e criptografar os arquivos salvos com um programa genérico de criptografia (ou criptografia NTFS ).

Você também pode entrar em contato com o dev e perguntar se eles podem implementar criptografia mais forte (até mesmo o Microsoft crypto API [1] [2] [3] [4] seria bom; também o Crypto ++ é comum, já que o Boost não podia adicionar um).

Synetech
fonte
Parece que a tag HexIdentifier está diretamente vinculada à senha. Pode não ser que seja a senha, mas existe uma correlação.
Andrew Lambert
Provavelmente um hash. Mesmo isso é desaconselhável. Não é difícil criptografar um arquivo pequeno com senhas diferentes para derivar a função de hash ( especialmente se for um padrão como o MD5, SHA-1, etc.) e, em seguida, inverta a senha por força bruta.
Synetech
@Sintech: Se a senha for armazenada na forma de um hash salgado e o algoritmo de hash for suficientemente forte, derivar a senha do hash pode ser tão difícil quanto quebrar o algoritmo de codificação. Claro, se a senha for fraca, você pode forçá-la brutalmente, mas isso também é verdade para descriptografar o arquivo.
Dennis
1
> Uma senha é tudo o que eu escolho que seja. 11 caracteres alfanuméricos selecionados aleatoriamente (AZ, az, 0-9) já alcançam mais de 64 bits @Dennis, uma senha é qualquer que seja o limite do algoritmo. O tamanho da senha depende do alfabeto. Se eu permitir apenas os caracteres {abc}, uma senha de quatro caracteres não significa 32.768 permutações (32 bits), são apenas 81 permutações. Muito mais fácil (e mais rápido) para quebrar.
Synetech
1
@bpqaoozhoohjfpn, que análise? Quero dizer que eles podem ou não ser legalmente responsáveis ​​por depender do que reivindicam. Se eles disserem que usa criptografia forte (especialmente se eles especificam algoritmos e tal), e uma violação ocorrer, eles podem ser levados ao tribunal por falsas alegações, mas se admitirem criptografia fraca (ou talvez não digam nada a menos que especificamente perguntou), então eles podem argumentar que eles nunca afirmaram que era seguro. Por exemplo, se eu disser que sou um carpinteiro e depois construir uma cadeira de baixa qualidade, você poderia processá-lo, mas se eu admitir ser horrível, então você não pode realmente reclamar, agora pode?
Synetech