Upload
hadat
View
216
Download
0
Embed Size (px)
Citation preview
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
Agenda
• Protocolos criptográficos estudados
– Encryption App (OwnCloud)
– SpiderOak
– Cyphertite
– Wuala
– Credeon
– Boxcryptor
– ProtonMail
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
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.
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).
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.
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
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.
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.
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.
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
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.
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.
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
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
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
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.
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.
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).
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.
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
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.
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).
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
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.
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).
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.
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
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
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.
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
__________________________________________________
AES 256
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
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
SpiderOak
• References
– https://spideroak.com/engineering_matters
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
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
Wuala
• References
– https://www.wuala.com/blog/2011/04/wualas-encryption-for-dummies.html
– Whitepaper
• Cryptree
– Modo do AES e IV
• https://www.wuala.com/blog/2011/04/wualas-encryption-for-dummies.html
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
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