• Nenhum resultado encontrado

52

Quadro 1 - Resumo comparativo das ferramentas de frontend

Soluções

Aspectos de Segurança OwnCloud Pydio StackSync

Permite sincronização com pasta local ● ● ●

Acesso via navegador de internet ● ● -

Compartilhamento de arquivos entre

usuários ● ● ●

Compartilhamento de arquivos com

usuários externos ● ● -

Criptografia de dados no servidor ● ● -

Criptografia de dados no cliente - - ●

Criptografia do nome dos dados - - -

Armazenamento de logs ● ● ●

Versionamento dos dados armazenados

na nuvem ● ● ●

Facilidade para desenvolvimento de apps. ● - -

Presença de métodos criptográficos em sua estrutura sem a necessidade da utilização de tecnologias externas

● - -

Fonte: Elaborada pelos autores

53

Para fins de demonstração, considera-se a instalação do OwnCloud em um servidor Linux com Ubuntu versão 16.04, de acordo como foi demonstrado na seção 4.2.2.

Para a criação de um app é necessário instalar a ferramenta de desenvolvimento do OwnCloud: OCDEV, uma biblioteca do Python 3, de acordo com o passo a passo a seguir.

Instalação da ferramenta de desenvolvimento do OwnCloud OCDEV

Para instalar a ferramenta de desenvolvimento do OwnCloud, é necessário instalar o gerenciador de pacotes do Python 3, PIP. Para isso basta executar os seguintes comando no terminal:

sudo apt-get install python3 python3-pip sudo pip3 install ocdev

4.5.2 Criando um app

A ferramenta de desenvolvimento cria a estrutura de pastas e arquivos necessários para o desenvolvimento do app através da seguinte linha de comando:

ocdev startapp OwnCrypt

Figura 10: Estrutura padrão de pastas em um app do OwnCloud.

Fonte: Elaborada pelos autores

Uma vez criada a estrutura padrão de pastas, deve-se alterar os arquivos corretos para a realização do que se pretende fazer.

4.5.3 Arquivos fundamentais de um app no OwnCloud

A seguir, uma explicação sobre os principais arquivos em um app para o OwnCloud.

appinfo/routes.php

54

Deve-se utilizar este arquivo para conectar uma URL a um método de controle. A configuração deve ser passada através de um array para o método registerRoutes. Um exemplo de configuração do routes.php pode ser observado na figura a seguir:

Figura 11: Exemplo de arquivo routes.php.

Fonte: Manual do Desenvolvedor do OwnCloud.

Os métodos de controle estão configurados no arquivo pagecontroller.php na pasta controller, cuja descrição está a seguir.

controller/pagecontroller.php

Neste arquivo são configurados os métodos de controle que foram configurados no arquivo routes.php. No caso do OwnCrypt, eles retornarão as páginas utilizadas no app, como pode-se observar na figura a seguir.

Figura 12: Exemplo de arquivo pagecontroller.php

Fonte: Manual do Desenvolvedor do OwnCloud.

js/script.js

55

Neste arquivo está contido os scripts que são executados na página do app. Este é um arquivo JavaScript padrão, outros podem ser necessários para o desenvolvimento do app de acordo com a finalidade.

Os scripts devem ser importados dentro dos controllers, através da função /OCP/Util::addscript(‘app’, ‘script’). Esta função faz parte da API do OwnCloud, apresentada a seguir.

4.5.4 API OwnCloud

Uma API (Application Programming Interface) é um conjunto particular de regras que podem ser utilizados para realizar uma tarefa e/ou comunicar programas.

O OwnCloud possui uma API própria que automatiza várias funções na plataforma, tais como mover um arquivo no servidor, criar novos arquivos e diretórios, gerar URL etc. A lista completa dos métodos implementados na API do OwnCloud pode ser consultada no site api.owncloud.com.

No capítulo 5 é apresentado o app desenvolvido e as funções utilizadas para seu funcionamento.

4.6 Conclusão

Neste capítulo foi apresentado como é dividida a arquitetura de uma nuvem e que além de sua infraestrutura e aplicações ela também é composta por canais de comunicação, pelo frontend e pelo backend.

StackSync, OwnCloud e Pydio são as principais tecnologias de frontends utilizadas por nuvens de armazenamento de dados. Como algumas características em comum, observa-se que elas são open source e dão ênfase na sincronia, armazenamento e compartilhamento de dados.

Os frontends estudados utilizam tecnologias de backend que são os componentes responsáveis pelo armazenamento de dados. Neste processo de armazenamento de dados tem- se a preocupação com a segurança da informação, por isso utiliza-se técnicas como a criptografia para auxílio nesta proteção.

A maioria das tecnologias utiliza criptografia de dados no servidor, ou seja, eles se tornam vulneráveis a ataques no processo de envio para armazenagem e uma solução para o problema é que sejam criptografados no cliente antes do envio. A exemplo da funcionalidade já existente no StackSync, que realiza a criptografia no cliente, o aplicativo deste trabalho foi desenvolvido para desempenhar esta mesma função mas na plataforma OwnCloud.

56

5 OwnCrypt: Um aplicativo web de criptografia de dados no cliente para OwnCloud Como descrito, uma ameaça pertinente no armazenamento de dados em nuvem é a possibilidade de algum atacante obter acesso indevido aos dados que lá estão armazenados, uma vez que as chaves utilizadas para realizar a criptografia no servidor ficam armazenadas dentro do mesmo servidor.

De forma a mitigar esse problema, propõe-se que os dados sejam criptografados no computador do usuário antes de serem enviados para a nuvem. Dessa forma, qualquer acesso não autorizado aos arquivos armazenados na nuvem não resultará em informação útil sobre eles.

Este capítulo apresenta uma solução que possibilita a criptografia de dados no cliente. Ela possibilita que usuários criptografem seus arquivos antes de enviá-los para os servidores da nuvem.

Dentre as tecnologias para frontend de nuvens de armazenamento de dados apresentadas na seção 4.2, o OwnCloud foi escolhido para a implementação do app, tendo em vista que o mesmo não possui até então esta funcionalidade implementada pela comunidade e o desenvolvimento de apps para este frontend é livre.

Documentos relacionados