A Cryptographic Service Provider (CSP) egy független modul, amely lehetővé teszi kriptográfiai műveletek végrehajtását a CryptoAPI-funkciókkal vezérelt Microsoft operációs rendszerekben . Egyszerűen fogalmazva, közvetítő az operációs rendszer, amely a szabványos CryptoAPI függvényekkel képes kezelni , és a kriptográfiai műveletek végrehajtója között (ez lehet program vagy hardverkomplexum).
Minden kriptográfiai szolgáltatónak exportálnia kell a CryptoAPI rendszer programozási felületét alkotó kötelező függvények készletét , amelyek mindegyike megfelel valamilyen CryptoAPI függvénynek . Ezenkívül a kriptográfiai szolgáltatónak biztosítania kell:
Az alkalmazások nem működnek közvetlenül a kriptográfiai szolgáltatóval. Ehelyett az Advapi32.dll és Crypt32.dll könyvtárak CryptoAPI függvényeit hívják meg. Az operációs rendszer kiszűri ezeket a függvényhívásokat, és meghívja a megfelelő CryptoAPI függvényeket , amelyek közvetlenül a kriptográfiai szolgáltatóval működnek együtt.
Egy kriptoszolgáltató minimális összetétele egy DLL. Ez a könyvtár általában a \WINDOWS\system32\ mappában található. Kötelező ennek a DLL-nek az integritásának ellenőrzése.
A szabványos CryptoAPI-funkciók mellett a kriptográfiai szolgáltatók általában számos saját funkciót is támogatnak. Ha a natív funkciók nincsenek implementálva, akkor a DLL valójában köztes rétegként működik az operációs rendszer és a kriptográfiai műveletek végrehajtója között.
Az egyik fő objektum a kulcstároló . A tárolónak saját neve van, a CryptAcquireContext(...) függvény hozza létre (vagy kéri, ha már létrejött). Egy tárolóban legfeljebb egy aláírási kulcspár, egy cserekulcspár és egy szimmetrikus kulcspár lehet. Ha több szimmetrikus titkosítási algoritmus támogatott, akkor több szimmetrikus kulcs is lehet, mindegyik algoritmushoz egy kulcs.
Kulcspárok és szimmetrikus kulcsok csak egy tárolóban lehetnek. Csak a pár nyilvános kulcsa lehet a tárolón kívül.
A kulcspárok privát kulcsai csak titkosított formában kerülnek exportálásra. Egyes titkosítási szolgáltatók alapvetően nem teszik lehetővé a privát kulcsok exportálását, még titkosított formában sem. A szimmetrikus kulcsok exportálásakor azokat is titkosítani kell a címzett nyilvános kulcsával vagy tárgyalási kulcsával. A hash objektumok a hash függvények kiszámításához jönnek létre. Hash objektumok létrehozásához nem kell tárolót létrehoznia.
Kriptoszolgáltató típusa | Írja be a számot | Kulcscsere algoritmusok | Digitális aláírási algoritmusok | Titkosítási algoritmusok | Hashing algoritmusok |
---|---|---|---|---|---|
PROV_RSA_FULL | egy | RSA | RSA | RC2 , RC4 | MD5 , SHA |
PROV_RSA_SIG | 2 | Nem | RSA | Nem | MD5 , SHA |
PROV_DSS | 3 | Nem | DSS | Nem | MD5 , SHA |
PROV_FORTEZZA | négy | KEA | DSS | skipjack | SHA |
PROV_MS_EXCHANGE | 5 | RSA | RSA | ÖNTVÉNY | MD5 |
PROV_SSL | 6 | RSA | RSA | eltérő lehet | eltérő lehet |
PROV_RSA_SCHANNEL | 12 | RSA | RSA | RC4 , DES , 3DES | MD5 , SHA |
PROV_DH_SCHANNEL | tizennyolc | Diffie-Hellman (tüntető) | DSS | DES , 3DES | MD5 , SHA |
PROV_RSA_AES | 24 | RSA | RSA | RC2 , RC4 , AES | MD5 , SHA |
PROV_GOST_94_DH | 71 | GOST R 34.10-94 | GOST R 34.10-94 | GOST 28147-89 | GOST R 34.11-94 |
PROV_GOST_2001_DH | 75 | GOST R 34.10-2001 | GOST R 34.10-2001 | GOST 28147-89 | GOST R 34.11-94 |
PROV_GOST_2012_256 | 80 | GOST R 34.10-2012 256 bit | GOST R 34.10-2012 256 bit | GOST 28147-89 , GOST 34.12-2018 | GOST R 34.11-2012 256 bit |
PROV_GOST_2012_512 | 81 | GOST R 34.10-2012 512 bit | GOST R 34.10-2012 512 bit | GOST 28147-89 , GOST 34.12-2018 | GOST R 34.11-2012 512 bit |
A Windows 2000-től kezdve minden Microsoft operációs rendszer rendelkezik beépített Microsoft Base Cryptographic Provider -rel , amely alapvető kriptográfiai funkciókkal rendelkezik. A Microsoft Base Cryptographic Providerben a titkosítási kulcsok 40 bitre korlátozódnak. Mivel 2000 januárja előtt az Egyesült Államokban betiltották a 40 bitnél hosszabb kulcsokat használó titkosító szoftverek exportját, a Windows 98 és a Windows 2000 korábbi verziói csak ezt a kriptográfiai szolgáltatót támogatták. A Microsoft Base Cryptographic Provider lényegében a Microsoft Enhanced Cryptographic Provider lecsupaszított változata . Ám az exporttilalom feloldása után értelmetlenné vált a 2 kriptográfiai szolgáltató, így a Microsoft programozói egy másik nevet vezettek be - Microsoft Strong Cryptographic Provider , ami nem különbözik a Microsoft Enhanced Cryptographic Providertől. Ez a titkosítási szolgáltató az alapértelmezett PROV_RSA_FULL típusú titkosítási szolgáltató Windows 2000, Windows XP és Windows 2003 rendszeren.
A Microsoft összes kriptográfiai szolgáltatója letölthető a Microsoft webhelyéről.
Kriptoszolgáltató | A kriptográfiai szolgáltató neve | Típusú | Megjegyzés |
---|---|---|---|
Microsoft Base Cryptographic Provider | MS_DEF_PROV | PROV_RSA_FULL | Alapvető kriptográfiai funkciók széles skálájával rendelkezik. A titkosítási kulcsok hossza nem haladja meg a 40 bitet. |
Microsoft erős kriptográfiai szolgáltató | MS_STRONG_PROV | PROV_RSA_FULL | A nagy kulcshosszúság támogatásában különbözik a Microsoft Base Cryptographic Providertől. |
Microsoft továbbfejlesztett kriptográfiai szolgáltató | MS_ENHANCED_PROV | PROV_RSA_FULL | Nem különbözik a Microsoft Strong Cryptographic Providertől. Ez az alapértelmezett kriptográfiai szolgáltató. |
Microsoft AES kriptográfiai szolgáltató | MS_ENH_RSA_AES_PROV | PROV_RSA_AES | = Microsoft Enhanced Cryptographic Provider AES támogatással |
Microsoft DSS Cryptographic Provider | MS_DEF_DSS_PROV | PROV_DSS | Kivonatolás, aláírás, aláírás ellenőrzés DSS -algoritmus támogatással . |
Microsoft Base DSS és Diffie-Hellman Cryptographic Provider | MS_DEF_DSS_DH_PROV | PROV_DSS_DH | Kivonatolás, DSS -aláírás , Diffie-Hellman kulcsgenerálás és -csere. Támogatja a kulcsgenerálást az SSL3 és TLS1 protokollokhoz. |
Microsoft továbbfejlesztett DSS és Diffie-Hellman kriptográfiai szolgáltató | MS_ENH_DSS_DH_PROV | PROV_DSS_DH | Ugyanaz, mint a Microsoft Base DSS és a Diffie-Hellman Cryptographic Provider, nagy kulcshosszúságú kulcsok támogatásával. |
Microsoft DSS és Diffie-Hellman/Schannel Cryptographic Provider | MS_DEF_DH_SCHANNEL_PROV | PROV_DH_SCHANNEL | Kivonatolás, DSS aláírás, Diffie-Hellman kulcs generálás és csere. Támogatja a kulcsgenerálást az SSL3 és TLS1 protokollokhoz. |
Microsoft RSA/Schannel kriptográfiai szolgáltató | MS_DEF_RSA_SCHANNEL_PROV | PROV_RSA_SCHANNEL | Kivonatolás, aláírás, aláírás ellenőrzés. Az SSL 3.0 és TLS 1.0 protokollokban történő hitelesítéshez használatos. |
Microsoft RSA Signature Cryptographic Provider | MS_DEF_RSA_SIG_PROV | PROV_RSA_SIG | Az elektronikus aláíráshoz és a digitális aláírás ellenőrzéséhez szükséges minimális funkcionalitás. |