• Nenhum resultado encontrado

Tecnologias Criptográficas

2.3 Segurança dos Dados na Cloud

2.3.3 Tecnologias Criptográficas

Faz-se neste ponto, o levantamento das tecnologias criptográficas que permitem colmatar pos- síveis vulnerabilidades relacionadas com a confidencialidade, integridade e autenticidade dos da- dos, e outras que procuram manter otimizado, o nível de disponibilidade dos dados. São descritas técnicas clássicas de criptografia que continuam em uso e técnicas recentes, estas últimas com maior fator de adaptabilidade à computação em cloud.

2.3.3.1 Algoritmos para Encriptação dos Dados

São dois os algoritmos de encriptação mais comuns. Por cada algoritmo são dados exemplos de cifras e outros mecanismos criptográficos considerados seguros na atualidade:

• Encriptação Simétrica - O algoritmo de encriptação simétrica é um tipo de cripto-sistema em que a encriptação e a desencriptação são feitas usando a mesma chave. A encriptação de um texto em claro é realizada recorrendo a uma chave secreta com tamanho em número de bits suficientemente grande para serem evitados ataques de força bruta, onde são testadas re- cursivamente várias chaves até ser encontrada a chave correta. A chave secreta é distribuída por um canal seguro, diretamente de forma física entre as entidades comunicantes ou recor- rendo a uma terceira entidade de confiança com a responsabilidade de fazer a distribuição. Nas cifras simétricas distinguem-se algoritmos apropriados para comunicações síncronas que fazem a encriptação byte-a-byte ou bit-a-bit (ex. RC4), e algoritmos apropriados para comunicações assíncronas e envio de ficheiros ou segmentos de dados de tamanho conside- rável (ex. AES/CBC). As cifras simétricas assíncronas consideradas seguras pelo NIST e recomendadas para o uso na encriptação de dados, são as seguintes:

– Triple DES - A cifra consiste em três implementações do algoritmo DES de forma se- quencial, usando três chaves distintas, cada uma com o tamanho de 56 bits, perfazendo uma chave efetiva de 168 bits de tamanho [15].

– AES/CBC/256 - A cifra faz uso de uma chave de 256 bits e atua no modo de operação cipher block chaining(CBC) onde o segmento de dados em questão é repartido por

2.3 Segurança dos Dados na Cloud 19

blocos de 128 bits, esses blocos são encriptados recorrendo à chave secreta e a um vetor de inicialização [15]. Texto claro AES/CBC/256 K Chave partilhada entre remetente e destinatário Chave partilhada entre remetente e destinatário Encriptação AES/CBC/256 Desencriptação Texto claro X Y = E ( K , X ) X = D ( K , Y )

Transmissão do texto encriptado

K

Figura 2.7: Modelo simplificado do processo de encriptação simétrica.

O nível de segurança elevado das cifras anteriores é um fator que pode, nem sempre, ser favorável. De facto, a encriptação segura pode ter impacto na cloud ao nível das funciona- lidades (ex. pesquisa de informação encriptada). Portanto, deve existir sempre um trade-off entre o nível de segurança e funcionalidades que se pretendem ver implementadas. Na prá- tica, são feitas alterações e adaptações às cifras seguras, tornando-se mais flexíveis, mas também, mais vulneráveis a ataques com base em métodos estatísticos. Recorrendo a um relatório da Skyhigh Networks, empresa de segurança na cloud sediada nos EUA, são lis- tadas adaptações a cifras seguras e outras recomendações de algoritmos, que permitem a existência das funcionalidades essenciais da cloud. Na Figura 2.8é apresentado um gráfico trade-off entre as várias implementações sugeridas.

– Encriptação Seletiva - Num conjunto de dados faz-se a encriptação de um segmento mais sensível em relação aos restantes segmentos (ex. número de identificação bancá- ria). É uma adaptação usada na cifra AES [18].

– Format Preserving Encryption (FPE) - É um método de encriptação que preserva o tamanho e o formato do texto original. Pode ser útil em funcionalidades de serviços em cloud que requerem o mesmo formato do texto em claro, no texto encriptado. É um standard adotado pelo NIST como modo de operação de cifras simétricas (modo FFX)[18].

– Searchable Encryption - Sacrifica-se o nível de segurança imposto pelas cifras men- cionadas para se conseguir efetuar pesquisa eficiente sobre os dados encriptados. São utilizadas várias aproximações que se distinguem pela maior ou menor redução do nível de segurança do algoritmo de encriptação [18]:

2. Pesquisa palavra a palavra. 3. Indíces locais ou tokenization. 4. Pesquisa por prefixo.

– Order-Preserving Encryption (OPE) - Adaptação à cifra AES que permite a existên- cia de pesquisa eficiente, isto porque, no caso de existência de uma ordem na orga- nização dos dados, nos textos em claro, essa ordem é preservada nos textos encripta- dos [18].

– Fully Homomorphic Encryption (FHE) - Método de encriptação que recorre a uma função específica para pesquisa dos dados encriptados. Este é o formato idealizado pela comunidade global ligada à investigação de algoritmos criptográficos uma vez que não seria necessária uma redução drástica da segurança das cifras para a realiza- ção de pesquisas eficientes sobre os dados encriptados. Contudo este método ainda está longe de ser adotado pelas empresas devido à fraca performance que apresenta tendo em conta os recursos computacionais atualmente existentes [18]. Ainda assim, a FHE continua a ser alvo de investigação. Um exemplo do uso da FHE pode ser estudado numa publicação com origem no projeto "Practice" com o nome de "Secure Deduplication of Encrypted Data without Additional Independent Servers" [19].

S e gu ran ça (ap ro ximadamen te) Funcionalidades (aproximadamente) Standard

(ex. AES/CBC/256) Encriptação seletiva

FHE

OPE Searchable Encryption

FPE

Figura 2.8: Ilustração do trade-off existente nas várias cifras e adaptações descritas (ilustração inspirada no relatório da SkyHigh Networks).

• Encriptação Assimétrica - Neste tipo de algoritmo, cada entidade comunicante deve pos- suir duas chaves: uma chave pública e uma chave privada. Para garantir confidencialidade dos dados, os mesmos são encriptados no remetente recorrendo à chave pública do des- tinatário. A entidade de destino usa o seu par privado para efetuar a desencriptação dos dados. O processo contrário, ou seja, a encriptação feita no remetente recorrendo à chave

2.3 Segurança dos Dados na Cloud 21

privada do remetente, não garantiria confidencialidade (qualquer entidade poderia desen- criptar o texto recorrendo à chave pública do remetente porque a mesma é pública), mas garantiria autenticidade dos dados uma vez que a chave privada corresponde apenas à en- tidade remetente. Este tipo de cifra obriga à existência de estratégias de gestão de chaves públicas que normalmente recorrem a certificados x509 atribuídos por uma autoridade de certificação. O uso deste sistema para encriptação de grandes quantidades de dados não é sugerido devido à latência introduzida pelo mecanismo de troca de chaves. Deve ser usado por exemplo, como canal seguro para troca de uma chave simétrica que possibilitaria a reali- zação de encriptação simétrica. Um exemplo de um cripto-sistema assimétrico é o algoritmo Rivest-Shamir-Adleman(RSA) [15]. Texto claro RSA Chaveiro da entidade A Chave privada da entidade B Encriptação RSA Desencriptação Texto claro X Y = E ( PUB , X ) X = D ( PRB , Y )

Transmissão do texto encriptado Chaveiro

da entidade A

PUB PRB

Figura 2.9: Modelo simplificado do processo de encriptação assimétrica com confidencialidade garantida.

2.3.3.2 Ferramentas para Encriptação do Disco

Existem ferramentas específicas de encriptação dos dados num disco de armazenamento. A encriptação do disco assegura que todos os ficheiros depositados num determinado diretório pro- tegido da file system presente no sistema, são guardados no disco num formato encriptado através da execução de algoritmos de encriptação simétrica. Os dados ficam disponíveis em formato de texto claro após um processo de autenticação por um utilizador creditado que normalmente passa pela disponibilização de uma password responsável por encriptar e desencriptar as chaves crip- tográficas simétricas. No contexto das ferramentas de encriptação do disco, existem dois tipo de soluções que se diferenciam pela granularidade da encriptação:

• Encriptação ao Nível da File System - Consiste na implementação de uma camada de en- criptação sobre uma file system existente (ex. file system ext4), que faz com que todos os ficheiros escritos num diretório com encriptação ativa, sejam encriptados antes de ser re- alizada a escrita propriamente dita, no disco. A encriptação é feita on-the-fly partindo da disponibilidade permanente de chaves criptográficas armazenadas, normalmente de forma encriptada, no próprio sistema, e que são geridas a partir de uma funcionalidade associada a um determinado sistema operativo (ex. keyctl do Linux Kernel). A interação do utili- zador com a ferramenta é feita apenas no momento em que é efetuado o mounting sobre um diretório pertencence à estrutura da file system existente, em que o mesmo deve inserir uma password secreta. O processo de mounting consiste na montagem de uma determinada partição de um disco de armazenamento, num diretório organizado pela estrutura da file systempresente no sistema, de modo a que os dados armazenados no disco possam ficar disponíveis num formato manipulável ao utilizador. Os dados dos ficheiros introduzidos no diretório após ser efetuado o mounting da ferramenta de encriptação, são armazenados na partição do disco correspondente, num formato encriptado. A partir do diretório protegido continuar-se-á a visualizar os ficheiros num formato em texto claro, porém, qualquer tenta- tiva de mounting da partição do disco correspondente aos dados protegidos, noutro diretório, sem que seja utilizada a mesma ferramenta ou caso seja utilizada a mesma ferramenta mas sem inserção correta da senha do utilizador, resulta na exposição dos dados dos ficheiros num formato encriptado. Duas das ferramentas open-source disponíveis no mercado são: eCryptfs e EncFS [20].

• Encriptação ao Nível do Dispositivo de Armazenamento - A encriptação ocorre na ca- mada inferior em relação à camada da file system presente e garante que todos os dados escritos num dispositivo de armazenamento são encriptados. O processo que leva à im- posição de uma camada de proteção dos dados de ficheiros no sistema é em tudo idêntico ao descrito nas ferramentas de encriptação de file system, apenas o diretório protegido não pertence à estrutura organizada da file system existente. Esta solução possui um nível de granularidade mais fino, sendo impossível distinguir sequer quais as características em ter- mos de configurações do software, ou seja, a meta-data em vigor no sistema devido ao facto de a encriptação ser realizada numa camada inferior à da file system. Das ferramentas open-sourcede livre uso comercial, destacam-se: dm-crypt e TrueCrypt [20].

2.3.3.3 Integridade e Autenticidade dos Dados

A violação da integridade dos dados implica também que o remetente deixe de ser o original pelo que, a verificação da integridade pode ser vista também como a verificação da autenticidade dos dados. Existem dois métodos que são amplamente usados:

• Função de Hash - Uma função que aceita como parâmetros de entrada segmentos de dados de tamanho variável, produzindo à saída um código de tamanho fixo chamado código de hash. Uma boa função de hash produz outputs distribuídos uniformemente e de natureza

2.3 Segurança dos Dados na Cloud 23

aleatória. A alteração de bits num segmento de dados implica que o código de hash gerado seja diferente do gerado aquando do segmento original, o que permite a criação de um meca- nismo criptográfico de verificação da integridade. Um dos algoritmos de hash mais usados na atualidade é o SHA-3 ou SHA256, que produz um código aleatório de 256 bits [15]. • Message Authentication Code (MAC) - É um algoritmo que recebe um segmento de dados

de tamanho variável e uma chave secreta como inputs e gera um código de autenticação. Combina o uso de uma função de hash criptográfica com o algoritmo de encriptação si- métrica. Um dado segmento de dados pode ser autenticado no destinatária fazendo o uso da chave simétrica destinada ao MAC. Existem várias funções que podem gerar o código de autenticação sendo que a mais usada é uma função de hash adaptada ao contexto de autenticação de mensagens, HMAC [15].

Texto claro K MAC | | X X MAC( K , X ) MAC( K , X ) X MAC K Comparar X

Figura 2.10: Esquema de implementação do MAC sem confidencialidade garantida.

2.3.3.4 Autenticação e Controlo de Acesso

Para estabelecer o acesso controlado às aplicações em cloud exige-se a imposição de regras aos utilizadores. A RFC 2828 define autenticação do utilizador em dois passos: identificação e verificação. A identificação consiste no fornecimento de dados que identifiquem o utilizador, normalmente um username do utilizador e uma forma de autenticação do mesmo que pode con- sistir por exemplo, em passwords, elementos biométricos ou ainda cartões eletrónicos. O passo de verificação consiste na confirmação da validade dos identificadores do utilizador fazendo a com- paração com os dados guardados num servidor. Em sistemas implementados sobre infraestruturas de redes, os métodos de autenticação do utilizador envolvem algoritmos criptográficos (ex. cifra simétrica), para que a troca de dados entre utilizador e o sistema ocorra de forma confidencial.

O Kerberos é um exemplo de um protocolo para autenticação dos utilizadores na rede e con- siste numa sequência de operações entre clientes e um dispositivo central (ex. servidor LDAP), baseados em algoritmos criptográficos [15]. Torna-se importante de igual forma a utilização de estratégias para recuperação das credenciais de um utilizador, em caso de perda ou comprometi- mento das mesmas. A tendência atual é o uso de procedimentos self-service password recovery, que permitem por exemplo, efetuar o reset das credenciais comprometidas através do envio de um desafio para o e-mail associado ao utilizador. O LDAP Tool Box project possui uma aplicação em PHP que permite ao utilizador alterar a sua password num diretório LDAP [21].

Para além da autenticação de utilizadores é necessário de igual forma ter em conta mecanismos de autenticação de alvos distintos, principalmente quando a maioria dos elementos que compõem a infraestrutura da cloud são parte integrante de um serviço fornecido por um dado CSP, ou seja, localizam-se num espaço remoto. Um exemplo de um elemento que deve ser autenticado sempre que haja um boot do sistema é o próprio host do ambiente de virtualização. A perspetiva de autenticação doutros elementos que não apenas o utilizador é defendida pela CSA que recomenda, por exemplo, o uso de dispositivos com procedimentos de autenticação implementados como o exemplo do hardware security module (HSM), dispositivo com o intuito de proteger e gerir chaves criptográficas [22].

2.3.3.5 Gestão de Chaves Criptográficas

O processo de gestão de chaves é a parte mais crítica da implementação de técnicas criptográ- ficas para a segurança dos dados na cloud. O acesso de um intruso ao sistema de armazenamento de chaves, comprometeria todos os dados armazenados num serviço disponibilizado em cloud. A CSA define um conjunto de regras que devem ser seguidas para o estabelecimento de uma boa política de gestão de chaves criptográficas [22]:

1. Uma organização deve definir políticas de gestão de chaves escolhendo algoritmos apropri- ados para o envio seguro de chaves e o ciclo de vida associado a cada uma.

2. A geração de chaves criptográficas deve recorrer a geradores "pseudo-aleatórios" adequa- dos, que cumpram os critérios de colisão e imagem única.

3. As chaves criptográficas nunca devem ser armazenadas e enviadas em claro.

4. As chaves criptográficas devem ser armazenadas num HSM, um dispositivo físico adaptado às funcionalidades de gestão chaves criptográficas, com possibilidade de ligação à rede. 5. O acesso ao espaço de armazenamento de chaves deve ser concedido apenas a utilizadores

devidamente autorizados recomendando-se no mínimo, dois utilizadores autorizados, para diminuírem as possibilidades de conspirações individuais internas, numa dada organização. 6. As chaves criptográficas devem ser guardadas no local de armazenamento de chaves dedi-

2.3 Segurança dos Dados na Cloud 25

7. O serviço de gestão de chaves deve estar acordo com os standards correntes definidos pelo NIST e pelo conjunto de normas definidas no Federal Information Processing Standard (FIPS).