Typy dostawców kryptograficznych
Pole kryptografii jest duże i rośnie. Istnieje wiele różnych standardowych formatów danych i protokołów. Są one zazwyczaj zorganizowane w grupy lub rodziny, z których każdy ma własny zestaw formatów danych i sposób wykonywania rzeczy. Nawet jeśli dwie rodziny używają tego samego algorytmu (na przykład RC2szyfru blokowego), często będą używać różnych schematów dopełniania, różnych długości kluczy i różnych trybów domyślnych. Interfejs CryptoAPI został zaprojektowany tak, aby typ dostawcy CSP reprezentuje określoną rodzinę.
Gdy aplikacja łączy się z dostawcą CSP określonego typu, każda z funkcji CryptoAPI domyślnie będzie działać w sposób określony przez rodzinę, która odpowiada temu typowi CSP. Wybór typu dostawcy aplikacji określa następujące elementy:
Przedmiot | Opis |
---|---|
algorytm wymiany kluczy | Każdy typ dostawcy określa jeden i tylko jeden algorytm wymiany kluczy. Każdy dostawca CSP określonego typu musi zaimplementować ten algorytm. Aplikacje określają algorytm wymiany kluczy do użycia, wybierając dostawcę CSP odpowiedniego typu dostawcy. |
algorytm podpisu cyfrowego | Każdy typ dostawcy określa jeden i tylko jeden algorytm podpisu cyfrowego. Każdy dostawca CSP określonego typu musi zaimplementować ten algorytm. Aplikacje określają algorytm podpisu cyfrowego do użycia, wybierając dostawcę CSP odpowiedniego typu dostawcy. |
Kluczowe formaty obiektów blob | Typ dostawcy określa format key BLOB używany do eksportowania kluczy z CSP i importowania kluczy do dostawcy CSP. |
Format podpisu cyfrowego | Typ dostawcy określa format podpisu cyfrowego. Gwarantuje to, że sygnatura utworzona przez dostawcę CSP danego typu dostawcy może zostać zweryfikowana przez dowolnego dostawcę CSP tego samego typu. |
Schemat wyprowadzania klucza sesji | Typ dostawcy określa metodę używaną do uzyskiwania klucza sesji z skrótu. |
długości klucza | Niektóre typy dostawców określają długość par kluczy publicznych/prywatnych i kluczy sesji. |
Tryby domyślne | Typ dostawcy często określa tryby domyślne dla różnych opcji, takich jak szyfrowanie bloku tryb szyfrowania lub szyfrowanie bloku dopełnianie metody. |
Niektóre zaawansowane aplikacje mogą łączyć się z więcej niż jednym dostawcą CSP jednocześnie, ale większość aplikacji zazwyczaj używa tylko jednego dostawcy CSP.
Obecnie istnieje wiele wstępnie zdefiniowanych typów dostawców. W następnych sekcjach przedstawiono informacje o następujących typach dostawców:
- PROV_RSA_FULL
- PROV_RSA_AES
- PROV_RSA_SIG
- PROV_RSA_SCHANNEL
- PROV_DSS
- PROV_DSS_DH
- PROV_DH_SCHANNEL
- PROV_FORTEZZA
- PROV_MS_EXCHANGE
- PROV_SSL
Mimo że niektóre typy CSP mogą być częściowo zgodne z innymi, co najmniej dwie aplikacje, które muszą klucze wymiany i zaszyfrowane komunikaty powinny używać dostawców CSP tego samego typu.
Niestandardowy składnik zapisywania CSP może definiować nowy typ dostawcy. Jednak składnik zapisywania CSP jest następnie odpowiedzialny za dystrybucję nowego typu dostawcy do autorów wszystkich aplikacji, które mają go używać. Aby uzyskać informacje na temat pisania niestandardowych dostawców CSP, zobacz kryptograficznych dostawców usług.