Todas as funções do padrão PKCS#11 retornam códigos de erro diferentes. Todos os códigos de erro retornados são divididos em dois grandes grupos:
Todas as funções da implementação do padrão PKCS#11 retornam códigos de erro especiais (definidos pelo fabricante).
Todas as funções da implementação da extensão padrão PKCS#11 retornam códigos de erro especiais (definidos pelo fabricante).
Devido aos recursos de implementação das bibliotecas rtPKCS11 e rtPKCS11ECP, alguns recursos padrão pode retornar um código de erro PKCS#11 padrão que não está incluído na lista de códigos aceitáveis para esta função. Esta situação é uma exceção. Os códigos de erro padrão retornados por cada função em situações excepcionais estão listados na descrição de cada função separadamente.
A Tabela 2.29 mostra uma lista de códigos de erro do padrão PKCS#11 e suas descrições suportadas pelos dispositivos Rutoken. Informações detalhadas cada código de erro pode ser encontrado no padrão ( língua Inglesa) ou aplicativo (idioma russo).
Mesa2.29 . Códigos de erro padrão
Código de erro | Descrição |
CKR_ARGUMENTS_BAD | Argumento inválido |
CKR_ATTRIBUTE_READ_ONLY | Não é possível definir ou alterar o valor do atributo por aplicativo |
CKR_ATTRIBUTE_SENSITIVE | O atributo não é legível |
CKR_ATTRIBUTE_TYPE_INVALID | Tipo de atributo inválido |
CKR_ATTRIBUTE_VALUE_INVALID | Valor de atributo inválido |
CKR_BUFFER_TOO_SMALL | O tamanho do buffer especificado é insuficiente para exibir os resultados da execução da função |
A biblioteca não suporta bloqueio para proteger threads; retorna apenas ao chamar a função C_Inicializar |
|
CKR_CRYPTOKI_ALREADY_INITIALIZED | A biblioteca já está inicializada (chamada de função anterior C_Inicializar não foi acompanhado por uma chamada de função correspondente С_Finalizar); retorna apenas ao chamar a função C_Inicializar |
CKR_CRYPTOKI_NOT_INITIALIZED | A função não pode ser executada porque a biblioteca não foi inicializada; é retornado apenas ao chamar qualquer função, exceto C_Inicializar E С_Finalizar |
CKR_DATA_INVALID | Dados de entrada inválidos para realizar uma operação criptográfica |
CKR_DATA_LEN_RANGE | Os dados de entrada não têm o tamanho correto para realizar uma operação criptográfica |
CKR_DEVICE_ERROR | Erro ao acessar token ou slot |
CKR_DEVICE_MEMORY | Não há memória token suficiente para executar a função solicitada |
CKR_DEVICE_REMOVED | O token foi removido do slot enquanto a função estava em execução |
CKR_DOMAIN_PARAMS_INVALID | Parâmetros de domínio inválidos ou não suportados foram passados para a função |
CKR_ENCRYPTED_DATA_INVALID | Dados criptografados incorretamente foram transferidos para operação de descriptografia |
CKR_ENCRYPTED_DATA_LEN_RANGE | Dados criptografados de tamanho incorreto foram passados para operação de descriptografia |
CKR_FUNCTION_CANCELED | A função foi interrompida |
CKR_FUNCTION_FAILED | Ocorreu um erro ao executar a função |
CKR_FUNCTION_NOT_SUPPORTED | A função solicitada não é suportada pela biblioteca |
CKR_FUNCTION_REJECTED | A solicitação de assinatura foi rejeitada pelo usuário |
CKR_GENERAL_ERROR | Erro crítico de hardware |
Não há memória suficiente para executar a função na estação de trabalho onde a biblioteca está instalada |
|
CKR_KEY_FUNCTION_NOT_PERMITTED | Os atributos-chave não permitem que a operação seja executada |
CKR_KEY_HANDLE_INVALID | Um identificador de chave incorreto (handle) foi passado para a função |
CKR_KEY_NOT_WRAPPABLE | Não foi possível criptografar a chave |
CKR_KEY_SIZE_RANGE | Tamanho de chave inválido |
CKR_KEY_TYPE_INCONSISTENT | O tipo de chave não corresponde a este mecanismo |
CKR_KEY_UNEXTRACTABLE | A chave não pode ser criptografada porque o atributo CKA_UNEXTRACTABLE está definido como CK_TRUE |
CKR_MECHANISM_INVALID | Mecanismo incorreto especificado para realizar operação criptográfica |
CKR_MECHANISM_PARAM_INVALID | Parâmetros de mecanismo incorretos especificados para executar uma operação criptográfica |
CKR_NEED_TO_CREATE_THREADS | O programa não suporta métodos internos sistema operacional para criar novos tópicos |
CKR_OBJECT_HANDLE_INVALID | Um identificador de objeto (handle) incorreto foi passado para a função |
CKR_OPERATION_ACTIVE | A operação não pode ser executada porque a operação já está em andamento |
CKR_OPERATION_NOT_INITIALIZED | A operação não pode ser executada nesta sessão |
O PIN expirou |
|
CKR_PIN_INCORRETO | A função recebeu um código PIN que não corresponde ao armazenado no token |
O valor do PIN contém caracteres inválidos |
|
CKR_PIN_LEN_RANGE | Comprimento do PIN inválido |
CKR_RANDOM_NO_RNG | Este token não suporta geração de números aleatórios |
CKR_SESSION_CLOSED | A sessão foi fechada enquanto a função estava em execução |
CKR_SESSION_COUNT | O limite do número de sessões abertas para este token foi atingido |
CKR_SESSION_EXISTS | A sessão com o token já está aberta e portanto o token não pode ser inicializado |
CKR_SESSION_HANDLE_INVALID | Um identificador de sessão (identificador) incorreto foi passado para a função |
CKR_SESSION_PARALLEL_NOT_SUPPORTED | Este token não oferece suporte a sessões paralelas |
CKR_SESSION_READ_ONLY | A ação não pode ser executada porque esta é uma sessão R/O |
CKR_SESSION_READ_WRITE_SO_EXISTS | Uma sessão R/W já está aberta, portanto não é possível abrir uma sessão R/O |
CKR_SIGNATURE_INVALID | Valor de assinatura digital inválido |
CKR_SIGNATURE_LEN_RANGE | O valor da assinatura digital tem comprimento incorreto |
CKR_SLOT_ID_INVALID | Não há slot com este ID |
CKR_TEMPLATE_INCOMPLETE | Não há atributos suficientes para criar um objeto |
CKR_TEMPLATE_INCONSISTENT | Os atributos especificados se contradizem |
CKR_TOKEN_NOT_PRESENT | O token está faltando no slot durante a chamada de função |
CKR_UNWRAPPING_KEY_HANDLE_INVALID | Um identificador (identificador) incorreto da chave de descriptografia foi passado para a função |
CKR_UNWRAPPING_KEY_SIZE_RANGE | Tamanho de chave de descriptografia inválido |
CKR_UNWRAPPING_KEY_TYPE_INCONSISTENT | O tipo de chave de descriptografia não corresponde a este mecanismo |
CKR_USER_ALREADY_LOGGED_IN | |
CKR_USER_ANOTHER_ALREADY_LOGGED_IN | |
CKR_USER_NOT_LOGGED_IN | |
CKR_USER_PIN_NOT_INITIALIZED | PIN do usuário não inicializado |
CKR_USER_TOO_MANY_TYPES | |
CKR_USER_TYPE_INVALID | Tipo de usuário inválido especificado |
CKR_WRAPPED_KEY_INVALID | Chave criptografada incorreta especificada |
CKR_WRAPPED_KEY_LEN_RANGE | Comprimento de chave criptografada incorreto especificado |
CKR_WRAPPING_KEY_HANDLE_INVALID | Um identificador (identificador) de chave de criptografia incorreto foi passado para a função |
CKR_WRAPPING_KEY_SIZE_RANGE | Tamanho de chave de criptografia inválido |
CKR_WRAPPING_KEY_TYPE_INCONSISTENT | O tipo de chave de criptografia não corresponde a este mecanismo |
A Tabela 2.30 fornece uma lista de todos os códigos de erro estendidos do PKCS #11 junto com sua descrição. Os códigos de erro estendidos podem ser retornados pelas funções padrão e de extensão.
Tabela 2.30. Códigos de erro padrãoPKCS #11 suportado por dispositivos Rutoken
Código de erro | Descrição |
CKR_CORRUPTED_MAPFILE | Este erro é retornado quando o arquivo MAP está corrompido (durante a leitura do arquivo MAP, a tag de cabeçalho do arquivo MAP (2 bytes) foi considerada inválida) |
CKR_RTPKCS11_DATA_CORRUPTED | Este erro é retornado se uma violação de integridade de dados for detectada no token (ao ler um arquivo contendo um objeto PKCS#11, a tag do cabeçalho do objeto (2 bytes) foi considerada inválida) |
CKR_WRONG_VERSION_FIELD | Este erro é retornado se o arquivo que contém o objeto PKCS#11 tiver uma versão inválida (ao ler qualquer arquivo (arquivo MAP ou arquivo contendo um objeto PKCS#11), a versão do cabeçalho (4 bytes) foi considerada inválida) |
CKR_WRONG_PKCS1_CODIFICAÇÃO | Este erro é retornado se a mensagem descriptografada estiver em um formato incorreto |
CKR_RTPKCS11_RSF_DATA_CORRUPTED | Este erro é retornado se uma tentativa de usar o arquivo RSF falhar |
Boa tarde!. Nos últimos dois dias tive a tarefa interessante de encontrar uma solução para esta situação, quer haja um problema físico ou servidor virtual, provavelmente possui o conhecido CryptoPRO instalado. Conectado ao servidor , que é usado para assinar documentos para VTB24 DBO. Tudo funciona localmente no Windows 10, mas no servidor Plataforma Windows Servidor 2016 e 2012 R2, Cryptopro não vê Chave JaCarta . Vamos descobrir qual é o problema e como corrigi-lo.
Há uma máquina virtual no VMware ESXi 6.5, o Windows Server 2012 R2 está instalado como sistema operacional. O servidor está executando o CryptoPRO 4.0.9944, a versão mais recente no momento. COM rede USB hub, usando tecnologia USB sobre IP, um dongle JaCarta é conectado. Digite o sistema parece, mas não no CryptoPRO.
O CryptoPRO muitas vezes causa vários erros no Windows, um exemplo simples (o serviço de instalação do Windows não pôde ser acessado). Esta é a situação quando o utilitário CryptoPRO não vê o certificado no contêiner.
Como você pode ver no utilitário UTN Manager, a chave está conectada, é vista no sistema em cartões inteligentes como um dispositivo Microsoft Usbccid (WUDF), mas o CryptoPRO não detecta este contêiner e você não tem a oportunidade de instalar um certificado. O token estava conectado localmente, tudo igual. Começamos a pensar no que fazer.
Criamos uma nova máquina virtual e começamos a instalar o software sequencialmente.
Antes de instalar qualquer programas trabalhando com unidades USB contendo certificados e chaves privadas. Precisa NECESSARIAMENTE desabilitar o token, se inserido localmente, depois desabilitar, se estiver na rede, encerrar a sessão
Cliente JaCarta Únicoé um utilitário especial da empresa Aladdin para operação adequada com tokens JaCarta. Baixe a versão mais recente deste produto de software, você pode fazer isso no site oficial ou na nuvem, se de repente não conseguir obtê-lo no site do fabricante.
Em seguida, você descompacta o arquivo resultante e executa o arquivo de instalação para sua arquitetura Windows, a minha é de 64 bits. Vamos começar a instalar o driver Jacarta. Cliente Jacarta único, é muito fácil de instalar (Lembro que seu token deve estar desabilitado no momento da instalação). Na primeira janela do assistente de instalação, basta clicar em Avançar.
Aceite o contrato de licença e clique em "Avançar"
Para que os drivers do token JaCarta funcionem corretamente para você, você só precisa realizar uma instalação padrão.
Se você escolher "Instalação personalizada", marque as seguintes caixas:
Após alguns segundos, o Jacarta Unified Client foi instalado com sucesso.
Certifique-se de reiniciar o servidor ou computador para que o sistema veja os drivers mais recentes.
Após instalar o JaCarta PKI, é necessário instalar o CryptoPRO, para isso acesse o site oficial.
https://www.cryptopro.ru/downloads
Atualmente o mais versão mais recente CryptoPro CSP 4.0.9944. Execute o instalador, deixe a caixa de seleção "Instalar" certificados raiz" e clique em "Instalar (recomendado)"
A instalação do CryptoPRO será realizada em fundo, após o qual você verá uma proposta para reiniciar o navegador, mas aconselho que reinicie completamente.
Após a reinicialização, conecte seu token USB JaCarta. Minha conexão é via rede, de um dispositivo DIGI, via . No cliente Anywhere View, meu drive USB Jacarta foi detectado com sucesso, mas como um Microsoft Usbccid (WUDF), e idealmente deveria ser definido como um Smartcard JaCarta Usbccid, mas você precisa verificá-lo de qualquer maneira, pois tudo pode funcionar assim.
Após abrir o utilitário Jacarta PKI Unified Client, nenhum token conectado foi encontrado, o que significa que há algo errado com os drivers.
Microsoft Usbccid (WUDF) é um driver padrão da Microsoft instalado por padrão em vários tokens e às vezes funciona, mas nem sempre. sala de cirurgia Sistema Windows por padrão, ele os define de acordo com sua arquitetura e configurações, pessoalmente não preciso disso no momento. O que fazemos é remover os drivers Microsoft Usbccid (WUDF) e instalar os drivers para a mídia Jacarta.
Abra o gerenciador Dispositivos Windows, encontre o item "Leitores de cartão inteligente", clique em Microsoft Usbccid (WUDF) e selecione "Propriedades". Vá para a guia "Drivers" e clique em Desinstalar
Concorde em remover o driver Microsoft Usbccid (WUDF).
Você será notificado de que é necessária uma reinicialização do sistema para que as alterações tenham efeito;
Após reiniciar o sistema, você poderá ver a instalação do dispositivo ARDS Jacarta e dos drivers.
Abra o gerenciador de dispositivos, você verá que seu dispositivo agora está identificado como JaCarta Usbccid Smartcar e se você for em suas propriedades, verá que o cartão inteligente jacarta agora está usando o driver versão 6.1.7601 da ALADDIN R.D.ZAO, é assim deveria ser.
Se você abrir o cliente Jacarta único, verá seu assinatura eletrônica, isso significa que o cartão inteligente é detectado normalmente.
Abrimos o CryptoPRO e vemos que o CryptoPRO não vê o certificado no contêiner, embora todos os drivers tenham sido identificados conforme necessário. Existe mais um truque.
CERTIFIQUE-SE de desmarcar a caixa de seleção "Não usar conjuntos de criptografia desatualizados" e reinício.
Após essas manipulações, o CryptoPRO viu meu certificado e o cartão inteligente Jacarta começou a funcionar, você pode assinar documentos.
Você também pode ver seu dispositivo JaCarta em dispositivos e impressoras,
Se você assim como eu tem o token jacarta instalado na máquina virtual, então terá que instalar o certificado via console máquina virtual, e também conceder os direitos à pessoa responsável. Se este for um servidor físico, você terá que conceder direitos à porta de gerenciamento, que também possui um console virtual.
Depois de instalar todos os drivers para tokens Jacarta, você poderá ver a seguinte mensagem de erro ao conectar via RDP e abrir o utilitário Jacarta PKI Unified Client:
Como corrigir o erro “Não é possível conectar-se ao serviço de gerenciamento de cartão inteligente”.
Esta foi a solução de problemas para configurar o token Jacarta, CryptoPRO em servidor de terminal, para assinatura de documentos em VTB24 DBO. Se você tiver algum comentário ou correção, escreva-o nos comentários.
Saudações, leitor!
Depois de me comunicar com alguns leitores ativamente interessados, decidi repetir meu experimento de “pesquisa”, o que fiz quando escrevi os primeiros materiais de revisão sobre tópicos de tokens. Desta vez decidi coletar experiências malsucedidas usando tokens e coletar erros do Jacarta. Estou escrevendo com detalhes desde já, pois estou pensando em fazer seleções diferentes para cada marca. Vamos começar com o líder de mercado, Aladdin R.D. e seu produto Jacarta, um token usado especificamente para EGAIS.
O que esta postagem não incluirá:
1. Não darei soluções para erros do Jacarta porque cada situação é diferente.
2. Também pode ser que o token de Jacarta não seja a causa do erro. Isso pode ser UTM, etc. Portanto, cada caso deve ser analisado separadamente
3. Multiplicação de erros para denegrir o produto. Minha tarefa é fornecer um resumo extremamente externo do que os usuários do token Jacarta encontram com mais frequência no EGAIS.
Seleção e sistematização de resenhas sobre Jacarta
Da última vez, minha pesquisa limitou-se ao fórum oficial EGAIS (http://egais2016.ru/), agora ampliei o leque de estudo dos fóruns para tornar o material mais extenso.
Portanto, o token de Jacarta para EGAIS será analisado com base nas análises das seguintes fontes:
Naturalmente, a maioria dos resultados foram encontrados no fórum EGAS
No total, recebemos 630 mensagens baseadas na solicitação.
Encontrei 3 galhos grossos
Por exemplo, aqui está um caso em que voou 8 tokens JaCarta seguidos porque, cito:
“Erro 0x00000006 na partição PKI ao tentar formatar. Ou Jacarta simplesmente não é detectado como um dispositivo. Atualizado o cliente para a versão 2.9. Tentamos no formato jacarta. Nem um único método ajudou."
O problema quando o sistema simplesmente não vê Jacarta é muito sério e, talvez, o mais comum. Outra questão é que os motivos para o aparecimento deste erro podem ser diversas violações.
Muitas vezes ocorrem erros durante a detecção e instalação, mas também pode haver problemas com os kits de distribuição UTM, o que também acontece com muita frequência. Li atentamente todos os tópicos e, portanto, tenho certeza de que não apontarei nada aqui. erros existentes para Jacarta. Embora a questão aqui seja muito complicada, pois quando o sistema não vê Jacarta, isso pode ser um problema mútuo.
Em um dos tópicos já mencionados há um comentário tão interessante
O que os usuários do token Jacarta devem fazer agora que os laços entre Gemalto e Aladdin foram rompidos?
No fórum www.egaisa.net
Foram encontrados 5 tópicos de discussão
Majoritariamente erros típicos ao inicializar o trabalho, bem como quando todas as configurações já foram feitas, o funcionamento de Jacarta fica inconsistente. Também ocorrem erros frequentes após atualizações quando o sistema não encontra ou vê Jacarta
Se você ler os fóruns com mais atenção, verifica-se que no estágio inicial todos venderam o token Jacarta para EGAISA, sem se aprofundar nos detalhes e sem educar os clientes de que não só Jacarta poderia ser... Mas já conversamos sobre isso mais de uma vez, e você pode ver.
Voltemos ao fórum EGAIS.
No total, temos 630 respostas ao mecanismo de busca durante todo o nosso trabalho. Naturalmente, não faz sentido considerar problemas com mais de um ano.
Por exemplo, um dos erros mais comuns
Por que Jacarta tem críticas negativas?
Resumindo, o token de Jacarta é usado por muitas pessoas, mas sua estabilidade é fraca. Também descobri a opinião de que isso pode ser. dependendo do “lote de entrega”, isso provavelmente é muito estranho, já que o software deveria ser igual para todos. Talvez isso seja o resultado do fato de que no final Jacarta é montada a partir de muitas partes díspares, o que leva ao trabalho instável e à morte de todo o organismo como um todo.
Na próxima série falaremos sobre Rutoken, cartões inteligentes e outros produtos CIPF.
Obrigado por manter contato.
A operadora Jacarta PKI/GOST é bloqueada quando são feitas várias tentativas de inserir um código PIN incorreto. Neste caso, a conexão com o servidor FSRAR é perdida e os dados da fatura não entram no seu sistema contábil. Como desbloquear rapidamente a chave e restaurar o trabalho com EGAIS?
Por padrão, todas as novas mídias possuem as seguintes senhas:
PKI | 11 11 11 11 |
Administrador PKI | 00 00 00 00 |
GOST | 0987654321 |
Administrador GOST | 1234567890 |
Para remover o bloqueio, o Jacarta Unified Client deve estar instalado em seu computador. Se a configuração e instalação do EGAIS foram realizadas pelos nossos especialistas, então você já possui este programa.
Execute o programa e espere até a janela Cliente único Informações sobre a operadora Jacarta PKI/GOST serão exibidas.
A seção GOST contém o certificado KEP emitido pelo centro de certificação. Tome cuidado- Você não pode remover nenhum componente desta seção. Após a exclusão, você deverá entrar em contato novamente com o centro de certificação para emitir uma chave.
Para desbloquear o código PIN GOST, menu superior“Operações do aplicativo” selecione o primeiro item “Desbloquear PIN do usuário”. Uma notificação aparecerá na tela informando que a remoção do bloqueio zerará o contador de tentativas de entrada incorretas.
Clique em “OK” e na janela recém-aberta digite Código PIN do administrador Jacarta GOST 1234567890. Após redefinir o contador de erros, insira o código PIN do usuário padrão GOST 0987654321.
Importante: este procedimento apenas ajudará você a zerar o contador, mas não a alterá-lo senha esquecida para um novo. Se você alterou a senha GOST padrão e a esqueceu, será necessário inicializar e registrar a chave novamente no centro de certificação.
O contêiner PKI contém uma chave RSA gerada em conta pessoal no site egais.ru. Se você perder seu código PIN, esta seção pode ser inicializada (totalmente limpa), pois você mesmo pode regravar a chave gratuitamente, sem entrar em contato com um centro de certificação.