Poskytovatel kryptoměn

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 16. března 2019; kontroly vyžadují 5 úprav .

Cryptographic Service Provider (CSP) je nezávislý modul, který umožňuje provádět kryptografické operace v operačních systémech Microsoft , který je řízen pomocí funkcí CryptoAPI . Zjednodušeně řečeno jde o prostředníka mezi operačním systémem, který jej může spravovat pomocí standardních funkcí CryptoAPI , a vykonavatelem kryptografických operací (může to být buď program nebo hardwarový komplex).

Architektura kryptoproviderů

Každý poskytovatel kryptoměn musí exportovat sadu povinných funkcí, které tvoří systémové programovací rozhraní CryptoAPI , přičemž každá z těchto funkcí odpovídá některé funkci CryptoAPI . Poskytovatel kryptoměn musí také poskytnout:

Aplikace nefungují přímo s poskytovatelem kryptoměn. Místo toho volají funkce CryptoAPI z knihoven Advapi32.dll a Crypt32.dll. Operační systém filtruje tato volání funkcí a volá příslušné funkce CryptoAPI , které spolupracují přímo s poskytovatelem kryptoměn.

Minimální složení cryptoprovider je jedna DLL. Tato knihovna je obvykle uložena ve složce \WINDOWS\system32\. Povinná je kontrola integrity této DLL.

Kromě standardních funkcí CryptoAPI poskytovatel kryptoměn obvykle podporuje řadu vlastních funkcí. Pokud nejsou implementovány nativní funkce, pak DLL funguje ve skutečnosti jako mezivrstva mezi operačním systémem a vykonavatelem kryptografických operací.

Cryptoprovider Objects

Jedním z hlavních objektů je kontejner klíčů . Kontejner má svůj vlastní název, je vytvořen (nebo požadován, pokud již byl vytvořen) funkcí CryptAcquireContext(...). V kontejneru může být nejvýše jeden pár podpisových klíčů, jeden pár výměnných klíčů a jeden pár symetrických klíčů. Pokud je podporováno několik symetrických šifrovacích algoritmů, může existovat několik symetrických klíčů, jeden klíč pro každý algoritmus.

Páry klíčů a symetrické klíče mohou být umístěny pouze v kontejneru. Mimo kontejner může být pouze veřejný klíč páru.

Soukromé klíče párů klíčů jsou exportovány pouze v zašifrované podobě. Někteří poskytovatelé kryptoměn zásadně neumožňují export soukromých klíčů, a to ani v zašifrované podobě. Při exportu symetrických klíčů musí být také zašifrovány pomocí veřejného klíče příjemce nebo vyjednávacího klíče. Hash objekty jsou vytvořeny pro výpočet hash funkcí. K vytvoření hash objektů není nutné vytvářet kontejner.

Typy poskytovatelů kryptoměn

Typ poskytovatele kryptoměn Zadejte číslo Algoritmy výměny klíčů Algoritmy digitálního podpisu Šifrovací algoritmy Hašovací algoritmy
PROV_RSA_FULL jeden RSA RSA RC2 , RC4 MD5 , SHA
PROV_RSA_SIG 2 Ne RSA Ne MD5 , SHA
PROV_DSS 3 Ne DSS Ne MD5 , SHA
PROV_FORTEZZA čtyři KEA DSS skipjack SHA
PROV_MS_EXCHANGE 5 RSA RSA OBSAZENÍ MD5
PROV_SSL 6 RSA RSA může být jiný může být jiný
PROV_RSA_SCHANNEL 12 RSA RSA RC4 , DES , 3DES MD5 , SHA
PROV_DH_SCHANNEL osmnáct Diffie-Hellman (efemérní) 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

Poskytovatelé kryptoměn Microsoft

Všechny operační systémy Microsoft, počínaje Windows 2000, mají vestavěný Microsoft Base Cryptographic Provider , který má sadu základních kryptografických funkcí. V Microsoft Base Cryptographic Provider jsou šifrovací klíče omezeny na 40 bitů. Vzhledem k tomu, že před lednem 2000 platil ve Spojených státech zákaz exportu šifrovacího softwaru pomocí klíčů delších než 40 bitů, byl v systému Windows 98 a starších verzích systému Windows 2000 podporován pouze tento poskytovatel šifrování. Microsoft Base Cryptographic Provider je v podstatě zkrácená verze Microsoft Enhanced Cryptographic Provider . Po zrušení zákazu exportu ale přestalo mít smysl mít 2 kryptografické poskytovatele, takže programátoři Microsoftu zavedli jiný název – Microsoft Strong Cryptographic Provider , který se nijak neliší od Microsoft Enhanced Cryptographic Provider. Tento poskytovatel kryptoměn je výchozím poskytovatelem kryptoměn typu PROV_RSA_FULL ve Windows 2000, Windows XP, Windows 2003.

Všechny poskytovatele kryptografických služeb společnosti Microsoft lze stáhnout z webu společnosti Microsoft.

Poskytovatel kryptoměn Název poskytovatele kryptoměn Typ Komentář
Poskytovatel Microsoft Base Cryptographic Provider MS_DEF_PROV PROV_RSA_FULL Má širokou škálu základních kryptografických funkcí. Délka šifrovacích klíčů nepřesahuje 40 bitů.
Microsoft Strong Cryptographic Provider MS_STRONG_PROV PROV_RSA_FULL Liší se od Microsoft Base Cryptographic Provider podporou velkých délek klíčů.
Microsoft Enhanced Cryptographic Provider MS_ENHANCED_PROV PROV_RSA_FULL Neliší se od Microsoft Strong Cryptographic Provider. Je to výchozí poskytovatel kryptoměn.
Poskytovatel kryptografie Microsoft AES MS_ENH_RSA_AES_PROV PROV_RSA_AES = Microsoft Enhanced Cryptographic Provider s podporou AES
Poskytovatel kryptografických služeb Microsoft DSS MS_DEF_DSS_PROV PROV_DSS Hašování, podepisování, ověřování podpisu s podporou algoritmu DSS .
Microsoft Base DSS a Diffie-Hellman Cryptographic Provider MS_DEF_DSS_DH_PROV PROV_DSS_DH Hašování, podepisování DSS , generování a výměna klíčů Diffie-Hellman. Podporuje generování klíčů pro protokoly SSL3 a TLS1.
Microsoft Enhanced DSS a Diffie-Hellman Cryptographic Provider MS_ENH_DSS_DH_PROV PROV_DSS_DH Stejné jako Microsoft Base DSS a Diffie-Hellman Cryptographic Provider s podporou velkých délek klíčů.
Microsoft DSS a Diffie-Hellman/Schannel Cryptographic Provider MS_DEF_DH_SCHANNEL_PROV PROV_DH_SCHANNEL Hašování, podepisování DSS, generování a výměna klíčů Diffie-Hellman. Podporuje generování klíčů pro protokoly SSL3 a TLS1.
Poskytovatel kryptografie Microsoft RSA/Schannel MS_DEF_RSA_SCHANNEL_PROV PROV_RSA_SCHANNEL Hašování, podepisování, ověřování podpisů. Používá se pro ověřování v protokolech SSL 3.0 a TLS 1.0.
Poskytovatel kryptografických podpisů Microsoft RSA MS_DEF_RSA_SIG_PROV PROV_RSA_SIG Minimální funkčnost požadovaná pro elektronický podpis a ověřování digitálního podpisu.

Viz také

Odkazy