A Oak Soluções foi fundada em 2003 com o objetivo de desenvolver soluções tecnológicas para suportar os negócios das empresas.

A empresa atua em todas as etapas do ciclo de vida da solução tecnológica, da concepção à efetiva implantação, incluindo as etapas de modelagem, design, programação, testes, avaliação de desempenho e segurança, usabilidade, treinamento de usuários, hospedagem e sustentação da solução e help-desk.

A ampla experiência profissional da equipe aliada à ferramentas e processos avançados, permitem o desenvolvimento de soluções de missão crítica para os mais variados ramos de atividade integrando dados, voz, telefonia, POS, smart card, certificação digital, site, processos, negócio e clientes com elevado desempenho e segurança.

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

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;
E-MAIL
  • 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;
Permitir a recuperação de informações do certificado ICP-Brasil como CPF, RG, CNPJ e outras contidas no certificado digital do usuário para efetuar o login em sistemas Web;
  • Verificação de login em Servidor via webservices


COMPATIBILIDADE COM A ICP-BRASIL:
  • 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

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
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
  1. Essas informações estão sob revisão;
  2. A OAK Soluções reserva o direito de alterar as especificações técnicas desse produto sem prévio aviso.

iCP-Bravo SDK - Licenciamento

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.