Token de nuvem PKCS#11 – mito ou realidade?

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” (Capítulo 26).

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 unidade flash em nuvem. tudo vantagens e desvantagens drives flash em nuvem são quase idênticos aos de um token de nuvem.

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:
Token de nuvem PKCS#11 – mito ou realidade?

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 SESPAKE - protocolo de geração de chave compartilhada com autenticação por senha.

Propõe-se usar como senha com base na qual a chave compartilhada será gerada mecanismo de senha única. Como estamos falando de criptografia russa, é natural gerar senhas de uso único por meio de mecanismos CKM_GOSTR3411_12_256_HMAC, CKM_GOSTR3411_12_512_HMAC ou CKM_GOSTR3411_HMAC.

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!

Token de nuvem PKCS#11 – mito ou realidade?

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

Adicionar um comentário