Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Cél
Titkosítási API: A következő generációs (CNG) a CryptoAPI hosszú távú helyettesítője. A CNG-t úgy tervezték, hogy több szinten bővíthető legyen, és működésében a titkosítási módszertől független maradjon.
Fejlesztői közönség
A CNG-t olyan alkalmazások fejlesztői használhatják, amelyek lehetővé teszik a felhasználók számára dokumentumok és egyéb adatok biztonságos környezetben történő létrehozását és cseréjét, különösen nem biztonságos adathordozókon, például az interneten keresztül. A fejlesztőknek ismernie kell a C és C++ programozási nyelveket, valamint a Windows-alapú programozási környezetet. Bár nem kötelező, a titkosítással vagy a biztonsággal kapcsolatos témák ismerete javasolt.
Ha CNG titkosítási algoritmusszolgáltatót vagy kulcstároló-szolgáltatót fejleszt, le kell töltenie a titkosítási szolgáltató fejlesztői készletét a Microsofttól.
Futásidejű követelmények
A CNG a Windows Server 2008-tól és a Windows Vista-tól kezdve támogatott. Az adott programozási elem futtatókörnyezeti követelményeivel kapcsolatos információkért tekintse meg az elem referenciaoldalának Követelmények szakaszát.
Ebben a szakaszban
Az alábbi témakörök a CNG-ről és az alkalmazásokban való használatának módjáról nyújtanak tájékoztatást:
| Téma | Leírás |
|---|---|
| A CNG-ről | A CNG-funkciókat, a titkosítási primitíveket és a kulcstárolást, a lekérést, az importálást és az exportálást ismerteti. |
| CNG- használata | A CNG titkosítási konfigurációs funkcióinak és a tipikus CNG-programozásnak a használatát ismerteti. |
| CNG-referencia | A CNG programozási elemek részletes leírása. Ezek az oldalak az API CNG-vel való használatához szükséges referencialeírásait tartalmazzák. |
Mikor érdemes használni a CNG-t?
A CNG-t akkor használja, ha közvetlen vezérlésre van szüksége a titkosítási műveletek felett Windows alkalmazásokban. Az alábbi útmutató segít kiválasztani a megfelelő API-t:
| Scenario | Ajánlott API |
|---|---|
| Szimmetrikus titkosítás/visszafejtés (AES, ChaCha20-Poly1305) | CNG (BCryptEncrypt / BCryptDecrypt) |
| Kivonatolás (SHA-256, SHA-384, SHA-512) | CNG (BCryptCreateHash) |
| Aszimmetrikus műveletek (RSA, ECDSA, ML-DSA) | CNG (BCryptSignHash, BCryptVerifySignature) |
| Felhasználói adatok védelme inaktív állapotban (felhasználónként vagy gépenként) | DPAPI (egyszerűbb, nincs szükség kulcskezelésre) |
| Több felhasználó vagy gép számára elérhető adatok védelme | DPAPI-NG (NCryptProtectSecret) |
| TLS/SSL-kapcsolatok | Schannel (belsőleg használja a CNG-t) |
| Régi kód, amely már használja a CryptoAPI-t | Folytassa a CryptoAPI-val a karbantartást, de tervezze meg a CNG-be való migrálást az új funkciókhoz |
Warning
Gyakori kriptográfiai buktatók az alábbiak elkerülése érdekében:
- Ne használjon EKB-blokk titkosítási módot – egyszerű szöveges mintákat szivárogtat ki. Használjon CBC-t véletlenszerű IV-sel, vagy lehetőleg hitelesített módot, például GCM-et.
- Ne kódolja a titkosítási kulcsokat a forráskódban. Kulcsvédelemhez használja a kulcstároló-szolgáltatókat vagy a DPAPI-t.
- Ne használja az MD5-öt vagy az SHA-1-et integritási vagy biztonsági célokra. Használja az SHA-256-ot vagy erősebbet.
- Mindig ellenőrizze a visszatérési kódokat a CNG-függvényekből. A csendesen figyelmen kívül hagyott sikertelen titkosítási művelet az adatok titkosítás nélküli tárolásához vezethet.