Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Finalidade
API de criptografia: Next Generation (CNG) é o substituto de longo prazo para a CryptoAPI. O CNG foi concebido para ser extensível a muitos níveis e para ter um comportamento independente da criptografia.
Público de desenvolvedores
CNG destina-se ao uso por desenvolvedores de aplicativos que permitirão aos usuários criar e trocar documentos e outros dados em um ambiente seguro, especialmente em mídias não seguras, como a Internet. Os desenvolvedores devem estar familiarizados com as linguagens de programação C e C++ e com o ambiente de programação baseado no Windows. Embora não seja necessário, aconselha-se uma compreensão de criptografia ou assuntos relacionados à segurança.
Se você estiver desenvolvendo um provedor de algoritmo criptográfico CNG ou provedor de armazenamento de chaves, deverá baixar o Cryptographic Provider Development Kit da Microsoft.
Requisitos de tempo de execução
O CNG é suportado a partir do Windows Server 2008 e do Windows Vista. Para obter informações sobre os requisitos de tempo de execução para um elemento de programação específico, consulte a seção Requisitos da página de referência desse elemento.
Nesta secção
Os tópicos a seguir fornecem informações sobre o GNV e como usá-lo em seus aplicativos:
| Tópico | Descrição |
|---|---|
| Sobre o GNV | Descreve recursos CNG, primitivos criptográficos e armazenamento, recuperação, importação e exportação de chaves. |
| Utilizar GNC | Explica como usar os recursos de configuração de criptografia do CNG e programação típica do CNG. |
| Referência CNG | Descrições detalhadas dos elementos de programação CNG. Estas páginas incluem descrições de referência da API para trabalhar com CNG. |
Quando usar GNC
Use GNC quando precisar de controlo direto sobre operações criptográficas em aplicações Windows. A orientação seguinte ajuda-o a escolher a API apropriada:
| Scenario | API recomendada |
|---|---|
| Encriptação/desencriptação simétrica (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 dos dados do utilizador em repouso (por utilizador ou por máquina) | DPAPI (mais simples, sem necessidade de gestão de chaves) |
| Proteger dados acessíveis a múltiplos utilizadores ou máquinas | DPAPI-NG (NCryptProtectSecret) |
| Ligações TLS/SSL | Schannel (usa GNC internamente) |
| Código legado que já utiliza a CryptoAPI | Continue com a CryptoAPI para manutenção, mas planeie migrar para GNC para novas funcionalidades |
Warning
Armadilhas criptográficas comuns a evitar:
- Não utilize o modo de cifra por blocos do ECB — pode libertar padrões de texto simples. Use CBC com um IV aleatório, ou preferencialmente um modo autenticado como GCM.
- Não codifique as chaves de encriptação no código-fonte. Use fornecedores de armazenamento chave ou DPAPI para proteção de chaves.
- Não utilize MD5 ou SHA-1 por razões de integridade ou segurança. Use SHA-256 ou mais forte.
- Valide sempre os códigos de retorno das funções CNG. Uma operação criptográfica falhada e silenciosamente ignorada pode levar ao armazenamento de dados sem encriptação.