Compartilhar via


Recomendações para criptografia de dados

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

SE:07 Criptografe dados usando métodos modernos padrão do setor para proteger a confidencialidade e a integridade. Alinhar o escopo da criptografia com as classificações de dados; Priorize métodos de criptografia de plataforma nativa.

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

Este guia descreve as recomendações para criptografar e proteger seus dados. A criptografia é o processo de usar algoritmos de criptografia para tornar os dados ilegíveis e bloquear os dados com uma chave. No estado criptografado, os dados não podem ser decifrados. Ele só pode ser descriptografado usando uma chave emparelhada com a chave de criptografia.

Definições

Termos Definição
Certificados Arquivos digitais que contêm as chaves públicas para criptografia ou descriptografia.
Suíte Cipher Um conjunto de algoritmos que são usados para criptografar e descriptografar informações para proteger uma conexão de rede por TLS (Transport Layer Security).
Computação Confidencial A Computação Confidencial é a proteção dos dados em uso por meio da execução de computação em um Ambiente de Execução Confiável baseado em hardware e atestado.
Descriptografia O processo em que os dados criptografados são desbloqueados com um código secreto.
Criptografia dupla O processo de criptografia de dados usando duas ou mais camadas independentes de criptografia.
Criptografia O processo pelo qual os dados são tornados ilegíveis e bloqueados com um código secreto.
Hash O processo de transformar dados em texto ou números com a intenção de ocultar informações.
Teclas Um código secreto que é usado para bloquear ou desbloquear dados criptografados.
Signature Um carimbo criptografado de autenticação nos dados.
Assinando O processo de verificação da autenticidade dos dados usando uma assinatura.
X.509 Um padrão que define o formato de certificados de chave pública.

Principais estratégias de design

Mandatos organizacionais ou requisitos normativos podem impor mecanismos de criptografia. Por exemplo, pode haver um requisito de que os dados devem permanecer apenas na região selecionada e cópias dos dados são mantidas nessa região.

Estes requisitos são muitas vezes o mínimo base. Esforce-se para obter um nível mais alto de proteção. Você é responsável por evitar vazamentos de confidencialidade e adulteração de dados confidenciais, sejam dados de usuários externos ou dados de funcionários.

Cenários de criptografia

Os mecanismos de criptografia provavelmente precisam proteger os dados em três estágios:

  • Dados em repouso são todas as informações mantidas em objetos de armazenamento.

    Um exemplo de proteção de dados em repouso é usar o BitLocker para criptografar dados salvos no armazenamento em um disco.

  • Dados em trânsito são informações transferidas entre componentes, locais ou programas.

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

  • Dados em uso são dados que estão sendo ativamente trabalhados na memória.

    Um exemplo de proteção de dados em uso é a criptografia com computação confidencial para proteger os dados à medida que são processados.

As opções anteriores não são mutuamente exclusivas. Eles geralmente são usados juntos no contexto de toda a solução. Um estágio pode atuar como um controle compensatório. Por exemplo, talvez seja necessário isolar dados para evitar adulteração quando os dados são lidos da memória.

Escopo da criptografia

Classifique os dados por sua finalidade e nível de sensibilidade para determinar quais dados você precisa criptografar. Para dados que devem ser criptografados, determine o nível de proteção necessário. Você precisa de criptografia TLS de ponta a ponta para todos os dados em trânsito? Para dados em repouso, quais recursos do Azure podem atender aos seus requisitos? Você precisa criptografar dados duas vezes em cada ponto de armazenamento? Como implementar a proteção de informações?

É importante equilibrar suas decisões de criptografia porque há compensações significativas.

Compensação: Todo salto de criptografia pode introduzir latência de desempenho. Complexidades operacionais podem ocorrer em relação à solução de problemas e observabilidade. A recuperação pode ser um desafio.

Defina o escopo dessas compensações. Antecipe compensações para dados classificados como confidenciais. Os requisitos podem até determinar as compensações, por exemplo, se um determinado tipo de dados deve ser criptografado e armazenado dentro de certos limites.

Há casos em que a criptografia não é possível devido a limitações técnicas, investimento ou outros motivos. Certifique-se de que essas razões sejam claras, válidas e documentadas.

Mecanismos de criptografia fortes não devem ser sua única forma de defesa. Implemente processos de prevenção de roubo de dados, métodos de teste adequados e detecção de anomalias.

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

Mecanismos de criptografia nativos

A maioria dos serviços do Azure fornece um nível básico de criptografia. Explore as opções de criptografia fornecidas pela plataforma.

É altamente recomendável que você não desabilite os recursos da plataforma para desenvolver sua própria funcionalidade. Os recursos de criptografia de plataforma usam padrões modernos da indústria, são desenvolvidos por especialistas e são altamente testados.

Para raras ocasiões, se você precisar substituir a criptografia fornecida pela plataforma, avalie os prós e contras e use algoritmos criptográficos padrão do setor.

Os desenvolvedores devem usar APIs de criptografia que são incorporadas ao sistema operacional, em vez de bibliotecas de criptografia não plataforma. Para .NET, siga o modelo de criptografia .NET.

Chaves de criptografia

Por padrão, os serviços do Azure usam chaves de criptografia gerenciadas pela Microsoft para criptografar e descriptografar dados. O Azure é responsável pelo gerenciamento de chaves.

Você pode optar por chaves gerenciadas pelo cliente. O Azure ainda usa suas chaves, mas você é responsável pelas operações de chave. Você tem a flexibilidade de alterar as teclas quando quiser. A descriptografia é um motivo convincente para usar chaves gerenciadas pelo cliente.

Você deve emparelhar criptografia forte com descriptografia forte. De uma perspectiva de segurança, proteger uma chave de descriptografia é importante porque a rotação é uma maneira comum de controlar o raio de explosão se uma chave for comprometida. Monitore o acesso para detectar acessos e atividades anômalas.

Armazene chaves separadas dos dados criptografados. Essa dissociação ajuda a garantir que o comprometimento de uma entidade não afete a outra. Se você usar chaves gerenciadas pelo cliente, armazene-as em um repositório de chaves. Armazene dados altamente confidenciais em um módulo de segurança de hardware gerenciado (HSM).

Ambas as lojas são protegidas com acesso baseado em identidade. Esse recurso permite negar o acesso, até mesmo à plataforma.

Algoritmos de criptografia padrão

Use algoritmos de criptografia bem estabelecidos e sigam os padrões do setor em vez de criar implementações personalizadas.

Os padrões do setor para algoritmos exigem que os esquemas de criptografia tenham um certo nível de entropia. As fontes de entropia são injetadas durante a criptografia. A entropia torna o algoritmo forte e dificulta a extração de informações por um invasor. Determine os limiares toleráveis de entropia. Os procedimentos de criptografia consomem muito processador. Encontre o equilíbrio certo para maximizar os ciclos de computação gastos na criptografia, em relação às metas gerais de desempenho da solicitação de computação.

Compensação: Se você escolher um algoritmo que seja altamente complexo ou injete mais do que uma quantidade razoável de entropia, ele degradará o desempenho do seu sistema.

Hashes e somas de verificação

Normalmente, o hashing é uma técnica de detecção de erros. Você também pode usar o hash para segurança, pois ele detecta alterações nos dados que podem ser causadas por violação. As funções de hash são baseadas em criptografia, mas não usam chaves. As funções de hash usam algoritmos para produzir somas de verificação. As somas de verificação podem comparar dados para verificar a integridade deles.

Os aplicativos devem usar a família SHA-2 de algoritmos de hash, como SHA-256, SHA-384 ou SHA-512.

Dados em repouso

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

  • Criptografe dados usando opções nativas fornecidas para serviços de armazenamento, armazenamentos de dados e outros recursos usados para manter dados. Criptografe esses dados mesmo se você armazenar dados nesses serviços ou recursos de armazenamento apenas temporariamente. Também criptografe seus dados de backup para manter o mesmo nível de segurança que a fonte original.

    Para obter mais informações, consulte Proteção de dados em repouso.

  • Use criptografia dupla. Se seus requisitos de negócios exigirem maior garantia, você poderá executar a criptografia dupla. Criptografe dados em duas ou mais camadas usando chaves independentes gerenciadas pelo cliente. Armazene os dados em um HSM gerenciado. Para ler os dados, você precisa de acesso a ambas as chaves. Se uma chave for comprometida, a outra chave ainda protegerá os dados. Essa técnica visa aumentar os custos do invasor.

    Você também pode usar a criptografia fornecida pela plataforma para criptografar dados duas vezes. A criptografia fornecida pela plataforma protege a mídia de armazenamento no nível da infraestrutura e você aplica outra camada de criptografia no nível dos dados. Por exemplo, um serviço de agente de mensagens tem criptografia fornecida pela plataforma por meio de chaves gerenciadas pela Microsoft que protegem o pipe de mensagens. Esse método permite criptografar as mensagens com chaves gerenciadas pelo cliente.

    Use mais de uma chave de criptografia. Use uma chave de criptografia de chave (KEK) para proteger sua chave de criptografia de dados (DEK).

  • Use controles de acesso baseados em identidade para controlar o acesso aos dados. Adicione firewalls de rede para fornecer uma camada extra de segurança que bloqueia o acesso inesperado e inseguro.

    Para obter mais informações, consulte Recomendações de gerenciamento de identidade e acesso.

  • Armazene chaves em um HSM gerenciado que tenha controle de acesso com privilégios mínimos. Separe os dados das chaves para os dados.

  • Armazene uma quantidade limitada de dados para que você criptografe apenas o necessário. Seus dados não devem durar mais do que seu ciclo de criptografia. Quando os dados não forem mais necessários, exclua os dados criptografados sem gastar ciclos de descriptografia.

Dados em trânsito

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

    Não use versões inferiores ao TLS 1.2. Migre soluções para oferecer suporte ao TLS 1.2 e use essa versão por padrão. Todos os serviços do Azure permitem TLS 1.2 em pontos de extremidade HTTPS públicos.

    Risco: clientes mais antigos que não oferecem suporte ao TLS 1.2 podem não funcionar corretamente se a compatibilidade com versões anteriores não for suportada.

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

    O suporte para HSTS é para versões mais recentes. Você pode quebrar a compatibilidade com navegadores mais antigos.

    Observação

    Você também pode criptografar protocolos para estabelecer conexões seguras para bancos de dados. Por exemplo, o Banco de Dados SQL do Azure dá suporte ao protocolo TDS (Tabular Data Stream), que integra um handshake TLS.

    Um conjunto de cifras é um conjunto de algoritmos que são usados para padronizar o handshake entre o cliente e o servidor. As cifras garantem que a troca seja criptografada e autenticada. A escolha das cifras depende da versão TLS que o servidor usa. Para alguns serviços, como o Gateway de Aplicativo do Azure, você pode escolher a versão do TLS e os conjuntos de codificação aos quais deseja oferecer suporte. Implemente conjuntos de codificação que usam o AES (Advanced Encryption Standard) como uma cifra de bloco simétrica. AES-128, AES-192 e AES-256 são aceitáveis.

  • Gerenciar 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 por conta própria. Implemente um processo que renove certificados em uma frequência aceitável. Você pode automatizar o processo para renovações que ocorrem em intervalos curtos.

    Observação

    Se você usar a fixação de certificado, familiarize-se com as limitações de agilidade e gerenciamento de certificados.

    Seu fluxo de trabalho não deve permitir que certificados inválidos sejam aceitos no ambiente. O processo de fixação de certificados deve validar certificados e impor essa verificação de validação. Você deve monitorar os logs de acesso para garantir que a chave de assinatura seja usada com as permissões adequadas.

    Se uma chave estiver comprometida, o certificado deverá ser revogado imediatamente. Uma autoridade de certificação (CA) fornece uma lista de revogação de certificados (CRL) que indica os certificados que são invalidados antes de sua expiração. Sua verificação de validação deve considerar CRLs.

    Compensação: O processo de validação da certificação pode ser complicado e geralmente envolve uma autoridade de certificação. Determine os dados que você deve criptografar com certificados. Para outros tipos de comunicação, determine se você pode implementar controles de compensação localizados para adicionar segurança.

    Uma maneira de localizar controles é com TLS mútuo (mTLS). Ele estabelece confiança em ambas as direções entre o cliente e o servidor. O cliente e o servidor têm seus próprios certificados e cada certificado é autenticado com seu par de chaves pública ou privada. Com o mTLS, você não depende da autoridade de certificação externa. A compensação é a complexidade adicional do gerenciamento de dois certificados.

  • Criptografe duas vezes conexões VPN, se necessário. Execute criptografia dupla para adicionar defesa em profundidade ao seu túnel VPN. Ao usar dois servidores VPN, você pode ocultar o endereço IP entre os servidores e também ocultar o endereço IP entre o servidor e o destino. Durante esse processo, os dados em trânsito também são criptografados duas vezes.

    Compensação: Em comparação com configurações de VPN única, as configurações de VPN dupla geralmente são mais caras, e as conexões geralmente são mais lentas.

  • Implementar processos de registro e monitoramento. Mantenha o controle dos recursos de entrada de acesso que armazenam informações sobre os clientes, como o IP de origem, a porta e o protocolo. Use essas informações para detectar anomalias.

Dados em uso

Para cargas de trabalho de alta segurança, segmentação, isolamento e privilégios mínimos são padrões de design recomendados.

No contexto da proteção em uso, os limites de hardware podem exigir criptografia de dados enquanto eles estão em uso na CPU física e na memória para garantir o isolamento de VMs, código de gerenciamento de host e outros componentes. A criptografia e a descriptografia de dados só devem ser feitas dentro desses limites de isolamento.

Requisitos de segurança ou regulatórios mais rigorosos também podem exigir evidências de hardware e assinadas criptograficamente de que os dados estão sendo criptografados durante o uso, isso pode ser obtido por meio de atestado. A computação confidencial é uma dessas tecnologias que suporta o requisito. Serviços específicos no Azure oferecem a capacidade de proteger dados enquanto eles estão sendo computados. Para obter mais informações, consulte Facilitação do Azure: computação confidencial do Azure.

Considere o ciclo de vida final dos dados que você está protegendo , os dados geralmente passam por vários sistemas em sua vida útil, tome cuidado para garantir que todas as partes componentes de uma solução possam fornecer os níveis necessários de proteção ou certifique-se de que sua estratégia de gerenciamento de dados forneça segmentação ou mascaramento apropriados.

Azure facilitation

As seções a seguir descrevem os serviços e recursos do Azure que você pode usar para criptografar seus dados.

Chaves gerenciadas pelo cliente

Armazene chaves gerenciadas pelo cliente no Cofre de Chaves do Azure ou em um HSM gerenciado pelo Cofre de Chaves.

O Cofre de Chaves trata as chaves como qualquer outro segredo. Os controles de acesso baseados em função (RBAC) do Azure acessam as chaves por meio de um modelo de permissão. Esse controle baseado em identidade deve ser usado com as políticas de acesso do Cofre da Chave.

Para obter mais informações, consulte Fornecer acesso a chaves, certificados e segredos do Cofre de Chaves usando RBAC.

O Azure Key Vault Premium e o Managed-HSM aprimoram ainda mais a oferta, incluindo capacidades de computação confidenciais e Secure Key Release , que oferece suporte a uma política para garantir que uma chave só seja liberada para uma carga de trabalho que possa provar criptograficamente que está sendo executada dentro de um TEE (Ambiente de Execução Confiável).

Proteção de dados em repouso
  • O Armazenamento do Azure criptografa automaticamente seus dados com cifras de bloco quando os dados são mantidos em uma conta de armazenamento. Para o Armazenamento de Blobs do Azure e o Armazenamento de Filas do Azure, o Armazenamento também fornece criptografia do lado do cliente por meio de bibliotecas.

    Para obter mais informações, consulte Criptografia de armazenamento.

  • As Máquinas Virtuais do Azure têm arquivos de disco que servem como volumes de armazenamento virtual. Você pode criptografar os arquivos de disco virtual para que o conteúdo não possa ser acessado.

    Os discos gerenciados podem ser exportados do portal. A criptografia do lado do servidor e a criptografia no host podem proteger os dados somente depois que eles são exportados. No entanto, você deve proteger os dados durante o processo de exportação. Você pode usar a Criptografia de Disco do Azure para proteger e proteger seus dados durante o processo de exportação.

    O Azure oferece várias opções de criptografia para discos gerenciados. Para obter mais informações, consulte Visão geral das opções de criptografia de disco gerenciado.

  • O Banco de dados SQL oferece um recurso de criptografia de dados transparente que é usado para criptografar um arquivo de banco de dados no nível da página.

Proteção de dados em trânsito

Com o Cofre de Chaves, você pode provisionar, gerenciar e implantar certificados SSL (Secure Sockets Layer) ou TLS públicos e privados. Você pode usar os certificados com o Azure e com seus recursos internos conectados.

Proteção de dados em uso

Serviços específicos no Azure oferecem a capacidade de proteger dados enquanto são computados na CPU física e na memória de um host usando 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 o conteúdo da CPU em execução da máquina virtual são criptografados, oferecendo uma abordagem simples de 'lift & shift' para mover aplicativos não modificados com altos requisitos de segurança para o Azure. Cada VM confidencial do Azure tem seu próprio TPM (Trusted Platform Module) virtual dedicado. A criptografia é executada enquanto os componentes do sistema operacional são inicializados com segurança.

  • Os nós de trabalho confidenciais do AKS, os contêineres confidenciais no AKS ou os contêineres confidenciais nas instâncias de contêiner do Azure (ACI) oferecem a capacidade de executar e gerenciar contêineres não modificados dentro de um TEE , o que permite que os clientes se beneficiem da proteção em uso. As ofertas de contêiner são incorporadas a Máquinas Virtuais Confidenciais e se beneficiam das mesmas proteções.

  • As soluções Application Enclave são aplicativos especialmente construídos aproveitando extensões de CPU específicas oferecidas por SKUs de máquinas virtuais que suportam Intel Software Guard Extensions (SGX), elas oferecem uma TCB (Trusted Compute Base) muito granular, mas exigem que os aplicativos sejam especificamente codificados para aproveitar os recursos.

  • O Secure Key Release pode ser combinado com essas tecnologias para garantir que os dados criptografados só sejam descriptografados dentro de um TEE, o que prova que ele fornece o nível necessário de proteção por meio de um processo conhecido como Attestation.

Gerenciamento de segredos

Você pode usar o Cofre de Chaves para armazenar e controlar com segurança o acesso a tokens, senhas, certificados, chaves de API e outros segredos. Use o Cofre de Chaves como uma solução de gerenciamento de chaves e certificados. O SKU Premium suporta HSMs.

Exemplo

O exemplo a seguir mostra soluções de criptografia que você pode usar para gerenciar chaves, certificados e segredos.

Diagrama que mostra soluções de criptografia para gerenciar chaves, certificados e segredos.

Lista de verificação de segurança

Consulte o conjunto completo de recomendações.

Lista de verificação de segurança