GARANTIR DESCONTO

Fórum Criptografia e Descriptografia (Cifragem e Descifragem) #399346

17/04/2011

0

Olá a todos,
Estou utilizando a criptografia simétrica DES (Data Encryption Standard) e estou salvando alguns dados em banco de dados, mas, estou encontrando problemas para descriptografar.
Ao utilizar o algoritmo que foi proposto no artigo aqui no Devmedia, ele funciona, mas, somente se a chave for criada no mesmo instante da cifragem e decifragem.
        KeyGenerator gerador = KeyGenerator.getInstance("DES");        gerador.init(56);        Key chave = gerador.generateKey();

Se eu tentar utilizar essas mesmas linhas em outro momento vou obter uma chave diferente. Portanto, como proceder?
Tenho interesse também em transmitir esses dados através de Socket, e como eu poderia fazer para transmitir de forma segura uma chave para outros computadores?
Obrigado,
John Mendes

John Mendes

Responder

Posts

18/04/2011

Davi Costa

Sugiro um Sigleton,
mas não sei se funcionaria 100% se a aplicação fosse restartada.
É bom dar uma pesquisada na API do KeyGenerator.

Att Davi
Responder

Gostei + 0

26/04/2011

Dyego Carmo

Resolvido ?

Se sim , por favor feche o chamado :)
Responder

Gostei + 0

26/04/2011

John Mendes

Olá Dyego, 
Ainda não foi resolvido. Eu estive buscando outras fontes e não obtive sucesso. O resultado no momento é que uma alternativa seria usar chaves assimétricas e enviar a chave pública via socket, MAS, minha consideração seria em trabalhar com chaves simétricas. 
Basicamente uma alternativa foi gerar a chave e salvar em arquivo ou mesmo dentro do próprio código fonte do software, embora eu não tenha nenhuma recomendação até o momento, eu imagino que se colocar a chave dentro do código fonte, o software fica inflexível e se deixar a chave fora em arquivo texto, fica inseguro, então, há possibilidades a ser consideradas.
Vou manter esse tópico aberto por mais algum tempo para ver se alguém com alguma experiência na área poderia fazer recomendações. E em breve eu fecharei este post.
Abraço.
Responder

Gostei + 0

29/05/2012

Paulo Gonçalves

Caros, o bom e velho problema do ovo e da galinha. A chave de criptografia é um problema comum e constante. Tenho o algoritimo forte, uma boa chave mas onde a coloco?

Se fizermos uma analogia com a chave da porta de nossa casa, o problema é o mesmo. Temos uma porta forte e sólida mas deixamos a chave numa comoda à vista da empregada. A mesma pega a chave, faz uma cópia e pronto, não há mais segurança.

Para evitar isto temos desde soluções que custam milhares de dólares (como os HSM - Hardware Security Module) que armazenam dezenas de milhares de chaves de forma a protegê-la com uma senha para, somente em runtime, a chave fazer o seu papel.

Alías, pra que gastar milhares de dólares se é possivel justamente realizar isto, baseie a chave de criptografia simétrica (como é o caso do DES que você implementou) numa senha do usuário e criptografe seus dados com a propria senha dele.

Caso os dados não sejam especificamente do usuário, faça isto com a senha do administador. Ou melhor ainda, componha a chave com as senhas de mais de um usuário e mais uma contraparte que pode até ficar no código-fonte.

Nada de arquivos ou ficar TODA a chave hardcoded.

Em breve estarei disponibilizando aqui na DEVMEDIA um artigo falando como fazer isto mas com o algoritimo AES (Rijndael) muito mais forte que o DES que já foi facilmente quebrado.

Espero ter ajudado.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar