Onde armazenar arquivos sensíveis servidos no aplicativo ASP.NET

2

Eu tenho um grande aplicativo ASP.NET em execução no servidor web do Windows 2003. Partes do sistema servem arquivos estáticos (pdfs, csv, excel, etc) que contêm dados confidenciais. Os arquivos são criados por determinados processos no sistema, são enviados por usuários e administradores e são obtidos por algumas integrações com outros sistemas.

Onde é o melhor lugar (mais seguro, prático) para armazenar esses arquivos. Eu tenho armazenado eles fora do IIS e usando o código .NET para servir o arquivo quando necessário. Isso tem funcionado razoavelmente bem, mas os usuários se preocupam com a segurança desses arquivos confidenciais, já que eles são armazenados em um servidor da Web.

Foi sugerido armazená-los no banco de dados, mas eu preferiria não fazer isso.

Alguma idéia por aí? Obrigado!

    
por Mike Cole 21.06.2010 / 21:00

4 respostas

0

A pergunta mais apropriada é: " Quanta sobrecarga você está disposto a aceitar "

Ao descarregar os arquivos em uma máquina separada na mesma rede (assumirei a rede Gbps), Você incorrerá em um custo de aproximadamente 1/2 microssegundo para cada transação (Mais uma vez, estou fazendo suposições aqui sobre o Disco cache e tamanho do arquivo, mas acho que é uma suposição razoável). Isso fornece apenas marginalmente melhor segurança. Ao descarregar com o AES com codificação de bloco de 128 bits, você pode esperar que cada transação passe em torno de 2-3 microssegundos). Descarregamento com Autenticação AES-128 + através de sessões ASP, Você pode razoavelmente esperar que ele aumente no intervalo de 20-30 microssegundos (por arquivo).

    
por 21.06.2010 / 21:27
0

Contanto que o diretório onde eles estão armazenados esteja bloqueado para que somente o aplicativo e os usuários válidos possam acessá-lo, eles devem estar tão seguros quanto possível. Você poderia movê-los para outro servidor que o servidor da Web possa ver, mas não para o público.

Os arquivos serão, em última análise, veiculados pela rede, de modo que eles precisam ser legíveis por alguém / alguma coisa.

Você está veiculando esses arquivos via https?

    
por 21.06.2010 / 21:07
0

but users have posed concerns about security of these sensitive files, since they are stored on a web server.

Bem, duh. Eles querem fazer o upload e recuperá-los pela web. Eles estarão em um servidor da Web, pelo menos em algum momento do processo. Algumas perguntas - quem são os usuários? Eles são clientes? Em caso afirmativo, quanto conhecimento da sua arquitetura eles têm e deveriam ter? Você está (se nos EUA) sob os requisitos PCI ou HIPAA, ou algum outro tipo de regulamentação? Em caso afirmativo, você deve realizar uma auditoria e compartilhar os resultados de aprovação / reprovação com os clientes, em vez de fazê-los analisar seu design.

    
por 21.06.2010 / 22:16
0

Eu sei que você declarou não colocá-los em um banco de dados, mas eu sou um defensor disso, quando apropriado, e estou pensando aqui. De qualquer forma, você armazena os arquivos que você vai usar em uma certa quantidade de sobrecarga, é o quanto a sua vontade de aceitar é o problema. Ao armazenar arquivos no banco de dados, você pode limitar ainda mais quem pode vê-los removendo-os completamente do sistema de arquivos. Sob o controle e a programação corretos, você pode limitar os arquivos a terem acesso somente ao seu aplicativo, eliminando assim a necessidade de outro servidor e toneladas de alterações de segurança do sistema de arquivos, além de um plano de backup adicional para esse servidor “seguro” adicional.

Outro benefício adicional de armazená-los dessa maneira é que você pode criptografá-los e armazená-los, além de ter um plano de backup simplificado.

    
por 21.06.2010 / 22:39