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

Transcrição

Estudo e comparação de esquemas criptográficos em
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.
- Armazenamento no servidor
- Recuperação do arquivo
- Ambos
Encryption App (OwnCloud)
Arquivo
__________
__________
__________
__________
__________
Ch. Privada
cifrada
Login ||
Senha
AES
256
Ch. de
arquivo
Arquivo
cifrado
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Nuvem
Ch. de arquivo
cifrada
RC4
Ch. compartilhada
Derivar
chave
AES
256
Ch. Privada
RSA
4096
Ch. Compartilhada
cifrada
Ch. pública
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
Arquivo
__________
__________
__________
__________
__________
AES
256
Arquivo
cifrado
Nuvem
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Chave secreta
Chave secreta
cifrada
Hash
Login ||
Senha
AES
256
PBKDF2
- Armazenamento no servidor
- Recuperação do arquivo
- Ambos
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
Cyphertite
F1
Arquivo
__________
__________
__________
__________
__________
F2
Alg. de
Fragmen
tação
F3
Processo de
Compressão
Fn-1
Fn
- Armazenamento no servidor
- Recuperação do arquivo
Processo
criptográfico
Cyphertite
Cyphertite
Chunk
__________
__________
__________
__________
__________
Arquivo
cifrado
AES
XTS
256
(Login ||
Senha), S, N
PBKDF2
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Ks
K1
HMAC
SHA256
Secrets
File
K2
AES
256
Kmestra
__________
__________
__________
__________
AES
256
Sec. File
cifrado
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Chave mestra cifrada
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
Arquivo
__________
__________
__________
__________
__________
AES
256
Arquivo
cifrado
Nuvem
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Chave secreta
Chave secreta
cifrada
Hash
AES
256
Chave da pasta
cifrada
AES
256
PBKDF2
Login ||
Senha
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
Arquivo
__________
__________
__________
__________
__________
AES
256
Arquivo
cifrado
Nuvem
(DropBox,
OneDrive etc)
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Chave secreta aleatória
Chave secreta
cifrada
AES
256
Login ||
Senha
PBKDF2
Servidor
Credeon
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
Arquivo
AES
256
__________
__________
__________
__________
__________
Ch. Privada
cifrada
Arquivo
cifrado
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Nuvem
(DropBox,
OneDrive etc)
Ch. secreta aleatória
Ch. Secreta
aleatória cifrada
Login ||
Senha
RSA
4096
PBKDF2
AES
256
Ch. pública do(s) usuário (s)
e wrapping key
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
E-mail
Alice
(ProtonMail)
__________
__________
__________
__________
__________
E-mail
cifrado
RSA
4096
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Bob
(ProtonMail)
Ch. Pública
de Bob
Ch. Privada de
Bob Cifrada
Bob
(ProtonMail)
Senha
(Mailbox Password)
AES
256
RSA
4096
E-mail
__________
__________
__________
__________
__________
ProtonMail
Chave secreta K
Alice
(ProtonMail)
E-mail
__________
__________
__________
__________
__________
Cifragem
Decifragem
Ambos
AES
256
Bob
(Gmail)
E-mail
cifrado
&¨@!(@!@@r
345!#$..:?/-= )
9 [ ] s!gt%6$4
0):0.>sd#@1!
Comparação
Comparação de esquemas de criptografia em nuvens
Responsável
criptografia e
Recup.
gerenciamento de senha
chaves
Crip. de
nomes
Deduplicação
User
CrossUser
Algorit.
Algorit.
Simétrico Assimétrico
Geração
chave
mestra
Compart.
arquivos
Client
Open
Source
Opção
gratuita /
Espaço
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-XTS256
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 / AES256
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/m
aster/cyphertite/cyphertite.1
Boxcryptor
• References
– https://www.boxcryptor.com/en/technicaloverview
– Deduplicação
• https://forums.boxcryptor.com/topic/why-doboxcryptor-files-take-so-much-longer-to-upload-todropbox-server
• https://forums.boxcryptor.com/topic/issues-on-server2012-deduplicated-file-system
Wuala
• References
– https://www.wuala.com/blog/2011/04/wualasencryption-for-dummies.html
– Whitepaper
• Cryptree
– Modo do AES e IV
• https://www.wuala.com/blog/2011/04/wualasencryption-for-dummies.html
OwnCloud – Encryption App
• References
– Artigo: Relatório de Estudo Encryption App –
OwnCloud - RNP.
– http://blog.schiessle.org/2013/05/28/introductio
n-to-the-new-owncloud-encryption-app/
– Deduplication:
• https://owncloud.org/faq/#deduplication
SpiderOak
Arquivo cifrado
Chave secreta
cifrada
AES-256
___
__________
__________
__________
__________
__________
__________
PBKDF2
Login ||
Senha
___
__________
__________
__________
__________
__________
__________
&¨@!(@!
@@r345!
#$..:?/+=)9[]ss%
##??°^!?]
Pasta
compartilhada
Chave secreta
AES-256
___
__________
__________
__________
__________
__________
__________
Senha
compartilhada
Chave secreta
cifrada

Documentos relacionados