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 |
|
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 |
|