Windows KSP e PKCS#11 com proxy PKI¶
Este documento explica o uso do Proxy PKI com o NetHSM. O PKI Proxy permite a utilização do NetHSM através das APIs nativas do Microsoft Windows. Para isso, o PKI Proxy inclui um KSP (Key Storage Provider) que permite seu uso através da interface CNG (Cryptography API: Next Generation). Além disso, fornece acesso PKCS#11 ao NetHSM, mas este só deve ser utilizado se a sua configuração o exigir, por exemplo, se necessitar das funcionalidades de autenticação adicionais do PKI Proxy ou se pretender utilizar o PKI Proxy como gateway para evitar expor diretamente o NetHSM aos clientes. Em todos os outros casos, use o driver NetHSM PKCS#11 diretamente.
A implementação do NetHSM com PKI Proxy tem o seguinte aspeto.
O NetHSM fornece a API REST que é utilizada pelo controlador NetHSM PKCS#11. O PKI Proxy utiliza este controlador para se ligar ao NetHSM e aceder às suas chaves e certificados. Os clientes do Proxy PKI utilizam a API REST do servidor Proxy PKI para aceder às chaves e aos certificados. As aplicações no cliente podem utilizar a API nativa do Windows ou um controlador PKCS#11. A comunicação entre o NetHSM e o servidor Proxy PKI e os clientes Proxy PKI é encriptada. O servidor e o cliente PKI Proxy podem ser executados no mesmo computador.
Os possíveis casos de utilização desta configuração são:
Code signing
Document signing
Dica
Consulte também a documentação oficial do Proxy PKI ` <https://cdn.nsoftware.com/help/PK1/app/default.htm>` __ para obter mais informações.
Prerequisits¶
NetHSM (hardware ou contentorizado) - Provisionado - O endereço IP do NetHSM tem de ser conhecido e a porta HTTPS tem de estar acessível.
Máquina Windows - driver Nitrokey NetHSM PKCS#11 instalado e configurado (necessário apenas no servidor proxy PKI).
Importante
Em algumas máquinas, o servidor proxy PKI pode falhar durante o procedimento de descarregamento do módulo NetHSM PKCS#11. Este é um bug em uma dependência do módulo e rastreado em esta questão GitHub. Se encontrar este erro, defina a opção de configuração disable_thread_pool para true no seu ficheiro de configuração do NetHSM PKCS#11. Consulte o arquivo de configuração de exemplo ` <https://github.com/Nitrokey/nethsm-pkcs11/blob/main/p11nethsm.example.conf>` __ para entender melhor como configurá-lo.
Proxy PKI - Servidor¶
O servidor PKI Proxy partilha as chaves e os certificados de um NetHSM para diferentes utilizadores.
Instalação¶
Download the PKI Proxy 2024 installer from the /n software website.
Abra o instalador e siga o assistente de instalação.
Abra o Proxy PKI no menu Iniciar. Se o tiver instalado na localização predefinida, também pode executá-lo com o seguinte comando a partir da caixa de diálogo Run ou do PowerShell.
C:\Program Files\PKI Proxy 2024\PKIProxy.exeNota
O PKI Proxy será minimizado para a bandeja do sistema, mesmo que a janela principal esteja fechada.
Service Configuration¶
As instruções abaixo configuram o proxy PKI.
Open the PKI Proxy main window.
Change to the Settings tab.
Certifique-se de que a caixa de verificação Enable TLS está selecionada e de que é utilizado um certificado adequado.
Change to the Users tab.
Crie um novo utilizador clicando no botão New…. Escolha um tipo de autenticação que seja suportado por todos os clientes.
Na barra de menus da janela principal, clique no botão Start para iniciar o serviço PKI Proxy.
Publish Certificates from the NetHSM¶
De seguida, configuramos os certificados do NetHSM que são disponibilizados através do PKI Proxy.
Certifique-se de que a janela principal do Proxy PKI está aberta.
Change to the Certificates tab.
Clique no botão New…. Será aberta a janela Share Certificate.
Clique no botão Select Certificate or Key…, no quadro Certificate da janela. Isso abrirá a janela Selecionar uma chave privada.
Mudar para o separador Security Key.
Clique no botão Browse… e selecione o ficheiro da biblioteca do controlador NetHSM PKCS#11. O campo de texto PKCS#11 Library mostra agora o caminho para o ficheiro da biblioteca.
No menu pendente Security Key (PKCS#11) selecione a ranhura que contém o certificado. As ranhuras listadas dependem da sua configuração do módulo PKCS#11.
Click the Open button.
A lista de texto abaixo de Certificates mostra agora uma lista dos certificados e chaves genéricas disponíveis no NetHSM. Selecione o certificado ou a chave genérica que pretende partilhar com o PKI Proxy.
Clique no botão OK para confirmar a seleção. Isto levá-lo-á de volta à janela Share Certificate. A janela mostrará agora os detalhes do certificado selecionado.
Clique no botão Adicionar…, no quadro Acesso e permissões da janela. Isto abrirá a janela Selecionar utilizador.
Selecione um utilizador existente no menu pendente ou crie um novo selecionando Criar novo utilizador…. Clique no botão OK para confirmar a seleção. Se optar por criar um novo utilizador, a janela New User será mostrada em seguida.
De volta à janela Share Certificate, certifique-se também de permitir apenas as operações necessárias para o certificado ou chave genérica. Isso pode ser alterado com as caixas de seleção na parte inferior do quadro Acesso e permissões.
Clique no botão OK para publicar o certificado. Isto levá-lo-á de volta à janela principal do PKI Proxy.
A lista de texto abaixo de Certificate Management mostra agora o certificado publicado.
Importante
Certificar-se de que os mecanismos da chave partilhada no NetHSM permitem a utilização pretendida no PKI Proxy.
Proxy PKI - Cliente¶
As ferramentas de cliente PKI Proxy fornecem diferentes formas de aceder às chaves partilhadas e aos certificados de um servidor PKI Proxy.
Dica
O servidor proxy PKI contém as ferramentas do cliente. Por conseguinte, a máquina que executa o servidor também pode ser um cliente para si própria.
Instalação¶
Descarregue o PKI Proxy 2024 - Client Tools a partir do sítio Web do software /n.
Abra o instalador e siga o assistente de instalação.
KSP (Key Storage Provider)¶
O PKI Proxy fornece um KSP para fazer a interface com o servidor PKI Proxy. O KSP permite a utilização de APIs nativas do Windows com aplicações, através da interface CNG (Cryptography API: Next Generation). Consulte a documentação do Proxy PKI ` <https://cdn.nsoftware.com/help/PK1/app/nsoftware.PKIProxy.htm#pg_runningksp>` __ para obter mais informações.
PKCS#11¶
O PKI Proxy fornece um módulo PKCS#11 para fazer a interface com o servidor PKI Proxy. Para mais informações, consulte a documentação PKI Proxy.