Recomendações para criptografia de dados

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

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

Se seus dados não estiverem protegidos, eles poderão 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.
Conjunto de criptografias 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 de dados em uso executando a computação em um ambiente de execução confiável com base em hardware e atestado.
Descriptografia O processo no qual 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 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 usado para bloquear ou desbloquear dados criptografados.
Assinatura 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

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

Esses requisitos geralmente são o mínimo básico. Busque 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ário 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 inativos são todas as informações mantidas em objetos de armazenamento.

    Um exemplo de proteção de dados inativos é 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.

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

    Um exemplo de proteção de dados em uso é criptografar com computação confidencial para proteger os dados conforme eles 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 de compensação. Por exemplo, talvez seja necessário isolar dados para evitar adulterações quando os dados são lidos da memória.

Escopo da criptografia

Classifique os dados por sua finalidade e nível de confidencialidade 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 inativos, 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: cada salto de criptografia pode introduzir latência de desempenho. As complexidades operacionais podem ocorrer em relação à solução de problemas e à observabilidade. A recuperação pode ser um desafio.

Definir 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 precisar ser criptografado e armazenado dentro de determinados limites.

Há casos em que a criptografia não é possível devido a limitações técnicas, investimentos ou outros motivos. Verifique se esses motivos são claros, válidos e documentados.

Mecanismos de criptografia fortes não devem ser sua única forma de defesa. Implemente processos de prevenção contra 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 base de criptografia. Explore as opções de criptografia fornecidas pela plataforma.

É altamente recomendável que você não desabilite os recursos de plataforma para desenvolver sua própria funcionalidade. Os recursos de criptografia de plataforma usam padrões modernos do setor, 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 incorporadas ao sistema operacional em vez de bibliotecas de criptografia nãoplataforma. Para .NET, siga o modelo de criptografia do .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 por operações de chave. Você tem a flexibilidade de alterar as chaves quando quiser. A descriptografia é um motivo atraente para usar chaves gerenciadas pelo cliente.

Você deve emparelhar criptografia forte com descriptografia forte. Do ponto de vista da 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 atividades e acesso anômalos.

Armazene chaves separadas dos dados criptografados. Essa desacoplamento 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 HSM (módulo de segurança de hardware) gerenciado.

Ambos os repositórios são protegidos com acesso baseado em identidade. Esse recurso permite que você negue o acesso, até mesmo à plataforma.

Algoritmos de criptografia padrão

Use algoritmos de criptografia bem estabelecidos e siga 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 limites toleráveis da entropia. Os procedimentos de criptografia têm uso intensivo de processador. Encontre o equilíbrio certo para que você esteja maximizando os ciclos de computação que sã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 altamente complexo ou injetar mais do que uma quantidade razoável de entropia, isso degrada o desempenho do sistema.

Hashes e somas de verificação

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

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. Confira as seguintes recomendações:

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

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

  • Use criptografia dupla. Se os requisitos de negócios solicitarem uma garantia mais alta, você poderá executar criptografia dupla. Criptografar dados em duas ou mais camadas usando chaves gerenciadas pelo cliente independentes. Armazene os dados em um HSM gerenciado. Para ler os dados, você precisa de acesso a ambas as chaves. Se uma chave estiver 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 de 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 mensagem. Esse método permite criptografar as mensagens com chaves gerenciadas pelo cliente.

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

  • 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 não seguro.

    Para obter mais informações, consulte Recomendações para 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 a quantidade limitada de dados para que você apenas criptografe o que é necessário. Seus dados não devem viver mais do que o 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 trocar dados entre pontos de extremidade de cliente e servidor.

    Não use versões inferiores ao TLS 1.2. Migre soluções para dar 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 dão suporte ao TLS 1.2 podem não funcionar corretamente se não houver suporte para compatibilidade com versões anteriores.

    Toda a comunicação do site deve usar HTTPS, independentemente da confidencialidade dos dados transferidos. Durante um handshake cliente-servidor, negocie o uso da política HSTS (Segurança de Transporte Estrito HTTP) para que o transporte HTTPS seja mantido e não seja baixado para 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 interromper a compatibilidade com versões anteriores com navegadores mais antigos.

    Observação

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

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

  • Gerenciar o ciclo de vida dos certificados. Os certificados têm um tempo de vida predeterminado. Não mantenha certificados de longa duração e não deixe que eles expirem por conta própria. Implemente um processo que renove certificados em uma frequência aceitável. Você pode automatizar o processo de 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 certificado deve validar certificados e impor essa validação marcar. Você deve monitorar os logs de acesso para garantir que a chave de assinatura seja usada com permissões adequadas.

    Se uma chave for comprometida, o certificado deverá ser revogado imediatamente. Uma AC (autoridade de certificação) fornece uma CRL (lista de certificados revogados) que indica os certificados que são invalidados antes de sua expiração. O marcar de validação deve levar em conta as CRLs.

    Compensação: o processo de validação de certificação pode ser complicado e geralmente envolve uma AC. 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 AC externa. A compensação é a complexidade adicional do gerenciamento de dois certificados.

  • Criptografar duas conexões VPN, se necessário. Execute criptografia dupla para adicionar defesa em profundidade ao 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 simples, as configurações de VPN duplas geralmente são mais caras e as conexões geralmente são mais lentas.

  • Implementar processos de registro em log e monitoramento. Acompanhe os recursos de entrada de acesso que armazenam informações sobre clientes, como ip de origem, porta e protocolo. Use essas informações para detectar anomalias.

Dados em uso

Para cargas de trabalho de alta segurança, segmentação, isolamento e menos privilégio são padrões de design recomendados.

No contexto de 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 regulatórios ou de segurança mais rigorosos também podem exigir evidências baseadas em hardware e assinadas criptograficamente de que os dados estão sendo criptografados enquanto estão em uso, isso pode ser obtido por meio do atestado.

O uso de medidas modernas de segurança e privacidade é um requisito comum para cargas de trabalho regulatórias. A computação confidencial é uma dessas tecnologias que dá suporte ao 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 Facilitation do Azure: Computação Confidencial do Azure.

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

Facilitação do Azure

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 Azure Key Vault ou em um HSM gerenciado por Key Vault.

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

Para obter mais informações, consulte Fornecer acesso a Key Vault chaves, certificados e segredos usando RBAC.

O Azure Key Vault Premium e Managed-HSM aprimora ainda mais a oferta, incluindo recursos de computação confidencial e versão de chave segura que dá 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 inativos
  • O Armazenamento do Azure criptografa automaticamente seus dados com criptografias de bloco quando os dados são persistidos em uma conta de armazenamento. Para Armazenamento de Blobs do Azure e 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.

  • O Azure Máquinas Virtuais tem 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 e a criptografia do lado do servidor no host só podem proteger os dados depois que eles são exportados. No entanto, você deve proteger os dados durante o processo de exportação. Você pode usar o Azure Disk Encryption 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.

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

Proteção de dados em trânsito

Com Key Vault, 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 eles estão sendo calculados na CPU física e na memória de um host usando a computação confidencial do Azure.

  • Os Máquinas Virtuais confidenciais oferecem uma máquina virtual inteira em execução dentro de um TEE, a memória e a execução do conteúdo da CPU da máquina virtual são criptografadas 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 (Módulo de Plataforma de Confiança Virtual) dedicado. A criptografia é executada enquanto os componentes do sistema operacional são inicializados com segurança.

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

  • As soluções de Enclave de Aplicativo são aplicativos especialmente criados aproveitando extensões de CPU específicas oferecidas por SKUs de máquina virtual que dão suporte a SGX (Extensões do Intel Software Guard), elas oferecem uma TCB (Base de Computação Confiável) muito granular, mas exigem que os aplicativos sejam especificamente codificados para aproveitar os recursos.

  • A versão de chave segura pode ser combinada 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 Atestado.

Gerenciamento de segredos

Você pode usar Key Vault para armazenar e controlar com segurança o acesso a tokens, senhas, certificados, chaves de API e outros segredos. Use Key Vault como uma solução de gerenciamento de chaves e certificados. O SKU Premium dá suporte a 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