Recomendações para encriptação de dados

Aplica-se à recomendação da lista de verificação do Well-Architected Framework Security:

SE:07 Encripte dados através de métodos padrão da indústria modernos para proteger a confidencialidade e a integridade. Alinhar o âmbito de encriptação com classificações de dados; priorize os métodos de encriptação de plataforma nativa.

Se os seus dados não estiverem protegidos, podem ser modificados maliciosamente, o que leva à perda de integridade e confidencialidade.

Este guia descreve as recomendações para encriptar e proteger os seus dados. A encriptação é o processo de utilização de algoritmos de criptografia para tornar os dados ilegíveis e bloquear os dados com uma chave. No estado encriptado, os dados não podem ser decifrados. Só pode ser desencriptado através de uma chave emparelhada com a chave de encriptação.

Definições

Termos Definição
Certificados Ficheiros digitais que contêm as chaves públicas para encriptação ou desencriptação.
Conjunto de cifras Um conjunto de algoritmos que são utilizados para encriptar e desencriptar informações para proteger uma ligação de rede através do Transport Layer Security (TLS).
Computação confidencial A Computação Confidencial é a proteção dos dados em utilização através da realização de cálculos num Ambiente de Execução Fidedigno com base em hardware e atestado.
Desencriptação O processo no qual os dados encriptados são desbloqueados com um código secreto.
Encriptação dupla O processo de encriptação de dados através de duas ou mais camadas independentes de encriptação.
Encriptação O processo pelo qual os dados são tornados ilegíveis e bloqueados com um código secreto.
Hashing O processo de transformação de dados em texto ou números com a intenção de ocultar informações.
Chaves Um código secreto que é utilizado para bloquear ou desbloquear dados encriptados.
Assinatura Um carimbo encriptado de autenticação nos dados.
Assinatura de O processo de verificação da autenticidade dos dados com uma assinatura.
X.509 Uma norma que define o formato dos certificados de chave pública.

Principais estratégias de conceção

Os mandatos organizacionais ou os requisitos regulamentares podem impor mecanismos de encriptação. Por exemplo, pode existir um requisito de que os dados devem permanecer apenas na região selecionada e as cópias dos dados são mantidas nessa região.

Estes requisitos são, muitas vezes, o mínimo base. Esforce-se por um nível mais elevado de proteção. É responsável por impedir fugas de confidencialidade e adulteração de dados confidenciais, sejam dados de utilizadores externos ou dados de funcionários.

Cenários de encriptação

Os mecanismos de encriptação provavelmente precisam de proteger os dados em três fases:

  • Os dados inativos são todas as informações que são mantidas em objetos de armazenamento.

    Um exemplo de proteção de dados inativos é a utilização do BitLocker para encriptar os dados guardados no armazenamento num disco.

  • Os dados em trânsito são informações transferidas entre componentes, localizações ou programas.

    Um exemplo de proteção de dados em trânsito é encriptar dados com TLS para que os pacotes que se movem através de redes públicas e privadas sejam seguros.

  • Os dados em utilização são dados que estão a ser trabalhados ativamente na memória.

    Um exemplo de proteção de dados em utilização é encriptar com computação confidencial para proteger dados à medida que são processados.

As escolhas anteriores não são mutuamente exclusivas. São frequentemente utilizados em conjunto no contexto de toda a solução. Uma fase pode funcionar como um controlo compensador. Por exemplo, poderá ter de isolar dados para impedir a adulteração quando os dados são lidos a partir da memória.

Âmbito da encriptação

Classifique os dados pelo seu objetivo e nível de confidencialidade para determinar que dados precisa de encriptar. Para dados que devem ser encriptados, determine o nível de proteção necessário. Precisa de encriptação TLS ponto a ponto para todos os dados em trânsito? Para dados inativos, que funcionalidades do Azure podem cumprir os seus requisitos? Precisa de encriptar dados duplos em todos os pontos de armazenamento? Como implementar a proteção de informações?

É importante equilibrar as suas decisões de encriptação porque existem compromissos significativos.

Desvantagem: cada salto de encriptação pode introduzir latência de desempenho. As complexidades operacionais podem ocorrer em relação à resolução de problemas e à observabilidade. A recuperação pode ser um desafio.

Analise estas desvantagens. Antecipe compromissos para dados que são classificados como confidenciais. Os requisitos podem até determinar as desvantagens, por exemplo, se um determinado tipo de dados tiver de ser encriptado e armazenado dentro de determinados limiares.

Existem casos em que a encriptação não é possível devido a limitações técnicas, investimento ou outros motivos. Certifique-se de que esses motivos são claros, válidos e documentados.

Os mecanismos de encriptação fortes não devem ser a sua única forma de defesa. Implemente processos de prevenção de roubo de dados, métodos de teste adequados e deteção de anomalias.

Para obter informações sobre a classificação, veja Recomendações sobre a classificação de dados.

Mecanismos de encriptação nativos

A maioria dos serviços do Azure fornece um nível base de encriptação. Explore as opções de encriptação fornecidas pela plataforma.

Recomenda-se vivamente que não desative as capacidades da plataforma para desenvolver a sua própria funcionalidade. As funcionalidades de encriptação de plataforma utilizam normas modernas da indústria, são desenvolvidas por especialistas e são altamente testadas.

Para ocasiões raras, se precisar de substituir a encriptação fornecida pela plataforma, avalie os prós e contras e utilize algoritmos criptográficos padrão da indústria.

Os programadores devem utilizar APIs de criptografia incorporadas no sistema operativo em vez de bibliotecas de criptografia não formatação. Para .NET, siga o modelo de criptografia .NET.

Chaves de encriptação

Por predefinição, os serviços do Azure utilizam chaves de encriptação geridas pela Microsoft para encriptar e desencriptar dados. O Azure é responsável pela gestão de chaves.

Pode optar por chaves geridas pelo cliente. O Azure ainda utiliza as chaves, mas é responsável pelas operações principais. Tem a flexibilidade de alterar as chaves quando quiser. A desencriptação é um motivo apelativo para utilizar chaves geridas pelo cliente.

Deve emparelhar a encriptação forte com uma desencriptação forte. Do ponto de vista da segurança, proteger uma chave de desencriptação é importante porque a rotação é uma forma comum de controlar o raio da explosão se uma chave for comprometida. Monitorize o acesso para detetar atividades e acesso anómalo.

Armazene chaves separadas dos dados encriptados. Esta desacoplamento ajuda a garantir que o compromisso de uma entidade não afeta a outra. Se utilizar chaves geridas pelo cliente, armazene-as num arquivo de chaves. Armazene dados altamente confidenciais num módulo de segurança de hardware gerido (HSM).

Ambos os arquivos estão protegidos com acesso baseado em identidade. Esta funcionalidade permite-lhe negar o acesso, mesmo à plataforma.

Algoritmos de encriptação padrão

Utilize algoritmos de criptografia bem estabelecidos e que sigam os padrões da indústria em vez de criar implementações personalizadas.

Os padrões da indústria para algoritmos exigem que os esquemas de encriptação tenham um determinado nível de entropia. As fontes de entropia são injetadas durante a encriptação. A entropia torna o algoritmo forte e dificulta a extração de informações por parte de um atacante. Determine os limiares toleráveis da entropia. Os procedimentos de encriptação consomem muito processador. Encontre o equilíbrio certo para que esteja a maximizar os ciclos de computação que são gastos na encriptação, em relação aos objetivos gerais de desempenho do pedido de computação.

Desvantagem: se escolher um algoritmo altamente complexo ou injetar mais do que uma quantidade razoável de entropia, isso degrada o desempenho do seu sistema.

Hashes e somas de verificação

Normalmente, o hashing é uma técnica de deteção de erros. Também pode utilizar o hashing para segurança porque deteta alterações aos dados que podem ser causadas por adulteração. As funções hash baseiam-se na criptografia, mas não utilizam chaves. As funções hash utilizam algoritmos para produzir somas de verificação. As somas de verificação podem comparar dados para verificar a integridade dos mesmos.

As aplicações devem utilizar a família SHA-2 de algoritmos hash, como SHA-256, SHA-384 ou SHA-512.

Dados inativos

Classifique e proteja objetos de armazenamento de informações de acordo com os requisitos de conformidade internos e externos. Veja as seguintes recomendações:

  • Encriptar dados utilizando opções nativas fornecidas para serviços de armazenamento, arquivos de dados e outros recursos que são utilizados para manter os dados. Encriptar estes dados mesmo que armazene dados nestes serviços ou recursos de armazenamento apenas temporariamente. Encripte também os seus dados de cópia de segurança para manter o mesmo nível de segurança que a origem original.

    Para obter mais informações, veja Dados em proteção inativa.

  • Utilize encriptação dupla. Se os seus requisitos empresariais exigirem uma maior garantia, pode efetuar a encriptação dupla. Encriptar dados em duas ou mais camadas com chaves geridas pelo cliente independentes. Armazene os dados num HSM gerido. Para ler os dados, precisa de acesso a ambas as chaves. Se uma chave for comprometida, a outra chave ainda protege os dados. Esta técnica visa aumentar os custos do atacante.

    Também pode utilizar a encriptação fornecida pela plataforma para encriptar dados duplos. A encriptação fornecida pela plataforma protege o suporte de dados de armazenamento ao nível da infraestrutura e aplica outra camada de encriptação ao nível dos dados. Por exemplo, um serviço de mediador de mensagens tem encriptação fornecida pela plataforma através de chaves geridas pela Microsoft que protege o pipe de mensagens. Este método permite-lhe encriptar as mensagens com chaves geridas pelo cliente.

    Utilize mais do que uma chave de encriptação. Utilize uma chave de encriptação de chaves (KEK) para proteger a chave de encriptação de dados (DEK).

  • Utilize controlos de acesso baseados em identidade para controlar o acesso aos dados. Adicione firewalls de rede para fornecer uma camada adicional de segurança que bloqueia o acesso inesperado e não seguro.

    Para obter mais informações, veja Recomendações para gestão de identidades e acessos.

  • Armazene chaves num HSM gerido que tenha um controlo de acesso com menos privilégios. Separe os dados das chaves para os dados.

  • Armazene uma quantidade limitada de dados para que apenas encripte o que é necessário. Os seus dados não devem viver mais tempo do que o ciclo de encriptação. Quando os dados já não forem necessários, elimine os dados encriptados sem os ciclos de desencriptação de gastos.

Dados em trânsito

  • Utilize protocolos seguros para comunicação cliente-servidor. Os protocolos de transporte têm uma camada de segurança incorporada. O TLS é o padrão do setor para a troca de dados entre pontos finais de cliente e servidor.

    Não utilize versões inferiores a TLS 1.2. Migre soluções para suportar o TLS 1.2 e utilize esta versão por predefinição. Todos os serviços do Azure suportam o TLS 1.2 em pontos finais HTTPS públicos.

    Risco: os clientes mais antigos que não suportam o TLS 1.2 poderão não funcionar corretamente se a retrocompatibilidade não for suportada.

    Toda a comunicação do site deve utilizar HTTPS, independentemente da sensibilidade dos dados transferidos. Durante um handshake cliente-servidor, negoceie a utilização da política HTTP Strict Transport Security (HSTS) para que o transporte HTTPS seja mantido e não seja removido para HTTP durante a comunicação. Esta política protege contra ataques man-in-the-middle.

    O suporte para HSTS destina-se a versões mais recentes. Pode interromper a retrocompatibilidade com browsers mais antigos.

    Nota

    Também pode encriptar protocolos para estabelecer ligações seguras para bases de dados. Por exemplo, SQL do Azure Base de Dados suporta o protocolo TDS (Tabular Data Stream), que integra um handshake TLS.

    Um conjunto de cifras é um conjunto de algoritmos que são utilizados para uniformizar o handshake entre o cliente e o servidor. As cifras garantem que a troca é encriptada e autenticada. A escolha das cifras depende da versão do TLS que o servidor utiliza. Para alguns serviços, como Gateway de Aplicação do Azure, pode escolher a versão do TLS e os conjuntos de cifras que pretende suportar. Implemente conjuntos de cifras que utilizam a Norma de Encriptação Avançada (AES) como uma cifra de bloco simétrica. AES-128, AES-192 e AES-256 são aceitáveis.

  • Gerir o ciclo de vida dos certificados. Os certificados têm uma vida útil pré-determinada. Não guarde certificados de longa duração e não os deixe expirar sozinhos. Implemente um processo que renove certificados com uma frequência aceitável. Pode automatizar o processo de renovações que ocorrem em intervalos curtos.

    Nota

    Se utilizar a afixação de certificados, familiarize-se com as limitações de gestão de certificados e agilidade.

    O fluxo de trabalho não deve permitir que certificados inválidos sejam aceites no ambiente. O processo de afixação de certificados deve validar certificados e impor essa verificação de validação. Deve monitorizar os registos de acesso para garantir que a chave de assinatura é utilizada com as permissões adequadas.

    Se uma chave for comprometida, o certificado tem de ser revogado imediatamente. Uma autoridade de certificação (AC) fornece uma lista de revogação de certificados (CRL) que indica os certificados que são invalidados antes da expiração. A verificação de validação deve ter em conta as CRLs.

    Desvantagem: o processo de validação de certificação pode ser complicado e normalmente envolve uma AC. Determine os dados que tem de encriptar com certificados. Para outros tipos de comunicação, determine se pode implementar controlos de compensação localizados para adicionar segurança.

    Uma forma de localizar controlos é com o TLS mútuo (mTLS). Estabelece confiança em ambas as direções entre o cliente e o servidor. Tanto o cliente como o servidor têm os seus próprios certificados e cada certificado é autenticado com o respetivo par de chaves públicas ou privadas. Com o mTLS, não depende da AC externa. A contrapartida é a complexidade adicional da gestão de dois certificados.

  • Se necessário, encripte duas ligações VPN. Execute a encriptação dupla para adicionar a defesa em profundidade ao túnel VPN. Quando utiliza dois servidores VPN, pode ocultar o endereço IP entre os servidores e ocultar o endereço IP entre o servidor e o destino. Durante este processo, os dados em trânsito também são encriptados duas vezes.

    Troca: em comparação com as configurações de VPN individuais, as configurações de VPN duplas são muitas vezes mais caras e as ligações são, muitas vezes, mais lentas.

  • Implementar processos de registo e monitorização. Controle os recursos de início de sessão de acesso que armazenam informações sobre clientes, como o IP de origem, a porta e o protocolo. Utilize estas informações para detetar anomalias.

Dados em utilização

Para cargas de trabalho de alta segurança, segmentação, isolamento e menos priviledge são padrões de estrutura recomendados.

No contexto da proteção em utilização, os limites de hardware podem exigir encriptação de dados enquanto estão a ser utilizados na CPU física e na memória para garantir o isolamento de VMs, código de gestão de anfitriões e outros componentes.

A encriptação e a desencriptação de dados só têm de ser feitas dentro desses limites de isolamento.

Os requisitos regulamentares ou de segurança mais rigorosos também podem exigir provas baseadas em hardware e assinadas criptograficamente de que os dados estão a ser encriptados durante a utilização, o que pode ser obtido através do atestado.

A utilização de medidas modernas de segurança e privacidade é um requisito comum para cargas de trabalho regulamentares. A computação confidencial é uma dessas tecnologias que suporta o requisito. Os serviços específicos no Azure oferecem a capacidade de proteger dados enquanto estão a ser calculados. Para obter mais informações, veja Facilitação do Azure: Computação Confidencial do Azure.

Considere o ciclo de vida de fim de vida dos dados que está a proteger , muitas vezes, move-se por vários sistemas durante a sua duração, tenha cuidado para garantir que todas as partes de componentes de uma solução podem fornecer os níveis de proteção necessários ou certifique-se de que a sua estratégia de gestão de dados fornece segmentação ou mascaramento adequados.

Facilitação do Azure

As secções seguintes descrevem os serviços e funcionalidades do Azure que pode utilizar para encriptar os seus dados.

Chaves geridas pelo cliente

Armazene chaves geridas pelo cliente no Azure Key Vault ou num HSM gerido pelo Key Vault.

Key Vault trata as chaves como qualquer outro segredo. Os controlos de acesso baseados em funções (RBAC) do Azure acedem às chaves através de um modelo de permissão. Este controlo baseado em identidade tem de ser utilizado com políticas de acesso Key Vault.

Para obter mais informações, veja Fornecer acesso a chaves Key Vault, certificados e segredos através do RBAC.

O Azure Key Vault Premium e o Managed-HSM melhoram ainda mais a oferta ao incluir capacidades de computação confidencial e Versão de Chave Segura que suporta uma política para garantir que uma chave só é lançada para uma carga de trabalho que possa provar criptograficamente que está a ser executada dentro de um Ambiente de Execução Fidedigna (TEE).

Proteção de dados inativos
  • O Armazenamento do Azure encripta automaticamente os seus dados com cifras de bloco quando os dados são mantidos numa conta de armazenamento. Para Armazenamento de Blobs do Azure e o Armazenamento de Filas do Azure, o Armazenamento também fornece encriptação do lado do cliente através de bibliotecas.

    Para obter mais informações, veja Encriptação de armazenamento.

  • O Azure Máquinas Virtuais tem ficheiros de disco que servem como volumes de armazenamento virtual. Pode encriptar os ficheiros de disco virtual para que os conteúdos não possam ser acedidos.

    Os discos geridos podem ser exportados a partir do portal. A encriptação e encriptação do lado do servidor no anfitrião só podem proteger os dados após a respetiva exportação. No entanto, deve proteger os dados durante o processo de exportação. Pode utilizar o Azure Disk Encryption para proteger e salvaguardar os seus dados durante o processo de exportação.

    O Azure oferece várias opções de encriptação para discos geridos. Para obter mais informações, veja Descrição geral das opções de encriptação de discos geridos.

  • Base de Dados SQL oferece uma funcionalidade de encriptação de dados transparente que é utilizada para encriptar um ficheiro de base de dados ao nível da página.

Proteção de dados em trânsito

Com Key Vault, pode aprovisionar, gerir e implementar certificados SSL (Secure Sockets Layer) ou TLS públicos e privados. Pode utilizar os certificados com o Azure e com os seus recursos ligados internos.

Proteção de dados em utilização

Os serviços específicos no Azure oferecem a capacidade de proteger dados enquanto estão a ser calculados na CPU física e na memória de um anfitrião com a computação confidencial do Azure.

  • As Máquinas Virtuais confidenciais oferecem uma máquina virtual inteira em execução dentro de um TEE, a memória e a execução de conteúdos da CPU da máquina virtual são encriptadas, oferecendo uma abordagem simples de "migração lift-& shift" para mover aplicações não modificadas com requisitos de segurança elevados para o Azure. Cada VM confidencial do Azure tem o seu próprio Módulo de Plataforma de Confiança Virtual (TPM) dedicado. A encriptação é efetuada enquanto os componentes do sistema operativo arrancam de forma segura.

  • Os nós de trabalho confidenciais do AKS, os Contentores Confidenciais no AKS ou os Contentores Confidenciais no Azure Container Instances (ACI) oferecem a capacidade de executar e gerir contentores não modificados dentro de um TEE, o que permite aos clientes beneficiarem da proteção em utilização. As ofertas de contentores são incorporadas em Máquinas Virtuais Confidenciais e beneficiam das mesmas proteções.

  • As soluções do Enclave de Aplicações são aplicações especialmente criadas, tirando partido de extensões de CPU específicas oferecidas por SKUs de máquina virtual que suportam Extensões Intel Software Guard (SGX), estas oferecem uma Base de Computação Fidedigna (TCB) muito granular, mas exigem que as aplicações sejam especificamente codificadas para tirar partido das funcionalidades.

  • A Versão de Chave Segura pode ser combinada com estas tecnologias para garantir que os dados encriptados só são desencriptados dentro de um TEE, o que prova que fornece o nível de proteção necessário através de um processo conhecido como Atestado.

Gestão de segredos

Pode utilizar Key Vault para armazenar e controlar de forma segura o acesso a tokens, palavras-passe, certificados, chaves de API e outros segredos. Utilize Key Vault como uma solução de gestão de chaves e certificados. O SKU Premium suporta HSMs.

Exemplo

O exemplo seguinte mostra soluções de encriptação que pode utilizar para gerir chaves, certificados e segredos.

Diagrama que mostra soluções de encriptação para gerir chaves, certificados e segredos.

Lista de verificação de segurança

Veja o conjunto completo de recomendações.

Lista de verificação de segurança