Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Doel
Cryptografie-API: Next Generation (CNG) is de langetermijnvervanging voor de CryptoAPI. CNG is zo ontworpen dat het op meerdere niveaus uitbreidbaar is en in zijn werking onafhankelijk van cryptografie.
Doelgroep voor ontwikkelaars
CNG is bedoeld voor gebruik door ontwikkelaars van toepassingen waarmee gebruikers documenten en andere gegevens in een beveiligde omgeving kunnen maken en uitwisselen, met name via onbeveiligde media zoals internet. Ontwikkelaars moeten bekend zijn met de programmeertalen C en C++ en de windows-programmeeromgeving. Hoewel dit niet vereist is, wordt een goed begrip van cryptografie- of beveiligingsgerelateerde onderwerpen aanbevolen.
Als u een cryptografische CNG-algoritmeprovider of sleutelopslagprovider ontwikkelt, moet u de Cryptographic Provider Development Kit van Microsoft downloaden.
Vereisten voor uitvoering
CNG wordt ondersteund vanaf Windows Server 2008 en Windows Vista. Zie de sectie Vereisten van de referentiepagina voor dat element voor informatie over runtimevereisten voor een bepaald programmeerelement.
In deze sectie
De volgende onderwerpen bevatten informatie over CNG en hoe u deze kunt gebruiken in uw toepassingen:
| Onderwerp | Beschrijving |
|---|---|
| Over CNG | Beschrijft CNG-functies, cryptografische primitieven en sleutelopslag, ophalen, importeren en exporteren. |
| CNG gebruiken | Hierin wordt uitgelegd hoe u de cryptografieconfiguratiefuncties van CNG en typische CNG-programmering gebruikt. |
| CNG-referentie | Gedetailleerde beschrijvingen van de CNG-programmeerelementen. Deze pagina's bevatten referentiebeschrijvingen van de API voor het werken met CNG. |
Wanneer gebruikt u CNG?
Gebruik CNG wanneer u directe controle nodig hebt over cryptografische bewerkingen in Windows toepassingen. De volgende richtlijnen helpen u bij het kiezen van de juiste API:
| Scenario | Aanbevolen API |
|---|---|
| Symmetrische versleuteling/ontsleuteling (AES, ChaCha20-Poly1305) | CNG (BCryptEncrypt / BCryptDecrypt) |
| Hashing (SHA-256, SHA-384, SHA-512) | CNG (BCryptCreateHash) |
| Asymmetrische bewerkingen (RSA, ECDSA, ML-DSA) | CNG (BCryptSignHash, BCryptVerifySignature) |
| Opgeslagen gebruikersgegevens beveiligen (op gebruikers- of machineniveau) | DPAPI (eenvoudiger, geen sleutelbeheer vereist) |
| Gegevens beveiligen die toegankelijk zijn voor meerdere gebruikers of computers | DPAPI-NG (NCryptProtectSecret) |
| TLS/SSL-verbindingen | Schannel (maakt intern gebruik van CNG) |
| Verouderde code die al gebruikmaakt van CryptoAPI | Ga verder met CryptoAPI voor onderhoud, maar plan de migratie naar CNG voor nieuwe functies |
Warning
Veelvoorkomende cryptografische valkuilen om te voorkomen:
- Gebruik de ECB-blokversleutelingsmodus niet — die lekt plattekstpatronen. Gebruik CBC met een willekeurige IV of bij voorkeur een geverifieerde modus zoals GCM.
- Versleutelingssleutels in broncode niet hardcoderen. Gebruik sleutelopslagproviders of DPAPI voor sleutelbeveiliging.
- Gebruik MD5 of SHA-1 niet voor integriteits- of beveiligingsdoeleinden. Gebruik SHA-256 of sterker.
- Valideer altijd retourcodes van CNG-functies. Een mislukte cryptografische bewerking die op de achtergrond wordt genegeerd, kan ertoe leiden dat gegevens niet-versleuteld worden opgeslagen.