
Em 2016, foi publicado o artigo
“PKCS # 11 Cloud Token - Mito ou Realidade?” . . Seis meses depois, e agora na Internet, apareceu uma nuvem (serviço de nuvem), na qual qualquer pessoa pode obter um token de nuvem pessoal PKCS # 11 com suporte para criptografia russa.
Prefácio
Lembre-se de que o PKCS # 11 (Cryptoki) é um padrão desenvolvido pela RSA Laboratories para a interação de programas com tokens criptográficos, cartões inteligentes e outros dispositivos similares usando uma interface de software unificada implementada por meio de bibliotecas.
Os tokens criptográficos fornecem armazenamento de certificados e pares de chaves (chaves públicas e privadas), bem como operações criptográficas de acordo com o padrão PKCS # 11.

Portanto, na Internet, apareceu o serviço em nuvem LS11CLOUD, que é uma implementação em nuvem do
PKCS # 11 padrão v.2.40, complementado pelo suporte aos algoritmos criptográficos russos, de acordo com as especificações desenvolvidas pelo Comitê Técnico para Padronização (
TC 26 ) “Proteção de informações criptográficas”. O serviço de nuvem LS11CLOUD suporta os algoritmos GOST R 34.10-2012, GOST R 34.11-2012, GOST R 34.12-2015 e GOST R 34.13-2015, bem como algoritmos e parâmetros relacionados definidos pelos documentos que regem o TC 26.
A vantagem indubitável de um token na nuvem é que agora o usuário não precisa carregar um token / cartão inteligente, cuidar de sua segurança. Com um token pessoal na nuvem, um usuário pode ter acesso a ele a partir do seu computador doméstico, laptop e dispositivo móvel.
A interação remota segura com um contêiner pessoal protegido de objetos criptográficos (token) por meio de um canal de rede criptografado é
garantida usando o protocolo de autenticação
SESPAKE (Troca de chaves autenticadas por senha padronizada avaliada por segurança) recomendada pelo TC 26.
No lado do usuário, a funcionalidade básica é fornecida pela biblioteca dinâmica ls11cloud com a interface de programação padrão pkcs # 11. Para receber um token de nuvem pessoal, o usuário deve se registrar no serviço de nuvem LS11CLOUD e, em seguida, inicializar e configurar o token pessoal no serviço de nuvem.
Registro de usuário no serviço de nuvem
Para começar, observamos que o token de nuvem LS11CLOUD está localizado em pkcs11.ru e aceita solicitações para a porta 4444.
Como já observado, o registro do usuário no servidor e a manutenção de sua conta são realizados pelo utilitário
ls11cloud_config :
$ ./ls11cloud_config LS11CLOUD User Utility Usage: ls11cloud_config <command> [-p <password>] [-n <new password>] NB: Use -n <new password> with change_pswd command only! Commands: register <host> <port> <id> - register new user on the server duplicate <host> <port> <id> - duplicate user account on other computer change_pswd - change SESPAKE authentication password status - display current configuration data log - display server log file recreate - re-create token to initial empty state unregister - remove all user files from the server NB: Don't use non-latin letters to avoid encoding problems! $
Ao registrar um usuário, a localização do serviço em nuvem (o campo "host"), a porta (o campo "port") através do qual a comunicação com o mundo externo é realizada e o apelido (o campo "id") do usuário são indicados:
bash-4.3$ ls11cloud_config register pkcs11.ru 4444 HABRAHABR
Para registro nas plataformas Linux, Windows e OS X (macOS), existe um utilitário gráfico com uma interface intuitiva guils11cloud_conf para este utilitário:

O usuário pode obter distribuições
Então, vamos começar a testar a implementação da criptografia russa no token de nuvem PKCS # 11.
Após o download, você deve executar o utilitário gráfico
guils11cloud_conf e seguir suas instruções:

Se você não se registrou com um token em nuvem nesta estação de trabalho, será solicitado a criar um token ou conectar-se a um token criado anteriormente (consulte a captura de tela). Para o registro inicial na nuvem, clique no botão "Registrar na nuvem":

"Login do usuário" é o login no qual o usuário será registrado na nuvem.
A senha é necessária para criar um canal seguro (protocolo SESPAKE) do aplicativo do usuário para seu token pessoal na nuvem. Uma senha será solicitada toda vez que um usuário acessar um token na nuvem, a menos que ele a salve imediatamente após o registro bem-sucedido na nuvem:

Após o registro bem-sucedido do usuário, um novo token com SO-PIN 87654321 será criado para ele:

Inicialização de token
Depois de clicar no botão "OK", aparecerá um formulário no qual será necessário indicar o rótulo do token (por padrão, ele corresponde ao login do usuário na nuvem) e o código PIN ao qual o usuário terá acesso ao token da nuvem:

Depois de clicar no botão "Concluir", o token da nuvem está pronto para funcionar:

No futuro, o
utilitário p11conf é usado para configurar o token da nuvem como em qualquer outro token / smart card PKCS # 11:

Se você deseja usar o token de nuvem criado em outro computador, é claro que tudo o que você precisa fazer é executar o utilitário gráfico guils11cloud_config e clicar no botão "Duplicar token":

Depois disso, lembre-se do login no qual você está registrado na nuvem e a senha de acesso. Ao clicar no botão "Concluir", você terá acesso ao seu token:

Instalando o primeiro certificado pessoal em um token de nuvem
Agora que nos registramos na nuvem e criamos nosso próprio token de nuvem pessoal, podemos começar a usá-lo. Para o teste, vamos
usar o navegador
Redfox-52 e o cliente de email
Redfoxmail-52 , baseados no Mozilla Firefox e Mozilla Thunderbird, com suporte para criptografia russa nos tokens / cartões inteligentes PKCS # 11.
Realizaremos testes na plataforma WIN32.
Primeiro você precisa baixar e instalar o Redfox-52. Para instalar o navegador Redfox, você precisa baixar o arquivo e descompactá-lo.
Mova a pasta Mozilla Firefox descompactada para um local conveniente. Em seguida, crie um atalho para o arquivo executável firefox.exe (localizado dentro da pasta Mozilla Firefox) e coloque-o em qualquer lugar conveniente.
Após iniciar o navegador, você precisa conectar o token de nuvem criado adicionando a biblioteca ls11cloud.dll aos dispositivos:

Observe que a distribuição do navegador para o MS Windows foi criada para a plataforma Win32. Portanto, a biblioteca ls11cloud.dll também deve ser usada para a plataforma Win32.
Depois de incluirmos um token de nuvem entre os dispositivos criptográficos com os quais o navegador trabalha, podemos começar a testá-lo. No primeiro estágio, você deve obter pelo menos um certificado pessoal. Para fazer isso, usamos os serviços de uma das CAs de teste:

Quando você clica no botão Continuar, a CA se oferece para verificar os dados do aplicativo e, em seguida, seleciona um dispositivo criptográfico (token / cartão inteligente) para gerar um par de chaves e armazenar um certificado pessoal:

Naturalmente, um token de nuvem é selecionado e, depois de clicar no botão "Continuar", ele será oferecido não apenas para receber um certificado pessoal gerado pelo seu aplicativo, mas também para instalar / salvar o certificado raiz da CA:

Você pode verificar a instalação do certificado visualizando o armazenamento de certificados do navegador:

Testando HTTPS e PKCS # 12
Portanto, os mecanismos de token de nuvem funcionam. Agora vamos verificar a operação do token de nuvem no modo https autorizado nas criptografias russas:

Para testar a operação do token na nuvem nas
páginas de teste do
CryptoPro, usaremos o certificado de teste obtido anteriormente no centro de teste do CryptoPro e carregado no contêiner PKCS # 12. Primeiro, você precisa fazer o download do
certificado no formato PKCS # 12 e instalá-lo em um token de nuvem (a senha do contêiner PKCS # 12 é 01234567):

Como dispositivo de armazenamento, você deve selecionar um token de nuvem:

Em seguida, você precisará inserir um PIN para acessar o token, senha do PKCS # 12. Como resultado, o certificado estará no token:

Ao mesmo tempo, não esqueça de definir o nível de confiança no certificado raiz da CA CryptoPro:

Agora você pode ir com segurança às páginas de teste do CryptoPro, por exemplo
, aqui :

Usando um token de nuvem para organizar a correspondência de email segura
Agora vamos ver como o token de nuvem funciona no cliente de email
Redfoxmail / Thunderbird .
Para instalar o cliente de email Mozilla Thunderbird na plataforma WIN32, é necessário baixar o arquivo thunderbird-52.0-gost e descompactá-lo. Mova a pasta Mozilla Thunderbird descompactada para um local conveniente.
Em seguida, crie um atalho para o arquivo executável thunderbird.exe (localizado dentro da pasta Mozilla Thunderbird) e coloque-o em qualquer local conveniente. Depois de iniciar o cliente de email, conectamos o token da nuvem, como fizemos no navegador Redfox:

Após conectar um token na nuvem, os certificados armazenados nele ficarão disponíveis. Mas isso pode não ser suficiente - é necessário instalar os certificados raiz da CA, nos quais os certificados pessoais são emitidos. É por isso que salvamos o certificado raiz durante o lançamento:

Agora, nas configurações da conta, você precisa instalar um certificado que será usado para assinar e criptografar letras:

Agora você pode assinar com segurança suas mensagens:

Esta mensagem pode ser aceita por qualquer cliente de email que suporte criptografia russa, por exemplo,
KMail :

Conclusão
Então, podemos dizer que o mito está se tornando realidade. O escopo principal do token de nuvem LS11CLOUD pode ser gerenciamento interno de documentos, correio seguro e serviços bancários.
O serviço em nuvem LS11CLOUD com seus tokens em nuvem pode ser muito útil para desenvolvedores de aplicativos que usam tokens / smartcards PKCS # 11.

PS Coloquei meu certificado pessoal em um token na nuvem, conectei-o ao plug-in de serviços públicos e paguei a dívida fiscal através do
portal GOSUSLOG . OC - Linux.