Assinatura eletrônica qualificada para macOS

Assinatura eletrônica qualificada para macOS

De acordo com RBK e Tensor, em 2019, na Rússia, serão emitidos 4,6 milhões de certificados de assinatura eletrônica qualificada (CEP), em conformidade com os requisitos da Lei 63-FZ. Isso significa que, dos 8 milhões de empresários individuais e sociedades limitadas registradas, um em cada dois utiliza assinatura eletrônica. Além dos CEPs para EGAIS e CEPs em nuvem para entrega de declarações, emitidos por bancos e serviços contábeis, os CEPs universais em tokens protegidos despertam um interesse especial. Esses certificados permitem o login em portais governamentais e a assinatura de qualquer documento, tornando-os legalmente válidos.

Com um certificado CEP em um token USB, é possível formalizar um contrato com um parceiro ou colaborador remoto, enviar documentos ao tribunal; registrar um caixa online, regularizar dívidas tributárias e enviar a declaração no portal pessoal em nalog.ru; verificar dívidas e auditorias futuras no Serviço Público.

O manual apresentado abaixo ajudará a trabalhar com CEP no macOS – sem precisar estudar fóruns da CryptoPro e instalar uma máquina virtual com Windows.


Conteúdo

O que você precisa para trabalhar com CEP no macOS:

Instalando e configurando o CEP no macOS

  1. Instalando CryptoPro CSP
  2. Instalando drivers para Rutoken
  3. Instalando certificados
    3.1. Removendo todos os certificados antigos baseados em GOST
    3.2. Instalando os certificados raiz
    3.3. Baixando certificados da autoridade certificadora
    3.4. Instalando o certificado com Rutoken
  4. Instalando o navegador especial Chromium-GOST
  5. Instalando extensões para o navegador
    5.1 Plugin CryptoPro ECP para o navegador
    5.2. Plugin para o Serviço Público
    5.3. Configurando o plugin para o Serviço Público
    5.4. Ativando extensões
    5.5. Configurando a extensão CryptoPro ECP para navegador
  6. Verificando se tudo está funcionando
    6.1. Acessando a página de teste da CryptoPro
    6.2. Acessando a Área Pessoal em nalog.ru
    6.3. Acessando o Serviço Público
  7. O que fazer se parar de funcionar

Mudança do PIN do container

  1. Descobrindo o nome do container CEP
  2. Mudança de PIN via comando no terminal

Assinatura de arquivos no macOS

  1. Descobrindo o hash do certificado CEP
  2. Assinando arquivo via comando no terminal
  3. Instalação do Script do Apple Automator

Verificar a assinatura no documento

Todas as informações abaixo foram obtidas de fontes confiáveis (CryptoPro #1 e #2, Rutoken, Korus-Consulting, UFO do Ministério das Comunicações), e o software é oferecido para download a partir de sites confiáveis. O autor é um consultor independente e não está associado a nenhuma das empresas mencionadas. Ao seguir este guia, você assume toda a responsabilidade por quaisquer ações e consequências.

O que você precisa para trabalhar com CEP no macOS:

  1. KÉP no token USB Rutoken Lite ou Rutoken ECP
  2. container criptográfico no formato CryptoPro
  3. com licença incorporada para CryptoPro CSP

Os dispositivos eToken e JaCarta com CryptoPro no macOS não são suportados. O dispositivo Rutoken Lite é a melhor escolha, custa de 500 a 1000 rublos, funciona rapidamente e permite armazenar até 15 chaves.

Os provedores de criptografia VipNet, Signal-COM e LISY no macOS não são suportados. Não é possível converter os contêineres. CryptoPro é a melhor escolha; o custo do certificado deve ser em torno de 1300 rublos para indivíduos e 1600 rublos para entidades jurídicas.

Normalmente, a licença anual para CryptoPro CSP já está incluída no certificado e é oferecida gratuitamente por muitos CAs. Se não for o caso, é necessário comprar e ativar uma licença perpétua para CryptoPro CSP estritamente na versão 4, custando 2700 rublos. CryptoPro CSP versão 5 não funciona atualmente no macOS.

Instalando e configurando o CEP no macOS

Coisas óbvias

  • todos os arquivos baixados são salvos na pasta padrão: ~/Downloads/;
  • não alteramos nada em nenhum dos instaladores, deixamos tudo como padrão;
  • se o macOS exibir um aviso de que o software está sendo executado de um desenvolvedor não identificado – você precisa confirmar a execução nas configurações do sistema: Preferências do Sistema —> Segurança e Privacidade —> Abrir Assim Mesmo;
  • se o macOS solicitar a senha do usuário e permissão para controlar o computador – você deve inserir a senha e concordar com tudo.

1. Instalamos o CryptoPro CSP

Nos registramos no site do CryptoPro e na página de downloads baixamos e instalamos a versão CryptoPro CSP 4.0 R4 para macOS – baixar.

2. Instalamos os drivers do Rutoken

No site, diz que é opcional, mas é melhor instalar. Na página de downloads página do Rutoken, baixamos e instalamos Módulo de suporte ao KeyChain – baixar.

Em seguida, conectamos o token USB, abrimos o terminal e executamos o comando:

/opt/cprocsp/bin/csptest -card -enum -v

Na resposta deve constar:

Ativar Rutoken...
Cartão presente...
[Código de Erro: 0x00000000]

3. Instalamos os certificados

3.1. Removendo todos os certificados antigos baseados em GOST

Se houve tentativas anteriores de executar o KEP no macOS, é necessário limpar todos os certificados previamente instalados. Esses comandos no terminal removerão apenas os certificados do CryptoPro e não afetarão os certificados comuns no Keychain do macOS.

sudo /opt/cprocsp/bin/certmgr -delete -all -store mroot

sudo /opt/cprocsp/bin/certmgr -delete -all -store uroot

/opt/cprocsp/bin/certmgr -delete -all

A resposta de cada comando deve ser:

Nenhum certificado correspondente aos critérios

ou

Exclusão completa

3.2. Instalando os certificados raiz

Os certificados raiz são comuns a todas as ACs emitidas por qualquer centro de certificação. Baixe de página de downloads UFO do Ministério das Comunicações:

Instalamos com os comandos no terminal:

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/4BC6DC14D97010C41A26E058AD851F81C842415A.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/8CAE88BBFD404A7A53630864F9033606E1DC45E2.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/0408435EB90E5C8796A160E69E4BFAC453435D1D.cer

Cada comando deve retornar:

Instalando:
…
[Código de Erro: 0x00000000]

3.3. Baixando certificados da autoridade certificadora

Em seguida, você precisa instalar os certificados da autoridade certificadora que emitiu sua AC. Normalmente, os certificados raiz de cada AC estão disponíveis no site dela na seção de downloads.

Alternativamente, os certificados de qualquer AC podem ser baixados de site da UFO do Ministério das Comunicações. Para isso, na forma de busca, você deve encontrar a AC pelo nome, acessar a página com os certificados e baixar todos os ativos certificados — ou seja, aqueles cujo campo 'Válido' a segunda data ainda não chegou. Baixe pelo link do campo 'Impressão'.

Capturas de tela

Assinatura eletrônica qualificada para macOS

Assinatura eletrônica qualificada para macOS

Usando como exemplo a AC Korus-Consulting: você deve baixar 4 certificados de página de downloads:

Os certificados baixados da AC são instalados com os comandos do terminal:

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/B9F1D3F78971D48C34AA73786CDCD138477FEE3F.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/A0D19D700E2A5F1CAFCE82D3EFE49A0D882559DF.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/55EC48193B6716D38E80BD9D1D2D827BC8A07DE3.cer

sudo /opt/cprocsp/bin/certmgr -inst -store mroot -f ~/Downloads/15EB064ABCB96C5AFCE22B9FEA52A1964637D101.cer

onde após ~/Downloads/ seguem os nomes dos arquivos baixados, que serão diferentes para cada AC.

Cada comando deve retornar:

Instalando:
…
[Código de Erro: 0x00000000]

3.4. Instalando o certificado com Rutoken

Comando no terminal:

/opt/cprocsp/bin/csptestf -absorb -certs

O comando deve retornar:

OK.
[Código de Erro: 0x00000000]

4. Instalamos o navegador especial Chromium-GOST

Para trabalhar com os portais do governo, será necessário uma versão especial do navegador Chromium – Chromium-GOST. O código-fonte do projeto é aberto, o link para repositório no GitHub é fornecido no site da KryptoPro. Por experiência, outros navegadores CryptoFox e Yandex Browser não são adequados para trabalhar com os portais do governo em macOS. É importante considerar que em algumas versões do Chromium-GOST, o painel do portal nalog.ru pode travar ou a rolagem para de funcionar, por isso, a versão antiga e testada 71.0.3578.98 – baixar.

Baixe e descompacte o arquivo, instale o navegador copiando ou arrastando para a pasta Applications. Após a instalação, feche forçosamente o Chromium e não o abra ainda, trabalhe a partir do Safari.

killall Chromium-Gost

5. Instalamos extensões para o navegador

5.1 Plugin CryptoPro ECP para o navegador

Com página de downloads No site da CryptoPro, fazemos o download e instalamos Plugin do navegador CryptoPro ECP versão 2.0 para usuários – baixar.

5.2. Plugin para o Serviço Público

Com página de downloads No portal de serviços públicos, fazemos o download e instalamos Plugin para trabalhar com o portal de serviços públicos (versão para macOS) – baixar.

5.3. Configurando o plugin para o Serviço Público

Fazemos o download do arquivo de configuração correto para a extensão dos serviços públicos no site da CryptoPro – baixar.

Executamos os comandos no terminal:

sudo rm /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents/ifc.cfg

sudo cp ~/Downloads/ifc.cfg /Library/Internet Plug-Ins/IFCPlugin.plugin/Contents

sudo cp /Library/Google/Chrome/NativeMessagingHosts/ru.rtlabs.ifcplugin.json /Library/Application Support/Chromium/NativeMessagingHosts

5.4. Ativando extensões

Iniciamos o navegador Chromium-Gost e digitamos na barra de endereços:

chrome://extensions/

Ativamos ambas as extensões instaladas:

  • CryptoPro Extension for CAdES Browser Plug-in
  • Extensão para o plugin de serviços públicos

Captura de tela

Assinatura eletrônica qualificada para macOS

5.5. Configurando a extensão CryptoPro ECP para navegador

Digitamos na barra de endereços do Chromium-Gost:

/etc/opt/cprocsp/trusted_sites.html

Na página que aparece, adicionamos os sites à lista de nós confiáveis, um por um:

https://*.cryptopro.ru
https://*.nalog.ru
https://*.gosuslugi.ru

Clicamos em “Salvar”. Uma faixa verde deve aparecer:

A lista de nós confiáveis foi salva com sucesso.

Captura de tela

Assinatura eletrônica qualificada para macOS

6. Verificamos se tudo está funcionando

6.1. Acessando a página de teste da CryptoPro

Digitamos na barra de endereços do Chromium-Gost:

https://www.cryptopro.ru/sites/default/files/products/cades/demopage/cades_bes_sample.html

Deve aparecer “Plugin carregado”, e na lista abaixo, seu certificado deve estar presente.
Selecionamos o certificado da lista e clicamos em “Assinar”. Será solicitado o PIN do certificado. O resultado deve ser

A assinatura foi criada com sucesso

Captura de tela

Assinatura eletrônica qualificada para macOS

6.2. Acessando a Área Pessoal em nalog.ru

Os links do site nalog.ru podem não funcionar, pois não passarão nas verificações. É necessário acessar pelos links diretos:

  • Área do usuário IP: https://lkipgost.nalog.ru/lk
  • Área do usuário PJ: https://lkul.nalog.ru

Captura de tela

Assinatura eletrônica qualificada para macOS

6.3. Acessando o Serviço Público

Ao fazer login, escolhemos “Entrada com assinatura eletrônica”. Na lista que aparece “Seleção do certificado da chave de verificação da assinatura eletrônica”, todos os certificados serão exibidos, incluindo os raiz e UCs. É necessário selecionar o seu do token USB e inserir o PIN.

Captura de tela

Assinatura eletrônica qualificada para macOS

Assinatura eletrônica qualificada para macOS

7. O que fazer se parou de funcionar

  1. Reconectamos o token USB e verificamos se ele é reconhecido usando o comando no terminal:

    sudo /opt/cprocsp/bin/csptest -card -enum -v

  2. Limpa o cache do navegador por todo o tempo, para isso digitamos na barra de endereços do Chromium-Gost:

    chrome://settings/clearBrowserData

  3. Reinstalamos o certificado ECP usando o comando no terminal:

    /opt/cprocsp/bin/csptestf -absorb -certs

Mudança do PIN do container

O PIN padrão do usuário no RUToken 12345678, e deixá-lo assim de forma alguma não é permitido. Requisitos para o PIN do RUToken: 16 caracteres no máximo, pode incluir letras latinas e números.

1. Descobrimos o nome do contêiner do ECP

Um token USB e outros armazenamentos podem conter vários certificados, e você precisa escolher o correto. Com o token USB inserido, obtemos uma lista de todos os containers no sistema com o comando no terminal:

/opt/cprocsp/bin/csptest -keyset -enum_cont -fqcn -verifycontext

O comando deve retornar pelo menos 1 container e devolver

[Código de Erro: 0x00000000]

O container desejado tem a aparência de

.Aktiv Rutoken liteXXXXXXXX

Se vários containers forem exibidos, significa que vários certificados estão gravados no token, e você sabe qual exatamente precisa. O valor XXXXXXXX após a barra precisa ser copiado e inserido no comando abaixo.

2. Alteração do PIN com o comando do terminal

/opt/cprocsp/bin/csptest -passwd -qchange -container "XXXXXXXX"

onde XXXXXXXX – o nome do container, obtido na etapa 1 (obrigatoriamente entre aspas).

Uma caixa de diálogo do KryptoPro aparecerá solicitando o PIN antigo para acessar o certificado, seguida de outra caixa de diálogo para inserir o novo PIN. Pronto.

Captura de tela

Assinatura eletrônica qualificada para macOS

Assinatura de arquivos no macOS

No macOS, os arquivos podem ser assinados no software CryptoArm (custo da licença 2500= rublos), ou com um comando simples pelo terminal - gratuitamente.

1. Determinando o hash do certificado da CEP

O token e outros armazenamentos podem ter vários certificados. É necessário identificar de forma única aquele com o qual iremos assinar documentos a partir de agora. Isso é feito uma vez.
O token deve estar inserido. Obtemos a lista de certificados nos armazenamentos com o comando do terminal:

/opt/cprocsp/bin/certmgr -list

O comando deve retornar pelo menos 1 certificado do tipo:

Certmgr 1.1 © «Crypto-Pro», 2007-2018.
programa para gerenciar certificados, CRLs e armazenamentos
= = = = = = = = = = = = = = = = = = = =
1——-
Emissor: E=help@esphere.ru,… CN=ООО КОРУС Консалтинг СНГ…
Assunto: E=sergzah@gmail.com,… CN=Захаров Сергей Анатольевич…
Serial: 0x0000000000000000000000000000000000
SHA1 Hash: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
…
Container: SCARDrutoken_lt_00000000 000 000
…
= = = = = = = = = = = = = = = = = = = =
[Código de Erro: 0x00000000]

Para o certificado que precisamos, o parâmetro Container deve ter um valor da forma SCARDrutoken…. Se houver vários certificados com esses valores, significa que vários certificados estão gravados no token, e você sabe qual exatamente precisa. O valor do parâmetro SHA1 Hash (40 caracteres) precisa ser copiado e inserido no comando abaixo.

2. Assinatura de arquivo com o comando do terminal

No terminal, navegue até o diretório com o arquivo para assinatura e execute o comando:

/opt/cprocsp/bin/cryptcp -signf -detach -cert -der -strict -thumbprint ХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХХ FILE

onde XXXX… – o hash do certificado obtido na etapa 1, e FILE – o nome do arquivo para assinatura (com todas as extensões, mas sem caminho).

O comando deve retornar:

Mensagem assinada é criada.
[Código de Erro: 0x00000000]

Um arquivo de assinatura eletrônica com a extensão *.sgn será criado – esta é uma assinatura desvinculada no formato CMS com codificação DER.

3. Instalação do Script do Apple Automator

Para não precisar trabalhar com o terminal toda vez, você pode instalar o Script do Automator uma vez, com o qual será possível assinar documentos diretamente no menu de contexto do Finder. Para isso, baixe o arquivo compactado – baixar.

  1. Descompacte o arquivo ‘Sign with CryptoPro.zip’
  2. Iniciamos Automator
  3. Localize e abra o arquivo descompactado ‘Sign with CryptoPro.workflow’
  4. Na seção Run Shell Script modifique o texto XXXXXXXXXXXXXXXXXXXXXXXX para o valor do parâmetro SHA1 Hash do certificado KEP, obtido anteriormente.
  5. Salve o script: ⌘Command + S
  6. Execute o arquivo ‘Sign with CryptoPro.workflow’ e confirme a instalação.
  7. Vá para Preferências do Sistema —> Extensões —> Finder e verifique se Sign with CryptoPro a ação rápida está marcada.
  8. No Finder, acesse o menu de contexto de qualquer arquivo, e na seção Ações Rápidas e/ou Serviços selecione o item Sign with CryptoPro
  9. No diálogo que aparece, insira o PIN do usuário do KEP
  10. Um arquivo com a extensão *.sgn aparecerá no diretório atual – uma assinatura desconectada no formato CMS com codificação DER.

Capturas de tela

Janela do Apple Automator:
Assinatura eletrônica qualificada para macOS

Preferências do Sistema:
Assinatura eletrônica qualificada para macOS

Menu de contexto do Finder:

Assinatura eletrônica qualificada para macOS

Verificar a assinatura no documento

Se o conteúdo do documento não contém segredos e mistérios, a maneira mais simples é usar o serviço web no portal dos serviços públicos – https://www.gosuslugi.ru/pgu/eds. Assim, é possível fazer uma captura de tela de um recurso oficial e ter a certeza de que a assinatura está correta.

Capturas de tela

Assinatura eletrônica qualificada para macOS

Assinatura eletrônica qualificada para macOS

Fonte: habr.com

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster