Requisitos gerais

Requisito Descrição Release Obs
i Possibilitar a imposição das configurações do software, em particular das regras de assinatura, políticas de assinaturas, padrões atendidos, etc. CE 0.1
ii Oferecer mecanismo de obtenção da LCR através de agente externo ao software de assinatura (proxy) CE 0.2
iii Oferecer mecanismo de trilha de auditoria à qual o operador não tenha acesso CE 0.3
iv Fornecer opcionalmente interface de obtenção de TST através do protocolo HTTP PE 0.3
v Suportar CSP's tanto no padrão PKCS#11 quanto no padrão MS CryptoAPI PE 0.1
vi Suportar pelo menos os sistemas operacionais MS Windows e Linux PE 0.1
vii Fornecer opcionalmente interface web de aplicativo WE 0.1
viii Fornecer interface de programação de aplicações com capacidade de assinar conteúdos voláteis (transações eletrônicas) WE 0.3
ix Fornecer plugin para o cliente de correio eletrônico Thuderbird com a capacidade de assinar mensagens de correio eletrônico
x Suportar o formato de envelopamento CMS, produzindo arquivo com extensão .p7s PE 0.1
xi Suportar opcionalmente o formato de envelopamento XMLDSig, produzindo arquivo com extensão .xml
xii Codificar opcionalmente documento eletrônico no formato MIME, com tipos registrados MIME, antes de sua assinatura
xiii Incluir na assinatura indicador de política de assinatura em conformidade com a ICP-Brasil PE 0.3
xiv É obrigatória a inclusão no mínimo dos seguintes atributos assinados: ContentType, MessageDigest, SigningCertificateV2 e SignaturePolicy PE 0.3 Os dois primeiros atributos estão presentes em PE 0.1 e o terceiro está planejado para PE 0.2
xv Identificar e manipular certificados digitais emitidos no âmbito da ICP-Brasil, bem como suas extensões, campos e "campos específicos ICP-Brasil" PE 0.3
xvi Proteger a assinatura contra falsificações e os conteúdos, contra alterações
xvii Permitir a demonstração do documento ao qual a assinatura se refere, de que o documento não foi alterado, do titular e do conteúdo do certificado
xviii Verificar opcionalmente a conformidade do certificado antes da assinatura PE 0.1
xix Permitir opcionalmente a realização da assinatura na presença de inconformidades, exceto a expiração ou revogação PE 0.2
xx Permitir a visualização do conteúdo antes ou depois da assinatura PE 0.2 Visualização direta para arquivos texto; arquivos de aplicativos com formatos próprios serão salvos em disco.
xxi Assegurar que apenas componentes estáticos sejam assinados PE 0.1
xxii Em assinaturas em lote, permitir, opcionalmente, a habilitação da chave privada uma única vez PE 0.2 Esse recurso é controlado pelos providers associados ao token criptográfico do usuário. A aplicação só controla o PIN no caso do KeyStore PKCS#12
xxiii Utilizar os algoritmos definidos no DOC-ICP-01.01 PE 0.1 São igualmente suportados os algoritmos definidos na RFC 3370
xxiv Verificar obrigatoriamente a validade de uma assinatura, utilizando: o documento eletrônico para o qual a assinatura digital ICP-Brasil foi criada, a assinatura digital ICP-Brasil do documento eletrônico, o certificado digital do signatário e sua correspondente cadeia de certificação, elementos utilizados para verificação do estado de revogação dos certificados da cadeia de certificação, a política de assinatura, cujo identificador encontra-se na assinatura digital ICP-Brasil e um dos algoritmos definidos no DOC-ICP-01.01 PE 0.3 Requisito atendido desde PE 0.1 exceto a verificação da conformidade da assinatura às políticas de assinatura da ICP-Brasil
xxv Assegurar que o estado criptográfico da assinatura digital seja válido e o certificado digital correspondente à chave privada utilizada para geração da assinatura seja válido PE 0.1
xxvi Verificar a conformidade da assinatura com as políticas de assinatura estabelecidas PE 0.3
xxvii Verificar a validade do carimbo do tempo, conforme disposto no documento DOC-ICP-12 PE 0.3
xxviii Em documentos já assinados, efetuar a verificação de todas as assinaturas anteriores pelo menos na última co-assinatura PE 0.1
xxixi A cada verificação, exibir o estado de cada assinatura avaliada em termos de válido, inválido e indeterminado, identificando também os signatários PE 0.2
xxx Verificar se a assinatura foi realizada durante o prazo de validade do certificado PE 0.2
xxxi Suportar todas as políticas ICP-Brasil para assinatura digital no formato CMS PE 0.3
xxxii Suportar opcionalmente as mesmas políticas para o formato XMLDSig
xxxiii Suportar os tipos de compromisso definidos na RFC 5126 PE 0.2
xxxiv Suportar os tipos de compromisso definidos no Anexo I do DOC-ICP-15.01 PE 0.3
xxxv Fornecer interface internacionalizada, no mínimo em Português e Inglês PE 0.1
xxxvi Fornecer suporte a outras PKI's sob a forma de arquitetura de implementação desacoplada das regras nacionais, assegurando a inclusão de uma "PKI genérica" PE 0.2

 

Conformidade ao MCT-4

Requisito Descrição Release Obs
I.1 Software ICP-Brasil deve ser capaz de manipular certificados digitais que implementam a versão 3 do padrão ITU-T X.509 (X.509v3). PE 0.1
I.2 Suportar o formato DER de certificado PE 0.1 Todas as operações são realizadas com o formatdo DER. As codificações DER em base64 e PEM não são suportadas.
I.3 Implementar processo de validação aprovado. PE 0.3 Ver casos de uso Validar certificado e Verificar revogação
I.4 Validar os certificados presentes no certification path PE 0.3 Ver caso de uso Validar certificado
I.5 Validar as restrições do certification path
I.6 Validar a consistência do propósito do certificado com a função pretendida PE 0.3 Ver caso de uso Validar certificado
I.7 Informar ao operador os problemas de não conformidade do certificado PE 0.1
I.8 Informar ao operador o escopo da PKI da qual participa o certificado PE 0.2
I.9 Informar ao operador as possibilidades de uso do seu certificado digital PE 0.2 Ver caso de uso Visualizar certificado digital
I.10 Informar ao operador os atributos dos certificados digitais da ICP-Brasil PE 0.3 Ver caso de uso Visualizar certificado digital
I.11 Informar ao operador o conteúdo dos campos Subject e Issuer de um certificado digital PE 0.2 Ver caso de uso Visualizar certificado digital
I.12 Informar ao operador o conteúdo de um certificado digital de entidade final PE 0.2 Ver caso de uso Visualizar certificado digital
I.13 Informar ao operador o conteúdo de certificados de CA PE 0.2 Ver caso de uso Visualizar certificado digital
I.14 Verificar a revogação do certificado digital PE 0.2 Ver caso de uso Verificar revogação
I.15 Implementar capacidade de manipulação de CRLs PE 0.2 Ver Implementação das classes de persistência
I.16 Configurar a busca de CRLs PE 0.2
I.17 Configurar a verificação da revogação do certificado digital PE 0.1
I.18 Informar ao operador a desabilitação da verificação de revogação do certificado
I.19 Implementar busca de CRLs PE 0.1 A aplicação suporta informações de revogação apenas através de LCRs, que são buscadas diretamente na Internet através dos protocolos HTTP e HTTPS
I.20 Implementar procedimentos aprovados de verificação de revogação em CRL PE 0.2 Ver caso de uso Verificar revogação
I.21 Buscar a CRL a partir do CDP PE 0.1 Apenas o CDP é consultado; se a extensão não estiver presente, a revogação não é verificada
I.22 Fornecer informação ao operador sobre a verificação da LCR PE 0.2
I.23 Proteger o PIN, senhas e dados sensíveis PE 0.1 A classe javax.swing.JTextField armazena internamente os dados como uma java.lang.String, com isso não permitindo a eliminação do PIN por sobrescrita de valores, já que uma nova atribuição ao campo simplesmente descarta o valor anterior para o Garbage Collector, mantendo-o em memória. Além disso, a classe devolve o valor corrente do campo como uma String para quaisquer ActionListener instalado, aumentando o problema. A extensão javax.swing.JPasswordField não elimina esses problemas, apenas evita a visualização da senha por um papagaio de pirada. Em vista disso, foi desenvolvida uma nova implementação para JPasswordField, que armazena o campo num array de caracteres (permitindo a sobrescrita de valores) e não devolve seu valor corrente para os ActionListener.
I.24 Não manter chaves criptográficas em cache PE 0.2 A aplicação delega o acesso à chave privada de assinatura ao provedor de serviços criptográficos instalado pelo usuário. Correntemente, são suportados provedores para a CryptoAPI do Microsoft Windows, utilizando o provider Java SunMSCAPI, e para o padrão RSA PKCS#11, utilizando o provider Java SunPKCS11 (release PE 0.1). Para atender ao Requisito xxii, oriundo do DOC-ICP.15, na release PE 0.2 o PIN é mantido opcionalmente em cache ao se utilizar o provider PKCS#12, que é sobrescrito ao final do uso.
I.25 Implementar garantia de integridade e origem de software
I.26 Especificar procedimentos de proteção de integridade
I.27 Implementar proteção a dados sensíveis PE 0.1 Ver comentário ao requisito I.23
I.28 Fornecer documentação mínima (Manual de usuário, Manual de instalação e Especificação técnica.)
I.29 Implementar interface com o operador em Português PE 0.1
I.30 Fornecer documentação em Português PE 0.1
I.31 Especificar o ambiente de operação do software PE 0.1 O aplicativo executa em qualquer sistema para o qual exista JVM 1.6 ou superior e suporte ao provider PKCS#11.
I.32 Informar ao operador a versão e a origem do software
II.1 Identificar os diferentes tipos de certificados digitais da ICP-Brasil PE 0.3
II.2 Especificar os serviços de segurança suportados PE 0.3 A release PE 0.1 suporta: geração e verificação de documentos eletrônicos assinados digitalmente aderentes aos formatos CMS SignedData Attached, CMS SignedData Detached; manipulação de chaves criptográficas e certificados digitais armazenados em dispositivos criptográficos de hardware; verificação de revogação por meio da busca de LCR a verificação de LCRs obtidas. A release PE 0.2 deve suportar a inserção de LCRs no documento eletrônico assinado digitalmente, enquanto que a a inclusão e a verificação de atributo não assinado TST está prevista para a release PE 0.3.
II.3 Identificar as extensões padrão do certificado digital PE 0.2 Ver Implementação das classes de persistência
II.4 Validar a conformidade do propósito do certificado com a função pretendida PE 0.1 Ver caso de uso Validar certificado
II.5 Implementar assinatura digital em formatos padrão PE 0.1 Suporta ao padrão CMS, tal como definido na RFC 3852
II.6 Incluir na assinatura o atributo autenticado Signing Time PE 0.1
II.7 Implementar co-assinatura de documentos PE 0.1
II.8 Implementar processo aprovado de assinatura PE 0.2 A release PE 0.1 permite: a escolha do certificado de assinatura e realiza a verificação de conformidade do certificado. Em documentos co-assinados, realiza a verificação das assinaturas anteriores e alerta para a inclusão do instante corrente na assinatura. A release PE 02. deverá também: exibir todas as informações do certificado selecionado e dos certificados dos assinanates e permitir a visualização do documento assinado.
II.9 Extrair o conteúdo de um documento assinado PE 0.2 Documentos de texto são exibidos diretamente pelo aplicativo; documentos com formatos próprios são salvos em disco, para visualização independente.
II.10 Incluir no documento assinado o certificado de assinatura e sua cadeia PE 0.1
II.11 Fornecer cópia do documento assinado ao operador PE 0.1
II.12 Verificar a assinatura de um documento PE 0.1
II.13 Implementar processo aprovado de verificação PE 0.1
II.14 Informar ao operador o resultado da verificação de assinatura PE 0.1