PKCS#11 (Cryptoki) é um padrão desenvolvido pelos Laboratórios RSA para interoperar programas com tokens criptográficos, cartões inteligentes e outros dispositivos semelhantes usando uma interface de programação unificada que é implementada por meio de bibliotecas.
O padrão PKCS#11 para criptografia russa é apoiado pelo comitê de padronização técnica “Proteção de informações criptográficas” (
Se falarmos sobre tokens que suportam a criptografia russa, então podemos falar sobre tokens de software, tokens de software-hardware e tokens de hardware.
Os tokens criptográficos fornecem tanto o armazenamento de certificados e pares de chaves (chaves públicas e privadas) quanto o desempenho de operações criptográficas de acordo com o padrão PKCS#11. O elo mais fraco aqui é o armazenamento da chave privada. Se a chave pública for perdida, você sempre poderá recuperá-la usando a chave privada ou retirando-a do certificado. A perda/destruição de uma chave privada tem consequências terríveis, por exemplo, você não conseguirá descriptografar arquivos criptografados com sua chave pública e não conseguirá colocar uma assinatura eletrônica (ES). Para gerar uma assinatura eletrônica, você precisará gerar um novo par de chaves e, por algum dinheiro, obter um novo certificado de uma das autoridades certificadoras.
Acima mencionamos tokens de software, firmware e hardware. Mas podemos considerar outro tipo de token criptográfico – nuvem.
Hoje você não vai surpreender ninguém
O principal aqui é a segurança dos dados armazenados no token da nuvem, principalmente as chaves privadas. Um token de nuvem pode fornecer isso? Nós dizemos - SIM!
Então, como funciona um token de nuvem? O primeiro passo é cadastrar o cliente na nuvem de tokens. Para isso, deve ser fornecido um utilitário que permita acessar a nuvem e cadastrar seu login/apelido nela:
Após o registo na nuvem, o utilizador deve inicializar o seu token, nomeadamente definir o rótulo do token e, o mais importante, definir o SO-PIN e os códigos PIN do utilizador. Essas transações devem ser conduzidas apenas por um canal seguro/criptografado. O utilitário pk11conf é usado para inicializar o token. Para criptografar o canal, propõe-se o uso de um algoritmo de criptografia Magma-CTR (GOST R 34.13-2015).
Para desenvolver uma chave acordada com base na qual o tráfego entre o cliente e o servidor será protegido/criptografado, propõe-se usar o protocolo TK 26 recomendado
Propõe-se usar como senha com base na qual a chave compartilhada será gerada
O uso deste mecanismo garante que o acesso a objetos token pessoais na nuvem por meio de códigos SO e USER PIN esteja disponível apenas para o usuário que os instalou usando o utilitário pk11conf.
É isso, após concluir essas etapas, o token da nuvem está pronto para uso. Para acessar o token da nuvem, basta instalar a biblioteca LS11CLOUD no seu PC. Ao usar um token de nuvem em aplicativos nas plataformas Android e iOS, um SDK correspondente é fornecido. É esta biblioteca que será especificada ao conectar um token de nuvem no navegador Redfox ou escrita no arquivo pkcs11.txt para. A biblioteca LS11CLOUD também interage com o token na nuvem através de um canal seguro baseado em SESPAKE, criado ao chamar a função PKCS#11 C_Initialize!
Só isso, agora você pode solicitar um certificado, instalá-lo em seu token de nuvem e acessar o site de serviços governamentais.
Fonte: habr.com