Você está na página 1de 53

UM ESTUDO SOBRE O USO DA TECNOLOGIA BLOCKCHAIN EM

PLATAFORMAS DE ARMAZENAMENTO COMO SERVIO


Por
MARCELA PEREIRA DE OLIVEIRA
Trabalho de Graduao

Universidade Federal de Pernambuco

RECIFE/2016.1

Universidade Federal de Pernambuco


Centro de Informtica
Graduao em Sistemas de Informao

MARCELA PEREIRA DE OLIVEIRA

"UM ESTUDO SOBRE O USO DA TECNOLOGIA BLOCKCHAIN EM PLATAFORMAS


DE ARMAZENAMENTO COMO SERVIO"

Trabalho apresentado ao curso de Graduao em Sistemas


de Informao do Centro de Informtica da Universidade Federal de Pernambuco como requisito parcial para obteno
do grau de Bacharel em Sistemas de Informao.

Orientador: Vincius Cardoso Garcia

RECIFE, 2016.1

2
Trabalho de concluso de curso apresentado por Marcela Pereira de Oliveira graduao em
Sistemas de Informao do Centro de Informtica da Universidade Federal de Pernambuco,
sob o ttulo UM ESTUDO SOBRE O USO DA TECNOLOGIA BLOCKCHAIN EM PLATAFORMAS DE ARMAZENAMENTO COMO SERVIO, orientada pelo Prof. Vincius
Cardoso Garcia e aprovada pela banca examinadora formada pelos professores:

Prof. Vinicius Cardoso Garcia


Centro de Informtica/UFPE

Prof. Ruy Jos Guerra Barretto de Queiroz


Centro de Informtica/UFPE

RECIFE
2016.1

Dedico esse trabalho a todos os nos recebidos, eles me


fizeram e me fazem chegar alm.
Em primeiro lugar, agradeo aos meus tios (Carminha Miranda e Carlos Miranda) por
me oferecem um lar e me apoiarem e acolherem todo esse tempo. Sem vocs eu no seria metade
do que sou hoje. Em segundo lugar, agradeo a mainha (Risolene Pereira), por, a sua maneira,
sempre acreditar e torcer por mim.
Agradeo tambm aos meus primos, nega (Patricia Miranda), calico (Carlos Miranda)
e biana (Fabiana Miranda) por serem verdadeiros irmos e dividir parte de uma vida comigo e
sempre acharem que sou uma nerdinha e torcerem por mim.
Agradeo a minha segunda famlia, tia Dalva Martinho, danny (Danielle Martinho) e gi
(Giselle Martinho) por serem to gentis e me ensinarem valores os quais me fazem ser cada vez
melhor. Eles foram muito teis ao longo do curso, para no dizer para toda a vida.
Agradeo ao professor Vinicius Cardoso por todos esses anos de aprendizado e por
ter acreditado no meu trabalho, seja como aluna, monitora ou orientanda. Aprendi muito e
voc serve de inspirao. Tambm agradeo aos professores Carla Silva, Bernadete Lscio,
Kiev Gama, Henrique Reblo, Giordano Ribeiro e Simone Santos por todos os ensinamentos
realizados ao longo do curso.
Agradeo aos amigos que fizeram parte da jornada do curso, isabear (Isabel Amaral), karlinha (Karla Silva), cadu (Carlos Eduardo), beb (Marcos Antnio) e rafinha (Rafael Beckman).
Vocs tornaram os anos mais divertidos e ensinaram o valor de cooperao, companherismo e
dedicao.
Agradeo a minha famlia do NTI, chefa (Suzanna Dantas), chefo (Bruno Freitas), aninha
(Ana Alves), gru (Renato Mendes), kinjou-san (Marlos Ribeiro) e master (Raphael Barros),
por alm de serem chefes maravilhosos, acreditarem no meu trabalho. Agradeo tambm a
minha dupla do biscoito (Jacinto Reis) por ser um grande amigo e a chiribi (Chrystian Soares)
por todos os papos filosficos. E por ltimo e no menos importante, agradeo a tac (Tarcisio
Coutinho) por simplesmente tudo. No poderia deixar de agradecer a toda equipe dos Avengers,
gera (Geraldo Jnior) e a equipe de suporte, e aos demais funcionrios e bolsistas que tornaram a
vivncia e convivncia no NTI um grande aprendizado.
E por fim, agradeo aos meus queridos amigos do CIn, seu beto (Roberto Mariano) e
su (Suilan Dias), por dividir momentos de alegria e fazer com que o CIn fosse um lugar no
somente de estudos, mas de amizade e companherismo. Agradeo tambm a dona Incia (Incia
Bezerra), seu Edson (Jos Edson), seu Wellington (Wellington Fernando) e gi (Giselly Karine)
por serem to gentis e amveis. Sem vocs o CIn perderia um pouco do seu brilho.
Gratido ao infinito e alm!

Das Wichtigste ist, da man nicht aufhrt zu fragen. Neugierde hat ihren
eigenen Existenzgrund.
ALBERT EINSTEIN

5
Resumo

Computao em nuvem vem revolucionando o mundo pela facilidade com que os usurios possuem em utilizar recursos computacionais, seja memria, armazenamento, aplicaes,
servidores e servios, de acordo com sua demanda. Apesar de inicialmente disponibilizar trs
servios em nuvem, IaaS, PaaS e SaaS, a necessidade em oferecer servios mais especficos fez
o nmero de modelos de negcio em nuvem expandir.
Desses, STaaS vem ganhando destaque pela possibilidade do usurio poder armazenar,
atualizar, remover e acessar seus dados de qualquer lugar do mundo, atravs da internet. O
modelo, da mesma forma, vem sendo cogitado para ajudar no armazenamento dos dados
provindos de dispositivos interconectados pelo IoT.
A preocupao com a segurana dos dados armazenados nesse servio crucial, e para
melhorar esse importante aspecto, a tecnologia blockchain vem sendo vista como uma importante
adio aos servios em nuvem por proporcionar descentralizao, retirando a necessidade de
uma autoridade central (provedor) para autenticar ou controlar os dados que so armazenados.
De forma que o presente trabalho tem como objetivo descobrir o porqu a tecnologia
vem sendo utilizada em servios de armazenamento em nuvem, avaliar as aplicaes que
j fazem uso da tecnologia e destacar as vantagens e desvantagens do emprego da mesma.
Dentre a anlise, foi possvel observar que h melhoria em relao a segurana dos servios de
armazenamento, provida, principalmente pelo conjunto de tcnicas utilizadas em blockchain. H
tambm benefcios quanto a eficincia, qualidade do servio oferecido e menos vulnerabilidades.
A principal contribuio do trabalho fomentar a utilizao de blockchain em servios de
armazenamento em nuvem.
Palavras-chave: Engenharia de Software, Computao em Nuvem, STaaS, Blockchain,
Segurana, Servios em Nuvem.

7
Abstract

Cloud computing is changing radically the world for the easy way which users have to
use computer resources according to yours demand, as such as memory, storage, applications,
servers and services. Although, cloud computing initially provides three types of cloud services, IaaS, PaaS and SaaS, the need to provide more specific services made the number of cloud
business models expand.
One of these services, STaaS, has been gaining attention for the possibility that an user
has to store, update, remove, and access your data from anywhere in the world through the
internet. The model, likewise, is being considered to help the storage of data coming from
interconnected devices of IoT.
Concern for the safety of stored data in this service is crucial, and to improve this
important aspect, the technology blockchain has been seen as an important addition to cloud
services by providing decentralization, and removing the need for a central authority (provider)
to authenticate and control the data that has been stored.
In order that, the present study aims to find out why the technology has been used in
cloud storage services, evaluate the applications that already use the technology and highlight
the advantages and disadvantages of the use of blockchain. Among the analysis, it has been
observed that there is improvement on the safety of storage services, provided mainly by the
set of techniques used in blockchain. There are also benefits in efficiency, quality of service
and lower numbers of vulnerabilities. The main contribution of this work is promote the use of
blockchain in cloud storage services.
Keywords: Software Engineering, Cloud Computing, STaaS, Blockchain, Security, Cloud
Services.

9
Lista de Figuras

2.1

Infraestrutura em camadas de computao em nuvem. Adaptada de [19]. . . . .

21

3.1

Problemas de segurana e sua relao com a infraestrutura de CC. Extrada de [30] 27

4.1
4.2
4.3
4.4
4.5
4.6

Estrutura do blockchain. Extrada de [2] . . . . . . . . . . . . . . . . . . . . .


Exemplo de timestamp utilizando TSA como autoridade central. Extrada de [17].
Exemplo de PoW com hash parcial. Extrada de [15]. . . . . . . . . . . . . . .
Etapas executadas no PoW. Extrada de [18]. . . . . . . . . . . . . . . . . . .
Exemplo de uma rvore de Merkle. Adaptada de [2]. . . . . . . . . . . . . . .
Funo hash SHA-256 simplificada. Extrada de [33]. . . . . . . . . . . . . . .

32
33
34
35
35
37

11
Lista de Tabelas

3.1

4.1
4.2

Tipos de ataques possveis e sua relao com computao em nuvem - Adaptada


de [30, 58] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

28

Estrutura do bloco. Adaptada de [2] . . . . . . . . . . . . . . . . . . . . . . .


Estrutura do cabealho. Adaptada de [2] . . . . . . . . . . . . . . . . . . . . .

32
33

13
Lista de Acrnimos

API

Application Program Interface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Amazon S3 Amazon Simple Storage Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23


ASIC

Application-Specific Integrated Circuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

AWS

Amazon Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

BaaS

Backend as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

CC

Cloud Computing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

CPU

Central Processing Unit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

CRM

Customer Relationship Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

DaaS

Data as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

DAO

Decentralized Autonomous Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

Dapps

Decentralized Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

DDoS

Distributed Denial-of-Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

DNS

Domain Name System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

DoS

Denial-of-Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

EOA

Externally Owned Accounts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

EVM

Ethereum Virtual Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

HTTP

Hypertext Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

IaaS

Infrastructure as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

IP

Internet Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

IoT

Internet of Things . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

LDAP

Lightweight Directory Access Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

NIST

National Institute of Standards Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

P2P

Peer-to-Peer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

PaaS

Platform as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

PoW

Proof-of-Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

QoS

Quality of Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

SaaS

Software as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

SECaaS

Security as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

SCP

Stellar Consensus Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

SHA

Secure Hash Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

SO

Sistema Operacional . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

SQL

Structured Query Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

SJCX

Storjcoin X . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

STaaS

Storage as a Service . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

TCP

Transmission Control Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

TSA

Time Stamp Authority . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

TI

Tecnologia da Informao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

15
Sumrio

Introduo

17

1.1

Contexto e Motivao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

17

1.2

Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

1.3

Escopo No Contemplado . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

1.4

Estrutura do Trabalho . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

Computao em Nuvem

19

2.1

Conceito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19

2.2

Infraestrutura de Computao em Nuvem . . . . . . . . . . . . . . . . . . . .

20

2.3

Modelos de Implantao em Nuvem . . . . . . . . . . . . . . . . . . . . . . .

21

2.4

Modelos de Negcio em Nuvem . . . . . . . . . . . . . . . . . . . . . . . . .

22

2.5

Armazenamento em Servios em Nuvem . . . . . . . . . . . . . . . . . . . . .

23

Segurana em Nuvem

25

3.1

Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

25

3.2

Segurana no mbito de Computao em Nuvem . . . . . . . . . . . . . . . .

26

3.3

Tipos de Ataques em Computao em Nuvem . . . . . . . . . . . . . . . . . .

27

3.4

Segurana em Armazenamento em Nuvem como Servio . . . . . . . . . . . .

29

Blockchain

31

4.1

Conceitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.1.1

Estrutura do bloco . . . . . . . . . . . . . . . . . . . . . . . . . . . .

32

4.1.2

Servidor Timestamp . . . . . . . . . . . . . . . . . . . . . . . . . . .

33

4.1.3

Proof-of-work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

34

4.1.4

rvores de Merkle . . . . . . . . . . . . . . . . . . . . . . . . . . . .

35

4.1.5

Funes Hash Criptogrficas . . . . . . . . . . . . . . . . . . . . . . .

36

Ataques ao Blockchain . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

37

4.2
5

Aplicaes de Armazenamento em Nuvem com Blockchain

39

5.1

Ethereum Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

40

5.1.1

Como funciona blockchain no Ethereum? . . . . . . . . . . . . . . . .

40

5.1.2

Aplicaes desenvolvidas no Ethereum . . . . . . . . . . . . . . . . .

41

Sia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

41

5.2.1

Como funciona Blockchain no Sia? . . . . . . . . . . . . . . . . . . .

42

5.2.2

Aplicaes que utilizam Sia . . . . . . . . . . . . . . . . . . . . . . .

42

Storj . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

42

5.3.1

43

5.2

5.3

Como funciona blockchain no Storj? . . . . . . . . . . . . . . . . . . .

16

5.4

5.5
6

5.3.2 Aplicaes que utilizam Storj


Anlise . . . . . . . . . . . . . . . .
5.4.1 Ethereum . . . . . . . . . . .
5.4.2 Sia . . . . . . . . . . . . . .
5.4.3 Storj . . . . . . . . . . . . . .
Consideraes Finais . . . . . . . . .

Concluso

Referncias

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

44
44
44
44
45
45
47
49

17

1
Introduo

1.1

Contexto e Motivao

Cloud Computing (CC) - Computao em Nuvem, tornou-se muito popular a partir de


2007, por passar a oferecer servios virtualizados como infraestrutura e armazenamento em
nuvem at ento no disponveis. De acordo com National Institute of Standards Technology
(NIST) [28], CC refere-se a um modelo que permite acesso a rede de maneira ubqua, conveniente
e sob-demanda a um grupo de recursos computacionais configurveis (computao, memria,
rede, servidores, armazenamento, aplicaes e servios) que pode ser rapidamente mantido ou
liberado com o mnimo de esforo gerencial ou de interao com o provedor do servio.
Um dos modelos oferecidos pela CC e que vem apresentando um aumento de demanda
expressivo [48] o Storage as a Service (STaaS) - armazenamento como servio. STaaS um
servio onde um provedor disponibiliza armazenamento virtualizado, permitindo o acesso aos
dados de qualquer lugar, tornando-o mais acessvel financeiramente, alm das j conhecidas
caractersticas que servios em nuvem oferecem [56]. A saber: agilidade, interface para aplicao, confiabilidade, escalabilidade, elasticidade, virtualizao, utilizao em grande escala e
segurana [8, 4, 25].
O design estrutural e caractersticas da computao em nuvem oferecem por padro
segurana, como centralizao, redundncia, alta disponibilidade e segmentao de dados e
processo [58]. Entretanto, ela ainda um assunto que necessita de ateno [12] tanto por parte
do cliente quanto do provedor de servio. Muitos estudos tm sido realizados buscando uma
alternativa para mitigar o risco de uma falha de segurana, como o caso da utilizao de
blockchain para aprimorar a segurana do STaaS [34, 51, 53, 54].
Blockchain uma tecnologia utilizada na criptomoeda Bitcoin, sendo seu conceito
introduzido em 2008 por Nakamoto [32]. Ela permite a descentralizao de autenticao, sem a
necessidade de uma autoridade central, fazendo com que cada transao seja verificada pelos
usurios que esto conectados a rede e que emprestam recursos computacionais para que a
plataforma funcione. A construo de cada bloco de transao realizada de forma que seja
criado um encadeamento de transaes, de maneira cronolgica.
Por melhorar o nvel de segurana de aplicaes, a tecnologia tem potencial para ser

18

CAPTULO 1. INTRODUO

utilizada em qualquer rea em que seja necessrio registrar, certificar e transferir alguma transao
ou propriedade [32], como sistemas de votao, smart contracts, computao em nuvem, registro
de propriedade intelectual, crowdfunding, Internet of Things (IoT) - internet das coisas, entre
outros [34].
Sendo assim, blockchain pode oferecer uma melhoria significativa em segurana para
alguns dos problemas conhecidos em computao em nuvem, especificamente no contexto de
armazenamento como servio, como questes relacionadas ao acesso ao dado, sua modificao e
exposio.
1.2

Objetivos
Como objetivos deste trabalho tm-se:


1.3

Analisar por qu a tecnologia de blockchain pode ser utilizada para sistemas de


armazenamento de dados como servio (STaaS);
Verificar quais aplicaes STaaS utilizam tecnologia blockchain e seus similares;
Avaliar vantagens e desvantagens da tecnologia quando utilizada no contexto de
STaaS.

Escopo No Contemplado

No faz parte do escopo deste trabalho implementar a tecnologia ou propor um framework


de como implementar o blockchain no contexto de armazenamento de dados como servio.
Tambm no faz parte analisar quais as possveis melhorias em segurana ou outro aspecto,
quando a tcnica utilizada em outro modelo de negcio de computao em nuvem, que no o
STaaS.
1.4

Estrutura do Trabalho

Este trabalho est dividido em 6 (seis) captulos. O captulo 2 (dois) aborda contedo
terico sobre computao em nuvem, com definio de conceito e explanao sobre os modelos
de negcio, dando nfase ao modelo STaaS.
O captulo 3 (trs) trata da segurana no contexto de computao em nuvem de forma
geral, e aborda as principais preocupaes relacionadas ao armazenamento de dados como
servio. O captulo 4 (quatro) discute sobre a tecnologia blockchain e como ela pode melhorar
os aspectos de segurana em STaaS.
No penltimo captulo encontra-se a anlise das aplicaes que fazem uso do blockchain,
trazendo os principais benefcios e problemas. E o ltimo captulo conclui o trabalho, trazendo
as principais contribuies para a rea e possveis trabalhos futuros.

19

Computao em Nuvem

2.1

Conceito

CC um modelo computacional que surgiu a partir da juno de vrios paradigmas


da computao. Cada um deu sua contribuio para que, ao final, os usurios pudessem ter
acesso, via internet, a qualquer contedo, independente da infraestrutura em que o mesmo esteja
hospedado [8]. Os paradigmas envolvidos so: grid computing, Peer-to-Peer (P2P) computing,
virtualizao e utility computing [8, 50]. Dentre eles, o mais importante e que, de fato, permite a
criao do CC a virtualizao.


Grid computing refere-se a um conjunto de computadores, ligados atravs da rede,


que compartilham recursos para, em geral, resolver determinado problema. Os
recursos podem ser: processamento, memria e armazenamento.
P2P computing trata-se de uma arquitetura distribuda onde partes de uma tarefa,
processos, ou mesmo arquivos, so partilhados entres os participantes da rede.
Virtualizao consiste no processo de criar verses virtuais, seja de sistemas operacionais, recursos de redes, dispositivos de armazenamento ou plataformas de hardware.
A virtualizacao permite que um computador efetue diversas tarefas em paralelo.
Utility computing um modelo de servio onde provedores disponibilizam recursos
computacionais, sejam eles infraestrutura, recursos ou aplicaes, de maneira que os
consumidores pagam pela sua utilizao.

Entretanto, para que uma infraestrutura seja considerada em nuvem, ela deve possuir
certas caractersticas, que se tornam possveis devido as tecnologias supracitadas. As caractersticas essenciais de uma infraestrutura em nuvem so: servio sob-demanda, acesso via internet,
conjunto de recursos, rpida elasticidade e capacidade de medir o servio [28].


Servio sob-demanda trata-se da utilizao de recursos computacionais de acordo


com a necessidade do cliente, como rede, armazenamento, tempo de servidor, sem a
interferncia humana para disponibiliz-los;

20

CAPTULO 2. COMPUTAO EM NUVEM




Acesso via internet a caracterstica dada ao servio que viabilizado e acessado


pela rede, sendo seu acesso irrestrito a plataformas, como celulares, tablets, laptops
ou estaes de trabalho;
Conjunto de recursos - Resources pooling refere-se a um conjunto de recursos que
oferecido a mltiplos clientes utilizando o modelo multi-tenancy. Entretanto as
caractersticas dos recursos viabilizados so diferentes para cada cliente, bem como
sua oferta. Assim os recursos podem ser disponibilizados ou liberados de acordo
com a demanda de cada cliente;
Rpida elasticidade a propriedade em que um recurso pode ser elasticamente
consumido ou liberado, em alguns casos de forma automtica, propiciando sensao
de ilimitado;
Capacidade de medir o servio remete a capacidade em monitorar, controlar e relatar o consumo de determinado recurso facilitando assim a cobrana e a transparncia
do servio oferecido, tanto pelos provedores quanto pelos consumidores.

A iluso de infinito recurso computacional proporcionada pela oferta de uma infraestrutura (rede, armazenamento, computao, memria, servidores, aplicaes, entre outros) de
forma dinmica, Quality of Service (QoS) - qualidade do servio assegurada quanto ao ambiente
computacional e servios de software configurveis [52]. O usurio, passa ento a acessar o
servio de maneira remota, bastando apenas ter acesso a rede web.


QoS refere-se a medio da taxa de transmisso, taxa de erros e outras caractersticas


da internet permitindo a priorizao do trfego da rede, aumentando ou diminuindo a
disponibilidade da largura de banda da internet quando necessrio.

Por oferecer servios como um bem utilitrio, CC mudou radicalmente como as pessoas utilizam recursos computacionais, permitindo que um usurio consuma uma determinada
infraestrutura de Tecnologia da Informao (TI) de acordo com sua demanda. A impresso
que os servios em nuvem apresentam recursos infinitos e possuem disponibilidade 24/7 vem
provocando um crescimento em seu uso ao longo dos anos, e hoje serve de facilitador para
empresas disponibilizarem suas aplicaes mais rapidamente, migrar dados corporativos para a
nuvem e/ou at mesmo utilizarem aplicaes prontas. As razes para essa adoo variam desde
diminuir o dinheiro investido inicialmente at no possuir dinheiro suficiente para investir em
infraestrutura de TI ou diminuir gastos com recursos computacionais [3].
2.2

Infraestrutura de Computao em Nuvem

As caractersticas supracitadas s so possveis com a criao de 3 camadas de aspectos


e responsabilidades nicas, apresentando comunicao e dependncia entre os nveis adjacentes.

2.3. MODELOS DE IMPLANTAO EM NUVEM

21

Ela foi proposta pela NIST [19], como demonstrado na figura 2.1 e serve como arquitetura de
referncia para disponibilizao de servios em nuvem.

Figura 2.1: Infraestrutura em camadas de computao em nuvem. Adaptada de [19].

2.3

A camada de recursos fsicos (physical resource layer) inclui todos os recursos


computacionais (sejam eles dispositivos, rede, armazenamento e outros componentes
inerentes infraestrutura). Tambm faz parte dessa camada, os recursos fsicos
relacionados ao ambiente, como energia, refrigerao, entre outros.
Chamada de camada de abstrao de recursos e controle (resource abstraction and
control layer), o nvel intermedirio possui componentes para acessar os recursos
fsicos atravs da utilizao de softwares. Como exemplo, tem-se os hypervisors,
as mquinas virtuais, o armazenamento virtual de dados e outros que asseguram a
eficincia, segurana e utilizao confivel.
Os usurios utilizam os servios em nuvem disponibilizados na camada de servio
(service layer), onde os provedores definem e disponibilizam pelo menos um dos trs
principais modelos de servio em nuvem. A saber: Infrastructure as a Service (IaaS) Infraestrutura como Servio, Platform as a Service (PaaS) - Plataforma como Servio,
e Software as a Service (SaaS) - Software como Servio.

Modelos de Implantao em Nuvem

Ao pensar em utilizar servios em computao em nuvem deve ser considerado o modelo


de implantao a ser usado, pois o mesmo pode trazer benefcios ou no devido a peculiaridades
inerentes a cada tipo. So eles: nuvem pblica, nuvem privada, nuvem hbrida e nuvem
comunitria.

22

CAPTULO 2. COMPUTAO EM NUVEM




2.4

Nuvem pblica - os recursos nela oferecidos tem como alvo o pblico em geral.
Ela traz como benefcio a no necessidade de grande volume de capital inicial para
sua utilizao, porm no dispe de muito controle quanto aos dados trafegados,
segurana e rede;
Nuvem privada - ou nuvem interna, formada quando uma empresa concede seu
servios de maneira virtual, porm a infraestrutura utilizada para disponibilizao
desses servios encontra-se na prpria instituio. Dessa maneira, h um alto controle
sobre segurana, rede e performance;
Nuvem hbrida - a agregao da nuvem pblica com a nuvem privada, tendo
uma parte dos servios sendo executados em uma nuvem e a outra parte na outra.
Ela oferece maior flexibilidade, apresentando um maior controle e segurana, como
tambm maior elasticidade;
Nuvem comunitria - a infraestrutura em nuvem destinada a um grupo em particular que possui interesses em comum, podendo ser administrada por uma ou mais
organizaes.

Modelos de Negcio em Nuvem

Considerada o ncleo de CC, os modelos de negcio em nuvem segregam os tipos de


recursos que podem ser disponibilizados em nuvem, facilitando a escolha, e ao mesmo tempo se
adequando a uma necessidade especfica.


IaaS fornece processamento, armazenamento, rede e outros recursos computacionais,


permitindo assim que os usurios implantem qualquer tipo de software, desde de
Sistema Operacional (SO) at aplicaes. Entre os provedores pode-se destacar a
Amazon Web Services (AWS)1 , a Microsoft Azure2 , o Google Compute Engine3 , o
Rackspace Open Cloud4 e IBM SmartCloud Enterprise5 [44].
PaaS disponibiliza ambiente pr-configurado para implantao de aplicaes sem a
necessidade de realizar download ou instalar softwares. Entretanto, o usurio fica
restrito a linguagem de programao disponvel pelo servio. Como exemplos tm-se:
Engine Yard, Red Hat OpenShift, Google App Engine6 , Heroku7 e AppFog8 [45].

1 https://aws.amazon.com/
2 https://azure.microsoft.com
3 https://cloud.google.com/compute/
4 https://www.rackspace.com/cloud
5 http://www.ibm.com/cloud-computing/
6 https://www.engineyard.com/
7 https://www.heroku.com/
8 https://www.ctl.io/appfog/

2.5. ARMAZENAMENTO EM SERVIOS EM NUVEM




23

SaaS oferece utilizao de aplicaes de forma out of box que so acessados via
internet, sendo a mesma hospedada numa infraestrutura em nuvem. Dentre os
provedores do servio, a Salesforce.com9 tem presena marcante por disponibilizar a
aplicao de Customer Relationship Management (CRM) - Gesto de Relacionamento
com o Cliente. Entre outros provedores pode-se citar: Google Apps for Business10 ,
Office 36511 , Clarizen12 e McAfee13 [46].

Porm, devido a necessidade de utilizao de recursos especficos, como ocorre em


aplicaes mveis, que possuem uma limitao quanto ao uso de bateria e memria; ou para
aplicaes que precisam armazenar informaes em banco de dados; o nmero de modelos de
negcio em nuvem expandiu. Hoje possvel encontrar os seguintes servios: STaaS, Security as
a Service (SECaaS) - Segurana como servio, Data as a Service (DaaS) - Dados como servio,
Backend as a Service (BaaS) - Backend como servio, entre outros [1].
2.5

Armazenamento em Servios em Nuvem

Dentre esses, o modelo de STaaS vem se destacando por oferecer servio de criao,
armazenamento e gerenciamento de dados, proporcionando acesso aos dados ou documentos,
atravs da web, de qualquer parte do mundo. Entre os provedores que oferecem esse tipo de
servio destacam-se: Amazon Simple Storage Service (Amazon S3)14 , Google Cloud Storage 15 ,
AT&T Synaptic16 , Dropbox 17 e Box 18 . Alm de proporcionar servio para o pblico em
geral e para empresas, o servio vem servindo como apoio para a IoT, onde necessrio o
armazenamento e compartilhamento de um volume grande de dados provinientes de dispositivos
interconectados [36]. O servio vem sendo cogitado tambm por causa do aumento do uso de
smartphones, laptops e tablets para acessar dados de empresas, sendo necessria a sincronizao
e consolidao dos dados [42].
Uma das principais vantagens na utilizao desse servio, principalmente do ponto de
vista das empresas, a reduo com gastos com hardware de armazenamento. Outra vantagem,
tambm relacionada a custos, a diminuio com despesas em relao a pessoal com expertise
em armazenamento [40]. Mais um benefcio da utilizao do modelo, a possibilidade de backup
e recuperao dos dados, principalmente para os casos de recuperao de desastres, tornando
esses processos mais simples e de baixo risco [49].
9 https://www.salesforce.com
10 https://apps.google.com/
11 https://www.microsoftstore.com
12 http://www.clarizen.com/
13 http://www.mcafee.com/
14 http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html
15 https://cloud.google.com/storage
16 https://www.synaptic.att.com/clouduser
17 https://www.dropbox.com/business
18 https://www.box.com/business

24

CAPTULO 2. COMPUTAO EM NUVEM

Um outro benefcio a utilizao de armazenamento a longo prazo e, tambm a promoo da continuidade do negcio, assim como sua disponibilidade [56]. A terceirizao do
armazenamento, faz com que a empresa possa focar em seu negcio, particularmente para
aquelas que no tm TI como foco ou possuem um pequeno ou mdio empreendimento.
Pelo fato de cada vez mais clientes utilizarem o servio e tambm com o aumento da
preocupao em relao a segurana da informao, o contedo do dado armazenado muito
importante. A importncia dada pelo fato que tanto os dados quanto os processos de negcio
so considerados estratgicos para a manuteno das empresas no mercado, como tambm a
privacidade da informao guardada.
Sendo assim, os dados devem ser protegidos e medidas de segurana devem ser adotadas para evitar que eles possam ser alterados, danificados ou acessados sem permisso. A
preocupao com segurana passa ser ento um fator crtico para que as empresas adotem ou
no uma soluo de armazenamento em nuvem, principalmente no que concerne a privacidade,
confiabilidade, performance, perda de dados e descontinuidade do servio [42].

25

Segurana em Nuvem

Devido a concepo da sua estrutura, em camadas e com o isolamento de aplicaes


proporcionado pelas mquinas virtuais, computao em nuvem possibilita mais segurana
quando comparado com a infraestrutura tradicional, como segmentao de dados e processos,
centralizao da segurana e redundncia, e alta disponibilidade [58]. Porm, sua prpria
organizao, tambm, traz problemas quanto a integridade, confidencialidade, autenticidade e
disponibilidade de dados e comunicaes, ocasionados pelo compartilhamento tanto de dados
quanto de aplicaes em sua infraestrutura [9, 30]. Essas adversidades so causadas por questes
de reteno e destruio dos dados e por definies de limites, nem sempre muito claros quando
aplicados ao contexto do modelo de negcio adotado.
3.1

Conceitos

Em relao a servios em nuvem importante distinguir quais aspectos de segurana so


importantes e como os mesmos podem interferir no sucesso e qualidade do servio oferecido. Por
isso, essencial conhecer quais os pilares que sustentam a segurana em software, os principais
so: confidencialidade, integridade e disponibilidade.


Confidencialidade trata-se da preveno exposio da informao, seja ela realizada de maneira intencional ou no;
Integridade refere-se ao acesso que pessoas ou processos possuem em alterar um
dado, sendo assim, pessoas ou processos no autorizados no podem realizar modificaes em dados, bem como pessoas ou processos autorizadas no podem modificar
arquivos no autorizados;
Disponibilidade um conceito que assegura que o servio estar disponvel quando
solicitado pelo usurio.

Eles formam a trade da segurana, e so princpios bsicos para qualquer software


assegurar o mnimo de garantia. Entretanto, outros fatores tambm possuem influncia em
aspectos relacionados proteo de uma aplicao, so eles: autenticao, autorizao, auditoria
e responsabilizao.

26

CAPTULO 3. SEGURANA EM NUVEM




Autenticao verificao se um usurio , de fato, quem afirma ser;


Autorizao refere-se aos direitos ou privilgios que um indivduo ou processo tem
para acessar informaes ou recursos computacionais;

Auditoria trata-se do processo de verificar a segurana de um sistema;

Responsabilizao determinar aes ou comportamentos provindos de um usurio.

Apesar de relacionar segurana ao atendimento de todos os aspectos, em aplicaes reais


utpico atender a todas as caractersticas, de modo que a proteo de servios em nuvem busca
minimizar ou eliminar as possveis vulnerabilidades. Salientando que o tipo de implantao de
CC tem grande influncia em quanto o modelo seguro, de maneira que servios disponveis em
nuvens privadas tendem a possuir uma maior seguridade, pois replicam as medidas de proteo
utilizadas na infraestrutura tradicional [21], embora tambm herdem suas falhas.
As vulnerabilidades vo depender do tipo de servio oferecido, a maneira como so
disponibilizados e suas idiossincrasias. Sendo assim, pode-se identificar vulnerabilidades quanto
ao acesso, ao processo de virtualizao, relacionadas a aplicaes web, acesso fsico, controle
e privacidade, verificao dos dados, integridade, confidencialidade, perda e roubo de dados e
relacionada a autenticao [43].
3.2

Segurana no mbito de Computao em Nuvem

Trs aspectos influenciam o nvel de segurana dos servios em computao em nuvem,


so eles: vulnerabilidades, ameaas e ataques [30]. De maneira geral, todas as camadas de CC
podem ser comprometidas em virtude da complexidade com que sua infraestrutura montada.
A diversidade dos riscos quanto a proteo da infraestrutura da computao em nuvem podem
ser resumidos de acordo com figura3.1. A trade de segurana, confidencialidade, integridade
e disponibilidade, so as caractersticas que provocam mais preocupao, tanto em relao ao
provedor de servios quanto ao usurio.


Vulnerabilidade uma brecha ou falha na segurana que pode ser utilizada por um
agente externo para ganhar acesso rede ou a recurso;
Ameaas um potencial evento (intencional ou no) que pode comprometer os
recursos;
Ataques so formados pela explorao das vulnerabilidades.

Quanto a infraestrutura da computao em nuvem, o processo de virtualizao sofre


vulnerabilidades tanto em relao ao acesso aos SOs hospedeiros (guests), onde atravs deles e
possvel controlar o SO principal, quanto ao hypervisor, onde seu acesso pode gerar um ataque

3.3. TIPOS DE ATAQUES EM COMPUTAO EM NUVEM

27

Figura 3.1: Problemas de segurana e sua relao com a infraestrutura de CC. Extrada de [30]

por todas as mquinas virtuais. H tambm falhas no protocolo da internet, como o Hypertext
Transfer Protocol (HTTP) e o TCP/IP.
Outras brechas so o acesso a interface de gerenciamento dos servios, devido ao
grande nmero de usurios e tambm quanto a criptografia utilizada. Alm de outros pontos de
fragilidade como os navegadores e Application Program Interface (API)s, devido aos protocolos
de segurana utilizados, e tambm as j conhecidas injees, sejam elas Structured Query
Language (SQL), SO e/ou Lightweight Directory Access Protocol (LDAP) que acessam os
componentes das aplicaes [30].
As vulnerabilidades apresentadas podem comprometer apenas um tipo de servio em
nuvem, como o caso do compartilhamento de infraestrutura para dados e aplicaes que
acontece no IaaS ou pode inviabilizar os trs tipos de servios oferecidos, como exemplo
a perda ou vazamento de dados ocorridos por uma falha na autentificao ou autorizao da
aplicao [30, 43]. A interferncia que essas fragilidades possuem em relao aos outros modelos
de servios em nuvem vai depender da estrutura virtual que o suporta, citando caso anlogo ao
que ocorre com o STaaS, onde sua estrutura deriva do IaaS.
3.3

Tipos de Ataques em Computao em Nuvem

Como visto, computao em nuvem traz riscos inerentes a sua arquitetura em camadas, a
complexidade de suas camadas tornam as configuraes de segurana um trabalho no trivial, aumentando assim o risco de fragilidade no sistema. Atravs da explorao dessas vulnerabilidades
pode-se criar vrios tipos de ataques a computao em nuvem, os mais comuns so: logon abuse,
eavesdropping, Man-in-the-middle, negao de servio (Denial-of-Service (DoS)), sequestro de
sesso e ataques de fragmentao.

28

CAPTULO 3. SEGURANA EM NUVEM

Na tabela 3.1 possvel ver a relao dos nveis de abstrao de CC, sua estrutura e os
tipos de ataques.
Nvel

Estrutura

Aplicao

SaaS

Virtual

Fsico

Ataque
Sequestro de sesso
Exposio de rede

Sequestro de sesso
Anlise de trfego da rede
PaaS e IaaS Exposio de rede
Distributed Denial-of-Service (DDoS)
Interrupo de comunicao

Datacenter

Ataques na rede
DDoS
Modificao de hardware
Desastres naturais

Tabela 3.1: Tipos de ataques possveis e sua relao com computao em nuvem - Adaptada de
[30, 58]

Abaixo se encontram as descries dos tipos de ataques:




Logon abuse dado quando um usurio acessa servios ou funcionalidades de


segurana que normalmente seriam restritas a ele;
Uso inapropriado do sistema (innapropriate system use) refere-se ao mal uso da
rede empresarial para outros propsitos, que no o prprio negcio. Por exemplo, o
acesso a sites de contedo pornogrfico;
Eavesdropping a interceptao da rede sem autorizao, em geral o primeiro
passo para ataques como sequestro de sesso e outros;
Man-in-the-middle ocorre quando uma rede no possui suficiente proteo (tipo
textitacfssl) causando o acesso aos dados trocados entre duas partes. Assim permitindo que um intruso tenha acesso a comunicao realizada entre data centers, por
exemplo.
Negao de servio um ataque onde um recurso computacional utilizado ao
mximo at que o excesso de sua execuo danifique o sistema. Quando relacionado a CC seria o excesso de requisies realizado para uma mquina virtual,
sobrecarregando-a e causando uma recusa a novos pedidos de acesso, assim afetando
a disponibilidade do servio;
Sesso hijacking (session hijacking) realizada entre um cliente seguro e a rede
do servidor, podendo para isso utilizar IP spoofing, Transmission Control Protocol (TCP) sequence number e envenamento Domain Name System (DNS). Nesse

3.4. SEGURANA EM ARMAZENAMENTO EM NUVEM COMO SERVIO

29

ataque, o usurio pode ser redirecionado a uma mquina virtual ou servio malicioso,
ocasionando a mudana ou bloqueio de funcionalidades antes disponveis;


3.4

Ataques de fragmentao utilizam vrias fragmentaes de Internet Protocol (IP)


para disfarar pacotes TCP de dispositivos de filtro do alvo.

Segurana em Armazenamento em Nuvem como Servio

No que concerne o modelo STaaS, as vulnerabilidades e ataques so iguais a IaaS, pois o


mesmo e considerado uma extenso ou forma desse padro. Sendo as principais preocupaes
quanto a segurana relacionadas confiabilidade e integridade dos dados que so armazenados
na estrutura em nuvem.
Nesse contexto, surge a tecnologia blockchain, que vem sendo considerado como novo
paradigma computacional disruptivo, o qual permite um encadeamento de transaes, atravs da
utilizao de criptografia, proporcionando a descentralizao da autenticao da transao, bem
como proporcionando um ambiente seguro para trfego de informaes.

30

CAPTULO 3. SEGURANA EM NUVEM

31

4
Blockchain

Blockchain, cadeia de blocos em traduo livre, uma estrutura de dados ordenada que
forma uma lista de blocos de transaes encadeadas de maneira inversa, ou seja, cada bloco faz
referncia ao bloco anterior (chamado pai). A estrutura, concebida para resistir a ataques de rede,
pode ser armazenada em arquivos ou banco de dados simples [2].
Blockchain vem sendo vista como uma nova forma de negcio ou economia, porque
possibilita a eliminao do intermedirio e a troca de transaes de maneira descentralizada,
viabilizando assim aplicaes em escala global, transparentes, auditveis e seguras [16, 47].
Descentralizao trata-se das decises tomadas pela rede (grupo de usurios) para manter sua
consistncia (atravs do Proof-of-Work (PoW)), de maneira que uma mudana na rede precisa ser
acordada pela maioria de seus participantes, fazendo com que uma deciso no seja monopolizada
por um determinado grupo [15].
A necessidade de aplicaes globais e descentralizadas vem surgindo pela quantidade de
dados gerados pelos diferentes servios, sejam esses de trfego, sade, governamentais, logstico,
marketing, eletricidade e segurana, e a desconfiana em relao aos provedores que armazenam
esses dados [39], principalmente pelo recente histrico de vazamento de informaes por esses
servios.
Embora descentralizao, no contexto estudado, esteja atrelada a utilizao de blockchain,
outros protocolos podem fornecer descentralizao de aplicaes, principalmente bancria, como
o caso do Ripple1 , que possui um registro de consenso e uma moeda nativa chamada XRP
(tambm chamada ripples). Ripple permite a criao de uma rede global e descentralizada de
computadores para realizao de pagamentos de maneira rpida, com baixo custo e de forma
segura [38].
Outro exemplo o Stellar2 , que implementa o protocolo Stellar Consensus Protocol (SCP), baseado no acordo bizantino, o qual procura alcanar um entendimento entre todos os
participantes de uma rede distribuda, visando, assim, garantir baixa latncia da rede, confiabilidade, controle descentralizado e segurana [26].
1 https://ripple.com/
2 https://www.stellar.org/

32
4.1

CAPTULO 4. BLOCKCHAIN
Conceitos

Assim como CC, blockchain tambm formado por um conjunto de tcnicas que permite
a criao de um modelo seguro de transaes descentralizadas, livre de intermedirios. As
tecnologias que possibilitam o blockchain so: servidor timestamp, PoW, rvores de Merkle e
funes hashs criptogrficas.

4.1.1

Estrutura do bloco

O bloco a estrutura fundamental da cadeia, nele esto contidas as transaes que


sero includas no blockchain, sendo divido em trs partes: cabealho, contador de transaes e
transao (tabela 4.1). O cabealho, por sua vez, possui trs blocos de metadados: o primeiro faz
referncia ao hash do bloco anterior; o segundo agrega os dados do timestamp, difficulty e nonce;
e o ltimo bloco a raiz da rvore de Merkle. A tabela 4.2 descreve a estrutura do cabealho e a
figura 4.1 mostra a estrutura do blockchain.
Campo

Descrio

Cabealho
Contador de transaes
Transao

Formado por um conjunto de metadados


Nmero de transaes armazenadas
Transao armazenada no bloco

Tabela 4.1: Estrutura do bloco. Adaptada de [2]

Figura 4.1: Estrutura do blockchain. Extrada de [2]

4.1. CONCEITOS

33

Campo

Descrio

Hash do bloco anterior


Timestamp
Difficulty
Nonce
rvore de Merkle

Referncia ao hash do bloco anterior (pai) da cadeia


Momento aproximado de criao do bloco (segundos em Unix Epoch)
Algoritmo de dificuldade PoW do alvo
Contador utilizado no algoritmo PoW
Hash da raiz da rvore de Merkle do bloco de transao
Tabela 4.2: Estrutura do cabealho. Adaptada de [2]

4.1.2

Servidor Timestamp

Um servidor timestamp adiciona a data e hora a um determinado dado no momento que


esse foi criado por um computador, certificando que, de fato, ele existiu em certo momento. Para
tal, necessrio que uma autoridade, chamada Time Stamp Authority (TSA), emita e verifique
esse timestamp. Porm, antes de tal processo, o dado deve ser criptografado atravs de uma
funo hash, para assim atestar o contedo do dado [5].
O procedimento ocorre da seguinte maneira: para o dado criado, gerado um hash que
enviado ao TSA, esse hash concatenado com o timestamp; a partir dessa juno gerado
outro hash digitalmente certificado com a chave privada do TSA, e o resultado representa um
timestamp seguro que enviado ao criador do dado [17], como mostrado na figura 4.2.
No caso do blockchain, este serve como certificador da data de criao do dado, no
havendo necessidade de uma autoridade central. Alm disso, proporciona integridade ao dado,
visto que cada bloco possui o timestamp anterior em seu hash, formando assim uma cadeia que
dificulta a alterao do timestamp. Aps a confirmao do timestamp pela rede, a dificuldade para
modific-lo torna-se quase impraticvel, aumentando assim a confidencialidade do dado [32].

Figura 4.2: Exemplo de timestamp utilizando TSA como autoridade central. Extrada de [17].

34

CAPTULO 4. BLOCKCHAIN

4.1.3 Proof-of-work
PoW um princpio, inicialmente proposto por Dwork e Naor [13], onde um usurio
deve computar uma funo de moderada a difcil para acessar um recurso, como exemplo,
aumento do processamento executado na Central Processing Unit (CPU) - Unidade Central de
Processamento. A ideia concebida tinha como alvo diminuir a quantidade de spam por email,
entretanto, ela utilizada em vrios contextos, tais como: combate a ataques DoS, esgotamento de
conexo ou abuso de servios, avaliao de popularidade de um site, em situaes de sobrecarga,
como moeda para aplicaes P2P e grid e ainda na realizao de micropagamentos [20]. PoW
pode ser representado de acordo com a figura 4.3.

Figura 4.3: Exemplo de PoW com hash parcial. Extrada de [15].

De maneira geral, PoW utiliza hash puzzles, quebra-cabeas de funes de disperso em


traduo livre, para efetuar a prova de trabalho, sendo o hash reverse puzzle o mais utilizado [18].
Os seguintes passos, de maneira simplificada, so executados no PoW que utiliza hash reverse
puzzle e so representados na figura 4.4:
1. Servidor apresenta um puzzle ao cliente;
2. Cliente encontra soluo x, atravs do calculo do hash p = H(x||s||r);
3. Servidor verifica se os ltimos l bits em p so zero;
4. Servidor verifica se o cliente utilizou um seed vlido;
5. Servidor envia servio ou token ao cliente.
Nesse esquema o custo computacional do servidor bem menor que o do cliente, sendo
essa assimetria, onde o trabalho necessrio para calcular a funo bem menor que o de verificar
o resultado, uma caracterstica chave do PoW [18, 20]. Dessa maneira, um servidor, para
certificar que a informao s ser acessada aps resoluo do problema, pode colocar um
desafio e assim identificar os clientes que esto dispostos a pagar o custo computacional para
acess-lo [15].

4.1. CONCEITOS

35

Figura 4.4: Etapas executadas no PoW. Extrada de [18].

No contexto do blockchain, utilizado o nonce para variar a sada do clculo do PoW,


dificultando, assim, o trabalho executado pelo cliente para descobrir o hash original e, consequentemente, aumentando a proteo da infraestrutura distribuda.
4.1.4

rvores de Merkle

rvores de Merkle so rvores binrias completas com ponteiros hash propostas por
Merkle [22] com o intuito de produzir assinaturas digitais de uso nico (one-time). Ela foi
concebida de forma que os blocos de dados ficam agrupados em pares e o hash de cada um
armazenado em seus ns-pai. Os ns-pai so ento agrupados em pares e seus hashes so
guardados um nvel acima, como observado na figura 4.5. O processo continua at que o n raiz
seja alcanado [33].

Figura 4.5: Exemplo de uma rvore de Merkle. Adaptada de [2].

De maneira geral, a rvore de Merkle utilizada para resumir e verificar a integridade de


um grande volume de dados. Em blockchain ela empregada para resumir todas as transaes
em um bloco, mantendo, assim, o histrico de todas as transaes j includas nele [2]. Como
uma cpia do blockchain armazenado localmente, e esse constantemente atualizado com a
adio de novos blocos advindos da rede, o tamanho do arquivo pode aumentar e acabar por

36

CAPTULO 4. BLOCKCHAIN

consumir muito espao de disco. Ao utilizar a rvore de Merkle no blockchain, necessrio


somente armazenar a raiz da rvore que contm o resumo das transaes, como visto na figura
4.5, diminuindo significativamente o espao do arquivo local [32].
4.1.5

Funes Hash Criptogrficas

Funes hash referem-se a funes que comprimem determinado dado de tamanho


aleatrio, seja ele uma string, arquivos binrios ou pacotes TCP, em uma string de tamanho fixo.
Ela tem como objetivos a privacidade, autenticidade, integridade e no-repdio da informao
transitada.
Uma das vantagens em utilizar funes hashes est na diminuio dos custos com
armazenamento, visto que o hash gerado , em geral, menor que sua entrada [15]. Dentre
suas vrias formas de aplicaes pode-se citar proteo de senhas, formao de assinaturas
digitais, construo de blocos em protocolos de autenticao e estruturao de algoritmos
criptogrficos [35].
Para que uma funo hash seja utilizada em criptografia ela deve atender aos seguintes requisitos: resistncia pr-imagem, resistncia segunda pr-imagem e resistncia coliso [41].
Uma funo hash criptogrfica H deve atender s seguintes caractersticas [29]:
1. H pode ser aplicada a um dado de qualquer tamanho;
2. H sempre produz uma sada de tamanho fixo;
3. Dada uma entrada qualquer (x) fcil computar H(x);
4. Dado H(x) computacionalmente impraticvel encontrar x;
5. computacionalmente impraticvel encontrar x 6= x0 de modo que H(x) = H(x0 ).
A quarta caracterstica chamada de resistncia pr-imagem ou propriedade de monica, ou seja, uma funo hash possui a caracterstica de ser no-reversvel, onde difcil3
encontrar a mensagem x que gerou um hash. O requisito de resistncia segunda pr-imagem
listado na quinta caracterstica e garante que uma funo hash nica, onde dado duas entradas
diferentes os hashes resultantes sero diferentes.
Complementando os requisitos de uma funo hash criptogrfica, a resistncia coliso,
refere-se a propriedade que dado H, computacionalmente impraticvel encontrar um par
(x, y) de modo que H(x) = H(y) [41]. Computacionalmente impraticvel refere-se ao esforo
computacional gasto para resolver problemas de custo de tempo superior a um polinmio do
tamanho da entrada.
Blockchain utiliza funo hash SHA-256 como sua ferramenta bsica de criptografia
para verificar as transaes e calcular PoW. Secure Hash Algorithm (SHA) um tipo de hash
que transforma mensagens menores que 264 bits em um hash de 256-bits.
3 Requer

mais tempo/custo que qualquer atacante hipottico pode investir.

4.2. ATAQUES AO BLOCKCHAIN

37

Sendo assim, ela utiliza a estrutura iterativa de MerkleDamgrd4 [10] para transformar
uma funo de compresso de tamanho fixo e resistente coliso em uma funo hash que aceita
valores de mensagens aleatrios [33]. A transformao pode ser melhor visualizada atravs da
figura 4.6. Os passos, simplificados, para que ocorra essa modificao so:
1. Mensagem de entrada ajustada para se tornar um mltiplo de 512;
2. A entrada da funo hash divida em blocos;
3. Cada bloco de 512-bits processado na MerkleDamgrd;
4. A construo dada de forma que cada bloco junto com a entrada do bloco anterior
passe para a funo de compresso;
5. O sada do ltimo bloco o resultado da transformao.

Figura 4.6: Funo hash SHA-256 simplificada. Extrada de [33].

De maneira resumida, blockchain permite a criao de uma arquitetura distribuda, onde


cada n executa e armazena uma transao encadeada em blocos, criptografada atravs de funo
hash. Cada bloco, adicionado um por vez, faz referncia ao bloco anterior que verificado
atravs do PoW pela rede de usurios conectados a rede. Dessa forma, mantido um consenso
por toda a rede, visto que qualquer tentativa de modificao em um bloco quebra toda a sequncia
de encadeamento.
4.2

Ataques ao Blockchain

Apesar de oferecer proteo contra ataques a rede, a tecnologia no imune a vulnerabilidades e pode sofrer ataques que comprometem todo o aspecto de segurana a qual se prope.
Os principais ataques ao blockchain so [15, 33]: 51% e gasto duplo (double-spend).


4 Mtodo

51% ocorre quando mais de 50% da taxa de hash (atividade computacional) da rede
tomado pelo atacante, podendo ele assim, modificar, remover e evitar que novas
transaes sejam realizadas;
utilizado para construir funes hash resistentes coliso.

38

CAPTULO 4. BLOCKCHAIN


Gasto duplo ocorre quando duas diferentes transaes tentam gastar o mesmo fundo
monetrio, ou seja, um atacante tenta gastar o mesmo dinheiro mais de uma vez;

Embora as vulnerabilidades sejam reconhecidas, elas so mitigadas na concepo do


blockchain bitcoin, como o caso da necessidade de 6 (seis) confirmaes pela rede de uma
transao, ou evitar que um usurio ou grupo de usurios tenha muito controle computacional [6].

39

Aplicaes de Armazenamento em Nuvem com Blockchain

A utilizao de blockchain em computao em nuvem uma prtica recente, e vem


sendo vista como uma nova camada da infraestrutura em nuvem baseada em criptografia para
validao de transaes e registro de transies de estado. Ela traz um novo paradigma chamado Decentralized Applications (Dapps) - aplicaes descentralizadas, que segue uma nova
arquitetura de camadas denominada web 3.0 [11, 55].
Web 3.0 possui 3 (trs) componentes: um avanado navegador como cliente; blockchain
como recurso compartilhado; e uma rede virtual de computadores que executam programas de
forma descentralizada que interage com o blockchain e verifica as transaes [31]. A principal
finalidade da web 3.0 proporcionar maior segurana, descentralizao e navegao de maneira
pseudo annima.
De maneira geral, os benefcios do emprego de blockchain em aplicaes so [31]:


Reduo de custos;

Transparncia, pois proporciona a informao correta para a pessoa adequada;

Privacidade, pois oferece aos consumidores e as empresas controle com maior


granularidade;
Menor risco, pois proporciona melhor visibilidade, menos exposio e menos fraudes;

Eficincia, devido ao processamento mais rpido;

Qualidade, pois apresenta menos erros ou maior satisfao na utilizao.

A quantidade de aplicaes de armazenamento em nuvem que utilizam blockchain ainda


pequena e somente 3 (trs) sistemas [24] foram encontrados at a data de publicao desse
trabalho. A seguir realizada uma breve descrio das aplicaes: Ethereum1 , Sia2 e Storj3 ; e
como se d o funcionamento do blockchain nas mesmas.
1 https://www.ethereum.org/
2 https://sia.tech/
3 https://storj.io/

40
CAPTULO 5. APLICAES DE ARMAZENAMENTO EM NUVEM COM
BLOCKCHAIN
5.1 Ethereum Project
Ethereum uma plataforma blockchain de cdigo aberto4 , fundada a partir de 2014
por Vitalik Buterin, Gavin Wood e Jeffrey Wilcke, onde transaes baseadas em estado de
mquina podem ser desenvolvidas, ou seja, qualquer usurio pode desenvolver ou usar aplicaes
descentralizadas que so executadas sob a tecnologia blockchain. Ela no se limita a moedas
criptogrficas, e melhor direcionada para aplicaes que automatizam a interao entre pares e
facilitam a coordenao de grupos de aes na rede5 .
O principal objetivo da plataforma est em facilitar transaes consensuais, atravs de
contratos, entre indivduos que no teriam motivos para confiar um no outro, ou seja, sem a participao de uma autoridade central para validar a transao, proporcionando assim transparncia,
segurana e garantia dos possveis resultados provindos de qualquer iterao [54].
A plataforma segue o conceito de Decentralized Autonomous Organization (DAO)6 organizaes autnomas descentralizadas, em traduo livre, proposto e implementado pela
Ethereum Foundation. DAO refere-se a uma entidade virtual autnoma que depende de usurios
para realizar certas tarefas computacionais. No caso de Ethereum, o DAO representado pelo
smart contract que reside no blockchain.
5.1.1

Como funciona blockchain no Ethereum?

O Blockchain Ethereum programvel, permitindo aos usurios criarem suas prprias


operaes, de qualquer complexidade, diferente do blockchain bitcoin que vem com um conjunto
de operaes pr-definidas; a sua unidade bsica uma conta, tornando distinto do blockchain
bitcoin que tem como unidade bsica uma lista de transaes. A conta pode ser de dois tipos:
Externally Owned Accounts (EOA), controlada por chaves privadas; e Contract Accounts, que
controlada por seu cdigo de controle e s pode ser ativada por uma EOA. Assim como o
Bitcoin, os usurios pagam uma taxa para manter a segurana da rede e tambm pelo recurso que
seu programa consome, seja armazenamento ou consumo de CPU. A taxa cobrada em Ether,
moeda nativa da plataforma.
A plataforma tem sua prpria mquina virtual, chamada de Ethereum Virtual Machine
(EVM), onde so executados os complexos algoritmos, alm de fornecer a possibilidade de
desenvolver programas em JavaScript e Python. Cada n roda em uma EVM, permitindo
descentralizao, e mantendo assim o consenso no blockchain, alm de proporcionar tolerncia a
falha, assegurando zero downtime, integridade do dado armazenado e resistncia a censura.
Diferente do Blockchain Bitcoin, a plataforma adota problemas matemticos que utilizam
memria computacional, pois asseguram que se o problema requer tanto memria quanto CPU
para ser resolvido, o hardware do computador comum pode ser utilizado e no hardware
4 https://github.com/ethereum/
5 http://www.ethdocs.org/en/latest/introduction/what-is-ethereum.html
6 https://daohub.org/

5.2. SIA

41

especializado, como o Application-Specific Integrated Circuit (ASIC). Ethereum, passa assim


a ser uma plataforma Proof-of-Work ASIC-resistant com maior descentralizao da segurana,
assegurando que usurios com hardware especializado no tomem controle da rede.

5.1.2

Aplicaes desenvolvidas no Ethereum

At o presente momento, Ethereum j proporcionou a criao das seguintes aplicaes:


Augur7 , plataforma para realizar predies de mercado atravs de uma rede descentralizada; Provenance8 , plataforma para aumentar a transparncia e auditabilidade de fornecedores; Slock.it9 ,
plataforma para venda e aluguel de qualquer bem sem a necessidade de um intermedirio e
WeiFund10 , plataforma de crowdfunding descentralizado.
Como visto acima, nenhuma das aplicaes oferece servio de armazenamento, porm a
ferramenta fez parte da anlise pelo seu potencial em criar diferentes aplicaes, incluse uma
que oferea armazenamento.

5.2 Sia
Sia uma plataforma de cdigo aberto11 que vem sendo desenvolvida desde 2014, com
uma verso beta lanada desde Junho de 2015. Como diferencial, ao invs de utilizar armazenamento de um provedor central, a plataforma adota o compartilhamento do armazenamento entre
os peers. A plataforma oferece o armazenamento de arquivo de forma que o usurio no perde
controle sobre o mesmo assim que o envia a aplicao; provendo redundncia e criptografia, e
depois enviando o arquivo para a rede de hosts, que so incapazes de manipular os dados, violar
sua privacidade ou impedir que o usurio recupere o arquivo original [27].
Como proteo para o host, a plataforma oferece contrato, onde ele pode anunciar seu
grau de confiana, preo e penalidades por perder o arquivo, entretanto Sia no disponibiliza
resguardo contra ataques do tipo DoS, cabendo aos hosts oferecer essa segurana. Para os clientes,
como defesa contra a indisponibilidade de um host, a plataforma concede a possibilidade de usar
erasure codes, cdigos de regenerao, que permitem que uma rede de armazenamento de dados
possa se auto-regenerar quando um n apresentar falha [37].
No Sia os dados so subdivididos em n partes criptografadas armazenadas em diferentes
hosts, diminuindo tambm a latncia de recuperao dos dados, pois o download pode ser
realizado em paralelo e atravs dos hosts mais prximos do cliente.
7 https://www.augur.net/
8 https://www.provenance.org/
9 https://slock.it/index.html
10 http://weifund.io/
11 https://github.com/NebulousLabs/Sia

42
CAPTULO 5. APLICAES DE ARMAZENAMENTO EM NUVEM COM
BLOCKCHAIN
5.2.1 Como funciona Blockchain no Sia?
Uma altcoin chamada Siacoin adotada na plataforma, ela utilizada nos smart contracts,
contratos que no requerem interpretao ou interveno humana para ser concludo [15], que
asseguram que o host s ser pago se armazenar o arquivo. Alternative coin ou altcoin
uma criptomoeada derivada do bitcoin que possui diferenas na sua implementao, como
exemplo tem-se Litecoin, Peercoin, Namecoin, Auroracoin, cada uma com um nicho de aplicao
especfico [14].
De maneira simplificada, Sia oferece armazenamento descentralizado baseado na criptografia de smart contracts, esses so responsveis por compelir um acordo entre hosts e clientes.
Aps concordar com o armazenamento do arquivo, o host deve regularmente submeter o armazenamento a uma prova (storage proof ), que consome um segmento aleatrio do arquivo para
verificar se o mesmo e vlido ou no. Como incentivo, o host compensado por armazenar o
arquivo [51].
5.2.2

Aplicaes que utilizam Sia

At o presente momento, somente 1 (uma) aplicao utiliza Sia: Crypti12 , plataforma


para criao de aplicaes descentralizadas.
5.3 Storj
Storj uma plataforma de cdigo livre13 que oferece armazenamento de dados descentralizado e criptografia end-to-end para proteger os dados. Ela foi desenvolvida a partir de 2014,
e oferece cerca de 1500 Terabytes de armazenamento [24]. De maneira geral, a plataforma
opera da seguinte maneira: o arquivo adicionado rede e dividido em vrios pedaos onde
so inclusos os erasure codes e ocorre a encriptao da informao para que sejam gerados os
shards, que so ento, distribudos na rede.
Shards so pedaos do arquivo criptografado, de tamanho mltiplo do byte (como 8 ou
32 MB), que so distribudos na rede para garantir que ningum, a no ser o proprietrio do
arquivo possua sua cpia completa. Os shards permitem que seja difcil adivinhar o tamanho do
arquivo armazenado como tambm possibilita o gerenciamento de arquivos grandes [53].
Uma das principais caractersticas da plataforma sua preocupao com a segurana da
informao que transita na rede, sendo sua arquitetura desenvolvida para evitar os ataques do
tipo [24]:


Google Attacks - Ataques Google - ataque promovido por grandes corporaes


ou entidades que possuem grande volume de poder computacional ou espao de
armazenamento;

12 https://crypti.me/
13 https://github.com/Storj/

5.3. STORJ


5.3.1

43

Sybil Redundancy Attacks - Ataque de redundncia Sybil - ataque em que a ameaa explora a rede fingindo ter cpias redundantes do mesmo shard;
Improper Distribution - Distribuio imprpria - a ameaa tenta diminuir a confiabilidade da rede apagando o dado e suas cpias ao mesmo tempo;
Cheating Client Node - N de cliente trapaceiro - o cliente hospeda o arquivo, mas
no quer pagar por ele ou intencionalmente rejeita as auditorias a fim de no efetuar
o pagamento;
Hostage byte - Byte refm - um cliente transfere o dado, mas mantem a ltima parte
do dado como refm, exigindo alto pagamento para esse ser liberado;
Honest Geppeto Attack - Ataque Geppeto Honesto - um cliente oferece um grande
volume de armazenamento por certo perodo de tempo, mas depois desiste da ideia e
tenta derrubar a rede.

Como funciona blockchain no Storj?

A moeda utilizada na plataforma o Storjcoin X (SJCX) que permite a compra e o aluguel


de armazenamento e tem como base o blockchain bitcoin para suas transaes, sua altcoin a
Florincoin, mas ser feita transio para o blockchain bitcoin, segundo os prprios criadores.
Diferente do blockchain bitcoin, a plataforma no guarda nenhum arquivo no blockchain, mas
sim seus metadados, junto com hash do arquivo, a localizao das cpias dos shards na rede e a
rvore de Merkle.
Storj utiliza duas aplicaes para melhorar a segurana do dado, a aplicao web Storj14
para armazenamento do arquivo e o Storj Share15 para aluguel de disco-rgido. Para provar
que o arquivo no foi modificado e est disponvel, a plataforma utiliza dois mtodos de prova:
Proof-of-Storage via auditoria Merkle e Proof-of-storage via auditoria pr-geradas.
Proof-of-storage via auditoria pr-geradas uma forma de dificultar a corrupo da
rede de usurios atravs de um desafio de hash onde o cliente cria uma srie de seeds que so
adicionados ao arquivo. A partir da, gerado um hash, depois uma rvore de Merkle construda
com esse hash e sua raiz armazenada no blockchain. Assim, a rvore de Merkle publicada
sem as folhas e periodicamente realizada a checagem se os hashes so correspondentes.
Alm dos mtodos supracitados, Storj tambm fazem uso dos erasure codes, garantindo
assim disponibilidade do arquivo e redundncia. Devido a forma como so utilizados os erasure
codes em Storj, a redundncia se aplica a camada de rede e no a camada fsica.
14 https://app.storj.io/
15 https://storj.io/share.html

44
CAPTULO 5. APLICAES DE ARMAZENAMENTO EM NUVEM COM
BLOCKCHAIN
5.3.2 Aplicaes que utilizam Storj
Nenhuma aplicao que utilize Storj foi encontrada at a publicao desse trabalho.
5.4

Anlise
Os seguintes aspectos sero analisados a partir da descrio das aplicaes supracitadas:


Blockchain: Tipo de blockchain utilizado

Pblico alvo: Qual o principal pblico da plataforma?

Armazenamento em nuvem: Plataforma oferece servio de armazenamento?

API: Possui API?

Segurana: Quais aspectos de segurana so oferecidos?

Ataques: Quais os ataques que so evitados?

5.4.1 Ethereum


Blockchain: Ether.

Pblico alvo: Desenvolvedores.

Armazenamento em nuvem: No.

API: Sim, para desenvolvimento de Dapps JavaScript e JSON.


Segurana: Tolerncia a falha, zero downtime, integridade do dado armazenado e
resistncia a censura da rede.
Ataques: Ataques ASIC e 51%.

5.4.2 Sia


Blockchain: Siacoin.

Pblico alvo: Pblico em geral.

Armazenamento em nuvem: Sim.

API: Sim.
Segurana: Redundncia do dado, tolerncia a falha e integridade do dado.
Ataques: Somente aqueles evitados pelo blockchain, e no oferece segurana contra
ataques DoS.

5.5. CONSIDERAES FINAIS


5.4.3

Storj


Blockchain: Florincoin.

Pblico alvo: Pblico em geral.

Armazenamento em nuvem: Sim.

5.5

45

API: Sim.
Segurana: Integridade, confiabilidade, redundncia e tolerncia a falhas.
Ataques: Ataque Google, ataque de redundncia Sybil, distribuio imprpria, n
de cliente trapaceiro, byte refm, ataque Geppeto honesto, alm do mais comum em
criptomoedas, o 51%.

Consideraes Finais

Como visto acima, o nmero de aplicaes que utilizam blockchain para armazenamento
em nuvem ainda pequeno, essa rea est em ebulio e muita novidade surgiu em 2016; as
trs iniciaram seu desenvolvimento em 2014, e aps atingirem certa maturidade e sanarem
problemas quanto a segurana as mesmas foram lanadas e j possuem um nmero considervel
de usurios [7, 23, 57], embora Sia e Storj ainda encontram-se em estgio de teste beta.
Talvez por falta de documentao mais especfica, somente a Storj, em seu whitepaper
descreve quais aspectos de proteo quanto a ataques a plataforma est preparada para enfrentar,
Ethereum e Sia, em seus whitepapers no fornecem nenhuma informao a respeito, podendo-se
considerar que a segurana dada aquela proporcionada pela utilizao de blockchain. Todas as
trs asseguram que o emprego da tecnologia blockchain aumenta a privacidade, confiabilidade,
integridade do dado e eliminam totalmente a necessidade de uma autoridade central (provedor)
para validar as transaes.
O principal objetivo, tanto de Sia quanto de Storj, ser referncia em servio de armazenamento em nuvem, onde qualquer informao pode ser armazenada de maneira descentralizada
e com segurana. Esse objetivo tem em comum o prprio paradigma da Web 3.0 em disponibilizar
servios de forma global, sem uma autoridade central controladora.
Por consequncia, foi possvel avaliar que blockchain aumenta a confiabilidade, devido ao
uso do PoW e a funo hash criptogrfica, permitindo que os dados armazenados nos blocos s
possam ser acessados por seus respectivos donos. A tecnologia tambm aumenta a performance
do armazenamento j que por distribuir n pedaos dos dados entre os ns, possibilita que a
recuperao do dado seja mais rpida, pois esse realizado pelos ns mais prximo do usurio.
H tambm maior segurana quanto a perda de dado, j que, como visto no Storj e
Sia, possvel adicionar cdigos de recuperao aos blocos, que permitem que a rede se autoregenere, caso um n seja perdido. Outro fator, que influencia o armazenamento do dado

46
CAPTULO 5. APLICAES DE ARMAZENAMENTO EM NUVEM COM
BLOCKCHAIN
a descontinuidade do servio, no caso de blockchain, garantido tambm pelos cdigos de
recuperao.
Em relao s caractersticas essenciais de computao em nuvem, blockchain colabora com a infraestrutura no sentido de adicionar uma camada de criptografia, aumentando
assim a segurana dos servios, principalmente em relao a ataques na rede, diminuindo as
vulnerabilidades inerentes da arquitetura em nuvem.
O fato da combinao de computao em nuvem com blockchain ser recente tornam
as plataformas ainda desconhecidas para o pblico em geral, porm tem muito potencial para
conquistar muitos usurios, principalmente aqueles que j possuem certa familiaridade com
blockchain. Agora eles enxergam a possibilidade de diminuir o vnculo com provedores de
servios em nuvem, que devido a especificidades, acabam por fazer com que o usurio utilize
um nico provedor devido a no integrao entre os provedores.
Uma ressalva quanto prpria anlise, que devido ao escopo do trabalho, bem como
tempo de anlise, no foi possvel utilizar as plataformas, ou seja, no foi executado nenhum
procedimento, como instalao dos softwares disponibilizados para uso, ou testes, para verificar
se as funcionalidades declaradas por elas, de fato, estavam presentes. Sendo assim, a anlise foi
realizada baseada na documentao disponvel tanto no site quanto nas publicaes realizadas
pelas prprias plataformas, diminuindo assim a possibilidade de uma anlise aprofundada quanto
s vulnerabilidades que o emprego de blockchain pode trazer ao servio de armazenamento em
nuvem ou os requisitos de segurana que ela traz.

47

6
Concluso

O presente trabalhou estudou o porqu a tecnologia de blockchain vem sendo adotada


em servios de armazenamento em nuvem. Nele foram verificados, que blockchain vem sendo
considerada um novo paradigma para a construo de aplicaes globais, sem a necessidade
de uma autoridade central para validar as informaes contidas nas transaes. Tambm ficou
claro que h aumento da segurana quanto a confidencialidade, integridade e disponibilidade
do dado, proporcionado pelo conjunto de tcnicas aplicadas em blockchain, de forma que os
usurios passar a ter maior controle sobre o arquivo armazenado na rede.
As principais vantagens na utilizao de blockchain o maior controle sobre o arquivo,
recuperao mais rpida da informao, pois as plataformas aplicam mecanismos para assegurar
a redundncia dos dados entre os ns da rede, alm de garantir a confiabilidade da rede, no
permitindo ataques que possam comprometer as informaes armazenadas.
Infelizmente, apesar das trs plataformas serem de cdigo livre, as informaes quanto a
segurana contra ataques oferecida pelos servios ainda no muito clara, o que pode dificultar
a aderncia aos servios, pois, para o usurio comum bem mais fcil utilizar uma plataforma
como Google, Amazon ou Dropbox, que possuem mais tempo de mercado e j possuem polticas
de segurana, embora casos de vazamento de informaes j tenham sido reportados.
Como trabalho futuro pode-se estudar a implementao de blockchain para outros tipos
de servios em nuvem, como IaaS e PaaS, j que a tecnologia melhora a segurana da rede e
tem-se como exemplo o Ethereum como principal plataforma para criao de Dapps. Tambm
possvel testar e validar as aplicaes avaliadas, no sentido de instalar, se cadastrar e utilizar as
plataformas e verificar se as funcionalidades declaradas esto sendo aplicadas.
Outra possibilidade, com o conhecimento adquirido melhorar a implementao do
blockchain bitcoin, a fim de resolver os principais problemas de segurana reportados nas
plataformas que j utilizam a tecnologia.

48

CAPTULO 6. CONCLUSO

49
Referncias

[1] AJMERA, R.; GAUTAM, R. Cloud Offerings: a systematic review. International Journal
of Computer Science and Information Technologies, [S.l.], v.5, n.3, p.40954103, 2014.
[2] ANTONOPOULOS, A. M. Mastering Bitcoin: unlocking digital cryptocurrencies. [S.l.]:
"OReilly Media, Inc.", 2014.
[3] ARMBRUST, M. et al. Above the Clouds: a berkeley view of cloud computing. [S.l.]:
EECS Department, University of California, Berkeley, 2009. (UCB/EECS-2009-28).
[4] ARMBRUST, M. et al. A view of cloud computing. Communications of the ACM, [S.l.],
v.53, n.4, p.5058, 2010.
[5] BARKER, E. Recommendation for Digital Signature Timeliness. NIST Special
Publication, [S.l.], v.800, p.102, 2009.
[6] BRADBURY, D. The problem with Bitcoin. Computer Fraud & Security, [S.l.], v.2013,
n.11, p.58, 2013.
[7] BUNTINX, J. Number of Ethereum Nodes Grows Exponentially. Online; acessado em
Julho-2016, http://bitcoinist.net/number-of-ethereum-nodes-grows-exponentially/.
[8] BUYYA, R. et al. Cloud computing and emerging IT platforms: vision, hype, and reality for
delivering computing as the 5th utility. Future Generation computer systems, [S.l.], v.25,
n.6, p.599616, 2009.
[9] CARROLL, M.; VAN DER MERWE, A.; KOTZE, P. Secure cloud computing: benefits,
risks and controls. In: INFORMATION SECURITY SOUTH AFRICA (ISSA), 2011.
Anais. . . [S.l.: s.n.], 2011. p.19.
[10] CORON, J.-S. et al. Merkle-Damgrd revisited: how to construct a hash function. In:
ANNUAL INTERNATIONAL CRYPTOLOGY CONFERENCE. Anais. . . [S.l.: s.n.], 2005.
p.430448.
[11] DAVID JOHNSTON SAM ONAT YILMAZ, J. K. N. B. F. H. R. G. S. W.; MASON, S.
The General Theory of Decentralized Applications, Dapps. Online; acessado em
Julho-2016, https://github.com/DavidJohnstonCEO/DecentralizedApplications.
[12] DURAO, F. et al. A systematic review on cloud computing. The Journal of
Supercomputing, [S.l.], v.68, n.3, p.13211346, 2014.
[13] DWORK, C.; NAOR, M. Pricing via processing or combatting junk mail. In: ANNUAL
INTERNATIONAL CRYPTOLOGY CONFERENCE. Anais. . . [S.l.: s.n.], 1992. p.139147.
[14] FRANCO, P. Alt (ernative) Coins. Understanding Bitcoin: Cryptography,
Engineering, and Economics, [S.l.], p.171181.
[15] FRANCO, P. Understanding Bitcoin: cryptography, engineering and economics. [S.l.]:
John Wiley & Sons, 2014.
[16] GAULT, M. BlockCloud: re-inventing cloud with blockchains. Online; acessado em
Junho-2016, https://guardtime.com/blog/blockcloud-re-inventing-cloud-with-blockchains.

50

REFERNCIAS

[17] GIPP, B.; MEUSCHKE, N.; GERNANDT, A. Decentralized Trusted Timestamping using
the Crypto Currency Bitcoin. arXiv preprint arXiv:1502.04015, [S.l.], 2015.
[18] GREEN, J. et al. Reconstructing Hash Reversal based Proof of Work Schemes. In: LEET.
Anais. . . [S.l.: s.n.], 2011.
[19] HOGAN, M. et al. Nist cloud computing standards roadmap. NIST Special Publication,
[S.l.], v.35, 2011.
[20] KOEPPE, F.; SCHNEIDER, J. Do you get what you pay for? using proof-of-work
functions to verify performance assertions in the cloud. In: CLOUD COMPUTING
TECHNOLOGY AND SCIENCE (CLOUDCOM), 2010 IEEE SECOND INTERNATIONAL
CONFERENCE ON. Anais. . . [S.l.: s.n.], 2010. p.687692.
[21] KRUTZ, R. L.; VINES, R. D. Cloud security: a comprehensive guide to secure cloud
computing. [S.l.]: Wiley Publishing, 2010.
[22] LAMPORT, L. Constructing digital signatures from a one-way function. [S.l.]:
Technical Report CSL-98, SRI International Palo Alto, 1979.
[23] LOMBARDO, H. Blockchain Storage Platform Sia Improves Platform Stability,
Upload Speed in New Release. Online; acessado em Junho-2016,
http://allcoinsnews.com/2016/01/18/sia-improves-platform-stability-upload-speed-in-newrelease/.
[24] MALTESE, M. E. G. Blockchain-based Decentralized Cloud Storage: storj and
competitors. Online; acessado em Junho-2016, http://cointelegraph.com/news/blockchaindecentralized-cloud-storage-storj-and-competitors.
[25] MARSTON, S. et al. Cloud computingThe business perspective. Decision support
systems, [S.l.], v.51, n.1, p.176189, 2011.
[26] MAZIERES, D. The stellar consensus protocol: a federated model for internet-level
consensus. Draft, Stellar Development Foundation, 15th May, available at:
https://www. stellar. org/papers/stellarconsensus-protocol. pdf (accessed 23rd May,
2015), [S.l.], 2015.
[27] MCCOMBIE, C. Cloud Storage Meets Blockchain: siacoin takes on amazon, google &
microsoft. Online; acessado em Junho-2016, http://cointelegraph.com/news/cloud-storagemeets-bitcoin-blockchain-siacoin-takes-on-amazon-google-microsoft.
[28] MELL, P.; GRANCE, T. The NIST definition of cloud computing. Communications of
the ACM, [S.l.], v.53, n.6, p.50, 2010.
[29] MERKLE, R. C. A certified digital signature. In: CONFERENCE ON THE THEORY
AND APPLICATION OF CRYPTOLOGY. Anais. . . [S.l.: s.n.], 1989. p.218238.
[30] MODI, C. et al. A survey on security issues and solutions at different layers of Cloud
computing. The Journal of Supercomputing, [S.l.], v.63, n.2, p.561592, 2013.
[31] MOUGAYAR, W.; BUTERIN, V. The Business Blockchain: promise, practice, and
application of the next internet technology. [S.l.]: Wiley, 2016.

REFERNCIAS

51

[32] NAKAMOTO, S. Bitcoin: a peer-to-peer electronic cash system. 2008.


[33] NARAYANAN, A. et al. Bitcoin and cryptocurrency technologies. [S.l.]: Princeton
University Press, 2016.
[34] PILKINGTON, M. Blockchain Technology: principles and applications. Research
Handbook on Digital Transformations, edited by F. Xavier Olleros and Majlinda
Zhegu. Edward Elgar, [S.l.], 2016.
[35] PRENEEL, B. Cryptographic hash functions. European Transactions on
Telecommunications, [S.l.], v.5, n.4, p.431448, 1994.
[36] RAO, B. et al. Cloud computing for Internet of Things & sensing based applications. In:
SENSING TECHNOLOGY (ICST), 2012 SIXTH INTERNATIONAL CONFERENCE ON.
Anais. . . [S.l.: s.n.], 2012. p.374380.
[37] RASHMI, K. V.; SHAH, N. B.; KUMAR, P. V. Optimal exact-regenerating codes for
distributed storage at the MSR and MBR points via a product-matrix construction. IEEE
Transactions on Information Theory, [S.l.], v.57, n.8, p.52275239, 2011.
[38] SCHWARTZ, D.; YOUNGS, N.; BRITTO, A. The Ripple protocol consensus algorithm.
Ripple Labs Inc White Paper, [S.l.], p.5, 2014.
[39] SHRIER, D.; WU, W.; PENTLAND, A. Blockchain & Infrastructure (Identity, Data
Security). connection.mit.edu, [S.l.], 2016.
[40] SINGH, A.; SRIVATSA, M.; LIU, L. Search-as-a-service: outsourced search over
outsourced storage. ACM Trans. Web, New York, NY, USA, v.3, n.4, p.13:113:33,
Sept. 2009.
[41] SOBTI, R.; GEETHA, G. Cryptographic hash functions: a review. IJCSI International
Journal of Computer Science Issues, [S.l.], v.9, n.2, p.461479, 2012.
[42] SRINIVASAN, S. Security, Trust, and Regulatory Aspects of Cloud Computing in
Business Environments. [S.l.]: IGI Global, 2014.
[43] SUBASHINI, S.; KAVITHA, V. A survey on security issues in service delivery models of
cloud computing. Journal of network and computer applications, [S.l.], v.34, n.1, p.111,
2011.
[44] SULLIVAN, D. IaaS Providers List: comparison and guide. Online; acessado em
Junho-2016, http://www.tomsitpro.com/articles/iaas-providers,1-1560.html.
[45] SULLIVAN, D. PaaS Providers List: comparison and guide. Online; acessado em
Junho-2016, http://www.tomsitpro.com/articles/paas-providers,1-1517.html.
[46] SULLIVAN, D. SaaS Providers List: comparison and guide. Online; acessado em
Junho-2016, http://www.tomsitpro.com/articles/saas-providers,1-1554.html.
[47] SWAN, M. Blockchain: blueprint for a new economy. [S.l.]: "OReilly Media, Inc.", 2015.
[48] TIWARI, R. Storage as a Service Market (STaaS) to see 37% CAGR to 2019. Online;
acessado em Junho-2016, http://www.prnewswire.com/news-releases/storage-as-a-servicemarket-staas-to-see-37-cagr-to-2019-291631681.html.

52

REFERNCIAS

[49] VAHIE, V. 99 Problems but the cloud aint one: storage as a service. Online; acessado
em Junho-2016,
http://www.itproportal.com/2015/02/16/99-problems-cloud-aint-one-storage-service/.
[50] VELTE, T.; VELTE, A.; ELSENPETER, R. Cloud computing, a practical approach.
[S.l.]: McGraw-Hill, Inc., 2009.
[51] VORICK, D.; CHAMPINE, L. Sia: simple decentralized storage. [S.l.]: Technical Report,
Sia, 2014. URL: http://www. siacoin. com/whitepaper. pdf, 2014.
[52] WANG, L. et al. Cloud computing: a perspective study. New Generation Computing,
[S.l.], v.28, n.2, p.137146, 2010.
[53] WILKINSON, S. et al. Storj A Peer-to-Peer Cloud Storage Network. 2014.
[54] WOOD, G. Ethereum: a secure decentralised generalised transaction ledger. Ethereum
Project Yellow Paper, [S.l.], 2014.
[55] WOOD, G. Less-techy: what is web 3.0. Online; acessado em Junho-2016,
http://gavwood.com/web3lt.html.
[56] WU, J. et al. Cloud storage as the infrastructure of cloud computing. In: INTELLIGENT
COMPUTING AND COGNITIVE INFORMATICS (ICICCI), 2010 INTERNATIONAL
CONFERENCE ON. Anais. . . [S.l.: s.n.], 2010. p.380383.
[57] YOUNG, J. Storj Network Passes 1 Petabyte Storage Space. Online; acessado em
Junho-2016, https://bitcoinmagazine.com/articles/storj-network-passes-petabyte-storagespace-1442875577.
[58] ZISSIS, D.; LEKKAS, D. Addressing cloud computing security issues. Future
Generation computer systems, [S.l.], v.28, n.3, p.583592, 2012.