24
CPG: sincronização entre diferentes dispositivos APRESENTAÇÃO GRUPO DCA DE SEGURANÇA 02 de outubro de 2015 – Campinas - SP Universidade Estadual de Campinas - UNICAMP Faculdade de Engenharia Elétrica e de Computação – FEEC Vitor Hugo Galhardo Moia Marco Aurélio Amaral Henriques {vhgmoia, marco}@dca.fee.unicamp.br

CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG: sincronização entre diferentes dispositivos

APRESENTAÇÃO GRUPO DCA DE SEGURANÇA

02 de outubro de 2015 – Campinas - SP

Universidade Estadual de Campinas - UNICAMP Faculdade de Engenharia Elétrica e de Computação – FEEC

Vitor Hugo Galhardo Moia Marco Aurélio Amaral Henriques {vhgmoia, marco}@dca.fee.unicamp.br

Page 2: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Agenda

• Cloud Privacy Guard (CPG) – Definição e objetivos – Características – Exigências para utilização – Requisitos atendidos – Funcionamento (demonstração)

• Sincronização entre diferentes dispositivos – Problemas – Solução – Etapas do processo – Casos de uso no CPG

• Estado atual do projeto • Próximos passos

2

Page 3: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG – Definição e objetivos

• Definição: – Ferramenta criptográfica em desenvolvimento para

melhorar a segurança e privacidade nas nuvens.

• Objetivos: – Dar mais controle do processo ao usuário.

– Ser mais fácil de utilizar. • Utiliza o mesmo conceito “Drag and Drop” usado em nuvens

populares para simplificar a interface com o usuário (similar ao Dropbox, OneDrive, Drive etc.)

– Permitir acesso aos dados por meio de diferentes dispositivos.

3

Page 4: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG – Características

• CPG pode ser integrado a vários CSPs disponíveis (Google Drive, Microsoft OneDrive, Dropbox etc.).

• Os usuários precisam criar e gerenciar apenas um segredo. – Usado para proteger suas chaves e para se autenticar na aplicação.

• Classificado como nível 3 de sigilo – Os dados são cifrados localmente antes de serem enviados para a

nuvem. – Usuários são os únicos a ter acesso a seus dados, uma vez que só eles

possuem as chaves criptográficas. – Obs. Se o usuário perder as chaves não há como recuperá-las: acesso

aos arquivos é perdido.

• Além de cifrar o conteúdo de um dado, o CPG também cifrar seu nome.

• Permite o usuário acessar seus dados de vários dispositivos. • O usuário pode habilitar a autenticação por dois fatores.

4

Page 5: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG – Exigência para utilização

• O usuário deverá possuir: – Uma conta previamente criada e configurada em

um provedor de nuvem;

– O aplicativo cliente deste provedor instalado e configurado em seu computador;

– Um certificado pessoal ICP-Brasil ou ICPEdu.

• O usuário também deverá manter o horário de seu dispositivo atualizado. – Caso contrário, poderão haver problemas na

sincronização entre diferentes dispositivos.

5

Page 6: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG – Requisitos atendidos

• O CPG atende uma série de requisitos: – Controle do ciclo de vida das chaves

criptográficas;

– Deduplicação segura;

– Separação de senhas;

– Alto nível de sigilo;

– Cifragem dos atributos de arquivos;

– Assinatura de códigos fonte e executável;

– Autenticação multi-fator;

– Maior usabilidade.

6

Page 7: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

CPG – Funcionamento (demonstração)

7

CPG Cloud Privacy Guard

Page 8: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização entre diferentes dispositivos

• Necessidade de manter todos os arquivos sincronizados entre dispositivos diferentes.

– Um arquivo armazenado no dispositivo 1, deve estar disponível no dispositivo 2, 3,..., n.

– Qualquer alteração no arquivo em qualquer dispositivo deve ser refletida nos demais dispositivos.

– Se o arquivo for deletado de um dispositivo, o mesmo deve acontecer nos outros.

• O CPG realiza esta sincronização de forma transparente ao usuário.

8

Page 9: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Atuação do CPG

Cloud

Dispositivo 1

Dispositivo 2 Dispositivo 3

Page 10: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Problemas

• Manter dois dispositivos sincronizados não é uma tarefa trivial. – Exigência de um processamento que se eleva a

medida que o número de arquivos crescem. • Deve-se calcular as diferenças entre os arquivos de um lugar

para outro.

• A sincronização é dificuldade ainda mais no CPG que lida com arquivos criptografados. – A comparação entre os arquivos é feita entre arquivos

em claro e arquivos cifrados. – O nome dos arquivos também são diferentes (CPG

cifra o nome dos mesmos).

10

Page 11: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Solução

• Arquivo de estados – Alternativa adotada pelo CPG para auxiliá-lo na tarefa

de sincronização.

– Arquivo no formato XML.

– Armazena diversas informações sobre os arquivos.

– Cada pasta possuirá sem próprio arquivo de estados. Ele é armazenado na nuvem e localmente. • Localmente → pasta interna da aplicação, em uma estrutura

de níveis semelhante a utilizada pelo usuário na organização de seus dados.

• Nuvem → armazenado nas pastas na qual eles correspondem, porém de forma criptografada.

11

Page 12: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Arquivo de estados informações

• Atributo do arquivos de estados – dataUltimaModificação (date) data da última modificação do arquivo de

estados.

• Elementos de uma entrada de arquivo: – nomeArquivo (string) → nome em claro do arquivo – path (string) → caminho do arquivo (a partir da pasta da aplicação). – ultimaModificacao (date) → data da última modificação do arquivo em claro, no

formato: EEE MMM d HH:mm:ss zzz yyyy (Ex.: Tue Sep 22 14:18:13 BRT 2015) – ultimaModificacaoArqEncrypt (date) → data da última modificação do arquivo

criptografado, no mesmo formato utilizado no campo ultimaModificacao. – Diretorio (boolean) → Indica se determinado arquivo é um diretório ou não.

• Atributos: – pathArqConfig (string) → caminho onde se encontra o arquivo de estado

pertinente ao diretório sendo registrado. Se o registro pertencer a um arquivo, ele ficará vazio.

– nomeArquivoEncrypt (string)→ nome do arquivo em formato criptografado. Máximo de 30 caracteres.

– pathArquivoEncrypt (string) → caminho do arquivo criptografado (a partir da pasta da nuvem).

12

Page 13: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Arquivo de estados informações

• Atributos de um elemento de uma entrada de arquivo:

– id (int)→ número que identifica o arquivo. Sem utilidade no momento. Começa no 0 e é incrementado a cada nova entrada de arquivo.

– DataInsercaoRegistro (string)→ data de cadastramento do arquivo no arquivo de estados (É necessário???).

– UltimoDispositivoMod (string)→ nome (ou identificador) do dispositivo que realizou a inserção ou modificação do registro pertinente a esta entrada.

13

Page 14: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Arquivo de estados Versão antiga

14

Page 15: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

____

_________

_________

_________

_________

Status.xml

____

_________

_________

_________

_________

Status.xml

____

_________

_________

_________

_________

Status.xml

...

Status.xml.encrypted

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Status.xml.encrypted

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Status.xml.encrypted

Atuação do CPG

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Status.xml.encrypted

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Cloud

pa2 pa1 paN

pn2 pn1 pnN

pnNuvem

Page 16: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

____

_________

_________

_________

_________

Status.xml

____

_________

_________

_________

_________

Status.xml

Status.xml.encrypted

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Status.xml.encrypted

Atuação do CPG

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Status.xml.encrypted

t56as

Dsajkl9(032a1

Qweqw231a2

Çlkpoii!90çd2f

Llopipkkaçlkfs

N123<mdsads

fdsfdsfsdfsdfs

Cloud

1 7

2 8

3 9

4 10

CPG sendo utilizado por

dois dispositivos diferentes

pa2 pa1

pn2 pn1

pnNuvem

5 6

Page 17: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Etapas do processo

• A sincronização no CPG é realizada em duas etapas: – Completa

• Todos os arquivos locais e da nuvem são verificados, onde são procurados por diferenças entre eles (arquivos novos, arquivos que faltam (excluídos) e arquivos modificados).

• Executada toda vez que o CPG inicia e de tempos em tempos (a definir).

• Vantagem: – Mais confiável – A aplicação pode ser fechada que quando for iniciada será capaz

de tratar novas atualizações.

• Desvantagem: – Requer mais processamento. Todos os arquivos são verificados.

17

Page 18: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Etapas do processo

• A sincronização no CPG é realizada em duas etapas: – Parcial

• São criados dois threads especializados em coletar eventos que possam ocorrer nas pastas da aplicação local e na pasta da nuvem. – O S.O gera eventos específicos (criação de um dado, modificação ou

exclusão) que são coletados pelos threads e passados para o CPG.

• Executada após a verificação completa. Os threads ficam aguardando eventos gerados pelo S.O. enquanto o thread principal permanece “dormindo” e “acorda” quando algum evento ocorreu ou o tempo da verificação completa foi atingido.

• Vantagem: – Mais rápida: não precisa verificar todos os dados regularmente.

• Desvantagem: – Menos confiável. Eventos podem não ser repassados para o CPG.

– Não funciona enquanto o sistema estiver parado/fechado.

18

Page 19: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Casos de uso do CPG

1. Sincronizar registros do arquivo de estados local com os atuais arquivos presentes na pasta da aplicação.

2. Sincronizar registros do arquivo de estados da nuvem com os atuais arquivos presentes na pasta da nuvem.

3. Comparar os arquivos de estados local e da nuvem. As informações mais recentes devem prevalecer.

4. Atualizar as pastas com os arquivos mais recentes.

5. Caso de uso: verificação completa da aplicação

6. Caso de uso: verificação parcial da aplicação

7. Caso de uso: aplicação é iniciada e não existem arquivos criptografados na nuvem e nem o arquivo de estados, mas existem arquivos locais na pasta da aplicação.

8. Caso de uso: aplicação é iniciada e existem arquivos na nuvem, assim como o arquivo de estados da nuvem, mas não existem arquivos locais na pasta da aplicação

9. Caso de uso: aplicação é iniciada e não existem arquivos na nuvem, na pasta da aplicação e nem mesmo os arquivos de estados local e da nuvem.

19

Page 20: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Sincronização Casos de uso do CPG

10. Caso de uso: aplicação é iniciada e existem arquivos na nuvem e localmente, assim como os respectivos arquivos de estados.

11. Caso de uso: Evento de inserção de arquivos/diretórios.

12. Caso de uso: Evento de deleção de arquivos/diretórios.

13. Caso de uso: Evento de modificação de arquivos/diretórios.

14. Caso de uso: É encontrado um arquivo ou diretório na pasta da nuvem que não foi guardado pela aplicação, e por esta razão, não se encontra no arquivo de estados.

15. Modificação de um mesmo arquivo em dois dispositivos diferentes antes de ambos estarem sincronizados

16. Deleção de arquivo já sincronizado em um dispositivo e alteração do mesmo em outro dispositivo antes da atualização

17. Renomear arquivos e diretórios

18. Travar arquivo de estados da nuvem para atualização

19. Liberar arquivo de estados da nuvem para permitir atualização

20

Page 21: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Estado atual do projeto

• Elaboração e revisão dos casos de uso relacionados ao sincronismo entre dispositivos. – Propor e implementar uma solução para os casos de uso 18 e 19.

• Implementação destes casos de uso no CPG.

21

Page 22: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Próximos passos

• Proceder com o desenvolvimento do CPG. – Implementar novos casos de uso relacionados ao sincronismos

entre dispositivos; – Realizar uma bateria de testes a fim de comprovar que o CPG

cumpre corretamente com o especificado nos casos de uso; – Implementar o compartilhamento de dados entre usuários; – Propor algum meio simples para que os usuários possam

verificar a autenticidade da aplicação sendo instalada em suas máquinas. • Pode-se apenas disponibilizar o código-fonte e o executável assinados.

• Começar a escrita da dissertação a partir do esqueleto proposto.

22

Page 23: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Obrigado!

Page 24: CPG: sincronização entre diferentes dispositivoscalhau.dca.fee.unicamp.br/wiki/images/4/45/Apresentação_Casos_d… · Sincronização Problemas •Manter dois dispositivos sincronizados

Perguntas