Cryptographic Service Provider (CSP) är en oberoende modul som låter dig utföra kryptografiska operationer i Microsofts operativsystem , som styrs med CryptoAPI-funktioner . Enkelt uttryckt är det en mellanhand mellan operativsystemet, som kan hantera det med hjälp av de vanliga CryptoAPI-funktionerna , och utföraren av kryptografiska operationer (detta kan vara antingen ett program eller ett hårdvarukomplex).
Varje kryptoleverantör måste exportera en uppsättning obligatoriska funktioner som utgör CryptoAPI- systemets programmeringsgränssnitt , där var och en av dessa funktioner motsvarar någon CryptoAPI-funktion . Dessutom måste kryptoleverantören tillhandahålla:
Applikationer fungerar inte direkt med kryptoleverantören. Istället anropar de CryptoAPI-funktionerna från biblioteken Advapi32.dll och Crypt32.dll. Operativsystemet filtrerar dessa funktionsanrop och anropar lämpliga CryptoAPI-funktioner som fungerar direkt med kryptoleverantören.
Den minsta sammansättningen av en kryptoleverantör är en DLL. Detta bibliotek lagras vanligtvis i mappen \WINDOWS\system32\. Obligatorisk är kontrollen av integriteten för denna DLL.
Utöver de vanliga CryptoAPI-funktionerna stöder en kryptoleverantör vanligtvis ett antal av sina egna funktioner. Om inbyggda funktioner inte implementeras, fungerar DLL:n i själva verket som ett mellanlager mellan operativsystemet och utföraren av kryptografiska operationer.
Ett av huvudobjekten är nyckelbehållaren . Behållaren har sitt eget namn, skapas (eller begärs om den redan har skapats) av CryptAcquireContext(...)-funktionen. Det kan vara högst ett signaturnyckelpar, ett utbytesnyckelpar och ett symmetriskt nyckelpar i en behållare. Om flera symmetriska krypteringsalgoritmer stöds kan det finnas flera symmetriska nycklar, en nyckel för varje algoritm.
Nyckelpar och symmetriska nycklar kan bara finnas i en behållare. Endast den publika nyckeln för paret kan vara utanför behållaren.
De privata nycklarna för nyckelparen exporteras endast i krypterad form. Vissa kryptoleverantörer tillåter i princip inte att privata nycklar exporteras, inte ens i krypterad form. Vid export av symmetriska nycklar måste de också krypteras med mottagarens publika nyckel eller förhandlingsnyckeln. Hash-objekt skapas för att beräkna hashfunktioner. Du behöver inte skapa en behållare för att skapa hashobjekt.
Typ av kryptoleverantör | Typnummer | Algoritmer för nyckelutbyte | Digitala signaturalgoritmer | Krypteringsalgoritmer | Hashing-algoritmer |
---|---|---|---|---|---|
PROV_RSA_FULL | ett | RSA | RSA | RC2 , RC4 | MD5 , SHA |
PROV_RSA_SIG | 2 | Nej | RSA | Nej | MD5 , SHA |
PROV_DSS | 3 | Nej | DSS | Nej | MD5 , SHA |
PROV_FORTEZZA | fyra | KEA | DSS | skipjack | SHA |
PROV_MS_EXCHANGE | 5 | RSA | RSA | KASTA | MD5 |
PROV_SSL | 6 | RSA | RSA | kan vara annorlunda | kan vara annorlunda |
PROV_RSA_SCHANNEL | 12 | RSA | RSA | RC4 , DES , 3DES | MD5 , SHA |
PROV_DH_SCHANNEL | arton | Diffie-Hellman (efemär) | 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 bitar | GOST R 34.10-2012 256 bitar | GOST 28147-89 , GOST 34.12-2018 | GOST R 34.11-2012 256 bitar |
PROV_GOST_2012_512 | 81 | GOST R 34.10-2012 512 bitar | GOST R 34.10-2012 512 bitar | GOST 28147-89 , GOST 34.12-2018 | GOST R 34.11-2012 512 bitar |
Alla Microsofts operativsystem, från och med Windows 2000, har en inbyggd Microsoft Base Cryptographic Provider , som har en uppsättning grundläggande kryptografiska funktioner. I Microsoft Base Cryptographic Provider är krypteringsnycklar begränsade till 40 bitar. Eftersom det före januari 2000 fanns ett förbud mot export av krypteringsprogram med nycklar längre än 40 bitar i USA, stöddes endast denna kryptografiska leverantör i Windows 98 och tidigare versioner av Windows 2000. Microsoft Base Cryptographic Provider är i huvudsak en avskalad version av Microsoft Enhanced Cryptographic Provider . Men efter att exportförbudet hävdes blev det meningslöst att ha 2 kryptografiska leverantörer, så Microsofts programmerare introducerade ett annat namn - Microsoft Strong Cryptographic Provider , som inte skiljer sig från Microsoft Enhanced Cryptographic Provider. Denna kryptoleverantör är standardkryptoleverantören av typen PROV_RSA_FULL på Windows 2000, Windows XP, Windows 2003.
Alla Microsofts kryptografiska leverantörer kan laddas ner från Microsofts webbplats.
Kryptoleverantör | Namn på kryptoleverantör | Sorts | Kommentar |
---|---|---|---|
Microsoft Base Cryptographic Provider | MS_DEF_PROV | PROV_RSA_FULL | Den har ett brett utbud av grundläggande kryptografiska funktioner. Längden på krypteringsnycklar överstiger inte 40 bitar. |
Microsoft Stark kryptografisk leverantör | MS_STRONG_PROV | PROV_RSA_FULL | Skiljer sig från Microsoft Base Cryptographic Provider i stöd för stora nyckellängder. |
Microsoft Enhanced Cryptographic Provider | MS_ENHANCED_PROV | PROV_RSA_FULL | Inte annorlunda än Microsoft Strong Cryptographic Provider. Det är standardkrypteringsleverantören. |
Microsoft AES kryptografisk leverantör | MS_ENH_RSA_AES_PROV | PROV_RSA_AES | = Microsoft Enhanced Cryptographic Provider med AES-stöd |
Microsoft DSS kryptografisk leverantör | MS_DEF_DSS_PROV | PROV_DSS | Hashing, signering, signaturverifiering med stöd för DSS- algoritmer . |
Microsoft Base DSS och Diffie-Hellman Cryptographic Provider | MS_DEF_DSS_DH_PROV | PROV_DSS_DH | Hashing, DSS -signering , Diffie-Hellman-nyckelgenerering och utbyte. Stöder nyckelgenerering för SSL3- och TLS1-protokoll. |
Microsoft Enhanced DSS och Diffie-Hellman Cryptographic Provider | MS_ENH_DSS_DH_PROV | PROV_DSS_DH | Samma som Microsoft Base DSS och Diffie-Hellman Cryptographic Provider med stöd för stora nyckellängder. |
Microsoft DSS och Diffie-Hellman/Schannel Cryptographic Provider | MS_DEF_DH_SCHANNEL_PROV | PROV_DH_SCHANNEL | Hashing, DSS-signering, Diffie-Hellman nyckelgenerering och utbyte. Stöder nyckelgenerering för SSL3- och TLS1-protokoll. |
Microsoft RSA/Schannel Cryptographic Provider | MS_DEF_RSA_SCHANNEL_PROV | PROV_RSA_SCHANNEL | Hashing, signering, signaturverifiering. Används för autentisering i SSL 3.0- och TLS 1.0-protokoll. |
Microsoft RSA Signature Cryptographic Provider | MS_DEF_RSA_SIG_PROV | PROV_RSA_SIG | Den minsta funktionalitet som krävs för verifiering av elektronisk signatur och digital signatur. |