
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