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.