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 um seletor de idioma
no topo; 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 conectada como autora.
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 a inscrição 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.
Dois perfis:
| Perfil | Pode |
|---|---|
| Administrador | Ler tudo e mudar o estado da plataforma: admitir e revogar máquinas, cadastrar aplicações e emitir chaves, importar e desativar Certificados do Cofre, adicionar e remover Autoridades Certificadoras Confiáveis, alterar configurações, gerenciar contas. |
| 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.
Monitoramento
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, eventos de estações de trabalho e de PIN, entregas de
callback, ações administrativas. Uma linha por evento com o momento (UTC), o nome do evento, o autor,
o objeto e o resultado, além dos detalhes. PINs, conteúdo de documentos e bytes de assinatura nunca
aparecem.
Filtros: um autor (nome de exibição ou id exato), uma chave de API (a trilha de uma única chave,
incluindo as chamadas recusadas), um id de correlação (toda a trilha de uma requisição), um evento, um
intervalo de tempo. 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.
Frota
Estações de Trabalho
/admin/fleet. Todas as máquinas admitidas: nome da máquina, sistema operacional, versão do
Workstation Service, número de certificados, visto por último e a situação dela em relação às
Autoridades Certificadoras Confiáveis deste Servidor. O painel de uma máquina mostra a impressão
digital e a postura da chave, os certificados e as ações disponíveis: devolver para Pendente
(mantém a chave e o histórico) ou Revogar (recusada permanentemente, sem volta). Revogar é o
controle que não depende da cooperação da máquina, e a resposta certa para uma máquina perdida, roubada
ou desativada sem desinstalação.
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. |
| Recusa | A máquina está configurada para não aceitar o conjunto do Servidor (UseServerTrustedCas desligado). |
| Requer atualização | Os componentes da máquina são anteriores ao protocolo 2 e não conseguem pedir o conjunto. |
| Não informada | A máquina não informou qual conjunto tem. |
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 da frota.
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.
Registro de Certificados
/admin/certificates. Todos os Certificados de Estação de Trabalho que a frota anunciou: thumbprint,
CPF do titular, titular, emissor, validade, veredito e quais estações de trabalho têm o certificado,
com o estado de conexão de cada uma e quando foi vista por último. Filtre por status. 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 CPF, 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 implantação definiu uma Franquia de Assinaturas, quanto já foi gasto dela.
Cada linha leva à sua trilha.
Operações de Assinatura
/admin/operations. Uma linha por documento enviado para assinatura: o nome do documento, a sessão,
onde foi executada (uma estação de trabalho ou o cofre), quando foi enviada, o estado (Pending,
Completed, Failed), o código de falha e a etapa alcançada quando falhou, e o id de correlação que
o cliente pode citar. Uma execução interrompida por um reinício do Servidor é encerrada por uma
varredura como Failed, com RUN_STRANDED.
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.
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: CPF,
titular, emissor, validade, veredito, quando foi importado e se está em uso.
Importar um PFX: um certificado e sua chave privada por arquivo, com um CPF da ICP-Brasil, junto
com a senha do arquivo. 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
sem licença 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: a autoridade, o
tipo (Raiz ou Intermediária), quantos certificados dependem dela e desde quando.
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 a todas as máquinas admitidas
no protocolo 2 em segundos. Deixar de confiar numa autoridade pode tornar Certificados de Estação
de Trabalho e Certificados do Cofre UNTRUSTED, por isso a confirmação informa antes quantos dependem
dela. 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 |
Duas opções não estão aqui, de propósito: Admin:SecondFactor:Required e Vault:Enabled. As duas
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 estar ao alcance de dentro do próprio console.
Contas Administrativas: todas as contas, com perfil, situação de acesso, última entrada e inscrição 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, 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 a inscrição de novo no próximo login. Ninguém consegue ler ou definir o segundo fator de outra pessoa.
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.
Banners
Duas condições colocam um banner em todas as páginas do console enquanto durarem: a PKI de teste da
Lacuna está sendo considerada confiável (Certificates:Validation:UseLacunaTestPki, uma opção de
desenvolvimento que faz o certificado de exemplo de qualquer pessoa assinar como ACTIVE), e uma linha
de auditoria não conseguiu chegar ao banco de dados.