Criptografia na nuvem

Uma falsa sensação de segurança

Em muitos projetos, um dos principais aspectos da segurança percebida dos dados era se os dados eram criptografados ou não. Lembro-me de um caso específico em que a gerência insistiu que os dados deveriam ser criptografados localmente antes de serem gravados no banco de dados, mas ninguém se importava onde a chave estava armazenada ou se estava protegida ou não. Mas desde que o desenvolvedor possa apontar para as linhas e mostrar que elas estão em uma forma ilegível, todo mundo estava certo.

Enquanto isso, a API estava feliz em servir tudo em texto sem formatação sem verificar o solicitante.

O termo “criptografia” é geralmente usado com arquivos. No caso de arquivos não criptografados, todos os que os possuem podem ler as informações.

Um arquivo criptografado é tão seguro quanto a própria chave. Se você proteger a chave, poderá controlar o acesso às informações. Se você colocar a chave ao lado do arquivo criptografado, a criptografia não significa nada.

Na nuvem, geralmente você não obtém acesso aos arquivos criptografados. Por exemplo, o S3 envia o objeto em texto sem formatação ou nega a operação se você não tiver acesso ao arquivo e à chave. Além da nomenclatura e da promessa, não há provas observáveis ​​de que o arquivo seja armazenado criptografado.

A criptografia não se trata de dividir um arquivo em dois, mas de dividir as permissões em dois. Você precisa acessar não apenas o objeto, mas também a chave.

Quando se trata de criptografia na AWS, o KMS é o serviço a ser usado. Representa o Key Management System e gerencia as chaves e as políticas.

As políticas de chave definem quem pode usar a chave . Essa é a parte do controle de acesso adicionado à criptografia.

No caso de um objeto S3 criptografado, você usa políticas Bucket / IAM para conceder acesso ao objeto e, em seguida, usa políticas Key / IAM para conceder acesso à chave. Se um solicitante não tiver um, o acesso será negado.

Como uma parte das permissões é desanexada do serviço de armazenamento de dados, o KMS abre o caminho para definir permissões entre os serviços. Se você armazenar dados no S3, mas arquivá-los no Redshift, precisará garantir que as permissões sejam mantidas em sincronia. Alguém que tenha acesso a um dos serviços obtém acesso aos dados, o que aumenta a probabilidade de vazamentos.

Com o KMS, você pode usar a mesma chave para o S3 e o Redshift, fornecendo controle centralizado sobre o acesso aos dados. Isso seria difícil de aplicar sem as principais políticas.

Como, do ponto de vista prático, a criptografia não faz mais nada, mas divide as permissões em duas partes necessárias, não torna os dados mais seguros. Apenas lhe dá mais controle .

Se você usa permissões muito amplas ou não verifica adequadamente o acesso às suas APIs, não importa se os dados estão armazenados criptografados ou em texto sem formatação. Em vez de perguntar “Os dados estão criptografados?” , Comece a perguntar “Quem tem acesso aos dados?” . Depois de pensar um pouco, você verá que pode reduzir essa lista utilizando a infraestrutura de criptografia.

É aí que seus sistemas estarão mais seguros.

Fonte: Hacker News