Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Objectif
API de chiffrement : CNG (Next Generation) est le remplacement à long terme de CryptoAPI. CNG est conçu pour être extensible à de nombreux niveaux et pour avoir un comportement indépendant du type de chiffrement utilisé.
Public des développeurs
CNG est destiné aux développeurs d’applications qui permettront aux utilisateurs de créer et d’échanger des documents et d’autres données dans un environnement sécurisé, en particulier sur des médias non sécurisés tels que Internet. Les développeurs doivent être familiarisés avec les langages de programmation C et C++ et l’environnement de programmation Windows. Bien qu’il ne soit pas nécessaire, une compréhension du chiffrement ou des sujets liés à la sécurité est conseillée.
Si vous développez un fournisseur d’algorithmes de chiffrement CNG ou un fournisseur de stockage de clés, vous devez télécharger le kit de développement du fournisseur de chiffrement à partir de Microsoft.
Conditions requises pour l’exécution
CNG est pris en charge à compter de Windows Server 2008 et Windows Vista. Pour plus d’informations sur les exigences d’exécution pour un élément de programmation particulier, consultez la section Conditions requises de la page de référence de cet élément.
Dans cette section
Les rubriques suivantes fournissent des informations sur le CNG et la façon de l’utiliser dans vos applications :
| Sujet | Descriptif |
|---|---|
| À propos du CNG | Décrit les fonctionnalités CNG, les primitives de chiffrement et le stockage de clés, la récupération, l’importation et l’exportation. |
| Utilisation du CNG | Explique comment utiliser les fonctionnalités de configuration de chiffrement de CNG et de programmation CNG classique. |
| Référence CNG | Descriptions détaillées des éléments de programmation CNG. Ces pages incluent des descriptions de référence de l’API pour l’utilisation de CNG. |
Quand utiliser CNG
Utilisez CNG quand vous avez besoin d’un contrôle direct sur les opérations de chiffrement dans les applications Windows. Les conseils suivants vous aident à choisir l’API appropriée :
| Scénario | API recommandée |
|---|---|
| Chiffrement/déchiffrement symétrique (AES, ChaCha20-Poly1305) | CNG (BCryptEncrypt / BCryptDecrypt) |
| Hachage (SHA-256, SHA-384, SHA-512) | CNG (BCryptCreateHash) |
| Opérations asymétriques (RSA, ECDSA, ML-DSA) | CNG (BCryptSignHash, BCryptVerifySignature) |
| Protection des données utilisateur au repos (étendue par utilisateur ou par ordinateur) | DPAPI (plus simple, aucune gestion des clés requise) |
| Protection des données accessibles à plusieurs utilisateurs ou machines | DPAPI-NG (NCryptProtectSecret) |
| Connexions TLS/SSL | Schannel (utilise CNG en interne) |
| Code hérité qui utilise déjà CryptoAPI | Poursuivez avec CryptoAPI pour la maintenance, mais planifiez la migration vers CNG pour les nouvelles fonctionnalités |
Avertissement
Pièges de chiffrement courants à éviter :
- N’utilisez pas le mode de chiffrement de bloc BCE : il fuite des modèles en texte clair. Utilisez CBC avec un IV aléatoire ou, de préférence, un mode authentifié comme GCM.
- Ne codez pas en dur les clés de chiffrement dans le code source. Utilisez des fournisseurs de stockage de clés ou DPAPI pour la protection des clés.
- N’utilisez pas MD5 ou SHA-1 à des fins d’intégrité ou de sécurité. Utilisez SHA-256 ou plus fort.
- Validez toujours les codes de retour des fonctions CNG. Une opération de chiffrement ayant échoué qui est ignorée en mode silencieux peut entraîner le stockage des données non chiffrées.