Partilhar via


Criptografia

O artigo apresenta uma visão geral das funcionalidades de criptografia disponíveis para as aplicações WinUI. Para informações detalhadas sobre tarefas específicas, consulte a tabela no final deste artigo.

Terminologia

A terminologia seguinte é comumente usada em criptografia e infraestrutura de chave pública (PKI).

Vigência Descrição
Encriptação O processo de transformação de dados utilizando um algoritmo criptográfico e uma chave. Os dados transformados só podem ser recuperados usando o mesmo algoritmo e a mesma chave (simétrica) ou relacionada (pública).
Desencriptação O processo de devolver dados encriptados à sua forma original.
Texto simples Originalmente referia-se a uma mensagem de texto não encriptada. Atualmente refere-se a quaisquer dados não encriptados.
Texto cifrado Originalmente referia-se a uma mensagem de texto encriptada e, portanto, ilegível. Atualmente refere-se a quaisquer dados encriptados.
Hasheamento O processo de converter dados de comprimento variável num valor de comprimento fixo, tipicamente menor. Ao comparar hashes, pode obter uma garantia razoável de que dois ou mais dados são iguais.
Signature Hash encriptado de dados digitais normalmente usado para autenticar o remetente dos dados ou verificar que os dados não foram adulterados durante a transmissão.
Algorithm Um procedimento passo a passo para encriptar dados.
Chave Um número aleatório ou pseudoaleatório usado como entrada para um algoritmo criptográfico para encriptar e desencriptar dados.
Criptografia de Chave Simétrica Criptografia em que a encriptação e a desencriptação usam a mesma chave. Isto também é conhecido como criptografia de chave secreta.
Criptografia de Chave Assimétrica Criptografia em que a encriptação e a desencriptação utilizam uma chave diferente, mas matematicamente relacionada. Isto também é chamado de criptografia de chave pública.
Codificação O processo de codificação de mensagens digitais, incluindo certificados, para transporte através de uma rede.
Fornecedor de algoritmos Uma DLL que implementa um algoritmo criptográfico.
Fornecedor de Armazenamento Chave Um recipiente para armazenar material-chave. Atualmente, as chaves podem ser armazenadas em software, cartões inteligentes ou no módulo de plataforma confiável (TPM).
Certificado X.509 Um documento digital, normalmente emitido por uma autoridade certificadora, para verificar a identidade de um indivíduo, sistema ou entidade a outras partes interessadas.

 

Namespaces

Os seguintes namespaces estão disponíveis para utilização em aplicações.

Windows.Security.Cryptography

Contém a classe CryptographicBuffer e métodos estáticos que lhe permitem:

  • Converter dados para e a partir de cadeias
  • Converter dados para e a partir de arrays de bytes
  • Codificar mensagens para transporte em rede
  • Descodificação de mensagens após o transporte

Windows.Security.Cryptography.Certificates

Contém classes, interfaces e tipos de enumeração que lhe permitem:

  • Criar um pedido de certificado
  • Instalar uma resposta de certificado
  • Importar um certificado num ficheiro PFX
  • Especificar e recuperar propriedades da solicitação de certificado

Windows.Security.Cryptography.Core

Contém classes e tipos de enumeração que lhe permitem:

  • Encriptar e desencriptar dados
  • Dados de hash
  • Assinar dados e verificar assinaturas
  • Criar, importar e exportar chaves
  • Trabalho com fornecedores de algoritmos de chave assimétricas
  • Trabalho com fornecedores de algoritmos de chave simétrica
  • Trabalhar com fornecedores de algoritmos de hash
  • Trabalho com fornecedores de algoritmos de código de autenticação de máquina (MAC)
  • Trabalho com fornecedores de algoritmos de derivação chave

Windows.Security.Cryptography.DataProtection

Contém classes que lhe permitem:

  • Encriptação e desencriptação assíncrona de dados estáticos
  • Encriptação e desencriptação assíncrona de fluxos de dados

Capacidades de aplicações de criptografia e PKI

A interface simplificada de programação de aplicações disponível para aplicações permite as seguintes capacidades criptográficas e de infraestrutura de chave pública (PKI).

Suporte à criptografia

Pode realizar as seguintes tarefas criptográficas. Para mais informações, consulte o espaço de nomes Windows.Security.Cryptography.Core .

  • Criar chaves simétricas
  • Realizar encriptação simétrica
  • Criar chaves assimétricas
  • Realizar encriptação assimétrica
  • Derivar chaves baseadas em palavra-passe
  • Criar códigos de autenticação de mensagens (MACs)
  • Conteúdo de hash
  • Assinar conteúdo digitalmente

O SDK também fornece uma interface simplificada para proteção de dados baseada em palavra-passe. Pode usar isto para realizar as seguintes tarefas. Para mais informações, veja o namespace Windows.Security.Cryptography.DataProtection.

  • Proteção assíncrona de dados estáticos
  • Proteção assíncrona de um fluxo de dados

Suporte de codificação

Uma aplicação pode codificar dados criptográficos para transmissão através de uma rede e decodificar dados recebidos de uma fonte de rede. Para mais informações, consulte os métodos estáticos disponíveis no espaço de nomes Windows.Security.Cryptography .

Suporte à PKI

As aplicações podem realizar as seguintes tarefas de PKI. Para mais informações, consulte o namespace Windows.Security.Cryptography.Certificates.

  • Criar um certificado
  • Criar um certificado autoassinado
  • Instalar uma resposta de certificado
  • Importar um certificado em formato PFX
  • Use certificados e chaves de cartão inteligente (capacidades sharedUserCertificates definidas)
  • Usar certificados do repositório MY do utilizador (permissões sharedUserCertificates definidas)

Além disso, pode usar o manifesto para realizar as seguintes ações:

  • Especificar certificados raiz de confiança para cada aplicação
  • Especificar certificados de confiança por par de aplicação
  • Desativar explicitamente a herança da confiança do sistema
  • Especifique os critérios de seleção do certificado
    • Apenas certificados de hardware
    • Certificados que passam por um conjunto específico de emissores
    • Selecionar automaticamente um certificado na loja de aplicações

Artigos detalhados

Os artigos seguintes fornecem mais detalhes sobre cenários de segurança:

Tópico Descrição
Certificates Este artigo discute a utilização de certificados em aplicações WinUI. Os certificados digitais são usados na criptografia de chave pública para vincular uma chave pública a uma pessoa, computador ou organização. As identidades vinculadas são mais frequentemente usadas para autenticar uma entidade perante outra. Por exemplo, os certificados são frequentemente usados para autenticar um servidor web a um utilizador e um utilizador a um servidor web. Pode criar pedidos de certificados e instalar ou importar certificados emitidos. Também pode inscrever um certificado numa hierarquia de certificados.
Chaves criptográficas Este artigo mostra como usar funções padrão de derivação de chaves para obter chaves e como encriptar conteúdos usando chaves simétricas e assimétricas.
Proteção de dados Este artigo explica como usar a classe DataProtectionProvider no espaço de nomes Windows.Security.Cryptography.DataProtection para encriptar e desencriptar dados digitais numa aplicação WinUI.
MACs, hashes e assinaturas Este artigo discute como códigos de autenticação de mensagens (MACs), hashes e assinaturas podem ser usados em aplicações WinUI para detetar adulteração de mensagens.
Restrições de exportação na criptografia Use esta informação para determinar se a sua aplicação utiliza criptografia de forma a impedir que seja listada na Microsoft Store.
Tarefas comuns de criptografia Estes artigos fornecem código de exemplo para tarefas comuns de criptografia do WinUI, como criar números aleatórios, comparar buffers, converter entre strings e dados binários, copiar para e a partir de arrays de bytes, e codificação e descodificação de dados.