Pergunta

Lamento continuar fazendo tantas perguntas, mas vocês sempre parecem tão legais e prestativos ...

Preciso fazer algum aplicativo que importa dados de um arquivo. Por exemplo, o usuário seleciona um arquivo e o aplicativo importa alguns dados para o banco de dados.

Mas eu tenho pensado, e esse tipo de aplicativo leva a um problema de integridade e autenticidade dos arquivos. Se um usuário alterar o arquivo, o aplicativo não poderá usar essas informações. E se um arquivo não for de uma fonte bem conhecida, o aplicativo não poderá usar esse arquivo.

Como faço esse tipo de coisa?

PS: Estou usando C#.NET

Foi útil?

Solução

Autenticação e integridade são fornecidas por assinaturas digitais.

Siga o conselho de Driis se você controlar o formato do arquivo.

Como alternativa, se o arquivo for xml, use um Assinatura xml.

Usando C#/. Net:

Outras dicas

Se você pode controlar o formato do arquivo de origem, poderá incorporar uma assinatura digital. Se você basear a assinatura em um hash do conteúdo do arquivo, poderá ter certeza de que o arquivo vem de uma fonte confiável, e isso não foi adulterado.

Depende de quão forte você deseja essa proteção.

Por exemplo, você pode ter um arquivo XML (para legibilidade humana) que possui um nó de hash em algum lugar que contém o hash do arquivo original (+sal). Isso pode ser atualizado pelo programa, mas o usuário pode ter mais dificuldade em descobrir o que essa chave significa. Quando o programa abre o arquivo, ele calcula o hash e verifica se é o mesmo que o escrito no arquivo.

Você pode até dar um passo adiante e usar assinaturas digitais, mas isso é muito mais complicado.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top