domingo, 17 de março de 2013

Assinatura e Certificação Digital - Conclusão e Referências


Conclusão;
            A computação e a informática por tempos vêm ilustrando ou representando técnicas e a vida real como um todo, trazendo automação, comodidade, agilidade e segurança na vida dos seres humanos. Os seres humanos na aceitação e busca por esta facilidade ou agilidade no seu cotidiano acaba por evoluindo também, na sua forma de agir e de pensar.
            Por tempos as informações adquiridas e passadas pela história da humanidade no qual permitem que conheçamos o que existe de estudo hoje, estas informações foram grafadas nos mais diversos suportes, como na pedra, em cavernas, em papiros, mas nenhum destes suportes foram utilizados como o papel. Porém os recursos para se obter os papeis são caros para a produção e caros para a natureza, e não para por aí, a guarda destas informações em papeis também é onerosa. Quando dizemos que o ser humano tem evoluído na sua forma de agir e pensar, podemos citar os sistema de Gerenciamento Eletrônico de Documentos, os famosos GEDs, que tem como seu marketing principal a facilidade no gerenciamento dos documentos eletrônicos, pelo fator “ser eletrônico” e também a não degradação dos recursos naturais, como ocorre com o papel.
            O surgimento de procedimentos tecnológicos que comprovasse a autoria ou garantisse o não repúdio de informações dentro do meio digital seria um processo natural de desenvolvimento, e assim surgiu a Assinatura e a Certificação Digital.
            A Assinatura e a Certificação Digital não é “uma tecnologia”, mas são sim conjuntos de procedimentos que permitem a existência das mesmas, sendo estas sim isoladas uma da outra.
            A Assinatura Digital é uma marca registrada de uma cadeia de informações, mais especificamente de um conjunto de bits formadas em um determinado momento que representa uma mensagem ou alguma informação passível de assinatura, ou seja, a Assinatura Digital por meio de técnicas de criptografia matemática permite a um sujeito afirmar a sua autoria ou no mínimo o seu conhecimento de determinada mensagem, por mais que esta exista apenas digitalmente.
            A Certificação Digital dá a possibilidade de identificar o sujeito nos meios eletrônicos, possibilita de fato criar uma identidade de uma pessoa física ou privada e afirmar ações que esta faça no universo digital.
            A Assinatura Digital por si só poderia ser procedimentos feitos a esmo, assim como uma assinatura manuscrita, sem a necessidade de comprovar juridicamente a ação de um sujeito, mas a Certificação Digital identifica tal sujeito e o liga a sua Assinatura Digital, dando a possibilidade de afirmar que toda Assinatura Digital por padrão é reconhecido firma, não podendo ao assinante negar a autoria ou conhecimento da mensagem assinada.
            A Assinatura e Certificação Digital tem se tornado cada vez mais popular e necessário, assim como os documentos de identificação tradicionais, que é provável que seus dias estejam contados. O Brasil tem feito sua parte para popularização deste novo conceito de identificação, enquanto obriga empresas de vários setores a obter certificações digitais principalmente por conta da Nota Fiscal Eletrônica. Esta necessidade e obrigação alcançarão brevemente as pessoas físicas, mostrando sua facilidade e aumentando a segurança nas transações e na comunicação virtual.

Referências;

Câmara Técnica de Documentos Eletrônicos, MODELO DE REQUISITOS PARA SISTEMAS INFORMATIZADOS DE GESTÃO ARQUIVÍSTICA DE DOCUMENTOS. <http://www.conarq.arquivonacional.gov.br/media/publicacoes/earqmet/earqbrasilv1.1.pdf>
VOLPI, MARLON MARCELO. ASSINATURA DIGITAL – ASPECTOS TÉCNICOS, PRÁTICOS E LEGAIS, 1ª EDIÇÃO, EDITORA AXCEL BOOKS.
SIERRA E BATES, KATHY E BERT. SCJP – CERTIFICAÇÃO SUN PARA PROGRAMADOR JAVA 5, 2 ª EDIÇÃO, EDITORA ALTA BOOKS.
CORMEN, LEISERSON, RIVEST, STEIN. THOMAS H, CHARLES E., RONALD L., CLIFFORD – ALGORITMOS TEORIA E PRÁTICA, TRADUÇÃO DA 2 ª EDIÇÃO AMERICANA, EDITORA CAMPUS.
Wikipedia, Hash Function. <http://en.wikipedia.org/wiki/Hash_function>
Wikipedia, Cryptographic Hash Function. <http://en.wikipedia.org/wiki/Cryptographic_hash_function>
Wikipedia, Secure Hash Algorithm.
Wikipedia, SHA1.
Wikipedia, SHA-2.
Wikipedia, MD5.
Wikipedia, Cryptography. <http://en.wikipedia.org/wiki/Cryptography>
Wikipedia, Enigma Machine.<http://en.wikipedia.org/wiki/Enigma_machine>
Wikipedia, Data Encryption Standard. <http://en.wikipedia.org/wiki/Data_Encryption_Standard>
Wikipedia, Triple DES. <http://en.wikipedia.org/wiki/Triple_DES>
Wikipedia, Advanced Encryption Standard. <http://en.wikipedia.org/wiki/Advanced_Encryption_Standard>
NIST (National Institute of Standards and Techonology), NIST'S POLICY ON HASH FUNCTIONS.
Thiago Castelló e Verônica Vaz, Assinatura Digital <http://www.gta.ufrj.br/grad/07_1/ass-dig/Introduo.html>
INSTITUTO NACIONAL DE TECNOLOGIA DA INFORMAÇÃO – ICP BRASIL. <http://www.iti.gov.br/twiki/bin/view/Main/WebHome, http://www.iti.gov.br/twiki/bin/view/ITI/Apresentacao>
Silva e Papani. Fernanda Taline da, Fabina Garcia. Um pouco da história da criptografia. <http://projetos.unioeste.br/cursos/cascavel/matematica/xxiisam/artigos/16.pdf>

Assinatura e Certificação Digital - A Instrução Normativa 969


A instrução normativa 969 foi publicada em outubro de 2009 pelo diário oficial da união e estabelece que todas as empresas devem enviar suas demonstrações e declarações para a receita federal assinadas digitalmente. A novidade é para as empresas que estão tributadas no lucro presumido que doravante, passam a ter que usar a assinatura digital. Esta obrigatoriedade está em vigor desde janeiro de 2010 sendo que para assinar este documento, é necessário um certificado digital, que é um documento eletrônico que identifica de forma inequívoca, uma pessoa física ou jurídica numa transação eletrônica, trazendo segurança e conveniência para todas as relações transacionais. Isso significa que se a empresa quiser enviar documentos assinados no papel, não será mais permitido, pois a norma estipula obrigatoriamente o uso de um certificado digital.  Essa é a necessidade para as empresas de lucro presumido (empresas que faturam em media 48 milhões de reais pro ano), pois as empresas de lucro real e arbitrário(2 milhões por ano) já utilizam a assinatura digital, enviando seus documentos para a receita federal.A aplicação dessa instrução traz algumas vantagens: economiza tempo e diminui custos, gerando facilidade para os empresários ou contadores, que são os que estão inclusos nessa normativa.A seguir um trecho publicado pelo diário oficial da união:
INSTRUÇÃO NORMATIVA No- 969,
DE 21 DE OUTUBRO DE 2009
 “O SECRETÁRIO DA RECEITA FEDERAL DO BRASIL, no uso da atribuição que lhe confere o inciso III do art. 261 do Regimento Interno da Secretaria da Receita Federal do Brasil, aprovado pela Portaria MF nº 125, de 4 de março de 2009, e tendo em vista o disposto no art. 16 da Lei nº 9.779, de 19 de janeiro de 1999, resolve:
Art. 1º A partir de 1º de janeiro de 2010, para a transmissão de declarações e demonstrativos pelas pessoas jurídicas tributadas com base no lucro real, no lucro presumido ou no lucro arbitrado, é obrigatória a assinatura digital, efetivada mediante utilização de certificado digital válido.
Art. 2º Esta Instrução Normativa entra em vigor na data de sua publicação.”

Assinatura e Certificação Digital - Obtendo um Certificado Digital

... ainda dentro de O ITI e a ICP-Brasil ...


Agora que já foi explicado o funcionamento e a serventia da certificação digital, será ponderado a seguir, o que é necessário para se obter um certificado digital no Brasil na data presente em que é realizado este trabalho. No âmbito Brasil os certificados digitais pode ser requeridos junto as autoridades certificadoras e/ou autoridades registradoras. Cada uma dessas entidades podem ter critérios distintos para a emissão dos certificados digitais, o que inclusive resulta em preços diferentes, portanto, é conveniente ao interessado saber qual AC é mais adequada às suas necessidades e atividades. Os principais certificados oferecidos são:
·         O eCPF, que é a versão eletrônica do CPF, garantindo a autenticidade e a integridade nas transações eletrônicas de pessoas físicas;
·         O eCNPJ que é o documento de identificação da empresa. Com ele, é possível assinar documentos eletrônicos com validade jurídica, autenticar-se em sites, realizar serviços da Receita Federal, dentre outros;
·         NF-e: Criado especialmente para emitir notas fiscais eletrônicas (garantindo sua conformidade na Lei) e atribuir ao funcionário responsável de sua organização a alçada necessária e restrita para emissão e gerenciamento de NF-e;
·         Certificado Digital para Servidor Web.
É importante destacar que o e-CPF e o e-CNPJ não são gratuitos. Sua aquisição deve ser feita em entidades conveniadas à Receita Federal, como Certisign e Serasa e os preços não são padronizados, variando de acordo com a empresa e com o tipo de certificado (certificados do tipo de autenticação, do tipo A, e os certificados de sigilo, do tipo S).

Assinatura e Certificação Digital - Autoridades Certificadoras e Autoridades Registradoras no Brasil

... ainda dentro de O ITI e a ICP-Brasil ...

Todo país que utiliza certificados digitais, possui uma hierarquia de autoridades certificadoras e no Brasil, não é diferente. A figura abaixo ilustra bem essa hierarquia da certificação digital em analogia à estrutura do documento RG, que atesta quem você realmente é.

A certificação digital pressupõe uma estrutura que envolve: Autoridade Raiz de Certificação, Autoridade Intermediária de Certificação e Autoridade de Registro.
De antemão, vamos definir o que vem a ser uma autoridade certificadora. De acordo com o artigo 5° da medida provisória 2.200 de 2001 realizada pelo presidente da república:
“Art. 5º À AC Raiz, primeira autoridade da cadeia de certificação, executora das Políticas de Certificados e normas técnicas e operacionais provadas pelo Comitê Gestor da ICP-Brasil, compete emitir, expedir, distribuir, revogar e gerenciar os certificados das AC de nível imediatamente subseqüente ao seu, gerenciar a lista de certificados emitidos, revogados e vencidos, e executar atividades de fiscalização e auditoria das AC e das AR e dos prestadores de serviço habilitados na ICP, em conformidade com as diretrizes e normas técnicas estabelecidas pelo Comitê Gestor da ICP-Brasil, e exercer outras atribuições que lhe forem cometidas pela autoridade gestora de políticas. É vedado à AC Raiz emitir certificados para o usuário final. ”
Em suma, existem Autoridades de Certificação de dois tipos: as Autoridades de Certificação de Raiz, ou Autoridades de Certificação Superiores, que emitem diretamente os certificados, e as Autoridades de Certificação Intermediárias (ou Autoridades de Certificação Inferiores ou ainda Autoridades de Certificação de Menor Nível, cujos certificados são emitidos indiretamente pelas Autoridades de Certificação de Raiz. Ou seja, existe uma hierarquia em relação à essas autoridades, como mostrado na figura 12.
A ICP-Brasil classifica os certificados emitidos pela mesma como certificados apenas para Autenticação e certificados Sigilosos, e dentro destas categorias, há os níveis de segurança na geração e armazenamento destes certificados. A categoria dos certificados de autenticação são denominados A1, A2, A3 e A4, assim funciona com a nomenclatura dos certificados sigilosos, S1, S2, S3 e S4. Os certificados A1 são gerados por softwares específicos para a geração das chaves públicas e privadas, a chave privada naturalmente deve ter um tamanho mínimo de 1024 bits, e o certificado é um arquivo de computador que é passado para o portador da identidade digital, e este certificado tem um período de validade máximo de 1 ano, sendo que esta explanação se aplica ao certificado sigilos S1.
A diferença dos certificados A2 e S2 para os A1 e S1 respectivamente é que o certificado é armazenado em dispositivos criptográficos como os Smart Cards e/ou Tokens e o período de validade destes certificados é de dois anos.
Para os certificados A3 e S3, a diferença para os A2 e S2 está no fato que as chaves não são geradas por um software de computador, mas sim por hardwares específicos para esta tarefa, estes são armazenados diretamente nos dispositivos criptográficos sem intervenção humana, e tem validade de três anos.
Por último, os certificados A4 e S4 que se diferenciam dos certificados A3 e S3 por conta das suas chaves de criptografia terem o dobro do tamanho, 20 por conta das suas chaves de criptografia terem o dobro do tamanho, 2048 bits, porém a validade também é de três anos.

Caso o certificado não seja emitido por uma Autoridade de Certificação, este é auto-assinado, ou seja, o proprietário ou usuário ocupa os lugares de Autoridade de Certificação, Autoridade de Registro e Cliente. As principais ACs de raiz são: a americana VeriSign e a britânica Equifax. Outros exemplos de Autoridades de Certificação Intermediárias são: a portuguesa Saphety, a também portuguesa Multicert e a brasileira Certisign.
Em relação às autoridades registradoras, a medida provisória estabelece o seguinte:
“Art. 7º Às AR, entidades operacionalmente vinculadas a determinada AC, compete identificar e cadastrar usuários na presença destes, encaminhar solicitações de certificados às AC e manter registros de suas operações.
Art. 8º Observados os critérios a serem estabelecidos pelo Comitê Gestor da ICP-Brasil, poderão ser credenciados como AC e AR os órgãos e as entidades públicos e as pessoas jurídicas de direito privado”.
A autoridade registradora é um elemento de igual importância em relação ao conceito de autoridade de certificação e se caracteriza por ser uma interface entre o usuário e a AC. Ela é responsável por conferir as informações do usuário e enviar a requisição do certificado para a AC. A qualidade do processo de conferência das informações determina o nível de confiança que deve ser atribuído ao certificado.
Em nível de curiosidade, existem sites que dispõem de ferramentas para que o usuário crie uma infra-estrutura de chaves públicas própria, como o endereço eletrônico ca.freeicp.org. Apesar de não possuir validade legal, é interessante para o entendimento prático e funcionamento do certificado digital e sua estrutura.


Assinatura e Certificação Digital - O ITI e a ICP-Brasil


O ITI que é um acrônimo para Instituto Nacional de Tecnologia da Informação é o órgão responsável por importantes missões relativas às políticas governamentais de tecnologia da informação no Brasil. O ITI é uma autarquia vinculada à casa civil da presidência da republica do Brasil. Sua missão é cuidar e manter a ICP Brasil, cujos membros do comitê gestor, são nomeados pelo presidente da república para garantir transparência, confiabilidade e estabilidade ao sistema de emissão de certificados no Brasil.
A ICP-Brasil é composta por uma Autoridade Gestora de Políticas – AGP e pela cadeia de autoridades certificadoras composta pela Autoridade Certificadora Raiz – AC-Raiz, pelas Autoridades Certificadoras – AC e pelas Autoridades de Registro – AR. No item a seguir, será discernido esses conceitos que fornecem a estrutura básica para o correto funcionamento da aplicação dos certificados digitais atualmente no Brasil. 

Assinatura e Certificação Digital - Assinando e Verificando uma Assinatura Digital


Assinar uma mensagem lógica/digital é normalmente aplicar sobre a mensagem a criptografia simétrica de assinatura com a chave privada do indivíduo. Porém esta ação de criptografia que posteriormente gerará a ação de descriptografar a mensagem são operações pesadas, mesmo para potentes computadores, então para minimizar a carga de processamento faz-se utilização das funções/algoritmos de resumo criptográficos que são vários, e neste trabalho foram apresentados dois, o MD5 e o SHA-1, sendo que estas funções devem obter um identificador da mensagem lógica, como já dito anteriormente, este é conhecido como message digest ou o resumo da mensagem. Vale mencionar que para algumas operações que precisam de alguma maneira de sigilo ou que a mensagem criptografada não seja pública, então a criptografia de toda a mensagem deve ser executada. Tendo então em mãos o message digest da mensagem a ser assinada, aplica-se o algoritmo de criptografia assimétrica para assinatura da mensagem sobre o message digest, são também vários os algoritmos de criptografia assimétricos e neste trabalho foram apresentados alguns como o RSA e o DSA. O produto obtido então é denominado Assinatura Digital, e se esta mensagem precisasse ser enviada para alguém assinada digitalmente, seria encaminhados então a mensagem original que fora assinada, a assinatura digital obtida e o certificado do sujeito que assinou a mensagem, a seguinte imagem ilustra o processo de assinatura;

Sabemos que a assinatura digital garante três propriedades importantíssimas; a autenticidade, a integridade e o não repúdio, com isto dado uma assinatura de determinada mensagem, em qualquer momento após efetuar esta assinatura a mesma poderá ser comprovada ou verificando-se a mensagem digitalmente assinada, porém na realidade como foi visto o que fora verdadeiramente assinado foi somente o message digest ou hash value, portanto para verificar tal assinatura, tendo em mãos a mensagem original, o message digest assinado e o certificado de quem assinou, faz-se necessário obter novamente um novo message digest da mensagem original, com a chave pública que se encontra no certificado de quem assinou a mensagem descriptografamos o message digest assinado e então comparamos com o novo message digest que obtivemos anteriormente, se os dois forem exatamente iguais, então podemos comprovar que a mensagem dita original de fato fora assinada por quem afirma ter assinado, em outras palavras, a assinatura é válida, o esquema de verificação pode ser visto na seguinte ilustração;

Nota: Deve ser observado que os algoritmos para obtenção do hash value ou algoritmo de criptografia de chave pública devem ser os mesmos no momento da verificação da assinatura.


Assinatura e Certificação Digital - Meios de Armazenamento da Identidade Digital


No momento em que determinada pessoa física ou jurídica requisita junto a uma AC válida uma chave secreta para efetuar assinaturas digitais e um certificado digital que identifique quem esta pessoa é de fato, faz-se necessário artifícios para auxiliar tal pessoa a manter estas informações, ou seja, já mencionamos que a chave secreta de uma pessoa é uma sequência de caracteres relativamente grande e devido a necessidade de segurança desta informação uma AC não teria apenas uma ação simples de gerar a chave secreta e entregar a mesma de qualquer maneira para o portador da identidade digital, como se faz com uma senha de assinatura eletrônica (cartão de um banco, senha de email) ou algo do gênero.
            Estes ditos meios de armazenamento podem estar dispostos em dois tipos de suportes; software, que no caso o usuário deverá saber da existência, de onde se encontra digitalmente a sua assinatura e sua identidade digital, e outra maneira de armazenamento é com hardwares específicos chamados de hardwares ou dispositivos criptográficos, no qual se diz que o usuário deve saber e ter, isto porque o dispositivo é físico, e pode acompanhar fisicamente o usuário por onde este estiver, exemplo destes dispositivos podem ser citados os Tokens e os Smart Cards, como segue abaixo figuras com exemplos de um Smart Card e um Token respectivamente;
Como as informações contidas nestes Meios de Armazenamento são de alta confidencialidade e precisam estar seguras, nos dois modelos de armazenamento existem duas senhas; uma para acessar informações diversas como o certificado do usuário e outra para acessar a chave secreta do tal usuário. A idéia é que se estes meios de armazenamento caiam em mãos erradas ou forem extraviadas, ou algo parecido, o devido portador possa avisar a AC emissora da identidade digital e então a AC em medida de emergência coloque tal certificado na lista de certificados revogados. Com esta medida, se o meio de armazenamento fora roubado e a pessoa má intencionada tentar quebrar a senha do usuário verdadeiro, até que consiga efetuar esta operação, possivelmente a AC já colocou a identidade na lista de certificados revogados, e no momento de assinar algo com esta identidade roubada, a assinatura já não terá mais validade. A nível de curiosidade, alguns dispositivos criptográficos ao perceber a tentativa de quebra das suas senhas, como um mecanismo de auto proteção, acabam por destruindo toda informação contida no dispositivo, é quase uma auto destruição, alguns Smart Cards e Tokens têm esta ação preventiva.
            No caso dos meios de armazenamento em software, no que geralmente é dado ao portador da identidade um documento digital criptografado que contém as informações pertinentes a identidade do usuário, estes documentos digitais seguem alguns padrões nas suas estruturas de dados, poderíamos comparar estas estruturas de dados com alguma especificação na estrutura de dados em um arquivo XML em que sistemas distintos se comunicariam com este, mas enfim, estes padrões são definidos pelo PKCS que é um acrônimo para Public Key Cryptographyc Standards ou no português, são os Padrões de Criptografia de Chaves Públicas, e no contexto das identidades em meios digitais (PKCS#11 para dispositivos criptográficos), e geralmente um arquivo que referencia este padrão estará com a extensão .PFX ou raramente .P12.
            No momento em que uma AC emite um certificado digital para determinado cliente, de acordo com a escolha do meio de armazenamento escolhido pelo cliente, a AC então emitirá a chave secreta, o certificado digital do usuário e sua cadeia certificação neste meio de armazenamento.

Assinatura e Certificação Digital - Cadeia de Certificação

... ainda dentro de Sistema de Criptografia de Chaves Públicas ICP/PKI ...


Em um certificado digital naturalmente contém uma informação que é a cadeia de certificação, sendo esta uma sequência de certificados, formada pelo caminho percorrido desde a AC de primeiro nível, passando pelas ACs intermediárias até o certificado do usuário final.
Normalmente a cadeia de certificação é formada da esquerda para direita, e na verificação se determinado certificado digital é confiável ou não, a certificação do usuário final só será verificada se toda sua cadeia for validada anteriormente, se tudo ocorrer bem, então pode-se dizer que tal certificado é um certificado válido. Faz parte da verificação do certificado validar se cada certificado apresentado na cadeia é de fato assinado pela AC sucessora, ou seja, assumindo o certificado do João que fora emitido pela “AC Caixa PF” (Caixa Econômica Pessoa Física), e esta AC têm um certificado emitido pela “AC CEF” (Caixa Econômica Federal) e ainda esta AC têm um certificado emitido pela “AC ICP-Brasil” que é uma AC de primeiro nível, então temos uma ilustração com a seguinte ilustração;

No decorrer da verificação do certificado apresentado por João, primeiro será validado se a “AC ICP-BRASIL” é uma AC de raiz válida, e então se o certificado de “AC CEF” é de válido e assinado pela “AC ICP-BRASIL”, e da mesma maneira ocorrerá com o certificado “AC Caixa PF” e o certificado de João, assim quando verificado toda a cadeia, então o certificado de João é dado como válido e confiável.
           A verificação ou validação de um certificado e toda sua cadeia ainda passa por outros dois conceitos, a lista de certificados raízes confiáveis e a lista de certificados revogados. A lista de certificados raízes confiáveis é mantida por entidades de primeiro nível confiáveis mundialmente e portanto conhecidas mundialmente, os softwares que precisam fazer a verificação de certificados conhecem estas listas, os próprios Sistemas Operacionais mantém estas listas em suas bases, e são atualizados periodicamente em background, sem a interceptação dos usuários, a plataforma Java, em especial a JVM (Java Virtual Machine) conhece boa parte das listas de certificados e também as atualiza em background, a exemplo dos vários Web Browsers. A lista dos certificados revogados é mantida pelas ACs intermediárias e um certificado pode ser revogado por motivos diversos, como a um extravio da senha secreta por parte do devido portador do certificado, ou algo do gênero, enfim, a AC pública periodicamente ou em emergência as listas dos certificados que foram revogados antes da data de vencimento e não devem ser utilizados para efetivação de assinaturas digitais, esta lista é bastante conhecida como CRL (certificate revocation list) ou no português LCR do já dito lista de certificados revogados.

Assinatura e Certificação Digital - Autoridades Certificadoras

... ainda dentro de Sistema de Criptografia de Chaves Públicas ICP/PKI ...

As Autoridades Certificadoras são instituições públicas ou privadas com autoridade eminente para emissão de certificados digitais, ou seja, emissão da identificação digital de pessoas físicas e/ou privadas, sendo que estes certificados devem ser automaticamente assinados por tais AC. Diz-se que estas instituições devem ter tais autoridades, pois as mesmas são comparadas as entidades emissoras de documentos tradicionais, ou seja, os denominados órgãos expedidores de documentos.
            As Autoridades Certificadoras podem ter diferentes níveis de confiança e seus Certificados Digitais emitidos naturalmente também teriam níveis diferentes de confiança, além do que, a confiança na identificação de algo ou alguém como já mencionado em meios lógicos ou físicos, se dá pela instituição emissora da identificação. O que queremos dizer é que o nível de confiança em uma identidade digital é diferente se o certificado digital for emitido pela "Caixa Econômica Federal Pessoa Jurídica" (que é uma AC real) e um certificado digital emitido por uma empresa Y aos seus funcionários. As duas ACs podem ser reais e válidas, porém em uma ação de cenário nacional, partindo do nosso exemplo, somente o certificado emitido pela "Caixa Econômica Federal Pessoa Jurídica" poderia ser dado como válido, possivelmente pela responsabilidade que o portador do certificado tem assumido com a AC que seria então o órgão que expediu a identidade digital. Reforçando ainda mais a informação, podemos afirmar que os certificados digitais ligam uma pessoa jurídica ou física a uma chave pública e as ACs confirmam que determinado certificado é válido e confiável, ou seja, por tratamentos lógicos podemos afirmar, voltando ao princípio da terceira parte confiável que a AC informa se a assinatura de determinada pessoa jurídica ou física é válido e confiável.
            As ACs na necessidade de garantir os altos níveis de segurança inclusive para que dê validade jurídica as assinaturas digitais, dentro do escopo da ICP, obrigatoriamente utilizam hardwares específicos para geração das chaves públicas e privadas e armazenamento destas chaves, garantindo a segurança das mesmas contra perdas por roubos e outros motivos diversos.
            Toda Autoridade Certificadora deve possuir um certificado digital como qualquer outro, de maneira tal, as ACs possuem também suas chaves privadas que são utilizadas para assinar os certificados digitais dos clientes destas. Como já fora mencionado, para constituir uma ICP há uma arquitetura organizacional, que são as ACs, esta arquitetura dita segue um modelo hierárquico que como todo modelo de hierarquia, existem níveis. O primeiro nível ou o nível mais alto deve ter a possibilidade de criar/emitir um certificado para si mesmo sendo que este certificado é denominado Certificado Raiz e ao passo que este primeiro certificado é gerado, então possibilita o início das atividades da ICP. Este certificado é criado e assinado pela AC raiz naturalmente esta AC raiz deve ser uma entidade/instituição pública ou privada de alta confiança.
            Vale mencionar que diferentes entidades e instituições podem ser Autoridades Certificadoras e até mesmo Autoridades Certificadoras de primeiro nível, ou seja, uma empresa privada que queira que seus funcionários se identifiquem e garantam integridade das informações geradas logicamente/digitalmente pode fazer utilização da Assinatura e Certificação digital dentro da empresa, a própria empresa poderia ser a AC raiz, gerar o seu próprio Certificado Digital, assinar este e com o mesmo gerar chaves privadas e certificados para seus funcionários, em outras palavras esta empresa teria que manter a sua própria ICP, mas de qualquer maneira os certificados gerados pela mesma só seriam então válidos dentro desta empresa, e as assinaturas naturalmente não teriam fé pública por exemplo.
            Cada certificado emitido normalmente por uma AC contém informações imutáveis sobre o que o mesmo pode certificar ou assinar sobre outros certificados, a Autoridade Certificadora emite certificados para os seus clientes, mas estes certificados não devem ser utilizados para assinar outros certificados. Os Certificados que podem ser utilizados para assinar outros Certificados são geralmente emitidos de uma AC de nível maior para outra menor tomando por base altos níveis de precauções. Se um usuário compra um certificado de determinada AC e então decide assinar outro certificado com este que foi comprado, este novo certificado assinado não terá validade, pois o certificado emitido para tal usuário contém informações descrevendo que o mesmo não deveria ser utilizado para assinar outros certificados. Podemos afirmar então que um certificado pode ser assinado por outro certificado ou assinado por si mesmo sendo que todo certificado raiz é um certificado assinado por si mesmo e normalmente os certificados assinados por outros certificados são emitidos por alguma AC.

Assinatura e Certificação Digital - Certificados Digitais

... ainda dentro de Sistema de Criptografia de Chaves Públicas ICP/PKI ...

Um Certificado Digital liga uma determinada chave pública a uma determinada pessoa, estes certificados são geralmente emitidos por um tipo de autoridade, sendo estas autoridades públicas ou privadas, dependendo da necessidade e utilização da identidade digital. Estas autoridades mencionadas são as Autoridades Certificadoras, normalmente conhecidas pelo acrônimo AC e pode ser facilmente comparadas com as entidades emissoras de documentos, quando dito sobre a quem tem a responsabilidade de inserir o sujeito no sistema e na confiança estabelecida sobre a autoridade certificadora, isto quer dizer que quando se confia na identificação/certificado de determinado usuário/computador, a confiança na realidade está sobre quem emitiu o certificado, que como já mencionado "baseia-se no princípio da terceira parte confiável" que é o mesmo princípio dos documentos tradicionais (em meios físicos).
            Um Certificado Digital é um documento eletrônico como qualquer outra entidade lógica, porém por padrão este é assinado digitalmente pela Autoridade Certificadora que o emitiu. Um Certificado Digital tem um papel semelhante a um documento de Identidade (RG), porém sua tarefa é identificar em meios lógicos uma pessoa física ou jurídica ou ainda um computador.
            Os Certificados Digitais são padronizados, e de acordo com o âmbito e utilização estes certificados são também identificados, como por exemplo, para a assinatura digital os certificados digitais mais utilizados são os certificados do padrão X.509, este tipo de certificado contém informações básicas do portador da identidade digital como;
  • a chave pública do portador;
  • nome da pessoa associada a chave pública;
  • período de validade do certificado;
  • informações sobre a AC que emitiu tal certificado;
  • cadeia de certificação (será discutido no decorrer do trabalho);
  • número de série;
  • informações sobre o algoritmo de criptografia utilizada pelo portador;
  • e várias outras informações que detalham o portador e o próprio certificado;

Assinatura e Certificação Digital - Sistema de Criptografia de Chaves Públicas ICP/PKI


O sistema de criptografia de chaves públicas é na verdade todo o arcabouço existente que dê suporte a assinatura digital. A assinatura digital propriamente dita é a aplicação da criptografia assimétrica, onde é preciso existir a chave privada e a pública correspondente, mas não só isto, imaginemos como seria possível confirmar que determinada chave pública é de fato de João? Ou seja, não basta apenas existir a criptografia de chaves públicas (criptografia simétrica), faz também necessário a possibilidade de certificar que determinada pessoa é de fato quem afirma ser, ou seja, uma identidade digital de um sujeito, algo que crie um vínculo entre determinada pessoa e uma chave pública.
            Este dito arcabouço ou aparato para o sistema de criptografia de chaves públicas é o conceito do PKI que está para Public Key Infrastructure ou no português ICP que é o acrônimo para Infra-estrutura de chaves públicas que existem para dar valores jurídicos as ações de assinaturas digitais. Uma ICP é uma arquitetura organizacional que fornecem técnicas e procedimentos que suportam os denominados Certificados Digitais, a aplicação do sistema de chaves públicas para propósito da troca segura de informações sobre canais inseguros como de redes e dispositivos diversos.
            Para o controle dos chamados Certificados Digitais é que existe a Infra-estrutura de Chaves Públicas e dentro desta o conceito de Autoridades Certificadoras, que baseia-se no princípio da terceira parte confiável, oferecendo uma mediação de credibilidade e confiança em transações entre as partes que utilizam certificados digitais.

Assinatura e Certificação Digital - Pequeno Comparativo entre os Modelos de Criptografia


Há de se observar que o poder computacional necessário para ambos modelos de criptografia são distintos, visto que criptografar uma e decifrar uma mensagem com modelo assimétrico, dependo da mensagem, pode ser uma tarefa árdua, mesmo para potentes computadores, por isto em alguns protocolos e tecnologias, como é o caso da navegação segura na internet pelo protocolo HTTPS com o SSL, há uma mesclagem dos dois modelos criptográficos. A comunicação ocorre o tempo todo via determinada criptografia simétrica, a maior carga de processamento ocorre no primeiro contato entre os dois computadores remotos, cliente e servidor, pois neste momento é combinado a chave da criptografia simétrica e o algoritmo da comunicação.
            Dado tal ambiente, facilmente percebe-se as vantagens e desvantagens entre os dois modelos. A criptografia simétrica tem a vantagem de ter um processamento mais leve das mensagens, mas o problema estaria em definir seguramente uma chave de comunicação, sem que terceiros pudessem ter acesso a chave e consequentemente a mensagem, portanto, a desvantagem da criptografia simétrica está na gerência das chaves de criptografia, o que se torna fácil com a criptografia assimétrica, visto que há a chave privada e pública do João e a chave privada e pública do Pedro, então os dois podem se comunicar facilmente, mas a carga de processamento é mais pesada, dependendo da mensagem em que os mesmos vão trocar.
            Como a navegação na internet é cobrada segurança e agilidade, então a união dos dois modelos de criptografia é a solução mais viável, e que tem obtido grande sucesso.

Assinatura e Certificação Digital - DSA

... ainda dentro de Criptografia Assimétrica ...


O DSA que está para Digital Signature Algorithm ou no português Algoritmo de Assinatura Digital é o sistema padrão para assinaturas digitais do governo americano, e foi proposto em agosto de 1991 pelo NIST o instituto nacional para definição de padrões e tecnologia do governo. O DSA é um algoritmo que se encontra no contexto da criptografia assimétrica fazendo parte naturalmente da infra-estrutura de chaves públicas, porém o algoritmo foi desenvolvido com o único objetivo de ser um padrão para assinaturas digitais, por isto o seu nome. O DSA é protegido pela patente americana 5.231.668 e é atribuído a um funcionário da NSA de nome David W. Kravitz, porém a patente é livre de royalty, ou seja, pode ser utilizada livremente sem necessidade de licença.
            A geração das chaves criptográficas é divido em duas fases; na primeira devem ser definidos os parâmetros do algoritmo que podem ser compartilhados entre diferentes usuários do sistema criptográfico, como segue;
1 – Um dos parâmetros é a escolha de uma função de hash criptográfico sendo definido como a função “H”, por exemplo o SHA-1 ou o utilizado atualmente o SHA-2.
2 – Definir o tamanho das chaves “L” e “N”, observando que o tamanho destas chaves pode definir a força da criptografia. O valor de “L” deve ser um múltiplo de 64 entre 512 e 1024 (inclusive) sendo recomendando chaves de comprimento entre 2048 e 3072 dígitos, e por conseguinte o valor de “N” também deve ser grande. Mais especificamente os valores serão pares como; 1024 e 160, 2048 e 224, 2048 e 256, 3072 e 256 para “L” e “N” respectivamente.
3 – Definir um valor para “q” que seja um primo de N-bit, para tal, o valor de N deverá ser menor ou igual ao tamanho da saída do função de hash criptográfico.
4 – Definir um valor L-bit primo e módulo de “p”, de maneira que p-1 seja múltiplo de “q”.
5 – Definir um valor para “g”, um número do qual deve ser multiplicativo e a ordem módulo de “p” deve ser igual a “q”. Isto pode ser obtido pela expressão “g=h(p-1)/q mod p” para um valor de “h” arbitrário, de maneira que “h” seja maior que 1 e menor que p-1, e tentar novamente se o valor obtido para “h” for igual a 1. A maioria das escolhas de “h” irá levar a um valor válido para “g”; o que normalmente 2 será um valor válido para “h”.
Vale notar que os valores de “p”, “q” e “g” podem ser compartilhados entre os diferentes usuários do sistema de criptografia.
            A segunda fase é a computação das chaves privadas e públicas para um determinado usuário, de maneira que para computação destas chaves deve ser seguido os seguintes passos;
1 – Definir um valor de “x” por um método randômico, onde “x” deverá ser maior que 0 e menor que “q”.
2 – Calcular o valor de “y” que obedeça a expressão y=gx mod p.
3 – A chave pública é então a formação de “p”, “q”, “g” e “y”, e a chave privada é “x”.
            Existem algoritmos eficientes para a computação de exponenciação modular ha mod p, e gx mod p, tal como a exponenciação ao quadrado.
            Para assinar uma mensagem, devemos assumir “H” como uma função de hash criptográfica e “m” a mensagem a ser criptografada, então os seguintes passos devem ser seguidos;
1 – Definir para “k” um número randômico onde “k” deve ser maior que 0 (zero) e menor que “q”;
2 – Calcular um valor para “r” de maneira a obedecer a expressão “r=(gk mod p) mod q”;
3 – Calcular o valor de “s” que respeite a expressão “s=(k-1 (H(m) + r*x)) mod q;
4 – Recalcular a assinatura se por acaso o valor de “r” ou “s” for igual a 0 (zero);
5 – A assinatura é então composta por (r, s);
A extensão do algoritmo de Euclidean pode ser utilizado para computar o inverso modular “k-1 mod q”.
            A verificação de uma assinatura             é composta pelos seguintes passos;
1 – Rejeitar a assinatura se as expressões 0 < r < q ou 0 < s < q não forem satisfeitas.
2 – Calcular o valor de “w” de maneira a atender a expressão w = (s)-1 mod q;
3 – Calcular o valor de “u1” de maneira a atender a expressão u1 = (H(m)*w) mod q;
4 – Calcular o valor de “u2” que obedece a expressão u2 = (r*w) mod q;
5 – Calcular o valor de “v” que obedece a expressão v=((gu1*yu2) mod p) mod q;
6 – A assinatura só é válida se o valor de “v” for igual ao valor de “r”.

Assinatura e Certificação Digital - RSA

... ainda dentro de Criptografia Assimétrica ...


Na criptografia assimétrica, o acrônimo RSA está para as iniciais dos sobre nomes de Ron Rivest, Adi Shamir e Leonard Adleman que foram os primeiros a publicar uma implementação de um algoritmo para a criptografia de chaves públicas, sendo que tal publicação ocorrera em 1978. É o primeiro algoritmo conhecido utilizado para assinaturas e criptografia de mensagens, e um dos primeiros a mostrar as grandes vantagens desta criptografia de chaves públicas. o RSA é amplamente utilizado nos protocolos de comércio eletrônico, e a este pode ser dado a confiança, se utilizado chaves suficientemente grandes e ainda com atualizações periódicas na implementação do algoritmo, que ocorre quando encontrado possíveis falhas.
            Há relatos de que outra pessoa já havia descrito o trabalho do algoritmo de chaves públicas de maneira bastante parecida com o que foi apresentado com o RSA. Esta pessoa é Clifford Cocks, um matemático britânico que trabalha para a inteligência inglesa, e descreveu um sistema "equivalente" em um ofício interno em 1973, porém como o poder computacional necessário seria muito caro, o projeto até que era curioso, mas nas atuais circunstâncias, acabou sua descoberta não sendo desenvolvida, no entanto não havia sido revelada até meados de 1998.
            O MIT concedeu uma patente aos inventores do RSA pelo algoritmo desenvolvido cujo foi denominado como "Sistema e método de comunicações criptográficas", a patente espiraria em 21 de setembro de 2000, mas a expiração e o algoritmo foi liberado para domínio público duas semanas antes, em 6 de setembro de 2000. Um resumo da patente discursa o seguinte:
           
            "O sistema cria um canal de comunicação, onde um terminal de ponta tem a tarefa de codificar a mensagem e outro terminal tem a tarefa de decifrar a mensagem. A mensagem a ser transferida é cifrada/codificada por um terminal para um texto não legível pela codificação com um número M em um conjunto predeterminado. O número é então elevado para o poder predeterminado (associado com o número do recebedor) e finalmente computado. O resto ou os resíduos, C, é computado o número potenciado é dividido pelo produto de dois número primos predeterminados (associados com recebedor pretensioso)."

Sendo tal resumo não muito fácil de ser compreendido, segue uma descrição do algoritmo, desde a geração das chaves, até a utilização do algoritmo: O RSA envolve uma chave pública e uma chaves privada. A chave pública pode ser de conhecimento público, e é frequentemente utilizada para criptografar mensagens. Uma mensagem cifrada com determinada chave pública só pode ser decifrada com a chave privada correspondente. As chaves geradas para os algoritmos RSA são geradas da seguinte maneira;
            1 - É escolhido dois números primos distintos, denominados p e q, por exemplo, p=61 e q=53;
            2 - Computa n = p * q, no caso n=(61*53), ou seja, n=3233; (o valor de n é utilizado como um módulo para ambas as chaves, públicas e privadas)
            3 - Calcula-se (f é a função phi de Euler) que corresponde a f(pq) = (p - 1)(q - 1), que vem a ser (61-1)*(53-1) resultando 3120.
            4 - Escolhe um número inteiro denominado “e” de maneira que e seja maior que 1 e menor que f(pq), ou seja, menor que 3120 no nosso exemplo, e ainda o valor o valor de “e” necessita ser um número primo que seja fácil de ser encontrado, e o valor de “e” não pode ser um divisor de f(pq), ou seja, o nosso valor de “e”, não pode ser divisor de 3120. Dentre os primeiros números primos que poderiam ser utilizados pode-se citar o 7 e o 17 que atendem ao critério para o valor de “e”, para tanto, será escolhido o número 17, logo, “e”= 17.
            5 – Determinar o valor de “d” de maneira que obedeça a fórmula d*e=1 (mod f(pq)), cujo valor de “d” deve ser encontrado com a extensão do algoritmo de Euclides, com a Multiplicação Modular Inversa que é assim definido;
            “A multiplicação modular inversa de um número inteiro "a" e módulo "m" é um inteiro "x" que obedece à: a-1=x(mod m). Isto é, a multiplicação inversa é uma aliança do módulo dos inteiros. Isto equivale a ax=aa-1 = 1 (mod m). A multiplicação inversa de um módulo existe 'se e somente se' o valor de "a" e o valor de "m" são primos entre si, por exemplo, se gcd(a, m) = 1. Se a multiplicação modular de um módulo "m" existe, a operação de divisão por um módulo "m" pode ser definida como multiplicação pelo seu inverso, o que é a essência do mesmo conceito do campo da divisão dos número reais.” Do original; “The modular multiplicative inverse of an integer "a" modulo m is an integer x such that a-1=x(mod m). That is, it is the multiplicative inverse in the ring of integers modulo m. This is equivalent to ax=aa-1 = 1 (mod m). The multiplicative inverse of a modulo m exists iff (if and only if) "a" and "m" are coprime (i.e., if gcd(a, m) = 1). If the modular multiplicative inverse of a modulo "m" exists, the operation of division by a modulo m can be defined as multiplying by the inverse, which is in essence the same concept as division in the field of reals.
Para poder então efetuar o cálculo de “d” dado a regra supracitada, onde os valores até o momento obtidos como parâmetro são os valores de “e” e f(pq) que são 17 e 3120 respectivamente, se faz necessário efetuar iterações sobre o valor de f(pq), de maneira a obter a condição d*17=x e x+1 mod f(pq)=1.A maneira relativamente barata de se encontrar é por tentativas, enquanto deve-se iterar sobre o valor de f(pq) e somado a 1 dividir este valor por “e”, e este valor obtido que podemos denominar de “auxiliar” deve ser multiplicado então a “e”, e se a condição “valor obtido”
O valor de “d” encontrado é então 2753, visto que se dá por 17 * 2753 = 46801, que por sua vez o valor de 46801 mod 3120 = 1. A resposta então é: o valor de f(pq) iterado 15 vezes mais 1 dividido por 17 resulta 2753, considerando ainda que outro valor, como por exemplo não iria produzir um resto inteiro.
            A chave pública é o valor (n=3233, e=17), de maneira que para criptografar uma mensagem m, a função de criptografia é m elevado a 17 mod 3233, e a chave privada é (n=3233, e=17), a função de decifrar a mensagem criptografada c, é c elevado 2753 mod 3233.
            Na prática, para fazer o cálculo da mensagem cifrada c, por exemplo, da mensagem m 65 com a chave pública, deve-se calcular c = 2790, visto que é o resultado de 6517 mod 3233.
            No recebimento da mensagem cifrada 2790, a chave privada é utilizada para decifrar a mensagem m, cujo cálculo deve ser m = 65, visto que 27902753 mod 3233.
            A segurança do sistema RSA e de vários outros sistemas de criptografia simétrica em especial os de chaves públicas se baseiam na dificuldade da fatoração de números inteiros grandes o que é uma tarefa dificílima mesmo para poderosos computadores, sendo considerado em algumas vezes tarefas impossíveis, o que é válido afirmar que ao selecionar dois primos de 512 bytes aleatoriamente, e multiplicando estes valores, é possível criar uma chave pública que não vai ser quebrada em um período viável com tecnologia que conhecemos atualmente. De acordo com a fonte de informação, para evitar que se novos métodos de fatoração sejam desenvolvidos e as aplicações que utilizam o RSA sejam enfraquecidos, faz-se necessário que cada vez mais os inteiros trabalhados sejam grandes, o quanto maior possível, a fonte que escrita em 2001 afirma que trabalhava com faixas de 768 a 2048 bits.
            Com certeza de acordo com que o tamanho das chaves se torna maior, mais pesado será o processamento de criptografia e maior ainda o de decifragem das mensagens. Para mensagens grandes, a tarefa pode ser inviável de ser executada, então uma solução é cifrar a mensagem com uma criptografia simétrica, com uma chave secreta escolhida pelo remetente, e então cifrar a chave secreta com a chave pública do destinatário, assim será necessário enviar a mensagem criptografada, qual foi o algoritmo simétrico utilizado na cifragem e enviar a chave de decifragem também cifrada. No segmento, o destinatário irá utilizar a sua chave privada para decifrar a chave secreta que se encontra cifrada, e então sabendo o algoritmo simétrico certo, utilizá-lo na decifragem da mensagem com a chave secreta obtida. Vale mencionar que foi dito várias vezes no texto supracitado o algoritmo simétrico porque este tem um desempenho melhor na execução, por utilizar uma única chave secreta na cifra e decifragem de uma mensagem. Esta abordagem é conhecida como abordagem híbrida, pois utiliza a criptografia simétrica e a assimétrica.