39
Estudo e comparação de esquemas criptográficos em nuvens Vitor Hugo Galhardo Moia [email protected] Universidade Estadual de Campinas - UNICAMP Faculdade de Engenharia Elétrica e de Computação - FEEC 23 de fevereiro de 2015 – Campinas - SP

Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

  • Upload
    hadat

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Estudo e comparação de esquemas criptográficos em nuvens

Vitor Hugo Galhardo Moia [email protected]

Universidade Estadual de Campinas - UNICAMP

Faculdade de Engenharia Elétrica e de Computação - FEEC

23 de fevereiro de 2015 – Campinas - SP

Page 2: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Agenda

• Protocolos criptográficos estudados

– Encryption App (OwnCloud)

– SpiderOak

– Cyphertite

– Wuala

– Credeon

– Boxcryptor

– ProtonMail

Page 3: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Introdução

• Classificação dos tipos de proteção dos dados na nuvem – Nível 1: Criptografar canal de comunicação

(TLS/SSL) • Ex.: Microsoft OneDrive.

– Nível 2: Criptografar arquivo – Server Side • Ex.: DropBox e Encryption App (OwnCloud).

– Nível 3: Criptografar arquivo – Client Side • Ex.: SpiderOak, Cyphertite, Wuala, Credeon e

Boxcryptor

Page 4: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Encryption App (OwnCloud)

• Aplicativo habilitado no OwnCloud para realizar a criptografia dos dados.

• Nível 2 - Criptografia Server-Side.

• Segurança no canal de comunicação: TLS.

• Open Source.

Page 5: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Encryption App (OwnCloud)

• Chaves criptográficas: – Chave de arquivo: cada arquivo tem uma chave simétrica AES-256. – Chave compartilhada: cada arquivo tem uma chave intermediária

utilizada para o compartilhamento em grupo. – Chaves privada e pública: cada usuário tem um par de chaves

assimétricas RSA-4096. – Chave de compartilhamento público: par de chaves RSA-4096

única para todo sistema para o compartilhamento através de links. A chave privada é cifrada com base em uma senha fixa: caractere de espaço (‘ ‘).

– Chave de recuperação de arquivos: par de chaves RSA-4096. A chave privada é cifrada com a senha do administrador do sistema (esta funcionalidade precisa ser habilitada pelo usuário).

Page 6: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Encryption App (OwnCloud)

• Criptografia – AES-256 – RSA-4096 – RC4

• Não utiliza a deduplicação, uma vez que a geração de

chaves é aleatória.

• Compartilhamento de dados: a chave compartilhada é cifrada com a chave pública do usuário.

• Recuperação de senha é possível se habilitada.

Page 7: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Encryption App (OwnCloud)

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

__________________________________________________

Ch. de arquivo cifrada

Login || Senha

Nuvem

Ch. pública

AES 256

Ch. Privada cifrada Ch. de

arquivo

Ch. Privada

Ch. compartilhada

Ch. Compartilhada cifrada

- Armazenamento no servidor

- Recuperação do arquivo

- Ambos

AES 256

Arquivo

RSA 4096

RC4

Derivar chave

Page 8: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

• Serviço de nuvem com criptografia – Backup – Armazenamento – Sincronização

• Compartilhamento de uma área pública, através de web

URL ou com ShareID e RoomKey. Arquivos armazenados de forma clara.

• Nível 3 - Criptografia Client-Side.

• Aplicação comercial – Código fechado.

Page 9: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

• “Zero knowledge”: garantido somente se a aplicação desktop for utilizada. A chave nunca sai do computador do usuário. – No compartilhamento por web-link ou no acesso via

web ou mobile, a chave é enviada para o browser (não aconselhado!).

• Não permite recuperação de senha.

• Nomes dos arquivos e pastas também são

cifrados.

Page 10: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

• Criptografia: – AES-256 modo CFB

– HMAC-SHA-256: Proteger as chaves criptográficas contra ataques de snooping ou tampering.

– PBKDF2 (mínimo de 16384 rodadas e 32 bytes de dado aleatório (“salt”) para derivar uma chave da senha do usuário).

– Uma chave para cada arquivo, cifrada com a chave mestra.

• Utilização deduplicação apenas para o usuário e não cross-user.

Page 11: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

Chave secreta

Chave secreta cifrada

Login || Senha

Nuvem

- Armazenamento no servidor - Recuperação do arquivo - Ambos

__________________________________________________

Arquivo AES 256

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

PBKDF2

AES 256

Hash

Page 12: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Cyphertite

• Serviço de nuvem com criptografia – Backup – Armazenamento – Não permite compartilhamento

• Nível 3 - Criptografia Client-Side.

• Realiza a deduplicação (apenas na mesma conta).

• Open Source.

Page 13: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Cyphertite

• Os arquivos são divididos em pedaços, nos quais são comprimidos, cifrados e armazenados na nuvem. Para recuperar o dado, é necessário um arquivo metadado capaz de identificar os pedaços de um arquivo. Os pedaços são representados pelos seus valores de hash SHA1.

Page 14: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Cyphertite

• Criptografia: – AES-256 bits modo XTS.

– PBKDF2 (mínimo de 256.000 rodadas e 1024 bits de dado aleatório (“salt”) para derivar uma chave da senha do usuário).

– HMAC-SHA256.

– Compressão dos dados: algoritmo LZO

– Chaves • Secrets Passphrase key - Ks

• Chunk key K1, Tweak key K2, Master key Km

Page 15: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

F1

F2

F3

Fn-1

Fn

Processo de Compressão

Cyphertite

Cyphertite

Processo criptográfico

- Armazenamento no servidor - Recuperação do arquivo

__________________________________________________

Arquivo Alg. de

Fragmentação

Page 16: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Cyphertite

K1

(Login || Senha), S, N

K2

Kmestra

Ks

Chave mestra cifrada

__________________________________________________

Chunk AES XTS 256

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

HMAC SHA256

PBKDF2

AES 256

AES 256

__________ ______________________________

Secrets File

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Sec. File cifrado

Page 17: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Wuala

• Serviço de nuvem com criptografia – Backup – Compartilhamento – Armazenamento – Sincronização

• Nível 3 - Criptografia Client-Side.

• Possui Deduplicação – Aparentemente cross-user.

• Aplicação comercial – Código fechado.

Page 18: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Wuala

• “Zero knowledge”: garantida somente se a aplicação desktop for utilizada. A chave nunca sai do computador do usuário. – No compartilhamento por web-link a chave é enviada para o

browser (não aconselhado!).

• Não permite recuperação de senha.

• Nomes dos arquivos e pastas também são cifrados, com chaves randômicas.

• Cada pasta tem sua própria chave, assim como subpastas.

Page 19: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Wuala

• Criptografia: – AES-256 CBC Mode. – SHA-256 – Verificação de integridade. – RSA-2048 – Assinaturas e trocas de chaves no

compartilhamento de pastas. – PBKDF2 - para derivar uma chave mestra da combinação

do login e senha do usuário. – Uma chave para cada arquivo, derivada de seu conteúdo e

cifrada com a chave da pasta que pertence. Ela é armazenada com o arquivo.

– Os arquivos são divididos em blocos de 100kB, e cada bloco é cifrado separadamente com seu próprio IV, gerado do número do bloco (bloco 17 cifrado com IV 17).

Page 20: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Wuala

• Lazy revocation: reduzir o overhead da revogação de direitos de acesso. A cifragem com uma nova chave é postergada até que haja alguma modificação no arquivo.

• Há 5 tipos diferentes de chaves: – Chave para cifrar todos os dados de uma pasta (nome, datas de

criação etc.); – Chave para informações sobre a pasta pai; – Chave para ler subpastas; – Chave para ler arquivos; – Chave para conceder acesso a uma pasta F e seus descendentes.

• Compartilhamento: cifragem com a chave pública do usuário sobre a

chave de pasta. Para revogar acesso de uma pasta, todas as chaves devem ser trocadas.

Page 21: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Wuala

Chave secreta

Chave secreta cifrada

Login || Senha

Nuvem

Chave da pasta cifrada

__________________________________________________

Arquivo AES 256

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

Hash AES 256

PBKDF2 AES 256

Page 22: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Credeon

• Software utilizado para realizar a criptografia e gerenciamento de chaves criptográficas – Utilizado em conjunto com provedores de nuvem

(DropBox, OneDrive etc.)

• Certificação FIPS 140-2/AES256.

• Possui versão gratuita limitada.

• Nível 3 - Criptografia Client Side.

Page 23: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Credeon

• Criptografia

– AES-256

– PBKDF2 – Geração da chave mestra a partir do login e senha do usuário.

– Todas as chaves são cifradas com a chave mestra e armazenadas no servidor Credeon.

• Permite o compartilhamento de arquivos apenas com o e-mail dos usuários (versão paga).

Page 24: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Credeon

Chave secreta aleatória

Chave secreta cifrada

Login || Senha

Nuvem (DropBox,

OneDrive etc)

Servidor Credeon

__________________________________________________

Arquivo AES 256

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

PBKDF2

AES 256

Page 25: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Boxcryptor

• Software utilizado para realizar a criptografia e gerenciamento de chaves criptográficas – Utilizado em conjunto com provedores de nuvem (DropBox, Google

Drive, Microsoft OneDrive, SugarSync)

• Possui versão gratuita limitada.

• Nível 3 - Criptografia Client-Side.

• Permite o compartilhamento através da chave pública dos usuários.

• Não faz deduplicação de arquivos.

Page 26: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Boxcryptor

• Criptografia – AES-256 modo CBC e PKCS7 – RSA-4096 – PBKDF2 – Geração da chave password key. Utiliza o

HMACSHA512, 10.000 iterações e salta 24 bytes.

• Cada usuário, grupo e companhia tem o mesmo conjunto de chaves: um par de chaves públicas RSA e chaves AES adicionais para propósitos específicos. – Filename Key (se habilitada); – Group key; – Wrapping key (chave AES raiz usada para cifrar todas as outras

chaves AES).

Page 27: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Boxcryptor

• Chaves:

– File key: cada arquivo tem sua chave própria.

– User keys: cada usuário tem um par de chaves RSA e chaves adicionais AES.

– Group key: cada grupo tem seu próprio par de chaves RSA e adicionais chaves AES.

– Company keys: uma companhia tem sua própria chave RSA no caso da utilização de uma chave mestra.

Page 28: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Boxcryptor

Ch. secreta aleatória

Ch. Secreta aleatória cifrada

Login || Senha

Nuvem (DropBox,

OneDrive etc)

Ch. pública do(s) usuário (s) e wrapping key

Ch. Privada cifrada

PBKDF2 AES 256

__________________________________________________

Arquivo AES 256

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

Arquivo cifrado

RSA 4096

Page 29: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

ProtonMail

• Serviço de e-mail com criptografia

• Nível 3 - Criptografia Client-Side.

• Open Source.

• Não permite a recuperação da senha

• Modos de operação: PM-to-PM e PM-to-Other

• 2 senhas para cada cliente – Login Password - identificação do usuário (autenticação). – MailBox Password - decifrar os dados do cliente. Nunca é enviada para o

servidor

Page 30: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

ProtonMail

• Criptografia: – AES-256 bits – RSA – OpenPGP – Conexão protegida com SSL

• Os meta-dados como To: e From: devem ser armazenados no servidor em um formato acessível ao servidor para permitir a entrega do e-mail.

• Endereços de IP e tempos de acessos podem ser capturados e armazenados por atacantes.

Page 31: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

ProtonMail

Senha (Mailbox Password)

Ch. Pública de Bob

Bob (ProtonMail)

Bob (ProtonMail)

Ch. Privada de Bob Cifrada

Alice (ProtonMail)

__________________________________________________

E-mail RSA

4096

&¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

E-mail cifrado

RSA 4096

__________________________________________________

E-mail

AES 256

Page 32: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

ProtonMail

Bob (Gmail)

Alice (ProtonMail)

Chave secreta K

Cifragem

Decifragem

Ambos

__________________________________________________

E-mail &¨@!(@!@@r345!#$..:?/-= ) 9 [ ] s!gt%6$4 0):0.>sd#@1!

E-mail cifrado AES

256

Page 33: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Comparação Comparação de esquemas de criptografia em nuvens

Responsável criptografia e

gerenciamento de chaves

Recup. senha

Crip. de nomes

Deduplicação Algorit.

Simétrico Algorit.

Assimétrico

Geração chave

mestra

Compart. arquivos

Client Open

Source

Opção gratuita /

Espaço User

Cross-User

SpiderOak Usuário Não Sim X - AES-256 Não PBKDF2 Sim* Não Sim / 2GB

OneDrive - Sim - ? ? - - - Sim Não Sim / 15GB

Cyphertite Usuário Sim* Não X - AES-XTS-

256 Sim* PBKDF2 Não Sim Sim / 8GB

ProtonMail Usuário Não - - - AES-256 RSA ? - Sim Sim

Wuala Usuário Não Sim - X AES-256 RSA-2048 PBKDF2 Sim Não Não

Credeon Usuário Não Não - - AES-256 - PBKDF2 Sim Não Sim

OwnCloud - Encryption

App Servidor Sim* Não - -

RC4 / AES-256

RSA-4096 ? Sim Sim Sim

Boxcryptor Usuário Não Sim* - - AES-256 RSA-4096 PBKDF2 Sim Sim Sim

* Restrições

Page 34: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

• References

– https://spideroak.com/engineering_matters

Page 35: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Cyphertite

• References

– https://www.cyphertite.com

– WhitePaper

• https://www.cyphertite.com/papers/WP_Crypto.pdf

– https://github.com/conformal/cyphertite/blob/master/cyphertite/cyphertite.1

Page 36: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

Boxcryptor

• References

– https://www.boxcryptor.com/en/technical-overview

– Deduplicação

• https://forums.boxcryptor.com/topic/why-do-boxcryptor-files-take-so-much-longer-to-upload-to-dropbox-server

• https://forums.boxcryptor.com/topic/issues-on-server-2012-deduplicated-file-system

Page 38: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

OwnCloud – Encryption App

• References

– Artigo: Relatório de Estudo Encryption App – OwnCloud - RNP.

– http://blog.schiessle.org/2013/05/28/introduction-to-the-new-owncloud-encryption-app/

– Deduplication:

• https://owncloud.org/faq/#deduplication

Page 39: Comparação de esquemas de criptografia em nuvenscalhau.dca.fee.unicamp.br/wiki/images/5/5b/Apresentação_1.pdf · única para todo sistema para o compartilhamento através de links

SpiderOak

___ ____________________________________________________________

Chave secreta

AES-256

___ ____________________________________________________________

AES-256

Chave secreta cifrada

Login || Senha

___ ____________________________________________________________

PBKDF2

Chave secreta cifrada

Pasta compartilhada

&¨@!(@!@@r345!#$..:?/-+=)9[]ss%##??°^!?]

Arquivo cifrado

Senha compartilhada