Aplicação de criptografia de dados para clientes Owncloud baseada em certificados ICPEdu Vitor Hugo Galhardo Moia Marco Aurélio Amaral Henriques {vhgmoia, marco}@dca.fee.unicamp.br Universidade Estadual de Campinas - UNICAMP Faculdade de Engenharia Elétrica e de Computação FEEC APRESENTAÇÃO GRUPO DCA DE SEGURANÇA 08 de junho de 2015 Campinas - SP
Proposta Implementação de um protocolo criptográfico responsável pela segurança e privacidade dos dados dos usuários na nuvem da RNP. Oferecimento de serviços criptográficos nível 3 (no lado do cliente). Permitir compartilhamento de dados. Utilização de certificados digitais ICP-Brasil ou ICPEdu. Geração dos certificados ICPEdu feita pelo SAEC (Serviço automático de emissão de certificados). Integração com clientes de nuvem Owncloud. O modelo também poderá ser integrado com outras nuvens. 2
Requisitos O usuário deverá possuir: Uma conta previamente criada e configurada em um provedor de nuvem Owncloud. O aplicativo cliente (do OwnCloud) instalado e configurado em seu computador. Um certificado pessoal ICPEdu (criado por meio do SAEC ou outro meio similar). 3
Funcionamento básico O cliente instalará a aplicação desenvolvida. Toda vez que o usuário desejar acessar a aplicação deverá fornecer um segredo utilizado para sua validação. O segredo é criado na primeira iteração do usuário com o sistema. O segredo terá validade de X minutos. Uma vez que o tempo é atingido, o usuário deve fornece-lo novamente. Para armazenar um arquivo de forma criptografada na nuvem, o usuário apenas necessita depositar o arquivo na pasta de trabalho da aplicação que o mesmo será criptografado e depositado automaticamente na pasta da nuvem de sincronização. Não há necessidade da decifrar arquivos, uma vez que eles ficam na pasta de trabalho da nuvem de forma decifrada. O compartilhamento é possível a qualquer momento, bastante apenas o certificado do usuário que terá acesso ao arquivo. Este certificado deve ser depositado na pasta que será compartilhada. 4
Aplicação Primeiro acesso Criação de segredo X Login Olá Alice, É necessário a criação de um segredo para possibilitar o acesso a esta aplicação e a todos os dados criptografados por ela. Recomenda-se um segredo com um grande nível de complexidade a fim de dificultar acessos não autorizados. ****************** OK Fechar
Aplicação Primeiro acesso Definição de pastas e criação de chaves X Login Olá Alice, Um par de chaves criptográficas é necessário para realização das atividades da aplicação. Para este fim, serão criados uma chave pública e uma privada para o usuário. Clique em Sim para prosseguir com este processo ou caso o mesmo já possua um par de chaves, clique em Não e localize-o. Sim Não
Aplicação Primeiro acesso Definição de pastas e criação de chaves X - Configurações Configurações do sistema Pasta da nuvem: /home/alice/owncloud? Local de trabalho: /home/alice/arquivos decifrados? Chaves: /home/alice/owncloud/.config? Salvar Cancelar
Aplicação - Tela Inicial X Login Olá Alice, Digite seu segredo para acessar a aplicação ****************** OK Fechar
Aplicação - Rodando
Aplicação - Rodando Configurações Abrir local de trabalho Ajuda Encerrar
Configurações X - Configurações Configurações do sistema Pasta da nuvem: /home/alice/owncloud? Local de trabalho: Chaves: /home/alice/arquivos secretos? /home/alice/owncloud/.config? Salvar Cancelar
Aplicação - Rodando Configurações Abrir local de trabalho Ajuda Encerrar
Encerrar aplicação X Fechar Você tem certeza que deseja encerrar a aplicação? Sim Cancelar
Funcionamento da aplicação X - Home < > Home Locais Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Desktop Documentos Musicas Imagens owncloud Arquivos secretos Os arquivos serão depositados e acessados em uma pasta definida pelo usuário
Funcionamento da aplicação X - Home < > Home Locais Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Desktop Documentos Musicas Imagens owncloud Arquivos secretos Todos os arquivos desta pasta serão cifrados e depositados na pasta da nuvem
Funcionamento da aplicação X - Locais owncloud < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... owncloud Arquivos secretos Pasta 1 Imagens Foto.jpg Os arquivos cifrados poderão ser armazenados na raiz ou em uma pasta específica na nuvem
X - Locais Documentos < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Documentos Artigo.pdf X - Locais Home < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Desktop Documentos Musicas Imagens owncloud Arquivos secretos Quando um arquivo é depositado nesta pasta, a aplicação se encarregará de cifrá-lo e depositá-lo na nuvem.
Funcionamento da aplicação X - Arquivos secretos < > Home Arquivos secretos Locais Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Artigo.pdf Artigo.pdf a ser cifrado
X - Arquivos secretos < > Home Arquivos secretos Locais Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Artigo.pdf X - Locais Home < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Desktop Documentos Musicas Imagens owncloud Arquivos secretos Assim que o arquivo for cifrado, ele será depositado na pasta da nuvem para seu armazenamento
Funcionamento da aplicação X - Locais owncloud < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Arquivos secretos Dispositivos Computador Rede Navegar na r... owncloud C67sajk1. encrypted Arquivos secretos Artigo.pdf cifrado O arquivo ficará armazenado na nuvem de forma ilegível, tanto seu conteúdo quanto seu nome e atributos
CNC CLOUD 6 5 Artigo.pdf 7 4 Aplicação CNCrypt 7 5 C67sajk1.e ncrypted Pasta de trabalho do CNCrypt selecionada pelo usuário 1 2 Pasta de sincronismo da nuvem 3 Usuário
Passos 1. Quando a aplicação é inicializada, ela solicita a senha do usuário. 2. O usuário fornece sua senha, que será validada pela aplicação. Se a mesma for correta, a aplicação é inicializada e fica executando em background, monitorando a pasta de trabalho e a pasta da nuvem. 3. O usuário deposita na pasta de trabalho um arquivo para ser armazenado de forma segura na nuvem. 4. A aplicação cifra o arquivo (tanto o seu conteúdo como seus atributos) e o envia para a pasta da nuvem. Uma cópia do arquivo decifrado fica armazenada na pasta de trabalho. 5. A pasta da nuvem é monitorada pelo aplicativo de sincronismo da nuvem e assim que algo é depositado nela, o mesmo é enviado para a nuvem. 6. Caso um arquivo que esteja armazenado na nuvem não esteja armazenado na pasta da nuvem localmente, o mesmo será baixado e depositado nela. 7. Assim que a transferência do arquivo for concluída, a aplicação irá decifrá-lo e depositá-lo na pasta de trabalho.
X - Home < > Home Locais Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Dispositivos Computador Rede Navegar na r... Foto.jpg Música.mp3 Certificado do Bob.cer X - Locais Arquivos secretos < > Home Recentes Home Documentos Musicas Imagens owncloud Arquivos secretos Arquivos secretos Artigo.pdf Certificado do Bob.cer Imagens Dispositivos Computador Rede Navegar na r... Assim que o certificado for depositado nesta pasta, o arquivo Artigo.pdf será cifrado usando este certificado e depositado na nuvem
Especificações do processo Chaves criptográficas Chave de arquivo criptográfico Cada arquivo (e seu nome) será cifrado com uma chave única e aleatória Chaves pública e privada Cifram/decifram a chave intermediária Chave derivada Cifra/decifra a chave privada do usuário 24
Storage Geração de chaves Gerador de chaves simétricas Ch. de arquivo e de nome RSA 2048 Ch. de arquivo e de nome cifrada Gerador de chaves assimétricas Ch. Privada do usuário Ch. Pública do usuário AES 256 SAEC Certificado digital Ch. Privada do usuário cifrada Segredo do usuário Derivar chave Ch. derivada Destruir 17
Storage Geração de chaves Ch. de arquivo e de nome RSA 2048 Ch. de arquivo e de nome cifrada Ch. Pública do usuário SAEC Certificado digital Destruir Ch. Privada do usuário AES 256 Ch. Privada do usuário cifrada Segredo do usuário Derivar chave Ch. derivada Destruir 17
Processo criptográfico Encriptação 1 Comprimir arquivo (reduzir espaço). 2 Gerar chave única e aleatória para o arquivo (movimentos do mouse ou últimas teclas pressionadas como seed, por exemplo). 3 Criptografar arquivo com a chave de arquivo. 4 Obter o Hash do arquivo para posterior checagem da integridade do mesmo. 5 Criptografar o Hash com a chave privada do usuário (assinatura). 6 Criptografar chave de arquivo com chave pública de todos os usuários que tem acesso ao arquivo. 7 Criar um pacote e armazenar o arquivo criptografado, a chave de arquivo e o Hash do arquivo assinado. Também será armazenado o certificado do dono do arquivo para posterior utilização na checagem da integridade do arquivo.
Cifrar arquivo Compressão do arquivo Arquivo em claro Comprimir Arquivo comprimido (Computador do usuário: cliente) 28
Cifrar arquivo Criptografia do conteúdo do arquivo Arquivo comprimido AES 256 Arquivo cifrado Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 Ch. secreta RSA 2048 Ch. secreta cifrada (Computador do usuário: cliente) Ch. Pública do usuário 29
Cifrar arquivo Criptografia dos atributos do arquivo (nome) Nome do arquivo em claro AES 256 Ch. secreta Nome do arquivo cifrado Ah1720jdsif 0kdsjfdsi10 (Computador do usuário: cliente) 30
Cifrar arquivo Assinatura do arquivo Arquivo cifrado Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 HASH RSA 2048 Assinatura do arquivo w9203ij 92 982jfkdslf9 ssd9dsw23 Ch. Privada do usuário (Computador do usuário: cliente) 31
Cifrar arquivo Armazenamento do arquivo na nuvem Arquivo cifrado Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 Nome do arquivo cifrado Ah1720jdsif 0kdsjfdsi10 Ch. secreta cifrada Assinatura do arquivo w9203ij 92 982jfkdslf9 ssd9dsw23 Arquivo.zip Storage OwnCloud (Computador do usuário: cliente) 32
Processo criptográfico Decriptação 1 Abrir o pacote e separar os arquivos: arquivo criptografado, a chave de arquivo criptografada e o Hash do arquivo assinado. 2 Checar a integridade do arquivo com a chave pública do dono do arquivo. Se o arquivo foi alterado, para processo. Caso contrário, continuar. 3 Descriptografar a chave de arquivo com a chave privada do usuário. 4 Descriptografar o arquivo com a chave de arquivo. 5 Descomprimir o arquivo.
Decifrar arquivo Armazenamento do arquivo na nuvem Arquivo cifrado Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 Nome do arquivo cifrado Ah1720jdsif 0kdsjfdsi10 Ch. secreta cifrada Assinatura do arquivo w9203ij 92 982jfkdslf9 ssd9dsw23 Arquivo.zip Storage OwnCloud (Computador do usuário: cliente) 34
Decifrar arquivo Assinatura do arquivo Arquivo cifrado = Compara HASH Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 Assinatura do arquivo!= RSA 2048 w9203ij 92 982jfkdslf9 ssd9dsw23 Ch. Pública do usuário (Computador do usuário: cliente) 35
Decifrar arquivo Criptografia do conteúdo do arquivo Arquivo comprimido AES 256 Arquivo cifrado Ah1720jdsif 0kdsjfdsi10 2398fjsjfds w9203ij 92 982jfkdslf9 ssd9dsw23 Ch. secreta RSA 2048 Ch. secreta cifrada Ch. Privada do usuário (Computador do usuário: cliente) 36
Decifrar arquivo Criptografia do nome do arquivo Nome do arquivo em claro AES 256 Nome do arquivo cifrado Ah1720jdsif 0kdsjfdsi10 Ch. secreta (Computador do usuário: cliente) 37
Decifrar arquivo Descompressão do arquivo Arquivo em claro Comprimir Arquivo comprimido (Computador do usuário: cliente) 38
Compartilhamento OwnCloud TLS Cliente A - dono de um arquivo TLS Cliente B deseja o arquivo 2 A confere o certificado de B 4 A cifra a chave intermediária deste arquivo com a ch. pública de B 39
Compartilhamento OwnCloud TLS Cliente A - dono de um arquivo TLS Cliente B deseja o arquivo... 9 B decifra o arquivo 40
Fim Obrigado! 41
Perguntas 42