Tipos de provedor criptográfico
O campo da criptografia é grande e crescente. Existem muitos formatos e protocolos de dados padrão diferentes. Geralmente, eles são organizados em grupos ou famílias, cada um com seu próprio conjunto de formatos de dados e maneira de fazer as coisas. Mesmo que duas famílias usem o mesmo algoritmo (por exemplo, a cifra de bloco RC2), elas geralmente usarão diferentes esquemas de preenchimento, diferentes comprimentos de chave e diferentes modos padrão. O CryptoAPI foi projetado para que um tipo de provedor CSP represente uma família específica.
Quando um aplicativo se conecta a um CSP de um tipo específico, cada uma das funções CryptoAPI irá, por padrão, operar de uma maneira prescrita pela família que corresponde a esse tipo de CSP. A escolha do tipo de provedor de um aplicativo especifica os seguintes itens:
Item | Descrição |
---|---|
Algoritmo de troca de chaves | Cada tipo de provedor especifica um e apenas um algoritmo de troca de chaves. Cada CSP de um tipo específico deve implementar esse algoritmo. Os aplicativos especificam o algoritmo de troca de chaves a ser usado selecionando um CSP do tipo de provedor apropriado. |
Algoritmo de assinatura digital | Cada tipo de provedor especifica um e apenas um algoritmo de assinatura digital. Cada CSP de um tipo específico deve implementar esse algoritmo. Os aplicativos especificam o algoritmo de assinatura digital a ser usado selecionando um CSP do tipo de provedor apropriado. |
Principais formatos de BLOB | O tipo de fornecimento determina o formato do BLOB de chave usado para exportar chaves do CSP e importar chaves para um CSP. |
Formato de assinatura digital | O tipo de provedor determina o formato da assinatura digital. Isso garante que uma assinatura produzida por um CSP de um determinado tipo de provedor possa ser verificada por qualquer CSP do mesmo tipo de provedor. |
Esquema de derivação de chave de sessão | O tipo de provedor determina o método usado para derivar uma chave de sessão de um hash. |
Comprimento da chave | Alguns tipos de provedor especificam o comprimento dos pares de chaves pública/privada e as chaves de sessão. |
Modos padrão | O tipo de provedor geralmente especifica modos padrão para várias opções, como o modo de criptografia de bloco ou o método de preenchimento de criptografia de bloco. |
Alguns aplicativos avançados podem se conectar a mais de um CSP por vez, mas a maioria dos aplicativos geralmente usa apenas um único CSP.
Atualmente, há vários tipos de provedores predefinidos. As próximas seções fornecem informações sobre os seguintes tipos de provedores:
- 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
Embora alguns tipos de CSP possam ser parcialmente compatíveis com outros, dois ou mais aplicativos que precisam trocar chaves e mensagens criptografadas devem usar CSPs do mesmo tipo.
Um gravador CSP personalizado pode definir um novo tipo de provedor. No entanto, o gravador CSP é responsável por distribuir o novo tipo de provedor para os autores de todos os aplicativos que devem usá-lo. Para obter informações sobre como escrever CSPs personalizados, consulte Provedores de serviços criptográficos.