Este caso de uso descreve a conferência de uma ou mais assinaturas incluídas num envelope de transporte.
O operador deverá fornecer um arquivo armazenado em disco que tenha sido salvo num formato de envelope reconhecível pela aplicação.
Operador
O operador seleciona um documento assinado. | O sistema efetua a verificação de integridade do documento, conforme R1 e lista a identificação (sid - issuer e serialNumber) dos certificados signatários. |
O operador seleciona um signatário. | O sistema localiza o certificado correspondente no campo certificates do envelope de transporte e exibe o DN do titular (campo subject do certificado). |
O operador solicita a exibição dos detalhes do certificado do signatário. | O sistema executa o Caso de uso: Visualizar certificado. |
O operador solicita a verificação de conformidade do certificado do signatário selecionado. | O sistema executa o Caso de uso: Validar certificado. |
O operador solicita a visualização do documento assinado. | O sistema executa o Caso de uso: Visualizar documento. |
O operador solicita a conferência da assinatura do signatário selecionado. | O sistema executa o Caso de uso: Verificar revogação. O sistema obtém a política de assinatura (atributo SignaturePolicy) e, com base nela, verifica a assinatura do documento atendendo ao especificado em R2. |
Ocorreram erros críticos na verificação de integridade do envelope de transporte. | O sistema informa ao operador o problema encontrado e encerra o caso de uso. |
Ocorreram erros não críticos na verificação de integridade do envelope de transporte. | O sistema informa ao operador o problema encontrado, alertando para o fato de a conferência da assinatura poder não ser efetuada corretamente. |
O certificado digital do signatário não foi incluído no envelope de transporte. | O sistema informa ao operador que o certificado digital deve ser fornecido em arquivo com formato conhecido. |
O operador seleciona o certificado do signatário | Retorna ao fluxo principal |
O operador cancela a seleção do certificado. | O caso de uso é encerrado |
O documento eletrônico não foi incluído no envelope de transporte. | O sistema informa ao operador que o documento deve ser fornecido em arquivo. |
O operador seleciona o arquivo correspondente ao documento eletrônico. | Retorna ao fluxo principal. |
O operador cancela a seleção do arquivo. | O caso de uso é encerrado. |
O envelope de transporte não inclui os atributos SignaturePolicy e SignatureTimeStamp. | O sistema seleciona a política CAdES-BES. |
O envelope de transporte não inclui o atributo SignaturePolicy mas inclui SignatureTimeStamp. | O sistema seleciona a política CAdES-T. |
Regra | Criticidade | Mensagem |
O envelope de transporte deve ser codificado em DER. | Erro fatal. | O arquivo de assinatura não contém um formato reconhecível. |
O envelope de transporte deve ser um objeto SignedData. | Erro fatal. | O arquivo de assinatura não atende à especificação da RFC 3852. |
O campo version do objeto SignedData deve ter valor 3. | Alerta. | A versão [version] do envelope de transporte não atende à especificação da RFC 5126. |
Deve existir pelo menos um objeto SignerInfo | Erro fatal. | O envelope de transporte não contém assinaturas digitais para conferir. |
O campo version do objeto SignerInfo deve ser igual a 1. | Alerta. | A versão [version] das informações do signatário não atende à especificação da RFC 5126. |
O campo sid do objeto SignerInfo deve ter um valor reconhecível e o atributo SigningCertificateV2 não é incluído. | Erro fatal. | O envelope de transporte não inclui a identificação do signatário, o que impede a verificação da assinatura. |
O campo signatureAlgorithm do objeto SignerInfo deve conter um dos seguintes valores: DSA com SHA-1, RSA com MD5, RSA com SHA-1, RSA com SHA-256 ou RSA com SHA-512. | Erro fatal. | O algoritmo [signatureAlgorithm] não é suportado pela aplicação, o que impede a verificação da assinatura em conformidade com a RFC 3370. |
Se o campo digestAlgorithms estiver presente, seus valores devem ser consistentes com o conteúdo do campo signatureAlgorithm. | Erro. | Os algoritmos informados no envelope de transporte não são consistentes entre si, em inconformidade com a RFC 3852. |
O campo signedAttrs do objeto SignerInfo não pode estar vazio. | Erro. | As informações do signatário não incluem atributos assinados, o que impede a verificação da assinatura em conformidade com a RFC 3852. |
O atributo assinado MessageDigest deve estar presente. | Erro. | As informações do signatário não incluem o atributo MessageDisgest, o que impede a verificação da assinatura em conformidade com a RFC 3852. |
O atributo assinado ContentType deve estar presente. | Erro. | As informações do signatário não incluem o atributo ContentType, o que impede a verificação da assinatura em conformidade com a RFC 3852. |
O conteúdo do atributo ContentType deve ser igual ao conteúdo do campo eContentType do objeto SignedData. | Erro. | O valor do atributo assinado ContentType não é consistente com o valor do campo eContentType do envelope de transporte, em inconformidade com a RFC 3852. |
Se o campo eContent contiver o conteúdo assinado, seu hash deve ser igual ao valor do atributo assinado MessageDigest. | Erro. | O valor do atributo assinado MessageDigest não é consistente com o conteúdo assinado, em inconformidade com a RFC 3852. |
O atributo assinado CommitmentTypeIndication deve estar presente. | Alerta. | As informações do signatário não incluem o atributo CommitmentTypeIndication, não indicando, portanto, o comprometimento do signatário com a assinatura realizada. |
O atributo assinado SigningCertificateV2 deve estar presente. | Alerta. | As informações do signatário não incluem o atributo SigningCertificateV2, em inconformidade com a RFC 5126. |
Regras CAdES-BES | Criticidade | Mensagem |
Com o campo sid do objeto SignerInfo ou o valor do atributo SigningCertificateV2 não foi possível localizar o certificado do signatário. | Erro fatal. | O certificado do signatário [issuer e serialNumber] não pôde ser localizado. Impossível conferir a assinatura. |
O atributo assinado SigningTime deve estar presente. | Alerta. | As informações do signatário não fornecem evidências de quando a assinatura foi realizada. |
O atributo assinado CommitmentTypeIndication deve conter um dos seguintes valores: Prova de origem, Prova de recebimento, Prova de entrega, Prova de envio ou Prova de aprovação. | Alerta. | Tipo de comprometimento informado nos dados do signatário não condiz com a política de assinatura fornecida. |
Regras CAdES-T | Criticidade | Mensagem |
O atributo não assinado SignatureTimeStamp deve estar presente. | Erro. | Não foi incluído o atributo SignatureTimeStamp, em inconformidade com a política de assinatura informada. |
A evidência de tempo fornecida pelo atributo SignatureTimeStamp não pode ser maior que a data de revogação do certificado. | Erro fatal. | O certificado digital do signatário estava revogado em [evidência de tempo], quando a assinatura foi realizada. |
O carimbo de tempo fornecido pelo atributo SignatureTimeStamp deve ter sido assinado por uma AC confiável, cujo certificado está instalado na aplicação. | Alerta. | A autoridade responsável pela emissão do carimbo de tempo não é confiável. |
A assinatura digital fornecida pelo carimbo de tempo deve ser válida. | Erro. | A assinatura do carimbo de tempo fornecido pelo signatário não confere. |
Regras AD-CP | Criticidade | Mensagem |
O conteúdo do campo digestAlgorithms, se presente, deve apresentar uma lista contendo somente o algoritmo SHA-1. | Alerta. | O algoritmo de cálculo de resumos criptográficos informado no envelope de transporte não está em conformidade com as regras da ICP-Brasil. |
O campo signatureAlgorithm deve conter somente o OID do algoritmo SHA-1 com RSA. | Erro. | O algoritmo de assinatura informado no envelope de transporte está em inconformidade com as regras da ICP-Brasil. |
O atributo assinado SignaturePolicy deve estar presente. | Erro. | O envelope de transporte não inclui o atributo SignaturePolicy, em inconformidade com as regras da ICP-Brasil. |
O atributo SignaturePolicy deve conter um OID no no intervalo 2.16.76.1.7.n. | Erro. | A assinatura digital foi efetuada por uma política de assinatura não admitida pela ICP-Brasil. |
O atributo assinado CommitmentTypeIndication deve conter um dos tipos de comprometimento aplicáveis ao perfil CAdES-BES ou um dos que seguem: Concordância, Autorização, Testemunho, Autoria, Conferência, Revisão, Ciência, Publicação, Protocolo, Integridade, Autenticação de usuário e Teste. | Alerta. | Tipo de comprometimento informado nos dados do signatário não condiz com a política de assinatura fornecida. |
A extensão CertificatePolicies do certificado digital do assinante deve estar presente e conter valor 2.16.76.1.2.3.n ou 2.16.76.1.2.4.n. | Erro. | A política que emitiu o certificado digital do signatário não é condizente com a política de assinatura informada. |
Regras AD-T | Criticidade | Mensagem |
São aplicáveis todas as regras para o perfil AD-CP. | ||
O atributo não assinado SignatureTimeStamp deve estar presente. | Erro. | Não foi incluído o atributo SignatureTimeStamp, em inconformidade com a política de assinatura informada. |
A evidência de tempo fornecida pelo atributo SignatureTimeStamp não pode ser maior que a data de revogação do certificado. | Erro fatal. | O certificado digital do signatário estava revogado em [evidência de tempo], quando a assinatura foi realizada. |
O carimbo de tempo fornecido pelo atributo SignatureTimeStamp deve ter sido assinado por uma AC confiável, cujo certificado está instalado na aplicação. | Alerta. | A autoridade responsável pela emissão do carimbo de tempo não é confiável. |
A assinatura digital fornecida pelo carimbo de tempo deve ser válida. | Erro. | A assinatura do carimbo de tempo fornecido pelo signatário não confere. |
Regras AD-R | Criticidade | Mensagem |
São aplicáveis todas as regras para o perfil AD-CP. | ||
O atributo não assinado CompleteCertificateReferences deve estar presente. | Erro. | Não foi incluído o atributo CompleteCertificateReferences, em inconformidade com a política de assinatura informada. |
Com o valor do atributo CompleteCertificateReferences não foi possível localizar o certificado digital do signatário. | Erro fatal. | Não foi possível obter o certificado do signatário. Impossível verificar a assinatura. |
O atributo não assinado CompleteRevocationReferences deve estar presente. | Erro. | Não foi incluído o atributo CompleteRevocationReferences, em inconformidade com a política de assinatura informada. |
Com o valor do atributo CompleteRevocationReferences não foi possível localizar a LCR correspondente ao certificado digital do signatário. | Erro. | Não foi possível obter a LCR correspondente ao certificado do signatário. Impossível verificar a autenticidade da assinatura. |
O atributo não assinado ESCTimeStampToken deve estar presente. | Erro. | Não foi incluído o atributo ESCTimeStampToken, em inconformidade com a política de assinatura informada. |
A evidência de tempo fornecida pelo atributo ESCTimeStampToken não pode ser maior que a data de revogação do certificado. | Erro fatal. | O certificado digital do signatário estava revogado em [evidência de tempo], quando a assinatura foi realizada. |
O carimbo de tempo fornecido pelo atributo ESCTimeStampToken deve ter sido assinado por uma AC confiável, cujo certificado está instalado na aplicação. | Alerta. | A autoridade responsável pela emissão do carimbo de tempo não é confiável. |
A assinatura digital fornecida pelo carimbo de tempo do atributo ESCTimeStampToken deve ser válida. | Erro. | A assinatura do carimbo de tempo fornecido pelo signatário não confere. |
Regras AD-C | Criticidade | Mensagem |
São aplicáveis todas as regras para o perfil AD-R. | ||
O atributo não assinado CertificateValues deve estar presente. | Erro. | Não foi incluído o atributo CertificateValues, em inconformidade com a política de assinatura informada. |
Com o valor do atributo CertificateValues deve ser possível localizar o certificado digital do signatário. | Erro fatal. | O certificado digital do signatário não foi fornecido em conformidade com a política de assinatura informada. Não é possível verificar a assinatura do documento. |
O atributo não assinado RevocationValues deve estar presente. | Erro. | Não foi incluído o atributo RevocationValues, em inconformidade com a política de assinatura informada. |
Com o valor do atributo RevocationValues deve ser possível localizar a LCR correspondente ao certificado digital do signatário. | Erro. | A LCR correspondente ao certificado digital do signatário não foi fornecida em conformidade com a política de assinatura informada. Não é possível verificar a autenticidade da assinatura do documento. |
Regras AD-A | Criticidade | Mensagem |
São aplicáveis todas as regras para o perfil AD-C. | ||
O atributo não assinado ArchiveTimeStampToken deve estar presente. | Erro. | Não foi incluído o atributo ArchiveTimeStampToken, em inconformidade com a política de assinatura informada. |
A evidência de tempo fornecida pelo atributo ArchiveTimeStampToken não pode ser maior que a data de revogação do certificado. | Erro fatal. | O certificado digital do signatário estava revogado em [evidência de tempo], quando a assinatura foi realizada. |
O carimbo de tempo fornecido pelo atributo ArchiveTimeStampToken deve ter sido assinado por uma AC confiável, cujo certificado está instalado na aplicação. | Alerta. | A autoridade responsável pela emissão do carimbo de tempo não é confiável. |
A assinatura digital fornecida pelo carimbo de tempo do atributo ArchiveTimeStampToken deve ser válida. | Erro. | A assinatura do carimbo de tempo fornecido pelo signatário não confere. |
Regras comuns | Criticidade | Mensagem |
A verificação criptográfica da assinatura deve estar em conformidade com a RFC 3852. | Erro fatal. | A assinatura efetuada por [DN do titular do certificado] não confere, nos termos da RFC 3852. |
O certificado digital do signatário estava expirado quando a assinatura foi realizada, se houver evidência desse instante. | Erro fatal. | A assinatura efetuada por [DN do titular do certificado] estava expirada em [instante da assinatura], quando o documento foi assinado. |
O certificado digital do signatário estava revogado quando a assinatura foi realizada, se houver evidência desse instante. | Erro fatal. | O certificado digital de [DN do titular do certificado] estava revogado em [instante da assinatura], quando o documento foi assinado. |
Um relatório completo do resultado da verificação deve estar disponível para o operador.
Casos de uso Visualizar documento e Visualizar certificado.
Casos de uso Validar certificado e Verificar revogação.
Operação realizada (verificação); data da operação; hash do arquivo; identificação do certificado de cada signatário (campos subject, issuer, serialNumber e campo policyIdentifier da extensão CertificatePolicies), relatório de validação da conformidade do certificado, relatório de verificação da revogação do certificado e relatório completo da verificação da assinatura.