Caso de uso: Verificar revogação

Este caso de uso se destina a verificar se o instante de uso de um certificado é anterior ao instante de sua revogação. O certificado verificado pode tanto ser o próprio certificado do Operador quanto de um assinante, contido num envelope de transporte.

 

Ator

Operador.

 

Pré-condições

Deve existir um repositório para as LCR anteriormente coletadas. Este repositório pode ser tanto um envelope de transporte quanto um repositório de armazenamento de LCR coletadas na Internet.

 

Fluxo de eventos

O Operador seleciona um certificado a ser verificado. O sistema obtém o certificado do emissor (ver R1), o instante de uso do certificado ( ver R2) e obtém a LCR do repositório correspondente, identificando-a conforme R3.
A LCR assinada pelo emissor do certificado e correspondente ao seu instante de uso está disponível. O sistema verifica a autenticidade da LCR, conforme R4.
A verificação da autenticidade da LCR foi concluída. O sistema verifica se o serialNumber do certificado verificado consta da lista revokedCertificates da LCR, informando ao Operador o resultado da verificação.

 

Exceções

O certificado digital do emissor da LCR não está disponível. O sistema informa ao operador que o certificado digital deve ser fornecido em arquivo com formato conhecido.
O operador seleciona o certificado do emissor, Retorna ao fluxo principal
O operador cancela a seleção do certificado. O sistema adverte o Operador que a autenticidade da LCR do certificado não poderá ser corretamente verificada e retorna ao fluxo principal.
Na verificação do envelope de transporte o instante de uso do certificado não está disponível. O sistema adverte o Operador que não é possível verificar a confiabilidade da assinatura e retorna ao fluxo principal.
Para a verificação do certificado do assinante, uma LCR em vigor (ver R5) não está disponível no repositório ou o campo nextUpdate da LCR mais recente não está preenchido. O sistema informa ao operador que a LCR deve ser buscada no emissor, obtém a URL correspondente na extensão CRL Distribution Points e, com ela, baixa a LCR do site.
A extensão CRL Distribution Points não está presente ou não contém uma URL válida. O sistema adverte o Operador de que a verificação não pode ser efetuada e o caso de uso é encerrado.
Ocorreu um erro ao tentar obter a LCR do site do emissor. O sistema adverte o Operador de que a verificação não pode ser efetuada e o caso de uso é encerrado.
A LCR mais recente foi obtida com sucesso. O sistema armazena a LCR no repositório e retorna ao fluxo principal.
Para a verificação do certificado do signatário, a LCR correspondente ao instante de uso do certificado não está disponível no envelope de transporte. O sistema adverte o Operador de que a verificação não pode ser efetuada e o caso de uso é encerrado.
A verificação da autenticidade da LCR não foi efetuada com sucesso. O sistema adverte o Operador de que a verificação de revogação pode não ser confiável e retorna ao fluxo principal.
O certificado verificado consta da lista revokedCertificates da LCR. O sistema obtém a data de revogação do certificado (revocationDate) e verifica a validade do seu uso (ver R6). Caso estejam presentes, o sistema obtém as extensões Reason Code e Invalidity Date.

 

Regras

R1 - Obtenção do certificado do emissor

O certificado do emissor da LCR pode ser obtido da cadeia de certificados que deve ser disponbilizada junto com o certificado do titular. No caso de verificação de envelope de transporte, o certificado do emissor deve estar disponível no campo certificates da estrutura SignedData ou no atributo não assinado CertificateValues.

 

R2 - Instante de uso do certificado

No caso da assinatura de um documento, o instante de uso é o instante corrente obtido do sistema operacional. No caso da verificação de um documento assinado, o instante de uso pode ser obtido de um dos seguintes atributos, nessa ordem de prioridade: SignatureTimeStampToken e SigningTime. Neste último caso, se tais atributos não estiverem presentes o instante corrente obtido do sistema deverá ser considerado o instante de uso, advertindo-se o Operador.

 

R3 - Identificação da LCR

Caso o repositório seja um envelope de transporte, a LCR deve ser obtida do campo crls da estrutura SignedData ou do atributo RevocationValues. O campo issuer da estrutura TBSCertList da LCR deve obrigatoriamente ter o mesmo conteúdo do campo issuer do certificado a ser verificado.

 

R4 - Verificação da autenticidade da LCR

A assinatura contida no campo signature da LCR deveria opcionalmente ser verificada com a chave pública obtida do campo subjectPublicKeyInfo do certificado do emissor, se este estiver disponível. No caso de LCR obtidas do envelope de transporte, deve ser verificada a presença do atributo CompleteRevocationReferences. Se presente e contendo o hash da LCR (campo CRLListID.crlHash), a LCR só será considerada autêntica se este for também verificado com sucesso.

 

R5 - LCR em vigor

Uma LCR está em vigor se o instante de uso currentTime do certificado atender à restrição thisUpdate > currentTime < nextUpdate. No caso da verificação prévia à aposição de uma assinatura, se o campo opcional thisUpdate não estiver preenchido não é possível verificar a atualidade da LCR e uma nova deverá ser buscada.

 

R6 - Validade do uso do certificado

Um certificado constar da lista revokedCertificates não necessariamente invalida seu uso, no caso de documentos já assinados. Este uso só é inválido se o instante de uso do certificado foi maior ou igual ao valor do campo revocationDate. No entanto, a assinatura será suspeita se a extensão Invalidity Date estiver presente e seu valor for anterior ao instante de uso do certificado.

 

Pós-condições

Um documento de validação deve ter sido criado com o relatório do processo de validação.

 

Pontos de extensão

Caso de uso: Obter LCR