Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Propósito
API de Criptografia: A próxima geração (CNG) é a substituição de longo prazo para a CryptoAPI. O CNG foi projetado para ser extensível em vários níveis e agnóstico em relação à criptografia em seu comportamento.
Público-alvo do desenvolvedor
O CNG destina-se ao uso por desenvolvedores de aplicativos que permitirão que os usuários criem e troquem documentos e outros dados em um ambiente seguro, especialmente por meio de mídia não segura, como a Internet. Os desenvolvedores devem estar familiarizados com as linguagens de programação C e C++ e o ambiente de programação baseado no Windows. Embora não seja necessário, é recomendável entender a criptografia ou os assuntos relacionados à segurança.
Se estiver desenvolvendo um provedor de algoritmo criptográfico CNG ou um provedor de armazenamento de chaves, você deverá baixar o do Kit de Desenvolvimento do Provedor Criptográfico da Microsoft.
Requisitos de tempo de execução
O CNG tem suporte a partir do Windows Server 2008 e do Windows Vista. Para obter informações sobre os requisitos de runtime para um determinado elemento de programação, consulte a seção Requisitos da página de referência desse elemento.
Nesta seção
Os tópicos a seguir fornecem informações sobre cng e como usá-lo em seus aplicativos:
| Tópico | Descrição |
|---|---|
| sobre CNG | Descreve os recursos de CNG, primitivos criptográficos e armazenamento de chaves, recuperação, importação e exportação. |
| Uso de GNV | Explica como usar os recursos de configuração de criptografia de CNG e programação CNG típica. |
| Referência CNG | Descrições detalhadas dos elementos de programação CNG. Essas páginas incluem descrições de referência da API para trabalhar com CNG. |
Quando usar CNG
Use CNG quando precisar de controle direto sobre operações criptográficas em aplicativos Windows. As diretrizes a seguir ajudam você a escolher a API apropriada:
| Scenario | API recomendada |
|---|---|
| Criptografia simétrica/descriptografia (AES, ChaCha20-Poly1305) | CNG (BCryptEncrypt / BCryptDecrypt) |
| Hashing (SHA-256, SHA-384, SHA-512) | CNG (BCryptCreateHash) |
| Operações assimétricas (RSA, ECDSA, ML-DSA) | CNG (BCryptSignHash, BCryptVerifySignature) |
| Proteção de dados do usuário em repouso (escopo por usuário ou por máquina) | DPAPI (mais simples, sem necessidade de gerenciamento de chave) |
| Proteger dados acessíveis a vários usuários ou computadores | DPAPI-NG (NCryptProtectSecret) |
| Conexões TLS/SSL | Schannel (usa CNG internamente) |
| Código herdado que já usa CryptoAPI | Continue com CryptoAPI para manutenção, mas planeje a migração para CNG para novos recursos |
Aviso
Armadilhas criptográficas comuns para evitar:
- Não use o modo de criptografia de bloco do BCE – ele vaza padrões de texto sem formatação. Use o CBC com um IV aleatório ou, preferencialmente, um modo autenticado como GCM.
- Não codificar chaves de criptografia no código-fonte. Use provedores de armazenamento de chaves ou DPAPI para proteção de chave.
- Não use MD5 ou SHA-1 para fins de integridade ou segurança. Use SHA-256 ou mais forte.
- Sempre valide os códigos de retorno das funções CNG. Uma operação criptográfica com falha que é silenciosamente ignorada pode levar a dados armazenados não criptografados.