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