Titkosítási API: Következő generáció

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.

Titkosítási Szolgáltatói Fejlesztőkészlet

CryptoAPI