iCP-Bravo SDK
iCP-Bravo SDK
Biblioteca de Criptografia e Certificação Digital ICP-Brasil
Totalmente desenvolvido pela OAK Soluções, o ICP-Bravo SDK é a biblioteca para desenvolvimento de aplicações de Certificação Digital ICP-Brasil mais completa e atualizada do mercado.
A característica mais importante do SDK ICP-Bravo é a sua aderência aos padrões da ICP-Brasil, pois está em acordo com todas as suas normais relativas à bibliotecas criptográficas.
Destacamos também a facilidade de uso, a confiabilidade e o alto desempenho em aplicações de missão crítica.
A documentação do produto inclui Manual de Instalação, Manual do Usuário, Manual do Programador, Manual de Integração. Todas as funcionalidades contam com exemplos de utilização com trechos relevantes de código fonte.
O SDK ICP-Bravo é compatível com os principais tokens, leitoras, smartcards, HSMs, Sistemas Operacionais e Browsers do mercado.
iCP-Bravo SDK - Funcionalidades
- Tuesday, 21 December 2010 15:05
- Last Updated on Monday, 02 April 2012 15:25
- Written by Administrator
- iCP-Bravo SDK
- iCP-Bravo SDK
FUNCIONALIDADES
-
Cifração de Dados com Algoritmo Simétrico nos modos ECB e CBC;
-
Decifração de Dados com Algoritmo Simétrico nos modos ECB e CBC
-
Cifração de Dados com Algoritmo assimétrico;
-
Decifração de Dados com Algoritmo assimétrico;
-
Cálculo de Integridade através de algoritmos de Hash;
-
Verificação de Integridade através de algoritmos de Hash;
-
Cálculo de Integridade através de algoritmos de MAC;
-
Verificação de Integridade através de algoritmos de MAC;
-
Geração de Números Aleatórios;
-
Cifração de Dados com Algoritmos de Criptografia Baseado em Senha (PBE);
-
Decifração de Dados com Algoritmos de Criptografia Baseado em Senha (PBE);
-
Geração de chaves simétricas;
-
Geração de chaves assimétricas RSA de 1024, 2048 e 4096 bits;
-
Todas as funcionalidades estão disponíveis em algoritmos de software e hardware (token, smartcard e HSM);
-
Todas as funcionalidades descritas neste item (tanto em software como em hardware) seguem as interfaces padrão descritas pela plataforma Java:
-
JCA - Java Cryptographic Architecture
-
JCE - Java Cryptographic Extention;
-
SOCKET SEGURO
-
Abertura de conexão segura com servidor através de protocolo SSL ou TSL;
-
Criação de servidor multi-thread para aceitação de conexão através de protocolo SSL ou TSL;
-
Suporte a autenticação de cliente através de certificado digital;
-
Possibilidade de utilização de algoritmos criptográficos em software e hardware (token, smartcard e HSM) tanto para conexão cliente como servidor;
-
Cifração/decifração simétrica, cifração/decifração assimétrica, geração de números aleatórios e cálculo de integridade estão disponíveis tanto em software como em hardware;
ENVELOPE DIGITAL
-
Assinatura digital de documentos através de PKCS#7 ou CMS através de envelope do tipo SignedData;
-
Verificação de assinatura digital de documentos através de PKCS#7 ou CMS através de envelope do tipo SignedData;
-
Cifração de documentos através de PKCS#7 ou CMS através de envelope do tipo EnvelopedData;
-
Decifração de documentos através de PKCS#7 ou CMS através de envelope do tipo EnvelopedData;
-
Assinatura digital e cifração de documentos através de PKCS#7 ou CMS através de envelope do tipo SignedAndEnvelopedData;
-
Verificação de assinatura digital e decifração de documentos através de PKCS#7 ou CMS através de envelope do tipo SignedAndEnvelopedData;
-
Suporte a conteúdo anexado (atached) e desanexado (detached) para envelopes do tipo SignedDate;
-
Suporte a repositório de certificados para envelopes do tipo SignedDate e SignedAndEnvelopedData;
-
Suporte a repositório de LCRs (Lista de Certificados Revogados) para envelopes do tipo SignedDate e SignedAndEnvelopedData;
-
Suporte a arquivos grandes (maior de 100 Mb) através de leitura e escrita Bufferizada onde de forma a não carregar a totalidade do documento na memória da máquina;
-
Arquivos temporários, quando necessários, ficam criptografados em disco;
-
Assinatura digital de documentos através de envelope do tipo XML-DSig Enveloped e Enveloping;
-
Verificação de Assinatura digital de documentos através de envelope do tipo XML-DSig Enveloped e Enveloping;
-
Cifração de documentos através de envelope do tipo XML-ENC;
-
Decifração de documentos através de envelope do tipo XML-ENC;
-
As operações de assinatura digital e decifração de documentos, tanto para envelopes PKCS#7/CMS como XMLDSig/XML-ENC, podem ser realizadas através de chaves em software e hardware (token, smartcard e HSM);
-
Suporte a múltiplas assinaturas para envelopes do tipo XMLDSig Enveloping;
-
Suporte ao padrão XaDes (XML Advanced Electronic Signatures - http://www.w3.org/TR/XAdES) visando geração de documentos de longa duração em envelopes XMLDSig conforme recomendação da ICP-Brasil através da DOC-ICP-15 v2;
-
Suporte ao padrão CaDes (CMS Advanced Electronic Signatures – RFC 5126) visando geração de documentos de longa duração em envelopes PKCS#7/CMS conforme recomendação da ICP-Brasil através da DOC-ICP-15 v2;
SUPORTE A REPOSITÓRIOS CRIPTOGRÁFICOS
-
Suporte a leitura de repositório de certificados e chaves do Microsoft Windows (CryptoApi);
-
Suporte a operação RSA de assinatura de chave privada armazenada em repositório de certificados e chaves do Windows (CryptoApi);
-
Suporte a leitura de repositório de certificados e chaves do Mozilla (NSS);
-
Suporte a operação RSA de assinatura de chave privada armazenada em repositório de certificados e chaves do Mozilla (NSS);
CERTIFICADO DIGITAL
-
Decodificação de certificado digital no padrão X.509 v3;
-
Codificação de certificado digital no padrão X.509 v3;
-
Decodificação de LCR (Lista de Certificados Revogados) no padrão X.509 CRL v2;
-
Codificação de LCR (Lista de Certificados Revogados) no padrão X.509 CRL v2;
-
Solicitação de status de certificado através de protocolo OCSP (Online Certificate Status Protocol);
-
Implementação de todas as extensões previstas pelo padrão X.509 v3;
-
Cada uma das extensões previstas pelo padrão X.509 v3 devem ser implementadas em classes individualizadas;
-
Implementação da extensão CertificateTemplate(OID: 1.3.6.1.4.1.311.20.2) definida pela Microsoft;
-
Implementação da extensão NetscapeCertType(OID: 2.16.840.1.113730.1.1) definida pela Netscape;
-
Implementação dos campos OtherName contidos na extensão SubjectAlternativeName do padrão X.509 v3 definidos pela ICP-Brasil através da DOC-ICP-04, OID´s:
-
2.16.76.1.3.1;
-
2.16.76.1.3.2;
-
2.16.76.1.3.3;
-
2.16.76.1.3.4;
-
2.16.76.1.3.5;
-
2.16.76.1.3.6;
-
2.16.76.1.3.7;
-
2.16.76.1.3.8.
-
-
Implementação dos campos OtherName contidos na extensão SubjectAlternativeName do padrão X.509 v3 definidos pela Microsoft:
-
ObjectGUID (OID: 1.3.6.1.4.1.311.25.1);
-
UPN (User Principal Name)
-
(OID: 1.3.6.1.4.1.311.20.2.3);
-
VALIDAÇÃO DE CERTIFICADO DIGITAL
-
Montagem de cadeia de certificados digitais a partir do fornecimento do certificado de usuário final;
-
Verificação de cadeia de certificado digital;
-
Verificação de cada um dos certificados digitais contidos na cadeia de certificação.
-
Para cada certificado digital da cadeia as seguintes verificações são feitas de forma padrão:
-
Assinatura do certificado digital;
-
Data de emissão do certificado;
-
Data de vencimento do certificado;
-
Situação de revogação do certificado através de LCR (Lista de Certificados Revogados);
-
Situação de revogação do certificado através de OCSP, caso esteja disponível para a Autoridade Certificado emissora do certificado; BasicConstraint para o caso de certificado emitido para Autoridade Certificadora;
-
O componente permite a configuração dos certificados digitais das Autoridades Certificadoras de confiança;
-
-
Para os certificados de usuário final as seguintes verificações podem ser efetuadas de forma opcional (configurável):
-
Tamanho da Chave Assimétrica;
-
Políticas de Certificado;
-
Uso da Chave (KeyUsage);
-
Uso estendido da chave (Extended Key Usage);
-
-
Download automático de LCR (Lista de Certificados Revogados);
-
Armazenamento das LCR´s em cache local durante o período de validade de forma a evitar sobrecarga de acesso à Internet;
CARIMBO DE TEMPO
-
Solicitação de Carimbo de Tempo através do protocolo TSP (Time-stamp Protocol) definido pela RFC 3161;
-
Suporte às mensagens de requisição e resposta de selo temporal através de HTTP e TCP;
-
Decodificação do Carimbo de Tempo;
-
Validação do Carimbo de Tempo;
-
Armazenamento/Recuperação do Carimbo de Tempo de assinatura digital em atributo não autenticado em envelopes
-
PKCS#7/CMS (SignatureTimeStampToken Attribute);
CODIFICAÇÃO ASN.1
-
Codificação/Decodificação de estruturas ASN.1 no padrão DER (Distinguish Encoding Rules);
-
Codificação/Decodificação de estruturas ASN.1 no padrão BER (Basic Encoding Rules);
SERVIÇO DE DIRETÓRIO
-
Abertura de conexão em servidor LDAP através de protocolo SSL/TLS com autenticação através de certificado digital;
-
Abertura de conexão em servidor LDAP através de mecanismo usuário/senha;
-
Assinatura de e-mail através de protocolo S/MIME;
-
Verificação de assinatura de e-mail através de protocolo S/MIME;
-
Cifração de e-mail através de protocolo S/MIME;
-
Decifração de assinatura de e-mail através de protocolo S/MIME;
-
Assinatura e Cifração de e-mail através de protocolo S/MIME;
-
Verificação de assinatura e decifração de e-mail através de protocolo S/MIME;
-
As funcionalidades de assinatura e decifração de e-mail estão disponíveis tanto em software quando em hardware (token, smartcard e HSM);
GERENCIAMENTO DE REPOSITÓRIO DE CERTIFICADOS E CHAVES
-
Codificação certificados e chaves no padrão PKCS#12;
-
Recuperação de certificados e chaves codificados no padrão PKCS#12;
CODIFICAÇÃO DE REQUISIÇÕES DE CERTIFICADO NO PADRÃO PKCS#10;
DECODIFICAÇÃO E VALIDAÇÃO DE REQUISIÇÕES DE CERTIFICADO NO PADRÃO PKCS#10;
GERAÇÃO DE ASSINATURA DIGITAL NO PADRÃO PKCS#1;
VALIDAÇÃO DE ASSINATURA DIGITAL NO PADRÃO PKCS#1;
CODIFICAÇÃO DE DADOS NO PADRÃO BASE64 E PEM;
DECODIFICAÇÃO DE DADOS NO PADRÃO BASE64 E PEM;
RECUPERAÇÃO DE DATA E HORA CORRENTE ATRAVÉS DE PROTOCOLO NTP–NETWORK TIME PROTOCOL;
SHAMIR SHARING SECRET (SEGREDO COMPARTILHADO M DE N)
-
Compartilhamento de segredo genérico contido em uma cadeia de bytes através do esquema de Shamir Sharing Secret;
-
Permitir a configuração de qualquer valor de M e N maior que 1 (um);
-
O componente permite a criação de vários membros do M de N;
-
O componente permitir o armazenamento do ponto de cada membro do M de N em arquivo ou hardware (token, smartcard ou HSM);
-
Permite a recuperação do segredo através da apresentação de N pontos dos M membros cadastrados;
ASSINATURA DIGITAL/CIFRAÇÃO EM PÁGINAS WEB
-
Applet Java assinada digitalmente que implementa funcionalidade de assinatura digital de documentos através do padrão PKCS#7/CMS;
-
Permite que além da assinatura digital, o conteúdo seja cifrado para um conjunto de destinatários escolhidos pelo usuário.
-
Permite escolher somente assinar, somente cifrar ou assinar e cifrar simultaneamente;
-
Permite assinar/cifrar qualquer tipo de conteúdo binário;
-
Permite assinar/cifrar arquivos locais e efetuar o Upload para o servidor;
-
Permite efetuar o download de um documento através de uma URL e assina-lo/cifra-lo;
-
Permite assinar/cifrar um formulário web genérico;
-
Permite a assinatura de documentos operando a chave privada a partir de arquivos PKCS#12 e hardware criptográfico (token e smartcard) através de PKCS#11;
-
Permite o reconhecimento automático do modelo de token e smartcard conectado do Slot de hardware, carregando automaticamente o Driver PKCS#11 específico: O usuário pode configurar se deseja utilizar arquivo PKCS#12 ou hardware PKCS#11; No caso de PKCS#12 pode informar o caminho do arquivo PKCS#12.; No caso de PKCS#11, o componente reconhece o Slot e Driver de forma automática; Permite a configuração para geração de PKCS#7/CMS com conteúdo anexado (atached) ou desanexado (detached). Disponível para o caso em que somente a assinatura é realizada;
-
Permite a assinatura/cifração de documentos grandes (maior que 100Mb) de forma Bufferizada sem a carga do documento inteiramente na memória;
-
Arquivos temporários, quando usados, estão criptografados em disco;
-
Permite co-assinatura para o caso de PKCS#7/CMS. Disponível para o caso em que somente a assinatura é realizada;
-
Permite que as configurações e execução das operações de assinatura/cifração possam ser feitas via comandos Javascript através da página html onde o componente está carregado;
-
Permite que a interface gráfica seja omitida e o componente seja executado apenas através de comandos Javascript;
VERIFICAÇÃO DE ASSINATURA DIGITAL/DECIFRAÇÃO EM PÁGINAS WEB
-
Applet Java assinada digitalmente que implementa funcionalidade de verificação de assinatura digital de documentos através do padrão PKCS#7/CMS;
-
Permite que além da verificação de assinatura digital, o conteúdo seja decifrado desde que um dos destinatários seja o usuário corrente cujo token/smartcard ou arquivo pkcs#12 esteja configuração na estação local;
-
Reconhece automaticamente se o PKCS#7/CMS está apenas assinado, apenas cifrado ou assinado e cifrado. Desta forma, deve proceder a verificação das assinaturas digitais/decifração do conteúdo do documento;
-
Possui funcionalidade de visualização do conteúdo do documento verificado/decifrado;
-
Efetua o download de um documento assinado/cifrado através de uma URL e verifica-lo/decifra-lo;
-
Permite a decriptação de documentos cifrados operando a chave privada a partir de arquivos PKCS#12 e hardware criptográfico (token e smartcard) através de PKCS#11;
-
Permitir o reconhecimento automático do modelo de token e smartcard conectado do Slot de hardware e carregar automaticamente o Driver PKCS#11 específico: O usuário pode configurar se deseja utilizar arquivo PKCS#12 ou hardware PKCS#11; No caso de PKCS#12 pode informar o caminho do arquivo PKCS#12; No caso de PKCS#11, reconhece o Slot e Driver de forma automática;
-
Permite a configuração para geração de PKCS#7/CMS com conteúdo anexado (atached) ou desanexado (detached); Disponível para o caso em que somente a assinatura é realizada;
-
Arquivos temporários, quando usados, ficam criptografados em disco;
-
Permite a verificação de múltiplas assinaturas contidas no PKCS#7/CMS;
-
Permite que as configurações e execução das operações de verificação/decifração sejam feitas via comandos Javascript através da página html onde o componente está carregado;
-
Permitir que a interface gráfica seja omitida e o componente seja executado apenas através de comandos Javascript;
-
Permitir a visualização das assinaturas digitais e o detalhe de cada signatário do documento, inclusive as informações do certificado ICP-Brasil como CPF, RG, CNPJ, etc;
-
Permite que para cada assinatura seja visualizada a situação da verificação e a descrição do erro em caso de assinatura inválida;
AUTENTICAÇÃO (LOGIN) EM APLICAÇÕES WEB COM CERTIFICADO DIGITAL
-
Applet Java assinada digitalmente que implementa funcionalidade autenticação de usuário através de certificado digital;
-
Permite que as configurações e execução das operações de autenticação possam ser feitas via comandos Javascript através da página html onde o componente está carregado;
-
Permite que a interface gráfica seja omitida e o componente seja executado apenas através de comandos javascript;
- Verificação de login em Servidor via webservices
-
DOC-ICP-04;
-
DOC-ICP-10;
-
DOC-ICP-10-06;
-
DOC-ICP-15 v2;
-
DOC-ICP-15.01 v2;
-
DOC-ICP-15.02 v2;
-
DOC-ICP-15.03 v2;
-
MCT-2 - Vol. I;
-
MCT-3 - Vol. I;
-
MCT-4 - Vol. I;
-
MCT-8 - Vol. I e Vol. II;
SISTEMAS OPERACIONAIS E AMBIENTES COMPATÍVEIS:
-
Microsoft Windows 2000, XP, 2003, 2008, Vista e 7;
-
Linux/Unix;
-
Windows Virtual PC, VMWare;
-
Lotus Notes/Dominos;
-
Oracle;
NAVEGADORES (BROWSERS)
-
Microsoft Internet Explorer 5, 6, 7 e 8;
-
Mozilla Firefox 1.x, 2.x e 3.x;
-
Google Chrome 2.x;
Hardware Criptográfico: Homologada para os principais tokens, smartcards e HSM´s do mercado.
iCP-Bravo SDK - Especificações Técnicas
- Saturday, 04 September 2010 16:59
- Last Updated on Sunday, 24 July 2011 00:55
- Written by Administrator
- iCP-Bravo SDK
- iCP-Bravo SDK
Cifras Simétricas
- DES nos modos ECB e CBC
- TripleDES nos modos ECB e CBC
- AES com com tamanho de chave 128, 192 e 256 bits nos modos de operação ECB e CBC
- RC2 nos modos ECB e CBC
- RC4
Cifras Assimétricas
- RSA até 16.384 bits
- Curvas Elípticas
- Diffie-Helman
Hash e afins
- MD2
- MD5
- SHA-1
- SHA-256
- SHA-384
- SHA-512
- HmacSHA-1
- HmacSHA-256
- HmacSHA-384
- HmacSHA-512
Criptografia Baseada em Senha (PBE)
- PKCS#5
Gerador de Números Aleatórios
- SHA-1 PRNG
- LFSR
Socket Seguro
- SSL versões 1 e 3
- SSLv2Hello
- TSL
Envelope
- PKCS#7/CMS/CAdES
- SignedData
- EnvelopedData
- SignedAndEnvelopedData
- SignatureTimeStampToken Attribute (Conforme RFC 3161)
- S/MIME
- XMLDsig/XAdES
- XMLEnc
- PDF/PAdES
Serviço de Diretório
- LDAP
Suporte a Dispositívos Criptográficos
- Smart Card
- Token
- PKCS#11
- HSM
- Microsoft CryptoApi
- Mozilla NSS
Certificado Digital
- ICP-Brasil
- X.509 v3
- X.509 CRL v2
- OCSP (Online Certificate Status Protocol)
Carimbo de Tempo
- TSP (Time-Stamp Protocol)
Codificação ASN.1
- DER
- BER
- PEM
Gerenciamento de Repositório de Certificados e Chaves
- PKCS#12
Diversos
- PKCS#10
- PKCS#1
- Base64
- Shamir Sharing Secret (Segredo Compartilhado M de N)
- PKCS#9
- CommitmentTypeIndicationAttribute
- proofOfOrigin
- proofOfReceipt
- proofOfDelivery
- proofOfSender
- proofOfApproval
- proofOfCreation
- concordancia
- autorizacao
- testemunho
- autoria
- conferencia
- revisao
- ciencia
- publicacao
- protocolo
- integridade
- autenticacaoDeUsuario
- teste
- ContentTypeAttribute
- CounterSignatureAttribute
- MessageDigestAttribute
- SignerLocationAttribute
- SiningCertificateAttribute
- SiningCertificateV2Attribute
- SiningTimeAttribute
- ContentHintAttribute
- ContentIdentifierAttribute
- SignerAttrAttribute
- SigPolicyIdAttribute
- AD-CP
- AD-T
- AD-R
- AD-C
- AD-A
- CertificateRefsAttribute
- RevocationRefsAttribute
- CertValuesAttribute
- RevocationValuesAttribute
- SignatureTimestampTokenAttribute
- ArchiveTimestampAttribute
- ContentTimestampAttribute
- ContentReferenceAttribute
- AttrCertificateRefsAttribute
- AttrRevocationRefsAttribute
- FriendlyNameAttribute
- LocalKeyAttribute
- CommitmentTypeIndicationAttribute
Sistemas Operacionais e Ambientes
- Microsoft Windows 2000, XP, 2003, Vista, 2008 e 7
- Linux/Unix
- Lotus Notes/Dominos
- Oracle
Navegadores (Browsers)
- Microsoft IE 6, 7 e 8
- Mozilla Firefox 2.x e 3.x
- Chrome 2.X
Observações importantes
- Essas informações estão sob revisão;
- A OAK Soluções reserva o direito de alterar as especificações técnicas desse produto sem prévio aviso.
iCP-Bravo SDK - Licenciamento
- Saturday, 04 September 2010 16:40
- Last Updated on Sunday, 24 July 2011 00:55
- Written by Administrator
- iCP-Bravo SDK
- iCP-Bravo SDK
O iCP-Bravo SDK possui várias formas de licenciamento para melhor tender às suas necessidades.
Single Site
- Indicado para uso interno em empresas ou órgãos governamentais;
- Permite a utilização em um único site ou em um único aplicativo;
- Permite a distribuição como parte de um único aplicativo;
- Inclui 12 (doze) horas de Transferência de Tecnologia;
- Inclui Suporte Técnico e Atualização por 12 (doze) meses;
- Não permite a distribuição ou o licenciamento para terceiros apenas do SDK.
Multi Site
- Indicado para empresas que desenvolvem sites e aplicativos para terceiros ou órgãos governamentais que mantêm vários sites simultaneamente;
- Sem limite de sites ou de aplicativos;
- Permite a distribuição ilimitada do SDK como parte de aplicativos;
- Inclui 12 (doze) horas de Transferência de Tecnologia;
- Inclui Suporte Técnico e Atualização por 24 (vinte e quatro) meses;
- Não permite a distribuição ou o licenciamento para terceiros apenas do SDK.
Code Master
- Indicado para empresas que desenvolvem sites e aplicativos para terceiros ou órgãos governamentais que por razões estratégicas necessitam ter o código fonte do SDK;
- Sem limite de sites ou de aplicativos;
- Permite a distribuição ilimitada do SDK como parte de aplicativos;
- Inclui 24 (vinte e quatro) horas de Transferência de Tecnologia;
- Inclui Suporte Técnico e Atualização por 36 (trinta e seis) meses;
- Não permite a distribuição ou o licenciamento para terceiros apenas da biblioteca, seja do código fonte ou da versão compilada.