Boa tarde,
Saber criptografar e decriptografar um arquivo eu já sei, e até consifo fazê-lo. Porém, surgiu a necessidade de, ao carregar um arquivo qualquer, saber se este está criptografado. Também é de extrema necessidades saber quem criptografou aquele arquivo, ou seja, pegando informações sobre a chave pública usada na sua criptografia.
Tendo em vista que estou usando política de criptografia de chaves pública, ou seja, criptografo com a pública e decriptografo com a privada, gostaria de saber se alguém pode me ajudar.
Desde já agradeço à atenção,
abraços
O arquivo segue algum padrão (S/MIME, PGP, PKCS#7)?
Se não seguir, então fica difícil, porque pode ser, por exemplo, que você nem saiba qual é a chave pública porque ela não foi enviada junto com o arquivo.
Não segue não. Tipo, o arquivo pode ser um de qualquer tipo, txt, doc, etc. Criptografando usando o Cipher do Java, existe alguma forma de inserir informações nele? ou de pegar alguma dele ja encriptado por esse processo? Existe algum padrão pra fazer isso? tipo inserindo metadados?
Criptografia == Comunicação
Comunicação == Protocolos
Protocolos == Padrões
Portanto, Criptografia == Padrões
Portanto, você tem de seguir algum padrão para fazer as coisas direito. No seu caso, recomenda-se usar o PKCS#7 “envelopedData”, que inclui tudo que é necessário (os dados criptografados, a informação de chave pública, etc.)
Pois é, andei pesquisando… o software assinador desenvolvido pelo ITI utiliza esse padrão. Vou me “apegar” a ele então. Muito obrigado pelas elucidações cara! vlw Thingol!
Abraços
Para você pegar um atalho:
- Use o BouncyCastle
- As RFCs que definem o PKCS#7 chamam-no de “Cryptographic Message Standard” ou CMS
- No BouncyCastle você tem de procurar as classes no pacote org.bouncycastle.cms (bcmail--.jar).
Ah, entao é esse fulando q é o tal do CMS enveloped data q o manual de condutas técnicas tanto fala!
Bom saber!!
Ow, mais uma vez obrigado! Eu levar um tempim bom pra descobrir isso.
Brigadao thingol!
vlws!