O sistema que você usa para criptografar arquivos para um grupo de pessoas (OS agnóstico preferido)?

StackOverflow https://stackoverflow.com/questions/184265

  •  06-07-2019
  •  | 
  •  

Pergunta

Digamos que você tenha um monte de arquivos. Digamos que você pode armazenar dados de meta para esses arquivos. Digamos, um desses atributos meta eram chamados de "criptografia" Diga todos estavam autorizados a olhar para esses arquivos, mas desde que eles são criptografados, únicas pessoas que sabem decodificar-los pode realmente ler o conteúdo. Diga, para cada valor dado de "criptografia", um grupo de pessoas compartilhar o conhecimento sobre como descriptografar os arquivos marcados com esse valor. Digamos que você quer ser capaz de fazer isso por meio de programação, de forma agnóstica OS (se possível)

Quais são os valores que você usaria para "criptografia"? Como você armazenar as chaves? Como você organizar o acesso às chaves?

Atualmente, estou inclinado para seguir a implementação:

  • o valor do campo "criptografia" contém o nome de uma chave, possivelmente, também denota o algoritmo usado
  • cada usuário tem acesso a um molho de chaves. Isso pode ser definido por papéis que o usuário em uma LDAP / ActiveDirectory como a estrutura, ou poderiam ser apenas arquivos em um diretório seguro no perfil de usuários diretório / home.
  • na visualização de um arquivo, o espectador (eu estou tentando construir um sistema de gestão documental) verifica as chaves de usuários e decifra o arquivo se uma chave correspondente foi encontrado.

O que criptografia você usaria? Simétrica (AES)? Ou assimétrica (quais são os bons)?

Usando chaves assimétricas teria a vantagem adicional de fazer a diferença entre ler um arquivo e gravar um arquivo: O acesso à chave privada é necessária para gravar o arquivo, o acesso à chave pública (somente pública semi, já que apenas determinadas funções ter acesso a ele) iria permitir a leitura do arquivo. Am I totalmente equivocada aqui?

O que são sistemas comuns para resolver estes problemas usado em pequenas e médias empresas?

Editar : Parece que não há sollutions universais. Então, vou indicar o problema que eu estou tentando resolver um pouco mais claramente:

Imagine um Sistema de Gestão Documental, que opera de forma distribuída: Cada documento é copiado para vários nós em uma (empresa controlada, privado) da rede P2P. Um algoritmo para garantir a redundância de documentos é utilizado para garantir backups de todos os documentos (incluindo revisões). Este sistema funciona como um serviço / daemon em segundo plano e pás documentos para lá e para cá.

Isto significa que os usuários vão acabar com documentos provavelmente não significava para eles para ver em sua estação de trabalho local (empresa controlada PC ou um laptop ou algo - a configuração é tal que uma PME de TI cara define isso tudo e controles que faz parte da rede P2P).

Isto exclui regimes baseados acesso do diretório, como o usuário irá provavelmente ser capaz de obter os dados. Estou enganado aqui? Poderia uma pasta local ser criptografada de tal forma que só pode ser acessado por um usuário de domínio? Quão seguro é isso?

Estou ciente de usuários que compartilham versões decifrados de arquivos - e isso que é difícil de suprimir tecnicamente. Este não é um problema que eu estou tentando resolver.

Foi útil?

Solução

A criptografia não é a parte mais difícil, aqui. Entender as necessidades do negócio e, especialmente, que as ameaças que você está tentando proteger contra, é a parte mais difícil. gerenciamento de chaves não é uma coisa trivial.

Eu recomendo o livro " Applied Cryptography " para ajudar a entender o protocolo questões -Level melhores.

Outras dicas

Este é um duro problema. Se isso é algo realmente sério, você não deve usar o conselho de criptógrafos amadores na internet.

Dito isto, aqui está minhas reflexões:

Eu criptografar cada arquivo com uma chave simétrica aleatória usando AES. Essa criptografia seria em um trabalho que é executado durante a noite, assim que a chave muda durante a noite.

Eu criptografar a chave de cada arquivo com a chave pública de todos que tem acesso ao arquivo.

Se alguém perde o acesso a arquivos, eles seriam incapazes de ler as novas cópias no dia seguinte (eles ainda poderiam ter cópias localmente de versões antigas).

Eu usaria gpg (roda em quase todos os OS-es felizmente).

Você não compreendem criptografia assimétrica. chave pública é dada a todos, chave privada que você manter-se. Se Alice criptografa algo com a chave pública de Bob, Bob única pode decifrá-lo. Se Bob criptografa algo com sua chave privada - todos podem decifrá-lo, e todos sabem que veio de Bob causa só ele tem a sua chave privada

.

EDIT: No entanto, se você ignorou tudo o que eu disse e foi uma rota diferente, e deu a cada ARQUIVO seu próprio pub / priv par de chaves ... então você iria contar com a chave pública estar disponíveis apenas para aqueles que você quiser ler o arquivo e a chave privada disponível para aqueles que querem r / w. Mas isso é um pouco mais complicado e depende muito das pessoas não serem capazes de distribuir chaves. postos de trabalho durante a noite para teclas de mudança poderia mitigar esse problema, mas então você tem o problema de distribuir novas chaves para os usuários.

Se eu entendi corretamente, você pode usar o GNU Privacy Guard. É multi-plataforma e de código aberto. Basicamente, cada usuário tem uma cópia do GPG e um "chaveiro" local com seus "chaves privadas" e "chaves públicas". Quando você quiser criptografar algo, você usar a chave pública da pessoa, e os resultados só pode ser descriptografado com a sua chave privada associada. Um usuário pode ter mais de um par de chaves, assim que você poderia dar a todos os administradores acesso à "função de administrador" chave privada, e cada um espera de que a chave privada pode descriptografar documentos criptografados com a "função de administrador" chave pública.

A parte legal é que você pode criptografar um arquivo com várias chaves públicas, e qualquer uma das chaves privadas correspondentes poderia, então, ser usada para decifrá-lo.

A dificuldade deste problema é por isso que muitos negócios padrão para o uso de soluções específicas para o sistema operacional, como o Active Directory.

Para OS-agnóstica, você tem que recriar um monte de coisas de gerenciamento de usuário que o sistema operacional específico e / ou fornecedores de rede já construída.

Mas isso pode ser feito. Para o próprio criptografia - ir com a resposta de AviewAnew

.

Eu tenho que concordar com Mark aqui:

Entender as necessidades do negócio e, especialmente, que as ameaças que você está tentando proteger contra, é a parte mais difícil

Por exemplo; Você está preocupado que usuários não autorizados podem ter acesso a arquivos confidenciais? Você pode usar o controle de acesso em nível de arquivo em praticamente qualquer sistema operacional para restringir os usuários ou grupos acessem arquivos / diretórios.

Você está preocupado que os usuários autorizados podem copiar os arquivos localmente e depois perdem o seu laptop? Há uma série de instalações de criptografia os-nível que fornecem diferentes graus de proteção. Eu, pessoalmente, recomendo TrueCrypt para pen drives e outras mídias portáteis e Windows Vista incluem agora BitLocker que fornece um nível de protecção diferente.

Outra variação do tema perdeu-laptop é o tema perdeu-backup, e muitos de backup fornecedores agora incluem esquemas de criptografia para seus backups em fita exatamente por esse motivo.

Finalmente, se você está preocupado que os usuários autorizados podem compartilhar os arquivos com usuários não autorizados, em seguida, você pode estar tentando resolver o problema errado. usuários autorizados que podem descriptografar esses arquivos pode facilmente compartilhar uma nova versão não criptografada do mesmo documento.

O que você precisa é a criptografia de chave pública usando OpenPGP ou X.509 certificados. Em ambos os casos, você pode criptografar o único bloco de dados para vários "destinatários" usando suas chaves OpenPGP ou X.509 certificados respectivamente. Em X.509 as normas para criptografar os dados desta forma são PKCS # 7 e CMS (definido em algum RFC, eu esqueci o número). Você precisaria de empregar alguns testes revogação de chave, a fim de impedir o acesso para essas pessoas, que tiveram acesso antes, mas não tê-lo agora.

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