Console administrativo
O console administrativo fica em /admin no Servidor. É uma aplicação web Blazor que pode ser lida em
inglês ou em português do Brasil, conforme o Accept-Language do navegador e o botão de idioma na
barra superior; duas pessoas podem ler a mesma implantação em idiomas diferentes ao mesmo tempo. Vereditos de
certificado, nomes de eventos de auditoria, linhas de log e as mensagens do próprio Signer ficam em
inglês em todas as telas.
Tudo o que o console mostra é lido do banco de dados da plataforma, e tudo o que ele altera é gravado na Trilha de Auditoria, com a conta autenticada como autora. A barra superior é compacta: um botão redondo troca o idioma, e um botão de conta reúne a conta e a saída. A versão do Servidor aparece no menu de navegação lateral. Quem entra cai no Painel, e o mesmo vale para um login concluído que não tinha outro lugar para onde voltar.
Entrar no console
Uma Conta Administrativa é um login local: um endereço de e-mail, uma senha de pelo menos doze
caracteres e um Segundo Fator de um aplicativo autenticador. Não há provedor de identidade externo
nem e-mail de redefinição de senha. A primeira conta é criada a partir de Admin:Bootstrap:* num
Servidor cuja tabela de contas está vazia; todas as seguintes são criadas por um Administrador na tela
Configurações e usuários, e ele entrega a senha inicial pessoalmente.
No primeiro login, a conta faz o cadastro do segundo fator: o console mostra um QR code para o aplicativo autenticador e, em seguida, um conjunto de Códigos de Recuperação, mostrado uma única vez. Um Código de Recuperação é um substituto de uso único para o autenticador; um conjunto novo substitui todo o antigo. Guarde os códigos num lugar que não se perca junto com o celular.
Acesso com Certificado
Uma implantação também pode permitir a entrada com um e-CPF ICP-Brasil lido pelo Lacuna Web PKI.
O recurso vem desligado e é ativado na configuração da implantação (Admin:CertificateSignIn:Enabled,
com Admin:CertificateSignIn:WebPkiLicense indicando o nome de host que as pessoas digitam; veja
Configuração). Onde está ativado, a página de login e
uma página própria, /admin/login/certificate, em que o certificado é escolhido, trazem no alto dois
links, Senha e Certificado digital, um para cada forma de entrar. Só a página do certificado
traz o componente Web PKI e a licença; a página de login não traz nenhum dos dois:
- A página de login lembra a forma de entrar. Uma entrada aceita, por senha ou por certificado,
grava um cookie,
TrustBridge.SignInCredential, mantido por um ano e enviado só para/admin/login, e um navegador que entrou pela última vez com certificado abre na página do certificado. Uma tentativa recusada ou bloqueada abre o formulário de senha, e o link Senha também, qualquer que tenha sido a última forma usada no navegador. - Só certificados e-CPF aparecem na lista, um por linha: o titular, o emissor e a validade, com um selo Certificado A3 ou Certificado A1 conforme a classe que a política ICP-Brasil do certificado declara, o que não diz nada sobre onde a chave dele fica. A partir de seis certificados, a lista tem uma busca por nome ou emissor e uma contagem. Os certificados expirados aparecem sob um título próprio, Expirados, esmaecidos e sem poder ser escolhidos. Um e-CNPJ, ou um certificado sem CPF, não é oferecido. Sem nenhum no computador, a página informa que nenhum certificado com CPF foi encontrado; só com expirados, ela diz isso e pede um token ou cartão com um e-CPF válido.
- Só em navegadores de computador. Num celular ou tablet, a página informa que o recurso só existe em computador. O Web PKI é servido pelo próprio Servidor, então uma implantação isolada da rede (air-gapped) funciona; um navegador sem o componente recebe a opção Instalar o Web PKI.
- Sem senha e sem a etapa do Segundo Fator. A pessoa escolhe o certificado, a janela do próprio
token pede o PIN quando há um, e o certificado assina um desafio de uso único. Só um veredito
ACTIVEpassa, contra as Autoridades Certificadoras Confiáveis e as raízes da ICP-Brasil do Servidor. Uma conta que ainda precisa cadastrar o Segundo Fator passa antes pelo cadastro. - Ele abre a conta cujo CPF vinculado o certificado traz. O vínculo é um CPF, nunca um certificado, então um certificado renovado continua funcionando. Um Administrador o define na tela de contas (veja Configurações e usuários); ninguém define o próprio.
- Recusas anteriores à identificação da conta são explicadas por completo (componente ausente, certificado não confiável, expirado, revogado, que não é e-CPF). Um certificado que não corresponde a nenhuma conta ativa recebe a mesma resposta que uma senha errada.
- Há limite de requisições (rate limiting): dez desafios por minuto por endereço (um endereço IPv6 conta pelo /64) e no máximo oito verificações de certificado ao mesmo tempo; acima disso, a página pede para tentar de novo em instantes. Uma requisição de desafio desiste depois de trinta segundos, e o tempo de vida de um desafio é contado no relógio do Servidor, então um navegador com o relógio adiantado não tem o prazo encurtado. Uma entrada por certificado que falha nunca conta para o bloqueio por senha, e uma conta bloqueada por senhas erradas ainda entra com o certificado.
As senhas podem ser desligadas com Admin:CertificateSignIn:Required. A página de login então
manda todo visitante para a página do certificado, que deixa de mostrar os dois links, e uma conta sem CPF vinculado não consegue entrar de jeito nenhum,
inclusive as contas novas. Como Admin:SecondFactor:Required, é só configuração da implantação; a
página Segurança traz o que conferir antes de ligar e o caminho de volta quando ninguém
consegue entrar.
Perfis
| Perfil | Pode |
|---|---|
| Administrador | Ler tudo e mudar o estado da plataforma: admitir, revogar e remover máquinas, enviar e oferecer Versões da Estação de Trabalho, cadastrar aplicações, emitir chaves, definir a Franquia de Assinaturas de uma aplicação e ligar a Assinatura de hash, o PIN por transação, o PIN dispensado na criação e o REST PKI Core dela, importar e desativar Certificados do Cofre, adicionar e remover Autoridades Certificadoras Confiáveis, alterar configurações, gerenciar contas e definir o CPF vinculado delas, e fazer Assinaturas de teste. |
| Auditor | Ler tudo, sem alterar nada. |
A página inicial (Landing Page) em / é o que o navegador vê antes do login. Ela diz o que é o
Servidor e traz links para seguir adiante; não mostra nenhum estado da plataforma. Onde a implantação
ligou a Assinatura de teste pública (TestSignature:Enabled), ela também leva a /test-signature; veja
Assinatura de teste.
Monitoramento
Painel
/admin/dashboard, a página inicial do console e a primeira entrada do menu de navegação lateral,
que os dois perfis podem ler. Ele mostra a Atividade de assinatura da plataforma: os documentos
assinados e os hashes assinados pela Assinatura de hash, sempre como dois números e nunca somados, e as
Estações de Trabalho que participaram. Os números são consolidados: uma passagem em segundo plano
lê a Trilha de Auditoria uma vez por minuto, cinco minutos atrás, e o alto da página diz até que
momento eles estão consolidados. Nada do que uma chamada de assinatura faz fica mais lento ou mais
longo por causa do Painel.
- Três abas, Hoje, Este mês e Últimos 30 dias, escolhem o período. O período é dito numa frase,
como Hoje, até agora, foram assinados 11 documentos e 538 hashes. 4 Estações de Trabalho
participaram., com os outros períodos, entre eles desde a instalação, numa linha abaixo dela. Duas
fileiras de barras mostram os últimos 30 dias, uma para documentos e outra para hashes, com os dias do
período em cor cheia e o dia de hoje hachurado, porque ainda está contando. Um dia e um mês começam à
meia-noite em
Dashboard:TimeZone(UTC, a menos que a implantação indique uma zona IANA). - O que precisa de você, ao lado da frase, lista o que está errado agora, cada linha com a tela que resolve: a Atividade de assinatura atrasada (abre o Log do Servidor), as falhas das últimas 24 horas (a Trilha de Auditoria), as Estações de Trabalho recusadas até serem atualizadas, as Estações de Trabalho admitidas não conectadas (o filtro Admitidas, desconectadas da tela Estações de Trabalho), as Estações de Trabalho admitidas com uma leitora com falha e os tokens bloqueados, os dois vindos dos Relatórios das Estações de Trabalho, e os certificados que vencem em até 30 dias (o Registro de Certificados). Nada precisa de você. só aparece depois de uma passagem que leu tudo isso e não está defasada.
- Quatro painéis de etapas acompanham uma assinatura no período: Pedido por, os documentos e hashes de cada Aplicação Cliente; Aguardou autorização, quanto tempo os titulares levaram para responder a uma Autorização de assinatura, uma etapa só das Estações de Trabalho; Assinado em, as Estações de Trabalho contra o Cofre de Certificados, com quantas Estações de Trabalho admitidas estão conectadas agora; e Resultado, as falhas por evento e código, a parcela dos documentos tentados que falhou e o minuto de pico como taxa por segundo, comparada à meta de 10/s sustentados.
- Quanto tempo leva assinar, recolhido abaixo dos painéis, é a tabela de tempos: por documento assinado e por chamada de Assinatura de hash, numa Estação de Trabalho e no Cofre de Certificados, o p50 e o p95 de cada etapa. Os números são aproximados, lidos de faixas fixas de duração. As medições do próprio Servidor ficam separadas do relato da máquina sobre as próprias etapas, que é exibido e nunca usado para decidir nada.
- As Assinaturas de teste são contadas à parte, numa linha no pé da página, e ficam fora de todos os outros números.
A Atividade de assinatura é mantida enquanto a instalação existir, então "desde a instalação" sobrevive à retenção da Trilha de Auditoria e pode ser maior do que o que a Trilha de Auditoria ainda guarda. Na primeira inicialização do Servidor 1.17.0 ou posterior, ela é preenchida retroativamente a partir de toda a Trilha de Auditoria, e os documentos mais antigos que a linha de auditoria mais antiga que sobrou são recuperados das Operações de Assinatura. Até isso terminar, a página diz Nada foi consolidado ainda; onde a Trilha de Auditoria já tinha apagado linhas antigas, uma nota indica a data desde a qual os hashes são contados. Se a Atividade de assinatura parar de avançar, O que precisa de você e a faixa de situação dizem onde ela parou, e o log do Servidor diz por quê. Uma Assinatura de teste ainda em execução segura os números de propósito, enquanto durar.
A faixa de situação
Toda página traz, abaixo da barra superior, uma faixa de contagens: estações de trabalho conectadas, estações que precisam de atualização para se conectar, sessões ativas, documentos e hashes assinados nas últimas 24 horas consolidadas, falhas nas últimas 24 horas e certificados a vencer em 30 dias. Cada chip abre a tela que ele resume, já filtrada: as máquinas conectadas, as que exigem atualização, as sessões ativas, o Painel, as falhas da Trilha de Auditoria desde o início da contagem (um chip Desde …, que pode ser fechado, na Trilha de Auditoria) e os certificados a vencer. O chip de assinados lê a Atividade de assinatura do Painel, então conta os documentos e hashes de fato assinados, e a dica dele indica até que momento está consolidado. Antes de a Atividade de assinatura ser contada pela primeira vez, ele mostra Atividade de assinatura ainda não consolidada, e, quando ela para, um chip mostra Atividade de assinatura parada em … e abre o Painel. Quando o banco de dados não responde, os chips ficam esmaecidos e informam que os números estão defasados.
Trilha de Auditoria
/admin/audit. O registro somente de acréscimo (append-only) dos eventos da plataforma: acesso à API,
ciclo de vida das sessões e das assinaturas, Assinatura de hash e Autorizações de assinatura, eventos
de estações de trabalho e de PIN, atualizações da frota, entregas de callback, Assinaturas de teste,
ações administrativas e entradas no console. Uma linha por evento com o
momento (UTC), o nome do evento, o autor, o objeto e o resultado, além dos detalhes; uma linha sobre a
sessão ou o certificado de uma Empresa também mostra o CNPJ. PINs, Provas de PIN, conteúdo de
documentos e bytes de assinatura nunca aparecem.
Alguns detalhes valem a pena. Toda linha de resultado de assinatura (signing.completed ou -failed,
hash-signing.completed ou -failed) traz as etapas da chamada em timing e, quando a máquina deu
um, o relato dela sobre as próprias etapas em machineReported, quer a implantação envie o header
Server-Timing ou não. Toda linha que a execução de assinatura de um documento grava indica em
documentSigner o mecanismo que o montou, e session.created diz se um PIN foi comprovado na criação
(pin: "proven" ou "none"). A tela Aplicações Cliente grava
admin.application-signature-allowance-changed (o valor antes e depois),
admin.application-document-signer-changed (o mecanismo antes e depois) e
admin.application-session-pin-waived ou -required. Uma remoção grava admin.workstation-removed,
que identifica a máquina por completo: o nome da máquina, o thumbprint da chave, quando ela foi admitida
pela primeira vez, o estado do qual foi removida e se estava conectada.
Uma linha api.call diz qual erro quem chamou recebeu (Servidor 1.24.0). Ela guarda nos detalhes,
como errorCode, o código de erro com que a chamada foi respondida, e a célula Evento o mostra
depois do status HTTP, como em GET /v1/certificates/info 401 SESSION_EXPIRED. Só o status não diz
qual foi: UNAUTHORIZED e SESSION_EXPIRED são os dois 401, e SERVER_BUSY divide o 429 com
TOO_MANY_PIN_ATTEMPTS. Só o código é guardado, nunca a mensagem nem os detalhes do erro, e ele fica em
inglês. Uma chamada respondida sem envelope de erro não traz o campo, e uma linha gravada antes da 1.24.0
aparece como antes.
Uma recusa que a máquina não conseguiu levar a um Tray App diz por quê. Uma linha
signing.authorization-refused cujo motivo é NO_TRAY traz detail (Servidor 1.22.0, a partir do
Workstation 1.9.0): qual dos motivos da máquina foi, a sessão do Windows no console, as sessões em que
havia um Tray App conectado e o build do Tray. Uma linha pin.prompt-answered cuja resposta é
Undeliverable traz o mesmo detail para um pedido de PIN na criação da sessão (Servidor 1.23.0, a
partir do Workstation 1.10.0). O detail é nulo em qualquer outro motivo, e vindo de uma máquina mais
antiga. A aba Eventos da máquina diz cada motivo por extenso; a página
Resolução de problemas lista todos.
Filtros: um autor (nome de exibição ou id exato), um CPF, um CNPJ, um id de sessão, uma chave de API (a
trilha de uma única chave, incluindo as chamadas recusadas), um Id da Estação de Trabalho (as
linhas de uma máquina, de todos os tipos de evento), um tipo de evento, um resultado, um id de
correlação (toda a trilha de uma requisição) e um intervalo de tempo. O campo Id da Estação de
Trabalho (Servidor 1.23.0) mostra o nome da máquina, diz Estação de Trabalho removida. Seus eventos
continuam na trilha. enquanto a trilha ainda guarda a remoção dela, ou Nenhuma Estação de Trabalho tem
este id.; as linhas de uma máquina removida mantêm o id dela e continuam sendo encontradas. Um link com
workstationId= preenche o campo, e a aba Eventos da máquina leva até ali. Outras telas levam à
trilha por uma coluna Trilha, de modo que uma Sessão de Assinatura ou uma linha de chave de API fica
a um clique do seu histórico. Uma linha que o banco de dados recusou foi gravada no log do Servidor no
nível Critical, e o console mostra um alerta quando isso acontece.
A retenção é definida por Audit:RetentionDays (365 por padrão), uma das sete configurações que um
Administrador pode alterar na tela Configurações e usuários. A limpeza diária nunca exclui uma linha
que a Atividade de assinatura do Painel ainda não contou: ela espera o primeiro preenchimento
retroativo e, enquanto a Atividade de assinatura estiver atrasada, mantém linhas além da retenção
(Operação).
Frota
Estações de Trabalho
/admin/fleet. Todas as máquinas admitidas: situação, nome da máquina, Conta no console, versão do
serviço, Atualizações, situação em relação às Autoridades Certificadoras Confiáveis deste Servidor,
número de certificados, Relatório e quando foi vista por último. Uma linha conectada mostra
conectada e há quanto tempo a conexão atual foi feita, em vez da última vez em que foi vista. A
coluna Conta no console ocupou o lugar do sistema operacional no Servidor 1.23.0; o sistema
operacional fica no cabeçalho do painel de detalhes.
Os filtros são uma fileira de chips, cada um com quantas máquinas reúne, contadas com a busca e
qualquer linha dos Relatórios das Estações de Trabalho aplicadas, então um chip lista o número que
mostra: Todas, Conectadas, Desconectadas (inclusive as revogadas), Admitidas,
desconectadas, Exigem atualização, Com recusas (24h), Conta no console, sem Tray e os
dois filtros do Relatório da Estação de Trabalho, Leitora com falha e Token bloqueado. Um link
escolhe um deles com ?show=: online, admitted-offline (o que a linha de não conectadas do Painel
abre), update-required, refusals, console-no-tray, reader-failed ou token-locked. Um link
?workstation=<id> abre o painel de uma máquina sobre a frota inteira; é para lá que as telas Sessões
de Assinatura e Operações de Assinatura levam uma máquina.
A busca encontra o nome da máquina, a Conta no console e os titulares dos certificados que o Registro de Certificados guarda na máquina: o nome do titular, o nome da Empresa de um e-CNPJ, o CPF e o CNPJ de um e-CNPJ, digitados com ou sem pontos, hífen e barra. Uma máquina é encontrada pelo login do Windows de quem liga para o suporte, pelo nome ou pelo CPF dessa pessoa. O resto do sujeito de um certificado, como o emissor, não encontra nada.
A coluna Conta no console diz quem está no console de cada máquina, segundo o último Relatório da
Estação de Trabalho dela: a conta do Windows conectada ao
console físico, pelo nome DOMÍNIO\usuário, ou pelo SID quando o nome não é resolvido. Ao lado da
conta fica o pior problema do Tray App ali. A célula nunca fica vazia:
| Célula | Significado |
|---|---|
| Uma conta | Alguém está conectado ao console, desbloqueado, com um Tray App da mesma versão do serviço em execução. |
| Uma conta · sem Tray | Alguém está conectado e nenhum Tray App roda nessa sessão, então nada ali consegue mostrar um pedido de PIN. As chamadas de assinatura com PIN por transação e os pedidos de PIN na criação da sessão enviados a esta máquina são recusados até que um rode. |
| Uma conta · Tray e uma versão | O Tray App roda uma versão diferente da do Workstation Service. |
| Uma conta · bloqueada | A sessão do console está bloqueada. |
| Ninguém no console | Ninguém está conectado ao console. 1 outra sessão com Tray abaixo significa um titular na Área de Trabalho Remota, ou que trocou de usuário e saiu do console, onde nenhum pedido de PIN chega. |
| Precisa da Estação de Trabalho 1.10.0 | A máquina roda uma versão anterior, que não informa o console. |
| Sem relatório | O relatório da máquina está desligado, ou ela não enviou nenhum desde que passou a rodar a versão atual. |
Uma máquina desconectada mostra o último console que informou, com informado e há quanto tempo, e o mesmo vale para uma máquina cujo último relatório não conseguiu ler o console. Uma máquina revogada mantém o console; o de uma máquina removida sai junto com o registro dela. Uma mudança de console não grava nada na Trilha de Auditoria.
Conta no console, sem Tray lista as máquinas Admitidas conectadas cujo último relatório tem alguém conectado ao console e nenhum Tray App ali: as máquinas que vão recusar o titular, encontradas antes de alguém ligar. Uma máquina desconectada, ou uma cujo último relatório não conseguiu ler o console, não é contada, mostre o que mostrar a célula. Ninguém no console, relatório desligado e uma versão antiga demais para informar o console também ficam de fora.
N recusas (24h), na célula de situação, conta as Recusas da Estação de Trabalho das últimas 24 horas, pelo relógio do Servidor, que foram um problema da máquina: uma Autorização de assinatura que ela recusou, ou um pedido de PIN na criação da sessão que ela não conseguiu mostrar, que expirou ou cujo PIN não conferiu. Um titular que recusou, uma Aplicação Cliente que desistiu de esperar e uma chamada autorizada depois de a sessão ter terminado são escolha de alguém e ficam de fora; um PIN errado conta, porque alguns seguidos bloqueiam o token. Com recusas (24h) lista as máquinas Admitidas que têm o chip; uma máquina revogada mantém o chip e fica fora do filtro. A contagem não vai para O que precisa de você, no Painel.
O painel de uma máquina mostra no cabeçalho o nome da máquina, a situação e o sistema operacional, e as duas ações do Administrador numa fileira própria logo abaixo. Em seguida, uma seção No console, o protocolo, quando ela foi vista pela primeira vez, a impressão digital e onde a máquina guarda a chave, a oferta e a última atualização, o Relatório da Estação de Trabalho e três abas: Certificados, Sessões e Eventos.
- No console mostra a Conta no console com o SID ao lado, se a sessão está Bloqueada ou Desbloqueada, o Tray App no console (Em execução e a versão, com uma observação quando é mais antigo que o do serviço, ou Não está em execução) e as Outras sessões com Tray, contadas sem as contas delas. Uma máquina que não mostra nenhum console diz por quê: o relatório dela está desligado, a versão é antiga demais para informar o console, ou ela ainda não o informou desde que passou a rodar a versão atual.
- A aba Eventos diz cada Recusa da Estação de Trabalho por extenso: uma Autorização de assinatura
recusada pelo motivo, um
NO_TRAYpela causa que a máquina informou, e um pedido de PIN na criação da sessão respondidoUndeliverable,TimedOutouMismatchcomo um pedido recusado. Onde o titular pode resolver, segue O que pedir:; uma recusa do titular ou uma Aplicação Cliente que desistiu de esperar aparece marcada como Escolha de alguém, não um problema da máquina. O código bruto e a sessão ficam abaixo, em letra pequena. Um motivo que este Servidor não conhece aparece como o código, e conta como problema. - Somente recusas, uma chave na aba, lista as recusas mais recentes da máquina em vez dos eventos mais recentes, para que as conexões não as empurrem para fora. Ela vem ligada quando o painel abre numa máquina com uma recusa que foi problema nas últimas 24 horas. Ver tudo na Trilha de Auditoria, ao lado, abre a Trilha de Auditoria filtrada na máquina.
- Cada desconexão na aba Eventos informa por que a conexão terminou (
revoked,removed,returned-to-queue,server-stopping,timed-out,errorouclosed).
Um Administrador tem duas ações no painel:
- Revogar máquina é o controle de segurança: a máquina para de autenticar na hora, as sessões vinculadas a ela não podem mais assinar, e o pedido dela para entrar é recusado em vez de voltar para a fila, enquanto o registro dela continuar na frota. Não depende da cooperação da máquina, e é a resposta certa para uma máquina perdida, roubada ou comprometida. Uma máquina só volta para a fila de admissão pedindo isso pelo próprio Tray App.
- Remover máquina é organização, para uma máquina que foi reinstalada do zero, renomeada ou aposentada, ou admitida por engano. Veja Remover uma máquina.
Atualização necessária marca uma máquina que fala um protocolo mais antigo que o mais antigo aceito por este Servidor (o filtro Exigem atualização mostra essas máquinas). O handshake dela é recusado até que uma versão atual seja instalada nela manualmente ou por Política de Grupo. A partir do Servidor 1.15.0, são todas as máquinas com Workstation 1.4.x ou anterior. Uma máquina com Workstation 1.5.0 ainda se conecta e atende todas as sessões, mas nunca é escolhida para uma sessão cuja Aplicação Cliente tem o PIN por transação ativado até rodar o Workstation 1.6.0; ofereça essa versão a ela.
Oferecer uma versão. Selecione máquinas e use Oferecer versão…, ou Entregar a todas ainda não atualizadas… para todas as máquinas admitidas abaixo de uma versão, inclusive as desconectadas (elas recebem a oferta quando se conectarem). Esta segunda é uma seleção única: uma máquina admitida depois não entra, e qualquer máquina pode ser desmarcada antes de confirmar. Uma versão só alcança uma máquina admitida abaixo dela, que consiga receber atualizações do Servidor, cujo Publisher Pin liste o assinante da versão e cuja Política de Grupo deixe as atualizações ligadas; o diálogo lista as outras, com o motivo. Uma oferta substitui a que a máquina tinha antes. Retirar oferta a retira das máquinas selecionadas; uma máquina que já a instalou continua com ela. Oferecer de novo a uma máquina a versão que ela já tem oferecida é o jeito de fazer uma instalação que falhou ser tentada outra vez.
A coluna Atualizações mostra:
| Linha | Significado |
|---|---|
| Oferecida: e uma versão | A máquina tem uma oferta que ainda não terminou de processar. |
| Atualizada para uma versão | A última atualização foi instalada. |
| Atualização para … falhou | A instalação falhou. O painel mostra o código de saída do msiexec e o trecho do log dele que leva até a falha. |
| Atualização para … recusada | A máquina recusou o pacote e indica a verificação que falhou. |
| Atualizações desativadas por política | A Política de Grupo da máquina desliga as atualizações vindas do Servidor. As ofertas a deixam de fora; atualize-a da forma como foi instalada. |
| Precisa de atualização manual | A versão dela não recebe atualizações do Servidor, ou ela não conhece o certificado de assinatura de nenhuma versão acima da dela que este Servidor guarda. Instale a versão manualmente ou por Política de Grupo. |
Cada oferta e cada retirada é uma linha admin.workstation-release-offered ou
admin.workstation-release-withdrawn, e cada resultado que uma máquina informa é uma linha
workstation.update-installed, workstation.update-failed ou workstation.update-refused. A página
Instalação da estação de trabalho
explica o que uma máquina faz com uma
oferta.
A coluna de situação de confiança mostra uma de cinco indicações por máquina:
| Situação | Significado |
|---|---|
| Em dia | A máquina tem o conjunto de Autoridades Certificadoras Confiáveis em vigor. |
| Atrasada | A máquina ainda tem um conjunto anterior. Ela se atualiza em segundos enquanto conectada, ou na próxima conexão. |
| Recusa | A máquina está configurada para não aceitar o conjunto do Servidor (UseServerTrustedCas desligado). |
| Requer atualização | A máquina informou por último um protocolo antigo demais para pedir o conjunto (Workstation 1.0.x). Este Servidor recusa o handshake dela, então ela fica assim até que uma versão atual seja instalada nela. |
| Não informada | A máquina não informou qual conjunto tem. |
A coluna Relatório mostra o pior que o último Relatório da Estação de Trabalho da máquina disse: Leitora com falha, Token bloqueado, N tipos de erro (24h) (modelos de mensagem de erro vistos pela última vez no último dia) ou Sem relatório. Sem relatório nunca é um atestado de saúde: é uma máquina numa versão anterior ao Workstation 1.8.0, uma cuja implantação desligou o relatório, ou uma cujo último relatório foi enviado por outra versão que não a que ela roda agora. A seção Relatório da Estação de Trabalho do painel diz quando o relatório foi recebido e lista o que ele traz: a licença da PKI como a máquina a tem, o runtime do .NET, as opções de detecção de A3, de Pedido de PIN na inserção e de reinício da leitora, as leitoras deixadas com falha, cada token que ela vê (fabricante, modelo, número de série, os CPFs dos titulares e quão perto o PIN está de bloquear), cada middleware com a versão e se carregou, e os erros agrupados por modelo de mensagem, cada um com uma contagem, quando foi visto pela primeira e pela última vez, e os últimos valores e a exceção. Os modelos de mensagem são as próprias linhas de log da máquina, em inglês nos dois idiomas. Uma máquina revogada mantém o último relatório no painel.
Remover uma máquina
Remover máquina, ao lado de Revogar máquina na fileira de ações do painel de detalhes, faz o Servidor esquecer uma máquina admitida ou revogada. Só um Administrador tem essa ação, atrás de uma confirmação que pede o nome da máquina digitado por inteiro (em maiúsculas ou minúsculas). O que sai e o que fica:
- Sai: o registro da máquina, as entradas dela no Registro de Certificados, o Relatório da Estação
de Trabalho e as provas de PIN que falharam. Uma linha
admin.workstation-removedna Trilha de Auditoria a identifica por completo. - Fica: o histórico de assinaturas dela. As Sessões de Assinatura, as Operações de Assinatura e as
linhas da Trilha de Auditoria mantêm o id da máquina, e as listas de sessões e de operações a chamam
de estação de trabalho removida seguida do primeiro grupo desse id, que a linha de auditoria da
remoção associa a um nome de máquina enquanto for mantida. A Atividade de assinatura do Painel fica
igual antes e depois. Uma sessão ainda ativa na máquina não é encerrada nem cobrada: uma assinatura
nela recebe
422 WORKSTATION_OFFLINEcomdetailsworkstation removedaté ela expirar. - Uma máquina conectada é desconectada com o motivo
removed, e a confirmação avisa isso antes. Se ainda estiver instalada, a reconexão dela é recusada como uma chave desconhecida, e o pedido de admissão chega à fila como uma máquina nova, com um id novo, que precisa ser admitida de novo. - A recusa de uma máquina revogada vai junto com o registro, e a confirmação avisa isso: a mesma chave poderia pedir de novo e ser admitida. Mantenha revogada uma máquina perdida ou comprometida.
A remoção só vale para o estado que o painel mostrou: uma máquina admitida, revogada ou devolvida à fila nesse meio-tempo fica como está, e o painel informa que ela mudou. Remover também aparece na linha da fila de admissão de uma máquina que já foi admitida uma vez e foi devolvida para lá.
Fila de admissão
/admin/admission. Máquinas que pediram para entrar e estão aguardando uma pessoa. Cada linha mostra
o nome da máquina, o sistema operacional, as versões, a postura da chave (Chave em hardware ou
Chave em software) e a impressão digital dela, e há quanto tempo a máquina está aguardando.
Admitir a deixa entrar; na próxima reconexão, a máquina se conecta e passa para a tela Estações de
Trabalho.
Acima da tabela, a tela explica o que significa admitir: sem um canal independente (out-of-band)
contra o qual conferir uma impressão digital, admitir é uma decisão, e não uma verificação. Leia o nome
da máquina e a postura; se a implantação definir Admission:RequireHardwareBackedKeys, o controle
Admitir recusa uma máquina com chave em software, e a linha explica o motivo. Um pedido que ninguém
atende expira depois de Admission:PendingExpiry, contado a partir do último pedido da máquina.
Uma máquina que já foi admitida uma vez e foi devolvida à fila nunca expira, então a linha dela também oferece Remover, atrás da mesma confirmação com o nome digitado da tela Estações de Trabalho. O pedido de uma máquina que ninguém nunca admitiu não oferece Remover: ele expira sozinho.
Relatórios das Estações de Trabalho
/admin/workstation-reports, ao lado da tela Estações de Trabalho. Uma máquina no Workstation
1.8.0 ou posterior informa ao Servidor a própria situação sempre que se conecta e sempre que ela muda,
e o Servidor guarda o último relatório de cada máquina. Esta tela mostra o que os últimos relatórios das
máquinas Admitidas têm em comum, deixando as Revogadas de fora, em três tabelas: Erros por modelo de
mensagem, Tokens por fabricante e modelo (com os bloqueados contados) e Middleware por nome e
versão. Cada linha conta as máquinas e abre a tela Estações de Trabalho só nessas máquinas, sob um
chip que cita a linha e pode ser fechado. Os dois perfis podem lê-la.
Um relatório nunca é gravado na Trilha de Auditoria. Os grupos de erro aos quais nenhum relatório
acrescentou nada por WorkstationReports:ErrorRetentionDays (30 por padrão) são apagados por uma
varredura diária. Uma implantação pode desligar o relatório por máquina; essa máquina aparece como Sem
relatório, e o Servidor esquece o que guardava dela.
Versões da Estação de Trabalho
/admin/workstation-releases. Os pacotes do Workstation que este Servidor guarda para a frota, uma
linha por versão: a versão, quem a assinou, o tamanho do pacote, quando foi enviada e a quantas
máquinas está oferecida. Abaixo da tabela, a tela informa quantas versões estão armazenadas e quanto
espaço elas ocupam no banco de dados.
Enviar uma versão (Administradores): escolha um MSI assinado do Workstation de até 256 MB, e ele é lido durante o upload. O Servidor tira do próprio arquivo a versão, o protocolo que o pacote fala e o assinante, então nada é digitado. O pacote é recusado, com o motivo e sem nada armazenado, quando:
- não é um pacote do Windows Installer;
- não está assinado, ou a assinatura não pode ser lida;
- está assinado por um certificado que o Publisher Pin compilado neste Servidor não lista;
- a versão não são três números;
- não declara um protocolo, o que vale para toda versão do Workstation anterior à 1.3.0;
- fala um protocolo fora da janela deste Servidor (a partir do 1.15.0, o Servidor aceita 5 e 6, ou seja, Workstation 1.5.0 em diante), e a recusa manda atualizar o Servidor primeiro quando o pacote é mais novo;
- a versão já está armazenada (exclua-a antes para substituí-la);
- passa de 256 MB, ou o Servidor não consegue gravar no diretório temporário
/tmp/trustbridge-releases.
Cada recusa é uma falha admin.workstation-release-uploaded na Trilha de Auditoria. O upload é uma
única requisição: no App Service ele precisa terminar dentro do timeout de requisição do front-end
(cerca de quatro minutos), e um proxy reverso na frente do Servidor precisa de um limite de corpo
acima de 256 MB.
Excluir tira o pacote do banco de dados, e a cópia do Servidor junto. Uma versão oferecida a qualquer máquina não pode ser excluída até que as ofertas sejam retiradas; as máquinas que a instalaram continuam com ela. Num banco de dados pequeno, como o Azure SQL Basic, uma exclusão pode levar alguns minutos (ela tem um prazo de dez minutos, como um upload); a tela avisa quando ela começou, e uma falha do banco de dados tem uma mensagem de erro própria. Retirar de todas retira uma versão de todas as máquinas a que está oferecida. Um Auditor vê a tela inteira e não altera nada.
Registro de Certificados
/admin/certificates. Todos os Certificados de Estação de Trabalho que a frota anunciou: o titular e o
CPF, o CNPJ de um e-CNPJ, o certificado (sujeito, emissor, thumbprint), quais estações de trabalho
têm o certificado, com o estado de conexão de cada uma e quando foi vista por último, o veredito, a
validade e quando foi verificado. Num e-CNPJ, o CPF é o da pessoa que o detém pela Empresa, identificada
como Responsável. Busque por CPF, CNPJ, titular, impressão digital ou estação de trabalho; filtre
por situação ou por A vencer em até 30 dias. As entradas refletem o último estado conhecido; os
certificados de uma estação de trabalho desconectada continuam na lista, marcados como offline.
Uma linha UNTRUSTED oferece Confiar no emissor: o Servidor percorre a cadeia do certificado,
identifica a autoridade pela qual não conseguiu chegar a uma raiz e oferece adicioná-la como
Autoridade Certificadora Confiável. Uma máquina com um Workstation Service mais antigo não envia a
codificação do certificado, então as linhas dela não podem oferecer essa opção.
Sessões de Assinatura
/admin/sessions. Todas as Sessões de Assinatura: o titular, o CNPJ quando a sessão é de uma
Empresa, a Aplicação Cliente que a criou, a que a sessão está vinculada (um certificado numa
estação de trabalho identificada, ou o cofre), o estado (Ativa, Expirada, Desativada, Substituída,
Esgotada, Interrompida), quando foi criada e quando expira, o número de documentos assinados com ela
e, onde a Aplicação Cliente dela tinha uma Franquia de Assinaturas quando a sessão foi criada, quanto
já foi gasto dela. Cada linha leva à sua trilha. Uma sessão criada com PIN por transação informa isso
abaixo do id: PIN por transação, digitado na estação de trabalho ou PIN por transação, enviado pela
aplicação cliente. Desde o Servidor 1.23.0:
- O titular aparece pelo nome que o certificado dá, lido como a tela Operações de Assinatura lê
o de uma execução, com o CPF abaixo; a sessão de uma Empresa mantém Responsável. A coluna
Aplicação Cliente identifica a aplicação pela linha
session.createdque a sessão deixou. - A máquina vinculada é um link que abre o painel dela na tela Estações de Trabalho, com a célula Conta no console dela abaixo. A sessão de um Certificado do Cofre não tem nenhum dos dois. Uma sessão vinculada a uma máquina que depois foi removida mostra estação de trabalho removida e o primeiro grupo do id da máquina.
- Uma sessão ativa numa máquina com uma Recusa da Estação de Trabalho que foi problema nas últimas 24 horas fica destacada em cor, e diz quantas abaixo do chip Ativa, como 1 recusa na máquina (24h). Uma recusa do titular, uma chamada abandonada ou uma chamada que o titular autorizou depois de a sessão ter terminado não contam.
- Os filtros são contagens que funcionam como filtros, cada uma com quantas linhas lista, com a
busca aplicada: Todas, Ativas, Ativas com recusas (24h), Encerradas e Criações
recusadas (24h).
?show=liveescolhe Ativas, que é o que o chip de sessões ativas da faixa de situação abre, e?show=refusedescolhe Criações recusadas (24h). - A busca encontra o id da sessão, o nome, o CPF e o CNPJ do titular (com ou sem pontuação), a Aplicação Cliente, a impressão digital e o nome da máquina.
Criações recusadas (24h) lista, no lugar das sessões, todo POST /v1/sessions recusado nas
últimas 24 horas pelo relógio do Servidor: o "minha sessão não inicia", a um clique. Cada linha mostra
Quando, o titular pelo nome com o CPF abaixo, a Aplicação Cliente e o Por quê por extenso, com o
código em letra pequena, como Nenhum PIN estava disponível para comparar com o enviado. Em
Estações de trabalho que receberam o pedido, lista cada máquina a que a requisição pediu o PIN,
cada uma com a resposta nas palavras que a aba Eventos usa e um link para o painel dela, ou diz
Nenhuma máquina recebeu o pedido de PIN. Uma máquina anterior ao Workstation 1.10.0 mostra só o
Undeliverable, e uma máquina removida mantém o nome com que respondeu e não leva a lugar nenhum. As
200 mais recentes são listadas, e a tela avisa quando houve mais; as demais estão na Trilha de
Auditoria.
Operações de Assinatura
/admin/operations. Uma linha por documento enviado para assinatura: o nome do documento, o titular,
onde foi executada (uma estação de trabalho, o cofre, ou uma estação de trabalho removida e o
primeiro grupo do id dela), quando foi enviada, o estado (Pendente, Concluída, Com falha) e
a trilha. Um documento assinado com o REST PKI Core registra etapas próprias, rest-pki-core-prepare e
rest-pki-core-complete, onde o caminho do Signer registra prepare e complete. Uma execução
interrompida por um reinício do Servidor é encerrada por uma varredura como Com falha, com
RUN_STRANDED. Uma chamada de assinatura recusada nunca aparece nesta tela: ela não cria Operação de
Assinatura, e fica na aba Eventos da máquina e na Trilha de Auditoria. Desde o Servidor 1.23.0, a
tela diz o que deu errado numa execução:
- Os filtros são contagens que funcionam como filtros: Todas, Pendentes, Com falha
(24h) e Concluídas (24h), pelo relógio do Servidor. Com Com falha (24h) escolhido, uma
fileira de chips agrupa as falhas por causa, cada uma com a contagem, de modo que três
PIN_NOT_AVAILABLEque foram um token bloqueado se distinguem de um PIN que nunca foi digitado. A menos que uma busca as restrinja, as contagens de 24 horas e as causas contam toda execução que terminou no período, além das 200 execuções encerradas mais recentes que a tabela lista, e uma tabela que lista menos do que a contagem avisa. - Uma falha aparece por extenso, com O que pedir: onde o titular pode agir, como O token recusou o PIN. O código, a causa e a etapa ficam ao lado, em letra pequena.
- Ela diz se o token do titular assinou. Da etapa
signedem diante, assinou, e pode existir um documento assinado no serviço de assinatura. Uma execução que parou antes de o token ser consultado, ou cujo titular respondeu emhash-signque ele não assinou, mostra O token do titular não assinou: nada foi gasto. Uma que estourou o tempo, perdeu a máquina ou perdeu o cliente emhash-signaparece como desconhecida. - Uma execução pendente há mais tempo do que uma execução ativa pode durar (o dobro de
Signing:RequestBudgetmaisSigning:SignerCancelBudget) fica destacada em cor e diz o que está esperando, como Ainda pendente: esperando o token do titular assinar. - Uma execução com falha registra o que a Estação de Trabalho respondeu ao lado do código (a coluna
FailureCause), porque um PIN que não estava guardado, um PIN que o token recusou, um token bloqueado e uma autorização que a máquina não tinha mais terminam todos comoPIN_NOT_AVAILABLE. Uma execução que falhou antes do Servidor 1.23.0 aparece só pelo código. - O titular aparece pelo nome, tirado do certificado, com o CPF abaixo. A máquina é um link para o painel dela na tela Estações de Trabalho e traz a célula Conta no console dela.
- Um filtro de Aplicação Cliente fica ao lado da busca, que encontra o documento, o titular, o CPF, a Aplicação Cliente, a estação de trabalho e o id de correlação. O id de correlação que o cliente pode citar fica na dica do botão de trilha da linha.
Acesso
Aplicações Cliente
/admin/applications. Os sistemas externos que chamam o SignSession Contract, cada um com suas chaves
de API. Cadastre uma aplicação com um nome (como a Trilha de Auditoria vai chamá-la) e uma descrição e,
em seguida, use Emitir chave: dê à chave um nome que diga onde ela está implantada e, se quiser,
uma data de validade. O valor da chave é mostrado uma única vez, num diálogo, e só o SHA-256 dele é
armazenado; nada o recupera depois. Cada linha de chave mostra a idade, o último uso e a trilha da
própria chave.
Uma chave pode ser revogada (a próxima requisição que a apresentar é recusada, permanentemente) e
ter a validade editada. Uma aplicação pode ser desativada, o que recusa todas as chaves dela de uma
vez, mas as mantém, e depois ativada de novo. Chaves ausentes, desconhecidas, revogadas, expiradas
e de aplicações desativadas são todas rejeitadas da mesma forma no protocolo, com UNAUTHORIZED.
O cartão de cada aplicação traz a Franquia de Assinaturas dela e quatro opções, todas por aplicação e nunca por chave. As opções vêm desligadas para toda aplicação até que um Administrador as ligue; um Auditor as vê somente leitura.
- Franquia de Assinaturas: quantas chamadas de assinatura cada Sessão de Assinatura criada pela
aplicação pode fazer. O cartão mostra o valor, ou que não há nenhum, caso em que a sessão é limitada
só pela sua janela de inatividade. Um Administrador o altera no diálogo Franquia de Assinaturas,
em Chamadas de assinatura por sessão; deixar o campo em branco remove o limite, e um valor abaixo
de 1 é recusado. Toda sessão que a aplicação criar depois recebe esse valor e termina como
Esgotada depois desse número de chamadas de assinatura, qualquer que seja a chave da aplicação que
as faça. Uma sessão que já existe mantém a franquia que recebeu, então baixar o valor não encerra nada
no meio de um lote. Uma Assinatura de teste e uma chamada de Assinatura de hash recebem a franquia da
aplicação cuja chave criou a sessão. Auditada como
admin.application-signature-allowance-changed. Ela substituiSessions:SignatureAllowance, que o Servidor 1.17.0 e posteriores não leem mais (Configuração). - Assinatura de hash: se a aplicação pode chamar
POST /v1/signatures/hashese fazer a chave de um titular assinar hashes que ela mesma calculou. Nada verifica do que eles são hashes, então conceda-a só a um integrador que monta as próprias estruturas assinadas; o console pede confirmação. Revogá-la recusa a próxima chamada de Assinatura de hash da aplicação e não afeta a assinatura de documentos nem as sessões dela. Auditada comoadmin.application-hash-signing-grantedeadmin.application-hash-signing-revoked. - PIN por transação: se toda chamada de assinatura numa sessão que a aplicação cria precisa do PIN
do titular para aquela chamada, digitado no Tray App do titular, ou enviado pela aplicação para um
Certificado do Cofre (API REST). Vale para as sessões criadas
depois da mudança, e o console pede confirmação antes de ligá-lo. Ligue-o só quando a página da
frota mostrar as máquinas dos titulares da aplicação no Workstation 1.6.0: um titular cujas
máquinas são todas mais antigas recebe
WORKSTATION_OFFLINE. Auditado comoadmin.application-transaction-pin-enabledeadmin.application-transaction-pin-disabled. - PIN dispensado na criação: só aparece enquanto o PIN por transação está ligado. Permite que a
aplicação crie uma Sessão de Assinatura sem o PIN do titular, vinculada só onde exatamente um
certificado pode atendê-la; toda chamada de assinatura nela continua precisando do PIN
(API REST). O console pede confirmação antes de ligá-lo, dizendo o
que ele concede: qualquer chave de API da aplicação passa a poder criar uma sessão para qualquer CPF
com um certificado, ler esse certificado e substituir a sessão ativa desse CPF, sem o PIN. Vale para
as sessões criadas depois da mudança. Desligar o PIN por transação desliga este junto, depois de uma
confirmação própria. Auditado como
admin.application-session-pin-waivedeadmin.application-session-pin-required; desligar o PIN por transação grava a linha-requiredao lado da sua. - Assinar documentos com o REST PKI Core: se os documentos da aplicação são assinados pelo REST PKI
Core, o serviço de assinatura de PDF da Lacuna, em vez do Signer. Com a opção ligada, o REST PKI Core
prepara e conclui todo documento que as chaves da aplicação assinam, em torno da única assinatura que a
chave do titular faz, guarda os documentos assinados e pode marcar as páginas deles conforme as
configurações do plano contratado; o cartão avisa isso. Nada muda no protocolo, e a Assinatura de hash
não é afetada. A opção vale a partir da próxima chamada de assinatura da aplicação, em qualquer sessão
em que ela assine. Num Servidor cuja implantação não configurou a seção
RestPkiCore, ela é recusada, com o aviso de que o REST PKI Core não está configurado; voltar para o Signer nunca é recusado, e um documento assinado por qualquer um dos dois continua disponível depois de uma troca. O que precisa ser preparado antes, neste Servidor e no lado do REST PKI Core, está em Configuração. Auditada comoadmin.application-document-signer-changed, com o mecanismo antes e depois.
Certificados do Cofre
/admin/vault. Só existe num Servidor com Vault:Enabled; caso contrário, a tela informa que o cofre
está desligado e cita a configuração. Lista todos os certificados que o próprio Servidor guarda: o
titular e o CPF, o CNPJ de um e-CNPJ, o certificado, o veredito, a validade, quando foi importado e
se está em uso. O aviso sobre o Protetor do Chaveiro fica sempre à vista; o aviso sobre a senha de
importação fica em Sobre a senha de importação.
Importar um PFX: um certificado e sua chave privada por arquivo, um e-CPF ou e-CNPJ da ICP-Brasil,
junto com a senha do arquivo. Um e-CNPJ precisa trazer um CNPJ válido e um CPF válido do Responsável. A
importação comprova que o arquivo pode ser aberto pelo leitor que vai assinar com ele; um arquivo cuja
chave esteja protegida com pkcs5PBES2 é recusado com uma mensagem que indica a reexportação no
formato legado (openssl pkcs12 -export -legacy). A senha é usada uma vez e nunca armazenada: a
aplicação cliente a fornece como o pin em cada criação de sessão. Um Servidor cuja licença da PKI foi
recusada recusa toda importação.
Duas ações por certificado. Desativar o deixa Fora de uso: ele não cria sessão nem assina nada até ser ativado de novo, enquanto o arquivo, a chave e o histórico permanecem. Excluir destrói o material da chave privada e não pode ser desfeito; a confirmação pede que você digite o CPF. Nenhuma das duas afeta uma sessão ativa já vinculada ao certificado, exceto pelo fato de que o segredo retido para essa sessão é descartado na hora, então a próxima assinatura dela é recusada. Não existe caminho de exportação ou download em lugar nenhum.
Autoridades Certificadoras Confiáveis
/admin/trusted-cas. As autoridades certificadoras em que um Administrador mandou este Servidor
confiar, além das raízes da ICP-Brasil que a implantação já reconhece. Cada linha: o tipo (Raiz ou
Intermediária), a autoridade, o certificado e a validade dela, o que depende dela e desde
quando ela é confiável.
Confiar em uma autoridade certificadora: faça upload de um arquivo, DER, PEM ou um pacote PKCS#7,
identificado pelo conteúdo, e não pelo nome. Um arquivo pode trazer uma cadeia inteira, e todas as
autoridades dela são oferecidas. O certificado de um titular também é aceito: o Servidor lê o emissor
dele, segue os ponteiros caIssuers do próprio certificado pela web quando necessário (no máximo
quatro buscas) e oferece o que encontrou, marcando uma autoridade obtida de uma URL indicada pelo
próprio certificado não confiável como uma cuja impressão digital deve ser conferida com cuidado
especial. Nada passa a ser confiável até você confirmar a oferta.
A adição entra em vigor no Servidor em execução, sem reinício, e chega em segundos a todas as máquinas
admitidas conectadas. Deixar de confiar numa autoridade pode tornar Certificados de Estação de
Trabalho e Certificados do Cofre UNTRUSTED e, onde o Acesso com Certificado está ativado, recusar a
entrada de administradores; por isso a linha e a confirmação contam antes o que depende dela:
- No cofre: número exato assim que todo Certificado do Cofre tem uma cadeia registrada, o que a revalidação de hora em hora e cada importação gravam. Até lá, e nas linhas cuja cadeia nunca foi construída, a contagem diz pelo menos. Certificados expirados ficam de fora.
- Em máquinas: sempre pelo menos, comparado pelo nome do emissor.
- Entre Contas Administrativas: pelo menos, contando as contas que entraram pela última vez com um certificado desta autoridade. Só aparece onde o Acesso com Certificado está ativado ou alguém ainda tem um CPF vinculado. A contagem não enxerga um vínculo que ainda não foi usado para entrar, nem o próximo certificado que uma pessoa vai apresentar.
Nada impede a remoção. Uma máquina offline continua confiando numa autoridade removida até se reconectar. As linhas removidas são mantidas, e não apagadas, para que a Trilha de Auditoria possa citá-las.
Sistema
Configurações e usuários
/admin/settings. Duas coisas.
Configurações da plataforma: as sete chaves que um Administrador pode sobrescrever em tempo de execução, cada uma com um texto de ajuda e o padrão da implantação ao lado. Um valor salvo prevalece sobre a configuração da implantação e entra em vigor sem reinício; Restaurar os padrões da implantação limpa os overrides.
| Configuração | Padrão |
|---|---|
| Janela padrão da sessão | 1 h |
| Janela máxima da sessão | 24 h |
| Tempo limite do pedido no Tray App | 60 s |
| Falhas de PIN antes do bloqueio | 5 |
| Janela de bloqueio de PIN | 15 min |
| Tolerância de reconexão da estação de trabalho | 15 s |
| Retenção da auditoria (dias) | 365 |
Os dois valores de PIN também definem os limites de provas com falha: quantas Provas de PIN uma estação de trabalho pode errar para um CPF dentro da janela, e quantas senhas que não abrem nada o Cofre de Certificados pode tentar para um CPF (Configuração).
Algumas opções não estão aqui, de propósito: Admin:SecondFactor:Required, as chaves
Admin:CertificateSignIn:* e Vault:Enabled. Elas são configuração da implantação, porque uma opção
que enfraquece a proteção do console ou ativa chaves privadas guardadas no servidor não pode ficar
acessível de dentro do próprio console.
Contas Administrativas: todas as contas, com perfil, situação de acesso, última entrada e cadastro do segundo fator. Um Administrador pode criar uma conta, definir uma senha (as sessões existentes da pessoa terminam em até cinco minutos), tornar uma conta Auditor ou Administrador, desativá-la (ela é mantida, porque a Trilha de Auditoria atribui a ela as ações passadas) e ativá-la de novo, usar Liberar bloqueio numa conta bloqueada por entradas malsucedidas e limpar o segundo fator de alguém, o que também invalida os Códigos de Recuperação da pessoa e a obriga a fazer o cadastro de novo no próximo login. Ninguém consegue ler ou definir o segundo fator de outra pessoa.
Onde o Acesso com Certificado está ativado, ou alguma conta ainda tem um vínculo, a tabela também tem uma coluna CPF vinculado, que mostra o CPF completo para os dois perfis. Um Administrador o define com Definir CPF vinculado (ou Substituir CPF vinculado) na linha de outra conta, ou no formulário de conta nova, e o remove com Limpar CPF vinculado:
- Nunca na própria linha, para definir, substituir ou limpar. Uma implantação que desliga as senhas precisa, portanto, de pelo menos dois Administradores.
- Definir exige o Acesso com Certificado ativado; limpar é sempre permitido.
- Os dígitos verificadores precisam conferir (pontos e hífen são aceitos), e um CPF que outra conta já tem é recusado, com o nome dessa conta.
- Substituir ou limpar encerra as sessões abertas da pessoa em até cinco minutos. A primeira definição não encerra nada.
Cada alteração é uma linha admin.account-bound-cpf-set ou admin.account-bound-cpf-cleared com o
CPF. Quem tem um CPF vinculado pode entrar com qualquer e-CPF confiável que traga esse CPF, sem senha;
por isso a pessoa a quem a conta pertence vê, na própria página, quem o definiu e quando.
Assinatura de teste
/admin/test-signature, em Sistema. Um Administrador faz uma assinatura de verdade de ponta a
ponta: digita um CPF, o PIN dele, opcionalmente um CNPJ, a chave de API de uma Aplicação Cliente,
opcionalmente um endereço de e-mail alternativo, um tempo limite e quantos documentos, e recebe de volta os dados públicos
do certificado e um PDF de uma página assinado, ou a etapa que falhou (sessão, certificado, documento,
assinatura, Signer, REST PKI Core, tempo limite ou loopback). É a forma mais rápida de comprovar que uma
implantação assina. A execução passa pelo contrato do próprio Servidor com a chave digitada, como a
chamada de um integrador passaria; por isso assina com o mecanismo que a Aplicação Cliente dessa chave
usa e recebe a Franquia de Assinaturas dessa aplicação, e substitui qualquer Sessão de Assinatura já
ativa para esse CPF e CNPJ. O PIN pode ficar vazio quando a aplicação da chave cria as sessões dela sem
o PIN e o único certificado do titular está numa estação de trabalho, onde o titular aprova a
assinatura no Tray App; um certificado no Cofre de Certificados sempre precisa dele. A página
existe qualquer que seja o valor de TestSignature:Enabled, e as execuções dela registram o
Administrador como autor na Trilha de Auditoria (test_signature.completed, test_signature.failed ou
test_signature.refused). Um Auditor vê se a página pública está ligada, e nenhum formulário.
Desde os Servidores 1.23.0 e 1.24.0:
- Uma execução pode assinar um lote. Documentos aceita de 1 a 50, ou
Signing:MaxBatchItemsquando for menor, e mais de um é assinado como cópias numeradas numa única chamadaPOST /v1/signatures/batch. A página diz N de M documentos assinados, oferece Baixar os documentos assinados (ZIP) (test-signatures.zip) e indica, para cada documento que não foi assinado, a etapa em que falhou. Um tempo limite que acaba enquanto as cópias assinadas são buscadas mantém as que já foram buscadas. A linhatest_signature.*de um lote registra quantos documentos foram pedidos e, num lote concluído, quantos foram assinados. Uma execução de um documento é a mesma chamada única de sempre. - A página guarda o que foi digitado. A resposta devolve todos os campos ao formulário, inclusive a chave de API e o PIN, e Assinar de novo mostra o formulário preenchido atrás do resultado, então uma segunda execução é um clique. A página respondida não fica no cache do navegador; numa máquina compartilhada, uma demonstração termina fechando a aba. O Servidor continua sem registrar a chave e o PIN no log, e esquece os dois assim que a página é gerada.
- Uma falha na etapa de assinatura diz por quê, pelo código do contrato (Servidor 1.24.0), numa frase depois da frase da etapa, com Código do contrato: e Resposta do contrato: ao lado, em inglês, como o contrato os envia. A página Resolução de problemas lista os códigos.
A página pública em /test-signature é o mesmo formulário para qualquer pessoa que consiga acessar o
Servidor, e só existe onde a implantação a ligou. No Docker, as duas precisam de um listener HTTP
simples de loopback e de um AllowedHosts que o admita; veja
Configuração.
Log do Servidor
/admin/logs. As linhas mais recentes de um dia UTC do log do próprio Servidor, lidas do arquivo
rotativo em Logging:File:Directory, filtradas por nível e por texto: quando, nível, categoria de
origem, mensagem e o id de correlação que leva às linhas correspondentes da Trilha de Auditoria. É uma
conveniência para quem está no console, não um registro: a saída do console é o registro, e o arquivo é
apagado depois de Logging:File:RetainedDays. Numa implantação que desligou o arquivo, a tela informa
isso e cita a chave.
Sua conta
/admin/account. A única credencial da plataforma que a própria pessoa gerencia: trocar a senha,
Substituir seu autenticador ao trocar de dispositivo e Gerar um novo conjunto de Códigos de
Recuperação, com um Código de Recuperação aceito no lugar do autenticador para essa ação.
Onde o Acesso com Certificado se aplica, um cartão Acesso com Certificado mostra o CPF vinculado da conta, somente leitura, com quem o definiu e quando, ou informa que nenhum está vinculado e que outro Administrador o define.
Banners
Três condições colocam um aviso em todas as páginas do console enquanto durarem:
- Esta plataforma confia nas ACs de teste da Lacuna:
Certificates:Validation:UseLacunaTestPkiestá ligada, uma opção de desenvolvimento que faz o certificado de exemplo de qualquer pessoa assinar comoACTIVE. - A licença da PKI deste Servidor foi recusada: nenhum Certificado do Cofre consegue assinar, e
nenhuma estação de trabalho conseguirá depois de reiniciar: o PKI SDK recusou
Certificates:Validation:Licensena inicialização. É a licença entregue a cada máquina admitida, então, até que ela seja renovada e o Servidor reiniciado, nenhum Certificado do Cofre assina, e nenhuma estação de trabalho assina depois que o Workstation Service dela reiniciar. Uma máquina que já está rodando continua assinando até lá só se ainda tiver uma licença anterior que o SDK aceite, como depois de uma renovação digitada errada. O log de inicialização diz por que ela foi recusada. - As gravações de auditoria estão caindo para o log do Servidor: uma linha de auditoria não conseguiu chegar ao banco de dados. O alerta fica na faixa de situação, conta as falhas desde que o Servidor iniciou e abre o Log do Servidor no dia e no nível da última.