Estação de trabalho criptográfica baseada em padrões de chave pública. Configurando tokens PKCS # 11

Mais uma vez analisando a funcionalidade do utilitário cryptoarmpkcs , notei que ele, principalmente trabalhando com tokens / smartcards criptográficos PKCS # 11, não possui uma funcionalidade interna para sua configuração. Estamos falando de inicializar tokens , definir códigos PIN etc. E foi decidido adicionar essa funcionalidade. A primeira etapa foi expandir a funcionalidade do pacote TclPKCS11 , cuja biblioteca está escrita em C.

Novos recursos do TclPKCS11


Três novos recursos apareceram no pacote:

::pki::pkcs11::inittoken <handle> <slotId> <SO-pin> <label for token> 

 ::pki::pkcs11::inituserpin <handle> <slotId> <SO-pin> <USER-pin> 

 ::pki::pkcs11::setpin <handle> <slotId> <so | user> <oldpin> <newpin> 

A primeira função :: pki :: pkcs11 :: inittoken é inicializar o token. Deve-se ter em mente que, se essa função for aplicada a um token em funcionamento, todos os objetos nele serão destruídos.

A segunda função :: pki :: pkcs11 :: inituserpin é para inicializar um PIN do usuário (USER PIN).

Após a inicialização do código PIN do usuário, ele deve ser imediatamente alterado para o código PIN, que será usado no futuro, e armazenado como o SO-PIN, longe de olhares indiscretos. Por motivos de segurança, os tokens, por via de regra, não permitem que você efetue login com o código PIN inicial.

Para alterar os códigos PIN, é utilizada uma terceira função, a saber: pki :: pkcs11 :: setpin. Esta função permite alterar o PIN do usuário e o SO-PIN.

Também deve-se ter em mente que os tokens, em regra, não permitem restaurar o SO-PIN original (padrão). Mas se você reinicializar o token, receberá novamente o SO-PIN padrão. A implementação do pacote TclPKCS11 pode ser visualizada no github .

Agora, tendo em mãos o pacote TclPKCS11 com novas funções, não foi difícil implementar uma GUI para essas funções:



Tokens de treinamento


Mas antes de usá-los, vamos prestar atenção ao fato de que outro botão "Criar Tokens" foi adicionado à funcionalidade do utilitário.

Isso se deve ao fato de que nem todos têm o token de hardware PKCS # 11 com suporte para criptografia russa e, nesse caso, é assustador usá-lo para fins educacionais. E apenas para que o utilitário pudesse ser facilmente usado para fins educacionais, primeiro apareceu o botão "Criar Tokens". Ao clicar neste botão, você verá instruções sobre como obter tokens de software ou de nuvem:



Esses tokens implementam as recomendações mais recentes do TK-26 para o PKCS # 11 v.2.40.

Discutiremos brevemente como obter um token de nuvem. Faça o download do pacote de distribuição necessário, descompacte-o, se necessário, e execute-o. Se não tivermos um token de nuvem, receberemos a seguinte mensagem:



Como ainda não temos um token na nuvem, clique no botão "Registrar na nuvem":



Após preencher os campos, clique no botão "Concluir":



Como falamos principalmente sobre treinamento, podemos salvar uma senha para acessar a nuvem (mas não o token) no local de trabalho:



Inicialização de token


Agora que estamos registrados na nuvem, saímos do utilitário guils11cloud_conf e retornamos ao utilitário cryptoarmpkcs para configurar o token da nuvem. Deve-se observar aqui que a biblioteca de token em nuvem será salva na pasta ls11cloud criada no diretório inicial do usuário. É essa biblioteca que precisará ser selecionada como a biblioteca PKCS # 11 para o token da nuvem. Depois de escolher uma biblioteca, você pode ver os mecanismos criptográficos suportados:



Voltamos a inicializar o token da nuvem clicando no botão "Configuração de token". Selecionamos a operação “Inicialização do token”, preenche os campos (lembre-se de que o SO-PIN padrão é 87654321) e clique no botão “Executar operação”:



Todo o token está pronto para funcionar. Mas não esqueça de alterar o SO-PIN e periodicamente o PIN do usuário. Usando um esquema semelhante, você pode criar um token de software. Os interessados ​​podem tentar:



Agora podemos armazenar nossos certificados pessoais, assinar documentos, fazer tudo o que foi escrito nesta série de artigos.

Próximas inovações em PKI / PKI


Em 7 de novembro de 2019, a Duma Estatal adotou em primeira leitura as alterações à lei “Sobre assinaturas eletrônicas”. Esta alteração se aplica a todas as organizações e empreendedores individuais, pois as regras para emissão de assinaturas eletrônicas serão alteradas.

Se eu entendi tudo corretamente, as pessoas jurídicas e os empreendedores individuais poderão receber certificados qualificados apenas no Serviço de Impostos Federais e organizações financeiras no Banco Central da Federação Russa. E apenas usando esses certificados pode ser definido
Assinatura Eletrônica Qualificada Aprimorada (Cades-XLT1).

Os centros de certificação (CAs) credenciados pelo Ministério das Telecomunicações e Comunicações de Massa poderão emitir esses certificados apenas para indivíduos.

Além disso, os requisitos para as ACs mudarão significativamente: o patrimônio líquido deve ser aumentado de 7 milhões para 500 milhões - 1 bilhão, o valor do passivo de seguro aumenta de 30 milhões para 300-500 milhões de rublos, o período de credenciamento é reduzido de 5 para 3 anos.

O projeto de lei já provocou fortes críticas. As principais queixas são de que as mudanças levarão ao fechamento da grande maioria das CAs comerciais, exigirão gastos orçamentários significativos para expandir e manter as capacidades do Serviço Fiscal Federal da CA, bem como a concentração de todos os tipos de riscos em uma única infraestrutura, que se tornará um alvo conveniente para ataques cibernéticos.

Há mais uma emenda - a obrigação de assinar documentos da empresa não por uma, mas por duas assinaturas qualificadas aprimoradas ao mesmo tempo. O chefe da organização terá que colocar no documento a assinatura da entidade legal e uma assinatura digital pessoal como indivíduo.

E aqui o utilitário cryptoarmpkcs será muito, muito útil, porque sua funcionalidade permite que você coloque várias assinaturas no documento, além de ver quem e quando assinou o documento:



PS Para quem deseja obter utilitários pela primeira vez, isso ainda pode ser feito aqui:
Distribuições para Linux, OS X e Windows

Source: https://habr.com/ru/post/pt476210/


All Articles