universidade positivo nÚcleo de ciÊncias exatas e ... · dyego carmo “chun”, pela paciência...

66
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS ENGENHARIA DA COMPUTAÇÃO PROTOCOLADORA DIGITAL DE DOCUMENTOS ELETRÔNICOS Dyego Souza do Carmo Keiti Takeuti dos Santos Projeto apresentado à disciplina de Trabalho de Conclusão de Curso como requisito parcial à conclusão do Curso de Engenharia da Computação, orientado pelo Prof. Dr. Alessandro Brawerman. UP/NCET 2009

Upload: phungthuan

Post on 01-Dec-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

ENGENHARIA DA COMPUTAÇÃO

PROTOCOLADORA DIGITAL DE DOCUMENTOS

ELETRÔNICOS

Dyego Souza do CarmoKeiti Takeuti dos Santos

Projeto apresentado à disciplina de Trabalho de Conclusão de Curso

como requisito parcial à conclusão do Curso de Engenharia da

Computação, orientado pelo Prof. Dr. Alessandro Brawerman.

UP/NCET

2009

TERMO DE APROVAÇÃO

DYEGO SOUZA DO CARMO

KEITI TAKEUTI DOS SANTOS

PROTOCOLADORA DIGITAL DE DOCUMENTOS

ELETRÔNICOS

Monografia aprovada como requisito parcial à conclusão do curso de Engenharia

da Computação da Universidade Positivo, pela seguinte banca examinadora:

Prof. Dr. Alessandro Brawerman (Orientador)

Prof. Ederson Cichaczewski

Prof. Maristela Regina Weinfurter

Curitiba 2009

AGRADECIMENTOS

Esta monografia é o resultado de uma longa caminhada. Muitos contribuíram para que eu chegasse até aqui. Agradecer, sem cometer injustiça, é uma tarefa difícil agradeço a todos que, no anonimato, participaram desta minha conquista.

Agradeço em especial:À Deus pelo dom da vida, por estar sempre comigo e ter dado a chance de

concluir mais uma etapa da minha vida;Aos meus filhos Gabriel e Victória principais motivos dessa longa caminhada;Aos meus pais Celso José dos Santos e Delaine Takeuti dos Santos pela

educação que me concederam na formação do meu caráter e, ainda, ajudando de todas as formas que podiam;

À Luciana Vianna que esteve presente nos momentos mais difíceis, sem a qual a realização deste não seria possível;

Ao meu colega de turma, amigo, companheiro, esposo e principal incentivador Dyego Carmo “Chun”, pela paciência e carinho, compreendendo meu stress e minhas mudanças de humor e, sem o qual a finalização desta etapa não seria possível;

Aos meus amigos e familiares que torceram pelo meu sucesso;Ao Professor e orientador Alessandro Brawerman, pela dedicada orientação e

pelo incentivo na realização deste trabalho;Ao Professor Mauricio Perreto pela paciência e dedicação em todos os

momentos;Aos amigos Edson “Screlza”, Fabio, Eliane que me ajudaram, estiveram sempre

comigo e que muito me ensinaram.

Keiti Takeuti dos Santos

Este projeto tem como propósito calcar mais um passo em direção ao meu futuro profissional. Muitos podem ser ditos como "responsáveis" por este novo patamar no qual me encontrarei em breve, e estes merecem a minha atenção especial: À Deus por possibilitar que eu acorde todos os dias, por não permitir que nada de ruim aconteça comigo e por sempre acolher-me a todo momento, mesmo sem pedir; Aos meus pais, mais especificamente minha avó materna, "Ivolene" e a minha mãe "Mauren", as quais sem o total apoio e dedicação nem mesmo vivo eu estaria; A minha querida esposa Keiti Takeuti dos Santos, a qual fez-me acreditar que um reinicio era possível, tendo em vista que sem esperança o ser humano não vive, apenas sobrevive;

Ao meu amigo Alexandre Pereira Nunes, ou Alex, que sempre esteve ao meu lado me ajudando e fortalecendo a nossa amizade;

Ao Professor e orientador Alessandro Brawerman, pela dedicada orientação e pelo incentivo na realização deste trabalho;

Ao Professor Mauricio Perreto pela paciência e dedicação em todos os momentos; Aos amigos Edson “Screlza”, Fabio que me ajudaram, estiveram sempre comigo e que muito me ensinaram.

Dyego Souza do Carmo

RESUMO

É notória a evolução para um mundo cada vez mais digital. O sonho de migrar os documentos em papel para equivalentes eletrônicos e autenticar pessoas no mundo virtual já está se tornando realidade em muitas organizações.

Entretanto para que documentos eletrônicos sejam tecnicamente e juridicamente seguros é necessário que satisfaçam alguns requisitos como: autenticidade, integridade, irrefutabilidade e a tempestividade.

O objetivo deste projeto é propor a implementação de um dispositivo, uma Protocoladora Digital de Documentos Eletrônicos (PPDE), de simples utilização, capaz de prover as exigências necessárias para a segurança de documentos digitais utilizando um sistema computacional de uso específico e com alto nível de segurança.

Palavras Chaves: Criptografia, Hardware Security Module HSM, Assinatura Digital, Certificação Digital, Carimbo do Tempo.

ABSTRACT

It is clear the evolution to a world increasingly digital. The dream of moving

from paper documents to electronic equivalents and authenticate people in the virtual

world is already becoming reality in many organizations.

However from that electronic documents be technically and legally insured is

necessary to meet certain requirements such as: authenticity, integrity, cogency and

timeliness.

The objective of this project is to present the implementation a device, the

Protocoladora Digital de Documentos (aka PPDE), easy to use and capable to provide

the necessary requirements for the security of digital documents using a computer

system for specific use and high level of security.

Key Words: Encryption, Hardware Security Module HSM, Digital Signature, Digital Certificate.

SUMÁRIO

LISTA DE FIGURASLISTA DE SIGLASLISTA DE TABELAS

1 LISTA DE FIGURAS

2 Figura 2.1: Documento Eletrônico

Seguro

Figura 2.2: Criptografia Assimétrica

Figura 2.3: Assinatura digital

Figura 2.4: Certificado Digital da Autoridade Certificadora Raiz Brasileira – ICP Brasil

Figura 2.5: Arquitetura da PDDE

Figura 4.6: Acelerômetro Freescale

Figura 4.7: Placa contendo os sensores do HSM

Figura 4.8: Esquemático do circuito

Figura 4.9: Gumstix ARM. (GUSMSTIX).

Figura 4.10: Kit ARM com o descritivo do modulo de expansão

Figura 4.11: Módulos Expansores do Gumstix

Figura 4.12: Diagrama de Caso de Uso do Administrador do Sistema

Figura 4.13: Diagrama de Caso de Uso do Usuário

Figura 4.14: Diagrama de Sequência de Assinatura

Figura 4.15: Diagrama de Sequência da configuração da chave privada

Figura 4.16: Diagrama de Sequência do envia de email Carimbado.

Figura 4.17 – Diagrama de Sequência da verificação do carimbo.

Figura 4.18: Diagrama de Classe do firmware

Figura 4.19: Diagrama de Classe do Software de Retaguarda

Figura 4.20: Diagrama de Classe do Software de Retaguarda

Figura 4.21: Diagrama de Modelo de Banco de Dados

Figura 4.22: Pacote contendo o protocolo de comunicação

Figura 6.23: Pacote PKCS#7

Figura 6.24: Portal da Protocoladora Digital de Documentos Eletrônicos.

3 LISTA DE SIGLAS

1 AC - Autoridade Certificadora2 IACR - International Association for Cryptologic Research3 DES - Data Encryption Standard4 AES - Advanced Encryption Standard5 ASCII - American Standard Code for Information Interchange6 MD4 - Message Digest 7 SHA1 - Secure Hash Algorithm 8 NIST - National Institute of Standards and Technology9 ICP Brasil - Infra-Estrutura de Chaves Públicas Brasileira10 RG – Registro Geral11 CPF – Cadastro de Pessoa Física12 DPC - Declaração de Práticas de Certificação13 LCR - Lista de Certificados Revogados 14 FIPS - Federal Information Processing Standards 15 SSL - Secure Socket Layer 16 HSM - Hardware Security Module 17 PPDE - Protocoladora Digital de Documentos Eletrônicos 18 ARM - Advanced RISC Machine19 RISC - Reduced Instruction Set Computer20 PC – Personal Computer21 LDR - Resistor Dependente de Luz22 TCP - Transmission Control Protocol23 IP - Internet Protocol24 SMTP - Simple Mail Transfer Protocol25 AD - Autoridades Datadoras

4 LISTA DE TABELAS

5 Tabela 1 – Tempos para o teste de escalabilidade.

INTRODUÇÃO

O avanço da informática e a disseminação das redes de computadores possibilitaram o uso de transações eletrônicas em larga escala. Estas transações são realizadas através da troca de documentos eletrônicos entre entidades e vem sendo utilizados nas mais diversas áreas como bancos, governos, hospitais, entre outros, já que ocupam pouco espaço, são fáceis de gerir e podem ser copiados e transmitidos quase que instantaneamente. Documentação em papel tem um custo de impressão, manutenção, cópia, transporte, além disso, um documento enviado pelo correio demora muito mais para chegar a seu destino do que um simples email. O que antes era realizado utilizando-se papel passou agora a ser realizado na forma digital, de forma muito mais ágil.

Tais vantagens dos documentos eletrônicos trouxeram uma mudança no conceito de documento da forma antiga em papel, para o novo formato eletrônico. Esta mudança trouxe alguns problemas que devem ser solucionados. O maior deles diz respeito à legitimidade de tais documentos, pois por ser eletrônico pode ser alterado com facilidade abrindo-se, assim, espaço para inúmeras fraudes que, a priori, em papel seriam mais difíceis.

Além disso, existem requisitos que precisam ser preenchidos para que um determinado papel tenha valor legal. Para documentos digitais deve existir uma forma de assegurar que um determinado documento veio de uma fonte confiável e não foi alterado.

Para que sejam tecnicamente seguros, tais documentos devem ser datados e assinados digitalmente, os requisitos para a validade de um documento digital devem ser: (DIAS, 2004)

• Autenticidade: garante a autoria do documento;• Integridade: garante que o documento não foi alterado, sob nenhum aspecto;• Irrefutabilidade ou irretratabilidade: “que não se pode refutar, evidente, irrecusável,

incontestável”;• Tempestividade ou irretroatividade: garante que um determinado evento eletrônico

ocorreu em um determinado instante. Para que seja possível atender a estes requisitos é necessária à utilização de

assinatura digital, certificação digital, carimbo do tempo e um sistema confiável de protocolação digital, sendo este o foco do trabalho.

O principal objetivo deste projeto é criar um dispositivo de simples utilização para assinar e datar documentos eletrônicos em uma organização ou rede digital de negócios utilizando um sistema computacional de uso específico de alta segurança. Atualmente existe apenas um produto no mercado brasileiro que se aproxima deste projeto, mas o custo é muito alto.

Este dispositivo, além de possuir um Hardware seguro, deve cumprir as exigências da Medida Provisória 2200 (BRASIL, 2001) do Governo Federal, que dita sobre a validade

1

jurídica de documentos eletrônicos e cria a ICP-BRASIL, Infra-estruturar de Chaves Públicas.

Este órgão é responsável pela guarda, gerenciamento, garantia e homologação da certificação digital no Brasil, padronizando o acesso a esta tecnologia e garantindo sua integridade. Em seu artigo primeiro a MP salienta:

Art. 1o Fica instituída a Infra-Estrutura de Chaves Pública Brasileira - ICP-Brasil, para garantir a autenticidade, a integridade e a validade jurídica de documentos em forma eletrônica, das aplicações de suporte e das aplicações habilitadas que utilizem certificados digitais, bem como a realização de transações eletrônicas seguras. (BRASIL, 2001)

O projeto, aqui descrito, viabiliza tais requisitos tornando um documento eletrônico juridicamente válido tendo grande aplicabilidade em diversas áreas como governo, saúde, indústria, comércio entre outros.

O restante desta monografia está dividido da seguinte maneira, o capítulo 2 apresenta conceitos básicos para formar uma fundamentação teórica e propiciar um melhor entendimento ao leitor. O capítulo 3 mostra alguns trabalhos realizados em áreas relacionadas a este projeto para que seja possível uma análise dos estudos já feitos nas áreas de interesse. No capítulo 4 é apresentada a especificação do projeto, explicando o desenvolvimento do software e do hardware e como cada bloco do projeto se integra para o resultado final. No capítulo 5 é descrito como foi o desenvolvimento do equipamento. O detalhamento dos testes e a validação de cada etapa do projeto é parte do capítulo 6, deixando as conclusões para o capítulo 7. Ainda fazem parte desta monografia, apêndices, manual técnico e um artigo científico.

2

FUNDAMENTAÇÃO TEÓRICA

Neste capítulo apresenta-se o estudo teórico dos conceitos e tecnologias que serão utilizadas no decorrer do projeto.

2.1 Segurança em Documento Eletrônico

Existe uma mudança do conceito de documento quando este é alterado para o meio digital. Os atributos de autoria, integridade, sigilo, aspectos temporais e o não-repúdio também devem ser atendidos pelo documento digital, garantindo desta forma a mesma confiança já consolidada no meio impresso.

Fazendo uma analogia entre o documento em papel e o documento eletrônico verifica-se algumas diferenças que serão citadas abaixo.

A assinatura digital difere quase em todos os aspectos de uma assinatura no papel porque a assinatura, tal qual hoje se reconhece, pode ser conceituada como sendo o ato físico por meio do qual alguém coloca em um suporte físico a sua marca ou sinal. Através do próprio papel é associado o conteúdo à assinatura manuscrita, e esta associa a assinatura ao assinante. A marca é pessoal e tem eficácia e validade jurídica, podendo ser levada ao tabelião para que este faça o seu reconhecimento por semelhança, já que pode ser conservada em arquivos e periciada por meios grafológicos. (DEMÉTRIO, 2003)

No caso da assinatura digital, a ligação entre o conteúdo e o assinante é realizada de maneira indireta através do resumo do documento cifrado com a chave privada de posse exclusiva do assinante. O resumo do documento é conhecido como hash e representa de forma única o documento (DEMÉTRIO, 2003)

O autor é reconhecido através da sua identidade, no mundo real. No mundo digital, o usuário é identificado por um certificado digital. O certificado digital é emitido por uma Autoridade Certificadora – AC - que faz a ligação entre o certificado e o assinante, garantindo assim o princípio da autenticidade. A integridade no meio papel é garantida pela inexistência de rasuras no próprio papel. No meio digital, esta é verificada comparando-se o resumo do documento com o resumo decifrado com a chave pública do assinante. (DEMÉTRIO, 2003) Outro item indispensável é quanto ao momento em que a assinatura foi realizada. Uma assinatura deve ser irretroativa, ou seja, não se pode assinar um documento agora como se ele tivesse sido criado no passado. No papel isto é facilmente identificado através de exames químicos que identificam a data de criação do documento. Já no meio digital, a data deve ser colocada pelo carimbo do tempo através da Protocoladora Digital de Documentos Eletrônicos. (STALLINGS, 2008)

A Figura 2.1 ilustra a segurança dos documentos eletrônicos que possui três grandes pilares, o primeiro é a assinatura digital, que é responsável pelo algoritmo matemático que garante a autoria de determinado documento utilizando-se chaves assimétricas, o segundo é

3

a certificação digital utilizando-se da ICP-BRASIL que institui regras para que o documento eletrônico tenha validade jurídica igual a um documento de papel. E por fim a protocolação digital onde são garantidos outros requisitos de segurança.

Figura 2.1: Documento Eletrônico Seguro (NOBRE 2007).

A PDDE é responsável, juntamente com um certificado fornecido pela ICP-BRASIL, por certificar a integridade, irretratabilidade, irrefutabilidade, tempestividade e irretroatividade por intermédio da protocolação deste documento. A assinatura eletrônica do email ocorre antes do envio, garantindo assim a autenticidade, e por fim, os sensores de proteção da PDDE têm a função de garantir um acesso seguro à chave da protocolação digital. Qualquer tentativa de violação da PDDE resultará na quebra de um dos pilares do documento eletrônico, resultando assim na invalidação do mesmo perante a justiça.

2.2 Criptologia, Criptografia e Criptoanalise

“Cripto vem do grego kryptos e significa escondido, oculto. Graphos, também do grego, significa escrever. Logos significa estudo, ciência. Analysis significa decomposição.Então temos que criptologia é o estudo da escrita cifrada.” (NIETO, LOPES, SILVA, 2008).

Devido à convergência dos meios de comunicação e ao volume de mensagens enviadas a criptografia voltou a ser muito utilizada. Email, telefonia (fixa e móvel), transações eletrônicas estão sendo amplamente utilizadas e os usuários não querem que esse conteúdo seja público. Tudo isso contribuiu para uma grande evolução da criptografia nos últimos tempos.

Como visto acima, a criptografia é a ciência de escrever mensagens cifradas onde apenas o remetente e o destinatário possam ler e criptoanálise é a ciência de decifrar e ler estas mensagens cifradas. (STINSON, 2003)

As palavras, caracteres ou letras da mensagem original inteligível constituem o Texto ou Mensagem Original, como também Texto ou Mensagem Clara. As palavras,

4

caracteres ou letras da mensagem cifrada são chamados de Texto Cifrado, Mensagem Cifrada ou Criptograma. O processo de converter Texto Original em Texto Cifrado é chamado de composição de cifra e o inverso é chamado de decifração. (STINSON, 2003).

Na prática, qualquer mensagem cifrada é o resultado da aplicação de um sistema geral (ou algoritmo), que é invariável, associado a uma chave específica, que pode ser variável e tanto o remetente quanto o destinatário precisam conhecer o sistema e a chave.

A criptologia existe como ciência há apenas 20 anos. Até então era considerada como arte. A International Association for Cryptologic Research (IACR) é a organização científica internacional que mantém a pesquisa nesta área. Ela se preocupa basicamente com a segurança de informações. A segurança da informação se manifesta de várias formas, de acordo com a situação e as necessidades. Até recentemente, informações importantes eram escritas, autenticadas, armazenadas e transmitidas utilizando-se papel e tinta. Com o advento dos computadores, dos meios magnéticos de armazenamento e das telecomunicações, a possibilidade de se produzir milhares de documentos idênticos faz com que fique muito difícil (ou até mesmo impossível) distinguir as cópias do original. A identificação, validação e autorização de um documento eletrônico exigem técnicas especiais. A criptografia é uma delas. (STINSON, 2003)

A criptografia significa escrita secreta ou escrita oculta. As formas de ocultar mensagens são as mais diversas. Existem basicamente dois tipos de criptografia: Clássica que utiliza técnicas convencionais nos processos de ocultação da informação e Quântica que utiliza técnicas baseadas em princípios da Mecânica Quântica.

Criptoanálise é a ciência para quebrar uma mensagem cifrada. Não é o mesmo que decifrar, pois decifrar é obter a mensagem original quando se conhece o sistema e usando a chave também conhecida. Quebrar é hackear o sistema e descobrir a chave. (STALLINGS, 2008).

2.2.1 Criptografia

Nos problemas estudados pela criptografia existem dois personagens que desejam comunicar-se através de um canal inseguro. Toda a comunicação, entretanto, pode ser interceptada por um terceiro personagem, que não deveria tomar conhecimento da informação trocada.

Para cifrar uma mensagem precisa-se de um algoritmo, e uma informação adicional (chamada chave), além da própria mensagem. Para um sistema de criptografia ser seguro ele deve ser tal que seja impossível decifrar a mensagem cifrada (criptograma) sem a posse da chave. O criptograma pode até ser lido, mas não pode, em hipótese alguma, ter revelado seu conteúdo original. (STALLINGS, 2008).

Na prática, como esse requisito é muito difícil de ser alcançado, aceita-se que o sistema seja muito difícil de ser quebrado, permitindo que a mensagem permaneça oculta pelo menos enquanto aquela informação for importante.

Os algoritmos da criptografia podem ser divididos em duas categorias: os simétricos (ou de chave secreta) e os assimétricos (ou de chave pública). Os primeiros são aqueles nos quais o remetente e destinatário compartilham a mesma chave. Os algoritmos assimétricos são aqueles nos quais o remetente publica uma chave que serve para cifrar as mensagens a ele enviadas, mas ao mesmo tempo possui uma chave privada, somente com a qual ele pode decodificar as mensagens recebidas. (STALLINGS, 2008).

5

2.2.1.1 Criptografia simétrica

A criptografia simétrica utiliza uma única chave para cifrar e decifrar conteúdos eletrônicos e tem a vantagem de ser muito rápida comparada a criptografia assimétrica. Porém, tem dois principais inconvenientes: o remetente e destinatário precisam compartilhar o segredo (chave) através de um canal confiável; tem o inconveniente da multiplicação de chaves, porque para cada par remetente/destinatário pode ser necessária uma chave diferente.

Os principais algoritmos para criptografia simétrica: (GASPARETTO, 2005)· DES: (Data Encryption Standard) 56 bits, criado pela IBM em 1977. Quebrado

em 1997.· 3DES: Triple DES, tripla codificação utilizando três vezes o DES. Criado no

início da década de 90. É muito lento para grandes volumes.· AES: (Advanced Encryption Standard) 128 ou 256 bits. Nomeado em 2001 do

Rijndael a partir de um concurso vencido em 2000 patrocinado pelo NIST. É atualmente o mais utilizado.

2.2.1.2 Criptografia assimétrica ou de chaves públicas

A maneira de contornar os problemas da criptografia simétrica é a utilização da criptografia assimétrica ou de chave pública. A criptografia assimétrica está baseada no conceito de par de chaves: uma chave privada e uma chave pública. Qualquer uma das chaves é utilizada para cifrar uma mensagem e a outra para decifrá-la, conforme ilustra a Figura 2.2.

6

Figura 2.2: Criptografia Assimétrica

As mensagens cifradas com uma das chaves do par só podem ser decifradas com a outra chave correspondente. A chave privada deve ser mantida secreta, enquanto a chave pública pode ser disponibilizada livremente.

Exemplo de funcionamento:1. A pessoa A que deseja se comunicar de maneira segura obtém uma chave de

criptografia (pública) e a sua correspondente chave de decriptografia (privada).2. A pessoa B que deseja se comunicar com A precisa encontrar a chave pública de

A e criptografar a mensagem utilizando esta chave.3. Quando A receber a mensagem criptografada pela pessoa B vai decriptografá-la

utilizando a sua chave privada (que só o A tem).4. Caso um intruso intercepte a mensagem criptografada, não poderá fazer nada

com ela, pois não possui a chave privada e, portanto, não conseguirá decriptografá-la. Nem mesmo a pessoa B, que gerou a mensagem criptografada, será capaz de recompor a mensagem original, pois também não possui a chave privada.

A grande vantagem deste sistema é permitir que qualquer pessoa possa enviar uma mensagem, bastando para tanto conhecer a chave pública de quem irá receber a mensagem. Como a pessoa titular da chave pública irá torná-la amplamente disponível, não há necessidade do envio de chaves como é feito no modelo de criptografia simétrica. Enquanto a chave privada estiver segura, a mensagem estará resguardada de possíveis intrusos. (STALLINGS, 2008).

Os principais algoritmos para criptografia assimétrica: (GASPARETTO, 2005)· Diffie-Hellman: Criado em 1976. É baseado em logaritmo discreto. Marca o

surgimento da Criptografia Assimétrica. Pode ser usada somente para troca de chaves. Não permite Assinatura Digital.

· ElGAmal: (Taher Elgamal) criado em 1984. Também baseado num problema de logaritmo discreto. Hoje vulnerável a ataques.

· Curvas Elípticas: Criado em 1985 por Neal Koblitz e V. S. Miller para ser usado com algoritmos Diffie-Hellman e ElGAmal.

· RSA: Criado em 1978 no MIT. É hoje o mais utilizado em todo o mundo.

2.2.1.2.1 O algoritmo RSA

Para explicitar a matemática do RSA, considera-se como Origem quem irá criptografar e enviar a informação e Destino quem irá receber e decriptografar a informação: (STINSON, 2003)

1. Destino escolhe dois números primos grandes, p e q. Os primos devem ser enormes, mas para simplicidade vamos dizer que Destino escolhe p=17 e q=11. Ele deve manter esses números em segredo.

2. Destino multiplica os números um pelo outro para conseguir um terceiro número, N (Módulo). Neste caso, N=187. Ele agora escolhe outro número e (expoente). Neste exemplo, e=7.

3. Destino agora pode divulgar e (expoente) e N (Módulo) por qualquer canal de publicação com garantia de integridade (como um certificado digital). Como esses números são necessários para a cifragem, eles devem estar disponíveis para consulta por parte de qualquer um que deseje cifrar uma mensagem para Destino. Juntos, esses números são chamados de chave pública. (Além de ser parte da chave pública de Destino, o e

7

também pode ser parte da chave pública de todos. Contudo, cada pessoa deve ter um valor diferente de N, que vai depender de sua escolha de p e q.).

4. Para cifrar uma mensagem, é necessário ser convertido em um numero M. Por exemplo, uma palavra é convertida em dígitos binários ASCII e os dígitos binários podem ser considerados como um número decimal. M é então cifrado para produzir o texto cifrado C, de acordo com a fórmula.

C=Me (mod N)5. Supondo que Origem queira enviar apenas a letra X para Destino. No ASCII isto

é representado por 1011000, que equivale a 88 em decimais. Assim, M=88.6. Para cifrar sua mensagem, Origem começa procurando a chave pública de

Destino e descobre que N=187 e e=7. Isto resulta na fórmula de cifragem necessária para codificar as mensagens para Destino.Com M=88, a fórmula dá como resultado:

C=887(mod 187) = 40.867.559.636.992 (mod 187) = 11Origem agora envia o texto cifrado, C=11, para Destino.

7. Sabe-se que exponenciais em aritmética modular são funções de mão única, de modo que é muito difícil recuperar a mensagem original, M, a partir de C=11. Alguém com acesso apenas a essas informações não pode decifrar a mensagem.

8. Entretanto, Destino pode decifrar a mensagem porque tem uma informação especial: conhece os valores de p e q. Calcula um número especial, d, a chave de decifragem, conhecida também como chave privada. O número d é calculado de acordo com a seguinte fórmula:

e x d = 1 (mod (p-1) x (q-1))7 x d = 1 (mod 16 x 10)

7 x d = 1 (mod 160)d = 23

9. Para decifrar a mensagem, Destino simplesmente usa a seguinte fórmula:M= Cd (mod187)

M = 1123 (mod187) = 88 = X em ASCII

2.3 Resumo criptográfico

A tradução literal de hash é "picar, misturar, confundir". Funções criptográficas de resumo são usadas em vários contextos, por exemplo, para computar um resumo de mensagem ao criar uma assinatura digital. O resumo criptográfico, em conjunto com a criptográfica, é utilizado para garantir a integridade de um documento digital. (STALLINGS, 2008).

A ideia básica desta função é que um valor resumo serve como uma imagem representativa compacta (às vezes chamada de impressão digital ou "message digest") da cadeia de bits da entrada, e pode ser usada como se fosse unicamente identificável com aquela entrada. As funções de resumo criptográfico funcionam semelhantes ao dígito verificador do CPF. Por exemplo, se um número qualquer do CPF for modificado, o dígito verificador também sofrerá alteração. As funções de resumo criptográfico são usadas para garantir a integridade de dados. (DEMÉTRIO, 2003)

O hash segue algumas propriedades como: ser computacionalmente inviável fazer a operação inversa, ou seja, dado um resumo, deve ser inviável obter uma mensagem original; duas mensagens semelhantes devem produzir um resumo completamente diferente; deve, ainda, ser fácil e rápido produzir o resumo.

Os principais algoritmos para resumos de mensagens são: (DEMÉTRIO, 2003)

8

• MD4: (Message Digest), criado por Ron Rivest da empresa RSA (RSA Security). Gera um resumo com comprimento de 128 bits, efetua uma manipulação de bits para obter o valor do hash de forma rápida. Vários ataques foram detectados, o que fez com que o algoritmo fosse considerado frágil;

• MD5: É uma extensão do MD4, gera um resumo de 128 bits. A obtenção do valor de hash é mais lenta, mas é mais seguro. É utilizado pelo PGP (Pretty Good Privacy);

• SHA1: (Secure Hash Algorithm), desenvolvido pelo NIST (National Institute of Standards and Technology). Pode chegar a utilizar até 1024 bits, atualmente o mais utilizado é o SHA-256, seu desenvolvimento tem muita relação com o MD5. É considerado mais seguro que o MD4 e MD5 e pelo seu tamanho é hoje um dos mais recomendados e utilizados.

2.4 Assinatura Digital

“Uma Assinatura Digital é um algoritmo de autenticação, que possibilita ao criador de um objeto unir ao objeto criado, um código que irá agir como uma assinatura.” (PEREIRA, 2009) Stallings (2008, p 272) afirma que: “a assinatura garante a origem e a integridade da mensagem”.

Já a função resumo recebe como entrada uma mensagem de qualquer tamanho e produz um resumo de tamanho fixo, que representa o conteúdo da mensagem. (EMILIANO, 2007).

O resultado retornado por uma função de hash é o resumo criptográfico. “Este pode ser comparado a uma impressão digital, pois cada documento possui um valor único de resumo e até mesmo uma pequena alteração no documento, como a inserção de um espaço em branco, resulta em um resumo completamente diferente.” (PEREIRA, 2009).

A vantagem da utilização de resumos criptográficos no processo de autenticação é o aumento de desempenho, pois os algoritmos de criptografia assimétrica são muito lentos. A submissão de resumos criptográficos ao processo de cifragem com a chave privada reduz o tempo de operação para gerar uma assinatura por serem os resumos, em geral, muito menores que o documento em si. Assim, consomem um tempo baixo e uniforme, independente do tamanho do documento a ser assinado. (CERT.BR).

Na assinatura digital, o documento não sofre qualquer alteração e o hash cifrado com a chave privada é anexado ao documento. Para comprovar uma assinatura digital é necessário inicialmente realizar duas operações: calcular o resumo criptográfico do documento e decifrar a assinatura com a chave pública do signatário. Se forem iguais, a assinatura está correta, o que significa que foi gerada pela chave privada corresponde à chave pública utilizada na verificação e que o documento está íntegro. Caso sejam diferentes, a assinatura está incorreta, o que significa que pode ter havido alterações no documento ou na assinatura pública. (PEREIRA , 2009).

9

Figura 2.3: Assinatura digital (TRINTA, 1998)

A Figura 2.3 demonstra o funcionamento de uma assinatura digital, primeiramente o documento passa por um processo chamado de resumo criptográfico, resultando em uma espécie de “impressão digital” ou “hash” do documento original, após isso é dado início ao processo de assinatura digital, que consiste na utilização de uma chave privada e o algoritmo RSA para que seja possível obter a garantia que aquele hash foi validado (assinado) pelo dono da chave privada, posteriormente existe a validação do mesmo, onde é feito mais um resumo do documento. Este é comparado com o resumo já assinado pela chave privada, caso os dois culminem no mesmo valor a assinatura é valida. O processo de validação é realizado no ato da assinatura garantindo que o documento foi realmente assinado.

2.5 Certificado Digital

O certificado digital é um documento eletrônico assinado digitalmente e cumpre a função de associar uma pes’soa ou entidade a uma chave pública. As informações públicas contidas em um certificado digital são o que possibilita colocá-lo em repositórios públicos.

Um Certificado Digital normalmente apresenta as seguintes informações: (PEREIRA, 2009)

• Nome da pessoa ou entidade a ser associada à chave pública;• Período de validade do certificado;• Chave pública;• Nome e assinatura da entidade que assinou o certificado;• Número de série. Um exemplo comum do uso de certificados digitais é o serviço bancário provido

via Internet. Os bancos possuem certificado para autenticar-se perante o cliente, assegurando que o acesso está realmente ocorrendo com o servidor do banco. E o cliente, ao solicitar um serviço, como por exemplo, acesso ao saldo da conta corrente, pode utilizar o seu certificado para autenticar-se perante o banco. (CORREA, 2006) A Figura 2.4 mostra um Certificado Digital da Autoridade Certificadora Raiz Brasileira – ICP Brasil.

Entre os campos obrigatórios do certificado digital encontram-se a identificação e a assinatura da entidade que o emitiu, os quais permitem verificar a autenticidade e a integridade do certificado. A entidade emissora é chamada de Autoridade Certificadora ou simplesmente AC. A AC é o principal componente de uma Infra-Estrutura de Chaves

10

Públicas e é responsável pela emissão dos certificados digitais. O usuário de um certificado digital precisa confiar na AC.

A escolha de confiar em uma AC é similar ao que ocorre em transações convencionais, que não se utilizam do meio eletrônico. Por exemplo, uma empresa que vende parcelado e aceita determinados documentos para identificar o comprador antes de efetuar a transação. Estes documentos normalmente são emitidos pela Secretaria de Segurança de Pública e pela Secretaria da Receita Federal, como o RG e o CPF. Existe, aí, uma relação de confiança já estabelecida com esses órgãos. Da mesma forma, os usuários podem escolher uma AC à qual desejam confiar à emissão de seus certificados digitais. (CERT.BR)

Para a emissão dos certificados, as ACs possuem deveres e obrigações que são descritos em um documento chamado de Declaração de Práticas de Certificação – DPC. A DPC dever ser pública, para permitir que as pessoas possam saber como foi emitido o certificado digital. Entre as atividades de uma AC, a mais importante é verificar a identidade da pessoa ou da entidade antes da emissão do certificado digital. O certificado digital emitido deve conter informações confiáveis que permitam a verificação da identidade do seu titular. (DEMETRIO, 2003).

Por estes motivos, quanto melhor definidos e mais abrangentes os procedimentos adotados por uma AC, maior sua confiabilidade. No Brasil, o Comitê Gestor da ICP-Brasil é o órgão governamental que especifica os procedimentos que devem ser adotados pelas ACs. Uma AC que se submete às resoluções do Comitê Gestor pode ser credenciada e com isso fazer parte da ICP-Brasil. O cumprimento dos procedimentos é auditado e fiscalizado, envolvendo, por exemplo, exame de documentos, de instalações técnicas e dos sistemas envolvidos no serviço de certificação, bem como seu próprio pessoal. A não concordância com as regras acarreta em aplicações de penalidades, que podem ser inclusive o descredenciamento. As ACs credenciadas são incorporadas à estrutura hierárquica da ICP-Brasil e representam a garantia de atendimento dos critérios estabelecidos em prol da segurança de suas chaves privadas.

11

Figura 2.4: Certificado Digital da Autoridade Certificadora Raiz Brasileira – ICP Brasil

Diferentemente dos documentos utilizados atualmente (RG e CPF) o certificado digital possui um período de validade, e somente é possível utilizá-lo dentre deste período. É possível, no entanto, conferir as assinaturas realizadas mesmo após o certificado expirar. (CERT.BR). O certificado digital pode ser revogado antes do período definido para expirar. As solicitações de revogação devem ser encaminhadas à AC que emitiu o certificado ou para quem foi designada essa tarefa. As justificativas podem ser por diversos fatores como comprometimento da chave privada, alterações de dados do certificado ou qualquer outro motivo. A AC ao receber e analisar o pedido adiciona o número de série do certificado a um documento assinado chamado Lista de Certificados Revogados (LCR) e a publica. O local de publicação das LCRs está declarado na DPC da AC que emitiu o certificado, e em muitos casos o próprio certificado possui um campo com apontador para um endereço WEB que contém o arquivo com a LCR. As LCRs são publicadas de acordo com a periodicidade que cada AC definir. Essas listas são públicas e podem ser consultadas a qualquer momento para verificar se um certificado permanece válido ou não. Após a revogação ou expiração do certificado, todas as assinaturas realizadas com este certificado tornam-se inválidas, mas as assinaturas realizadas antes da revogação do certificado continuam válidas se houver uma forma de garantir que esta operação foi realizada durante o período de validade do certificado. (DEMETRIO, 2003).

12

2.6 Hardware Criptográfico

Segundo a Federal Information Processing Standards (FIPS – 140-2) (NIST, 2002), norma que estabelece os requisitos de segurança para módulos criptográficos, estes são definidos como uma composição de Hardware, software e firmware, ou alguma combinação dos mesmos, que implementam processos ou funções criptográficas, incluindoalgoritmos criptográficos e, opcionalmente, geração de chaves.

Os módulos criptográficos podem prover um grande número de funcionalidades: geração e armazenamento seguro de chaves criptográficas, verificação de assinaturas digitais, aceleração de conexões utilizando o protocolo Secure Socket Layer (SSL), criptografia de dados e verificação de integridade de dados.

Quando um módulo criptográfico é implementado em Hardware, ele recebe a denominação de Hardware Security Module (HSM) (Attridge, 2002; Carter, Kilvington, Lockhart, Woollard e Nicolls, 2001), muitas vezes, possuindo aplicação e sistema operacional embarcados.

2.7 Protocolação Digital

A utilização de certificados e assinaturas digitais garante a autenticidade, a integridade e o não-repúdio de um documento. Entretanto, essas técnicas não oferecem garantia a respeito do momento em que um determinado documento foi elaborado. Um documento assinado digitalmente pode até conter data e hora, entretanto, estas não podem ser consideradas confiáveis. Para resolver este problema se faz necessária a introdução de um novo componente: a Protocolação Digital de Documentos Eletrônicos. Este item acrescenta a característica de irretroatividade ao cenário de segurança de documentos. (DIAS, 2004).

Para realizar a protocolação digital é necessário utilizar um equipamento (Hardware) especial, chamado “protocoladora digital”. Através do uso de uma protocoladora digital, é possível garantir: (DIAS, 2004).

• Existência de um determinado documento em uma certa data/hora;• Integridade do documento eletrônico, desde sua protocolação, verificando se este

não foi alterado;• Impossibilidade de protocolação de um determinado documento de forma retroativa

no tempo, garantindo assim a ordem das protocolações.Quando um documento é protocolado, a PPDE emite um recibo eletrônico. Através

deste recibo é possível comprovar que um determinado documento foi criado em uma certa data/hora. Além disso, este processo de protocolação garante que seja impossível protocolar um documento eletrônico de forma retroativa com relação ao tempo, ao número do protocolo e ao conteúdo do original.

Para realizar a protocolação de um documento, o primeiro passo é a geração do hash que será transmitido para a protocoladora digital. Não é necessário enviar o documento eletrônico original para a protocoladora, garantindo assim a privacidade e confiabilidade do documento eletrônico. Outro detalhe importante: é impossível recuperar o conteúdo original de um documento apenas de posse do seu resumo.

Uma vez gerado o hash, o passo seguinte é o seu envio para a protocoladora digital. Ao recebê-lo, a protocoladora gera um recibo contendo o resumo criptográfico do documento, o número da protocolação e a data/hora em que ocorreu a protocolação. A data e a hora são fornecidas por servidores de tempo externos. O recibo resultante é disponibilizado para o remetente do documento, que deve armazená-lo em local

13

apropriado. De posse do recibo, qualquer usuário poderá verificar a data e hora da protocolação de um determinado documento eletrônico e checar a integridade do documento eletrônico original.

Para prover esses recursos, a protocoladora digital requisita data e hora de um servidor de tempo externo seguro como, por exemplo, o servidor do Observatório Nacional.

Figura 2.5: Arquitetura da PDDE. (BRY)

A Figura 2.5 demonstra ao arquitetura da PDDE fornecida pela empresa Bry. Adquirindo um SDK (Software Development Kit) é possível implementar um programa que enviará um documento para a PDDE, esta irá protocolar o seu documento atribuindo a ele a validade jurídica garantida pela ICP-BRASIL. A aplicação de carimbo do tempo irá retornar um recibo no formato PKC#7 contendo as informações do protocolo do documento. Estas informações incluem a cadeia do tempo e a cadeia de certificações utilizada pela protocolado. De forma geral o uso da PDDE da Bry está limitada a desenvolvedores de aplicativos, não tendo penetração no mercado varejista. Neste capítulo foram vistos os conceitos básicos sobre Segurança em Documento Eletrônico, Criptografia, Assinatura Digital, Certificação Digital, Hardware Criptográfico, Protocolação Digital, no próximo capítulo será abordado os trabalhos que estão relacionados com o projeto que aqui descrito.

14

15

TRABALHOS RELACIONADOS

Foram pesquisados diversos trabalhos relacionados, apresentam-se neste capítulo os mais adequados a esta etapa do projeto. Estes trabalhos são artigos científicos e equipamentos já disponíveis no mercado, ilustram-se os objetivos, vantagens e desvantagens de cada equipamento.

3.1 Artigos Científicos

Foram encontrados alguns artigos correlacionados a PDDE (Protocoladora Digital de Documentos Eletrônicos) como: Protocoladora Digital de Documentos Eletrônicos (ROLT) que descreve como é possível garantir o requisito de segurança irretratabilidade, Impacto na Adoção de Assinaturas Digitais no Desenvolvimento de Software (ROSEMAN, 2006), que descreve as mudanças que o desenvolvimento de softwares está tendo com a utilização das assinaturas digitais

No artigo Protocoladora Digital de Documentos Eletrônicos (ROLT) é apresentado algoritmos para realização de auditorias em PDDE, sendo possível realizar a fiscalização da “validade de um recibo de protocolação; a ordem de precedência entre dois documentos e a validade do encadeamento armazenado na PDDE.” (ROLT). Tais algoritmos recebem o nome de Método do Encadeamento Linear e Método da Árvore Sincronizada.

O Método do Encadeamento Linear uni os recibos de datação formando um encadeamento utilizando uma função H com um único sentido, assim como um hash. (HABER, 1991). “O encadeamento é mantido em um banco de dados para posterior auditoria.” (ROLT).

O Método da Árvore Sincronizada exibe o encadeamento temporal dos documentos através de um esquema de datação relativa, utilizando um conceito de saltos que reduz o tempo de comparação da precedência entre dois documentos (PASQUAL, 2002).

O algoritmo que foi utilizado é de autoria própria, garantindo que a assinatura de hash será inteiramente diferente a cada nova geração. Cada carimbo tem o resumo criptográfico dos documentos, onde é anexado neste resumo um pedaço do resumo do documento protocolado anteriormente e o mesmo é recalculado resultando em um novo resumo, este resumo recebe uma assinatura com a chave da protocoladora, garantindo assim que o resumo foi gerado dentro do kit da PDDE, de posse desta assinatura, um recibo no formato PKCS#7 é gerado e deverá ser anexado ao email para validação posterior.

Desta forma é possível comprovar que existem muitos algoritmos que podem ser utilizados e auditados garantindo a segurança da PDDE.

Em Impacto na Adoção de Assinaturas Digitais no Desenvolvimento de Software (ROSEMAN, 2006) é conceituado os requisitos de segurança para documentos eletrônicos descrevendo posteriormente como isso influencia no desenvolvimento de softwares.

16

No Brasil, a Infra-Estrutura de Chaves Públicas do Brasil (ICP-Brasil) é a maior iniciativa na área de segurança que o país possui atualmente. O software é um produto da inteligência humana com uma boa dose de criatividade, somada ao pensamento lógico e ao trabalho disciplinado. Por seu intermédio, é possível preservar uma boa idéia e transmiti-la para muitas outras pessoas. O ciclo de teste de software é um processo de responsabilidade do cliente ou do seu representante. O software que gerencia todo o processo da assinatura digital precisa ter acesso à Lista de Certificados Revogados e a uma Protocoladora Digital de Documentos Eletrônicos (PDDE). É preciso manter uma equipe de especialistas para testar todo o projeto, pois todo software que dê suporte à geração, visualização e conferência de assinaturas digitais deve apresentar grande precisão e também confiabilidade, uma vez que a partir deles é conferida a parte mais importante de um documento que sela o compromisso entre duas pontas interessadas a interagir. Muitas pessoas passarão a utilizar esses projetos de software que serão automatizados e simplificados, facilitando a dia-a-dia e diminuindo custos. (ROSEMAN, 2006)

Com isso é possível demonstrar como o projeto, aqui apresentado, possui grande aplicabilidade podendo ser utilizado nas mais diversas áreas.

• Bry

A Bry, oferece uma protocolizadora nos termos aqui elucidados. Seu produto consiste em um módulo de Hardware e ferramentas de software que permitem que documentos se transformem em resumos para serem enviados para a PDDE sem a necessidade que o usuário conheça ou precise instalar softwares específicos. O grande diferencial deste trabalho é o custo, pois este projeto não deve ultrapassar 5% do valor da protocoladora digital de documentos eletrônicos da Bry. (BRY)

• NCipher

Esta empresa, no que compete à tempestividade, oferece três soluções correlatas: PdfProof: É uma solução para assinatura de documentos no formato "universal" PDF, marca registrada da Adobe; DSE 200: É um conjunto que compreende um Hardware de rede e um toolkit para desenvolvedores com interfaces para interação com softwares diversos. Um SDK (Software Develpment Kit) para que desenvolvedores criem seus próprios e utilitários de segurança baseados em um framework e Hardware específicos para isto; TimeSource Master Clock É uma possível fonte de tempo para os utilitários anteriores. Trata-se de um relógio atômico de rubídio embalsamado em um módulo de Hardware que responde ao protocolo NTP, específico para ajuste de relógio. (NCIPHER)

As três soluções garantem apenas a tempestividade, somente para documentos em PDF, neste projeto será unida à tempestividade, a autenticidade, a irrefutabilidade, ou seja, mais quesitos de segurança.

17

• Mykotronx

Apresenta o FORTEZZA, a solução consiste num cartão PCMCIA que possui um processador criptográfico, baseado na tecnologia RISC, certificado pela NSA (National Security Agency dos EUA) para seus serviços de criptografia. (MYKONTRONX)

Este cartão encripta, decripta, assina documentos, permite a troca de chaves, faz hashing e permite a emissão de recibos de tempo. Ele apresenta, para tanto, um relógio interno, que independe do horário do computador em que estiver instalado, resistente à violação.

Este equipamento não é vendido no Brasil e é certificado pelos EUA. O projeto em questão se diferencia pelo Hardware, utilizando outra arquitetura e utilizando o Observatório Nacional como fonte de tempo confiável.

18

ESPECIFICAÇÃO DO PROJETO

O principal benefício da PPDE é a garantia que um documento foi gerado, em uma determinada hora, por uma pessoa específica, com um determinado teor, garantindo assim que os trâmites de documentos em grandes empresas possam passar do meio físico (papel) para o meio eletrônico assegurando os princípios básicos que norteiam este tipo de documento.

Neste capítulo será apresentado a especificação do sistema de hardware, do sistema de software e do protocolo de comunicação que foi utilizado para integração dos sistemas.

4.1 Descritivo do Hardware

A protocoladora conta com um módulo ou uma placa anexada a um computador, sendo denominada de Hardware Criptográfico, e sua função é assinar o documento e garantir que a chave privada não seja violada. A comunicação é feita por intermédio de um protocolo de comunicação entre o Hardware criptográfico e o computador utilizando uma conexão ethernet.

4.1.2 Hardware Criptográfico

Consiste em uma placa que utiliza um processador ARM e tem em sua borda três sensores para garantir que a mesma não seja violada, caso algum destes sensores acuse algum tipo de violação a própria placa toma a decisão de destruir a chave privada, inutilizando assim a unidade. Os três sensores que compõem o Hardware Criptográfico estão descritos abaixo.

Sensor de movimento

Foi utilizado uma placa básica contendo o acelerômetro de três eixos XYZ da Freescale (Modelo MMA7260QT), com sensibilidade ajustável de 1,5g a 6,0g. A placa inclui um regulador de tensão de 3,3 V, que permite uma integração simples com sistemas microcontrolados a 5 V. Além disso, possui dimensões menores do que produtos similares encontrados no mercado, na Figura 4.6 estão imagens deste componente.

Caso o Hardware (computador em conjunto com o Hardware Criptográfico) seja movimentado este sensor será ativado como um interruptor, ativando o pino de controle da placa elevando para nível lógico alto, consequentemente, disparando uma rotina que irá destruir a chave privada.

19

Figura 4.6: Acelerômetro Freescale (FREESCALE)

Sensor de abertura

Foi utilizado o U sensor que consiste em um conjunto de fototransistor com um led. Este componente tem o objetivo de detectar a abertura do equipamento, adicionando-se um amplificador operacional para obter um detector de borda com histerese, assim o pino de controle da placa será elevado para nível lógico alto disparando uma rotina que irá destruir a chave privada.

Sensor de luz

O terceiro circuito implementado utiliza um sensor para detectar a presença de luz um LDR que em conjunto com um amplificador operacional irá elevar o sinal lógico do pino de controle da placa disparando assim uma outra rotina que irá destruir a chave privada.

Os sensores descritos acima estão distribuídos na placa conforme a Figura 4.7, estes estão anexados ao redor do kit que contem o processador ARM. A Figura 4.8 demonstra o esquemático do circuito e posteriormente suas particularidades são descritas.

20

Figura 4.7: Placa contendo os sensores do HSM

Figura 4.8: Esquemático do circuito

21

A – Conector do Acelerômetro: aqui é encaixada a placa do acelerômetro;B – Amplificador do Eixo X (Acelerômetro): saída do eixo X do acelerômetro para o amplificador operacional;C – Amplificador do Eixo Y (Acelerômetro): saída do eixo Y do acelerômetro para o amplificador operacional;D – Amplificador do Eixo Z (Acelerômetro): saída do eixo Z do acelerômetro para o amplificador operacional;E – Amplificador do Sensor U: saída do Sensor U para o amplificador operacional;F – Amplificador do Sensor LDR: saída do Sensor LDR para o amplificador operacional;G – Conector do RESET (NA): saída para reset;H – Conector do Gumstix: saída para o Gumstix;I – Chaves dos sensores: com esta chave é possível ativar um sensor ou todos os sensores;J – Conector de Energia: entrada de energia;K – Sensor UL – União dos eixos do acelerômetroM – Sensor LDR

O interfaceamento dos sensores com o kit ARM é dado via um pino de controle, onde o software embarcado (ou firmware) faz uma varredura durante todo o tempo verificando se houve alguma alteração, caso seja verificado tal alteração é eliminada a chave privada, tornando o Hardware seguro.

O Hardware escolhido para implementação deste projeto é o ARM KIT denominado Gumstix com poder de processamento de 400Mhz, este é suficiente para rodar o firmware desenvolvimento com a linguagem Java e possibilitar a independência do mesmo, caso seja necessário o kit pode ser substituído por qualquer outra plataforma que rode Java sem que a reprogramação do mesmo seja necessário. Uma foto deste kit pode ser observada na Figura 4.9.

Figura 4.9: Gumstix ARM. (GUSMSTIX).

As características deste kit são: (Gumstix)• Velocidade: 400Mhz - Intel XScale® PXA255;• 64 MB de RAM;• 16MB de FLASH;

22

• Slot de expansão Enthernet;• 60 pinos de I/O e 92 pinos de expansão, conforme a Figura 4.10.

Figura 4.10: Kit ARM com o descritivo do modulo de expansão. (GUSMSTIX).

O kit ARM utiliza o sistema operacional Linux, escolhido por sua ótima compatibilidade, desempenho e estabilidade nos Kits ARM estudados.

O firmware implementado é capaz de assinar e carimbar o hash do email escolhido. O servidor SMTP envia ao firmware um hash do email a ser carimbado, o mesmo realiza o carimbo dentro dos padrões estabelecidos neste projeto e devolve um recibo no formato PKCS#7 contendo: o hash do documento, data e hora do carimbo e o pacote assinado pelo certificado que está dentro do HSM, ou seja, uma comprovação de que o carimbo foi feito na hora e data exata. A hora e a data são obtidas diretamente do observatório nacional do Brasil, desta forma garante-se que cada carimbo contem data e hora atualizada.

A chave utilizada na assinatura do PKCS#7 é protegida pelos sensores conectados ao KIT por intermédio do Hardware especificamente desenvolvido para agrupar o sinal de todos os sensores avisando ao firmware quando algum deles é violado.

Outra operação realizada pelo firmware é a de troca de sua chave privada interna e a manutenção de seus dados. A linguagem e a plataforma de programação escolhida para desenvolvimento do firmware foi Java, rodando em conjunto com o sistema operacional Linux. A expansão do kit escolhido pode ser feita utilizando seus slots, podendo ser adicionada uma serie de novos componentes, conforme ilustra a Figura 4.11.

23

Figura 4.11: Módulos Expansores do Gumstix. (GUSMTIX)

4.2 Descritivo do Software

O software de retaguarda é o “intermediador” entre o “cliente” e o Hardware Criptográfico. Foi desenvolvido utilizando a linguagem Java por ser multiplataforma. Este software é constituído basicamente pelos seguintes módulos:

• Portal de acesso e validação: Este portal tem o intuito de disponibilizar para o usuário uma maneira de validar o conteúdo de documentos que foram submetidos à PDDE (protocoladora digital de documentos eletrônicos). De posse do protocolo gerado pela PDDE o usuário pode validar quando foi gerado e por quem foi assinado o documento em questão;

• Protocolo de comunicação com o Hardware Criptográfico: Este módulo do software de retaguarda é responsável pela comunicação entre o PC e o módulo criptográfico, executando comando, recuperando erros e repassando o retorno. A comunicação entre o firmware e este módulo é dada por meio de TCP/IP, sendo que o mesmo roda em um servidor de aplicações Java EE 5 denominado Glassfish em sua versão 2.1. Este tipo de abordagem foi escolhida devido à grande facilidade de escalar aplicações utilizando Java EE, em especifico Enterprise Java Beans;

• Servidor SMTP: A implementação deste servidor SMTP tem como intuito assinar todo e qualquer email que passar por ele. É capaz de receber emails, assinar, anexar um recibo e repassar ao destinatário sendo que quando este receber poderá entrar no “portal de validação” e confirmar a autenticidade do documento. Como base para esta implementação foi utilizado o JSMTPD;

4.2.1 Carimbo do Tempo

Um documento eletrônico, para ser considerado seguro, deve possuir uma âncora temporal confiável, ou seja, amarrar alguma ação a um determinado ponto no tempo, a âncora temporal do documento eletrônico (timestamp) é dada por uma ou mais AD (Autoridades Datadoras) que protocolam o documento digital no tempo. (DEMETRIO,2003)

Associado a qualquer âncora temporal deve existir um relógio que esteja sincronizado com a data e hora oficial de uma nação, para que esta âncora seja considerada confiável, tendo estes dois elementos o próximo passo é utilizar um algoritmo para garantir que este documento tenha sido assinado em determinada data e hora.

Neste projeto foi utilizado o Observatório Nacional como autoridade detentora do tempo e o algoritmo de datação utilizado consiste nos seguintes passos:

• Antes de assinar o documento o software de retaguarda calculará a função resumo (hash), enviará ao Hardware Criptográfico que carimbará e devolverá o pacote PKCS#7 contendo o recibo do carimbo do tempo;

• Para maior segurança é realizado um hash sequêncial, ou seja, é acrescentado uma pequena parte do hash anterior no atual garantindo maior confiabilidade ao algoritmo

• Após o retorno, o software de retaguarda anexará este “recibo” ao próprio email, enviando normalmente ao seu destinatário. O software de retaguarda também gravará os dados locais para uma conferencia futura. Nas figuras abaixo temos os diagramas de sequência, casos de uso, classes, banco

de dados (modelo).

24

uc Administrador Use ...

Administrador

Configura Sistema

Figura 4.12: Diagrama de Caso de Uso do Administrador do Sistema

A Figura 4.12 descreve o caso de uso do administrador do sistema, que é único que pode configurar a chave privada do HSM. O administrador do sistema deve ser capaz de configura de forma única, para tal o processo deve possibilitar um acesso fácil e direto ao dispositivo de configuração por uma interface WEB.

Figura 4.13: Diagrama de Caso de Uso do Usuário

25

A Figura 4.13 ilustra o diagrama de caso de uso onde o usuário é capaz de assinar e carimbar um arquivo, enviar um email e validar esse código. O usuário deve ser capaz de enviar um email e validar o código de seu carimbo.

Figura 4.14: Diagrama de Sequência de Assinatura

A Figura 4.14 descreve o diagrama de sequência da assinatura, no qual o usuário remete ao servidor SMTP um email que será assinado e carimbado. O usuário vai enviar o email através de seu programa favorito, o qual vai passar pelo servidor SMTP e dará inicio ao processo de assinatura do recibo do carimbo do tempo. Logo após isto esta sequência é executada finalizando o processo.

26

2

sd Assinatura

s

Usuário

U

APIUtil

A

APISessionBean

assinar()

assinar()

assinaLocal()

:byte[]

¦

sd Configurar

s

Administrador

A

ConfiguracaoFace

configurar(chave)

:boolean

Figura 4.15: Diagrama de Sequência da configuração da chave privada

A Figura 4.15 descreve o diagrama de sequência da configuração da chave privada que o HSM utiliza para assinar e carimbar os documentos, esta configuração é feita pelo software de retaguarda via WEB. O usuário necessita de uma chave privada assinada por uma autoridade certificadora confiável, logo após o acesso a pagina de administração o mesmo deverá submeter à chave diretamente ao equipamento que será responsável pelo armazenamento e guarda da chave, caso algum sensor seja violado a chave vai ser eliminada automaticamente.

c

sd Email

s

Usuário

U

SMTPServer

S

APISessionBean

enviaEmail()

anexaReciboAoEmail()

carimbar()

carimbaLocal()

:true

Figura 4.16: Diagrama de Sequência do envia de email Carimbado.

27

A Figura 4.16 descreve o diagrama de sequência do envio de um email onde o mesmo é carimbado e é anexado o recibo para consulta posterior. Ao enviar um email , o mesmo é capturado e tem seu conteúdo carimbado automaticamente dentro do HSM, para isso a sequência de execução dos comandos passa pela recepção do email, geração do recibo e anexo do recibo para verificação posterior.

r

sd Verificacao

s

Usuário

U

ValidarFace

verificarCodigo(codigo)

validar()

:boolean

Figura 4.17 – Diagrama de Sequência da verificação do carimbo.

A Figura 4.17 descreve o diagrama de sequência da verificação do carimbo do documento, que é feita pelo software de retaguarda WEB. De posse do número do recibo , que é enviado juntamente com o email, o usuário tem a possibilidade de validar o mesmo, entrando na página de validação da protocoladora, onde deverá digitar o número e receberá as informações provenientes a data, hora, remetente e destinatário do documento, validando assim o processo.

28

Figura 4.18: Diagrama de Classe do firmware

A Figura 4.18 descreve o diagrama de classes que foi implementado no firmware, as classes do servidor e a parte de assinaturas são as responsáveis pelo funcionamento do mesmo.

29

o

class Classes Retaguarda

PacoteComunicacao

- comando: int- parametro: byte[]- tamanho: int

t

«property get»+ getcomando() : int+ getparametro() : byte[]+ gettamanho() : int

g

«property set»+ setcomando(int) : void+ setparametro(byte[]) : void+ settamanho(int) : void

APISessionBean

- assinaLocal() : void+ assinar(byte[]) : byte[]- carimbaLocal() : void+ carimbar(byte[]) : byte[]

ConfigurarFace

- chavePrivada: byte[]

+ configurarChave() : String

c

«property get»+ getchavePrivada() : byte[]

g

«property set»+ setchavePrivada(byte[]) : void

ValidadorFace

- codigoValidacao: String- infoDocumento: InfoDocumento

+ validar() : String

v

«property get»+ getcodigoValidacao() : String+ getinfoDocumento() : InfoDocumento

g

«property set»+ setcodigoValidacao(String) : void+ setinfoDocumento(InfoDocumento) : void

SMTPServer

- port: int

- anexaReciboAoEmail() : void+ startServer() : void

s

«property get»+ getport() : int

g

«property set»+ setport(int) : void

InfoDocumento

- autor: String- data: Date- hash: String

h

«property get»+ getdata() : Date+ gethash() : String

g

«property set»+ setdata(Date) : void+ sethash(String) : void

APIUtil

+ assinar(byte[]) : byte[]+ carimbar(byte[]) : byte[]

Figura 4.19: Diagrama de Classe do Software de Retaguarda

A Figura 4.19 descreve o diagrama de classes do software de retaguarda, que foi implementado para interfacear a comunicação entre o HSM e o usuário.

30

class Classes Retaguarda

PacoteComunicacao

- comando: int- parametro: byte[]- tamanho: int

t

«property get»+ getcomando() : int+ getparametro() : byte[]+ gettamanho() : int

g

«property set»+ setcomando(int) : void+ setparametro(byte[]) : void+ settamanho(int) : void

APISessionBean

- assinaLocal() : void+ assinar(byte[]) : byte[]- carimbaLocal() : void+ carimbar(byte[]) : byte[]

ConfigurarFace

- chavePrivada: byte[]

+ configurarChave() : String

c

«property get»+ getchavePrivada() : byte[]

g

«property set»+ setchavePrivada(byte[]) : void

ValidadorFace

- codigoValidacao: String- infoDocumento: InfoDocumento

+ validar() : String

v

«property get»+ getcodigoValidacao() : String+ getinfoDocumento() : InfoDocumento

g

«property set»+ setcodigoValidacao(String) : void+ setinfoDocumento(InfoDocumento) : void

SMTPServer

- port: int

- anexaReciboAoEmail() : void+ startServer() : void

s

«property get»+ getport() : int

g

«property set»+ setport(int) : void

InfoDocumento

- autor: String- data: Date- hash: String

h

«property get»+ getdata() : Date+ gethash() : String

g

«property set»+ setdata(Date) : void+ sethash(String) : void

APIUtil

+ assinar(byte[]) : byte[]+ carimbar(byte[]) : byte[]

Figura 4.20: Diagrama de Classe do Software de Retaguarda

A Figura 4.20 descreve o diagrama de classes do software de retaguarda, este vai ser responsável pelo interfaceamento das operações dos usuários diretamente com o HSM.

dm Banco de Dados

carimbo

c

«column»*PK id: INTEGER* data: DATE* hora: TIME* hash: BLOB* conteudo: BLOB

c

«PK»+ PK_carimbo(INTEGER)

P

«unique»+ UQ_carimbo_id(INTEGER)

Figura 4.21: Diagrama de Modelo de Banco de Dados

A Figura 4.21 descreve o modelo do banco de dados a ser implementado, abrangendo todo o armazenamento dos recibos de assinatura. Este modelo possuiu apenas uma tabela para que seja possível melhor desempenho.

31

4.3 PROTOCOLO DE COMUNICAÇÃO

A comunicação é realizada por intermédio de um conector ethernet entre o Hardware Criptográfico e o PC que está instalado o software de retaguarda.

O protocolo de comunicação é simples, desta forma é possível a execução de varias assinaturas em sequência sem muito overhead, ou seja, sem qualquer processamento ou armazenamento em excesso. A Figura 4.22 ilustra o funcionamento do protocolo de comunicação entre o PC e o Hardware Criptográfico e posteriormente é descrito cada um dos campos.

Figura 4.22: Pacote contendo o protocolo de comunicação

• COMANDO – String contendo o comando a ser executado no firmware, ex: CARIMBAR;

• PARÂMETRO – Parâmetro a ser enviado para o comando, ex: hash do email;• \N – Toda e qualquer comando encerra-se com a representação de FINAL DE

LINHA ou o tradicional <ENTER>.Este protocolo tem como principio básico PERGUNTA e RESPOSTA, ou seja,

quando é enviado um pacote com um comando, recebe-se, e responde-se outro pacote com o mesmo comando dizendo na parte de PARÂMETROS se o mesmo foi processado com sucesso ou qual foi o ERRO encontrado.

Foram definidos alguns comandos básicos tais como:• Configurar chave privada: na parte de parâmetros deve ser enviada a chave privada,

e o Hardware criptográfico deverá responder se conseguiu ou não configurar a chave. Caso não seja possível configurar deverá enviar o motivo de falha na resposta. O comando será representado pela string SETJKS;

• Status da chave privada: Neste comando a parte de parâmetros será nula, e o Hardware criptográfico ficará responsável por retornar um pacote de mesmo comando com a situação atual da chave, ou seja, com o “status” na parte de parâmetros. O comando será representado pela string STATUS;

• Assinar arquivo: Neste comando na parte de parâmetros será colocado o hash do arquivo a ser assinado, o modulo criptográfico irá assinar e devolver um pacote que irá conter dentro de seu parâmetro um arquivo pkcs7 contendo o hash e a assinatura realizada, caso contrario retornará um erro com um motivo. O comando será representado pela string CARIMBAR.

Tratamento de erros

Foi definido que quando um pacote tem uma resposta de erro, o seu comando retorna a string ERR na frente do mesmo, por exemplo, no o envio do SETJKS, caso ocorra uma negação do Hardware criptográfico, o mesmo responderá com o comando ERRJKS, caso aceite a operação, responderá com o mando SETJKS.

32

O protocolo tende a ser simplificado para que o tratamento de erro e a desempenho não sejam afetadas, um protocolo maior implicaria em um esforço maior do Hardware em prol de nenhum ganho real. O protocolo TCP vai ser capaz de garantir a entrega de toda a mensagem sem a necessidade de verificadores de CRC ou de reenvio de pacotes danificados, a comunicação ethernet vai garantir a retransmissão por intermédio das camadas OSI, onde cada uma delas tem um papel fundamental para garantir a entrega e o reenvio em caso de erros físicos.

33

DESENVOLVIMENTO

5.1 Hardware

O desenvolvimento do hardware consistiu na criação de um dispositivo capaz de detectar qualquer movimento do computador e responder com confiança a qualquer tipo de inicio de ataque físico ao sistema, para tal, foi elaborado um conjunto de sensores que interoperão entre si para levar até o firmware uma informação de violação.

Um sensor para detectar os movimentos do computador foi necessário pois qualquer transporte do equipamento deve ser encarado como uma tentativa de violação, tanto a inclinação quanto o movimento na horizontal ou vertical informarão a violação. A união dos três eixos amplificados resulta em um alarme a qualquer movimento do equipamento fazendo com que a chave privada seja destruída.

O sensor LDR e o sensor em U estão protegendo o sistema quanto à abertura indevida do equipamento, detectando a luz e o a tentativa de acesso interno. Estes sinais são amplificados gerando um sinal de alerta para o firmware que destrói a chave privada.

Algum tempo foi gasto na elaboração de um gatilho instantâneo, que foi obtido com o TIC106 onde o mesmo funciona como um interruptor eletrônico fornecendo aterramento ao kit para que o mesmo detecte a violação por meio de um pino na placa.

O mais complexo foi a calibração dos sensores, individualmente e coletivamente, quanto a sensibilidade de disparo de forma que a violação não sofra alarme falso.

5.2 Software

A elaboração do software foi divido em duas fases, a primeira foi o desenvolvimento do firmware realizado todo fora do equipamento e apenas no final transmitido ao mesmo.

Todo algoritmo de carimbo do tempo funcionou perfeitamente, tanto no PC quanto dentro do kit ARM. A plataforma Java SE foi decisiva na questão de compatibilidade e extensibilidade características deste tipo de projeto. A conexão com o Observatório Nacional, que fornece a hora e data legal brasileira, foi implementada no final, contribuindo para desempenho do tempo do carimbo, pois nesta fase não tínhamos apenas a questão processamento, mas também a questão de tempo de respostas do servidor de data e hora. A geração de código de maquina a partir de bytecode resultou em uma curva de desempenho ascendente tornando-se constante após um certo período de tempo, conforme é demonstrado no capítulo de validação e testes.

A segunda fase foi a implementação do software de retaguarda, que é utilizado para configurar a PDDE e validar os recibos de forma on-line. Neste mesmo servidor está rodando a implementação customizada de um SMTP utilizado no sistema global.

34

Foi desenvolvido um plugin, seguro e com desempenho aceitável para conectar-se com a PDDE e gerar o pacote com o recibo do carimbo do tempo, que é anexado ao email e retransmitido pela internet utilizando smtp relay hosts.

A implementação SMTP chamada JSMTPD fora escolhida e personalizada, provando mais uma vez que não existe a necessidade da reescrita e reimplementação de um servidor SMTP do zero.

5.3 PDDE

A união do Software de Retaguarda (Paginas WEB e Servidor SMTP) com o firmware (responsável pelo carimbo) foi feita de forma natural, já que foi utilizado a mesma. O conector Ethernet fora utilizado por ter uma característica marcante, utilizar-se do protocolo TCP onde existe a garantia de retransmissão de pacotes, e também pela arquitetura ethernet que com suas diversas camadas esta pronta para garantir que interferências de origem física possam ser contornadas sem muitos problemas.

35

TESTES E VALIDAÇÃO

Os testes e a validação foram fundamentais para a implementação deste projeto, pois garantiu uma solução tecnologicamente viável e o alcance do objetivo do trabalho. Neste capítulo estão descritos os testes de validação do sistema, os testes de desempenho passo a passo, os testes de desempenho do sistema como um todo e a escalabilidade do sistema.

6.1 Teste de validação do sistema

Para validar o sistema, o primeiro teste foi o de envio do email, assinatura e conferência desta assinatura via mecanismos de validação de pacotes PKCS#7 conhecidos, ou seja, foi validado a função hash do documento e também o pacote PKCS#7 que é anexado como recibo ao email, para isso foi utilizado softwares especializados na leitura de pacotes assinados, neste caso foi o ArispSing, que realiza tanto a assinatura quanto a validação da mesma. A Figura 6.23 apresenta um exemplo do recibo no formato PKCS#7.

36

Figura 6.23: Pacote PKCS#7

O próximo teste foi a relação entre o tempo de abertura e a exclusão total da chave, e o resultado foi praticamente instantâneo, ou seja, ao violar o HSM instantaneamente a chave privada é excluída.

E por fim a validação do ato de recepcionar e carimbar o email pode ser conferido pelo usuário através do Portal desenvolvido conforme a Figura 6.24.

37

Figura 6.24: Portal da Protocoladora Digital de Documentos Eletrônicos.

6.2 Teste de Desempenho Passo a Passo

Os testes de desempenho realizados foram baseados na quantidade de envio de emails e no comportamento da protocoladora diante do desafio de testar vários email ao mesmo tempo. O tempo de geração e envio de email para o servidor foi de cerca de 70ms, já o carimbo e o encaminhamento levou cerca de 260ms, totalizando 330ms no total desde o inicio ao final da operação.

O projeto tinha o objetivo de carimbar um email por segundo, mas os testes finais mostraram que é possível carimbar até três emails por segundo passando pelo processo completo. Abaixo estão relacionados os tempos:1) Geração e envio de email a protocoladora - 70ms;2) Recebimento e calculo da função hash do email - 20ms;3) Envio do hash para a HSM e geração do RECIBO do carimbo do tempo - 200ms;4) Anexo do recibo do email e encaminhamento do email - 30ms.

A invalidação da chave ao violar os sensores foi de 21,6ms em média, demonstrando a confiabilidade no Hardware que acumula o resultado dos sensores.Ativação do Sensor de Movimento – 15 msAtivação do Sensor de Claridade – 25msAtivação do Sensor de Abertura – 25ms

6.3 Teste de Desempenho e do Sistema Como um Todo

O desempenho do sistema deve ser medida entre o tempo de recebimento do email e a protocolação do mesmo, que inclui o calculo da função hash , o carimbo e o anexo do recibo no email. O encaminhamento deste email ocorre quando o mesmo é enviado a um

38

servidor RELAY SMTP que vai enviar este email para o destinatário, e é a partir deste momento que não temos controle de quando este email vai chegar ou não até o seu destino. Os teste demonstraram que em 330ms somos capazes de gerar a protocolo de um email, podendo a partir disto ficar na dependência da Internet e da disponibilidade destes servidores para que o mesmo chegue ao seu destino.

6.4 Teste de Escalabilidade do Sistema

Para isso foi implementada uma aplicação que realiza o envio de varias mensagens ao mesmo tempo ao nosso servidor de email, utilizamos neste caso 20 threads enviando 50 emails cada uma delas. Diante da natureza do firmware ele carimba vários email por fez, ou seja, a cada thread é uma conexão direta do servidor com o HSM , gerando assim uma desempenho maior.

O tempo geral desde a criação, envio, captação pelo servidor SMTP, carimbo e reenvio para seu destino foram calculados e podem ser observados na Tabela 1.

Número de Envios Processamento (%)

Tempo de geração (ms)

Tempo de Protocolação (ms) (Carimbo)

Tempo de Retransmissão (ms)

1 100 70 7000 30

5 75 140 7100 150

10 70 160 8150 220

15 70 165 8760 225

20 65 170 8990 225

25 75 205 9000 220

30 80 205 8995 210

35 60 250 8900 250

40 70 260 8950 300

45 40 270 9200 310

50 50 300 9250 310

Tabela 6.1: Tempos para o teste de escalabilidade

Lembrando que existe flutuação nos tempos tanto para cima quanto para baixo devido a ativação do mecanismo de HotSpot do Java dentro do Hardware Criptográfico. O HotSpot é o nome dado a Maquina Virtual Java da Sun que possui uma tecnologia chamada JIT (JustInTime) que é ativado para que o código interpretado Java seja compilado como um código nativo.

39

CONCLUSÃO

O projeto da protocoladora digital de documentos eletrônicos teve como objetivo protocolar documentos eletrônicos atribuindo-os validade jurídica por meio da autenticidade, integridade, irrefutabilidade e a tempestividade. Este objetivo foi cumprido utilizando o protocolo SMTP para recepcionar emails e atribuir tais características aos documentos anexados no email assinado. Esta capacidade atribuída a Protocoladora Digital de Documentos foi peça chave na disseminação do documento digital no âmbito do usuário final, atribuindo validade jurídica a prática que já tem sido realizada há anos.

Os resultados obtidos com este projeto estão diretamente relacionados com um futuro próximo da total extinção dos meios físicos para comprovação de documentos como licitações, procurações, escrituras entre outros, que antes eram papel de algumas peças chave na sociedade como notários e registradores. Uma vez que você tem uma maneira de comprovar a origem destes documentos varias tarefas hoje dispensadas a estes notórios profissionais podem ser feitas em casa e com total segurança.

A aplicação deste projeto extende-se desde um simples autenticador de operações dentro de uma empresa, até mesmo um comprovante de emissão de documentos importantes como resultados laboratoriais, gabaritos entre outros. Com o auxilio da MP 2200, a PDDE é capaz de gerenciar chaves com a segurança exigida pela ICP-BRASIL e suas subsidiarias.

Os sensores anexos a placa foram decisivos na validação deste projeto em âmbito geral, o acelerômetro garantiu que o computador não sofra transporte, o sensor em U detecta a violação de acesso e o LDR auxilia no caso da aberta direta do equipamento.

A velocidade com que a chave foi destruída em nossos testes fez parte da especificação de segurança que buscamos desde o inicio do projeto. Testes realizados de desempenho demonstraram que a plataforma Java para pequenos dispositivos está pronta para alcançar desempenho de soluções nativas e ainda conversar a portabilidade entre kits de desenvolvimento, levando assim a uma pluralidade de equipamentos possíveis. A linguagem Java e o framework JavaServer Faces possibilitaram o desenvolvimento rápido de uma interface web visual, disponibilizando ao usuário acesso instantâneo para validar o seu recibo.

Diante do cenário aberto neste projeto podemos vislumbrar diversas atualizações, algumas sugestões podem ser obtidas abaixo:

1) Implantação de um módulo de carimbo de documentos desacoplado do servidor SMTP;

2) Implantação de um do HSM utilizando aceleração via HARDWARE para geração de pontos flutuantes do carimbo digital, função que hoje é obtida via software, encarecendo a geração em prol da portabilidade;

3) Embarcar no HSM o servidor de retaguarda hoje realizado pelo computador servidor;

40

Todas as sugestões tem como objetivo a expansão do projeto inicial. As conclusões obtidas com este experimento transcendem o invólucro das experiências universitárias, conduzindo-nos a um novo patamar no âmbito da Engenharia da Computação.

41

REFERÊNCIAS BIBLIOGRÁFICAS

DIAS J. S. Confiança no Documento Eletrônico. 2004. Dissertação (Doutorado) Universidade Federal de Santa Catarina, UFSC, Florianópolis.

BRASIL (2001). Medida Provisória 2.200-2. Medida Provisória que instituiu a ICP-Brasil. Disponível em: <http://www.planalto.gov.br/ccivil_03/MPV/Antigas_2001/2200-2.htm>. Acesso em: abril 2009.

DEMÉTRIO, D. B. Infra-Estrutura de Protocolação Digital de Documentos Eletrônicos. 2003. Dissertação (Mestrado Ciência da Computação), 2003. Universidade Federal de Santa Catarina, UFSC, Florianópolis.

STALLING, WILLIAM. Criptografia e segurança de redes – Princípios e Práticas. 4o Edição. São Paulo. PEARSON, 2008.

NOBRE F. L., WANGENHEIM V. ª, MAIA S. R., FEVERREIRA L., MARCHIORI E. Certificação Digital de Exames em Telerradiologia: Um Alerta Necessário. Radiologia Brasileira, São Paulo, v.40, n.6, nov. 2007.

NIETO S. S., LOPES C. M. C., SILVA F. A. Criptografia: Uma Aplicação de Álgebra Linear. 2008. Trabalho Individual - Universidade Presbiteriana Mackenzie, São Paulo.

STINSON, D. R. Cryptography - Theory and Practice. Chapnan & Hall, 2 edition. 2002.

PEREIRA, S. F Impacto da Utilização de Certificados Digitais em Servidores de Rede: um Estudo Comparativo. 2009. Trabalho Individual (Pós Graduação em Segurança da Informação) Faculdade IDEZ, João Pessoa.

GASPARETTO, E. P. Sistema de Arquivos Criptografados. 2005. Dissertação (Mestrado) Universidade Federal de Lavras, UFLA, Lavras.

STALLINGS, W. 1998. Cryptography and Network Security, Estados Unidos: Prentice Hall.

42

EMILIANO S., MONTEIRO M. E. Certificados Digitais. 2007. 1o : BRASPORT. Rio de Janeiro.CERT.BR. Cartilha de Segurança para Internet. Disponível em: <http://cartilha.cert.br>. Acesso em: abril. 2009.

CORREA M. P. Um estudo sobre a implantação da governança de TI com base em modelos de maturidade. 2006. 94 f. Dissertação (Mestrado). Centro Estadual de Educação Tecnológica Paula Souza, CEETEPS, São Paulo

HABER, S., STORNETTA, W. S. How to time-stamp a digital document. Lecture Notes in Computer Science, 537. 1991

PASQUAL, E. S., DIAS, J. D. S., CUSTÓDIO, R. F.. A new method for digital time-stamping of electronic document. In FIRST, editor, Proceedings of the FIRST 14th Annual Computer Security, 212 West Washington, Suite 1804 Chicago, IL 60606. Phoebe J. Boelter Conference and Publication Services, Ltd. 2002.

ROSEMAN D, BROCARDO M. Impacto na Adoção de Assinaturas Digitais no Desenvolvimento de Software, ICPG jun 2006.

NIST National Institute of Standards and Technology, PKI Project Team, Certificate Issuing and Management Components Protection Profile. National Security Agency, USA, p. 3 to 5, 2002.

ATTRIDGE, J., An Overview of Hardware Security Modules. Version 1.2f of GSEC Practical Assignment or GIAC Certification, 2002.

CARTER, S.; KILVINGTON, S.; LOCKHART, H.; WOOLLARD, S. e NICOLLS, W., Ask The Experts – When and why should Ichose hardware encryption rather than software encryption. Itsecurity.com Security Clinic, 2001.

BRY. Produtos da empresa BRY. Disponível em: <http://www.bry.com.br>. Acessado em: mar 2009.

NCIPHER. Produtos da empresa Ncipher: pdfProof, DSE 200, TimeSource Server Clock. Disponível em:< htttp://www.ncipher.com>. Acessado em: nov 2008.

MYKOTRONX. Produtos da empresa Mykotronx: Fortezza. Disponível em: <http://www.mykotronx.com>. Acessado em: nov 2008.

GUMSTIX. Produtos da empresa Gumstix. Disponível em: < http://www.gumstix.com>. Acessado em mar 2009.

FREESCALE. Produtos da empresa Freescale. Disponível em: < http://www.freescale.com>. Acessado em mar 2009.

43

APÊNDICE A – MANUAL TÉCNICO

1

MANUAL DE INTRUÇÕES

Protocoladora Digital de Documentos Eletrônicos

2009

44

ÍNDICE

IntroduçãoConfiguração InicialModo Utilização

45

INTRODUÇÃO

O avanço da informática e a disseminação das redes de computadores possibilitaram o uso de transações eletrônicas em larga escala. Estas transações são realizadas através da troca de documentos eletrônicos entre entidades e vem sendo utilizados nas mais diversas áreas como bancos, governos, hospitais, entre outros, já que ocupam pouco espaço, são fáceis de gerir e podem ser copiados e transmitidos quase que instantaneamente. Documento em papel tem um custo de impressão, manutenção, cópia e transporte e além disso, um documento enviado pelo correio demora muito mais para chegar a seu destino do que um simples email. O que antes era realizado utilizando-se papel passou agora a ser realizado na forma digital, de forma muito mais ágil.

Tais vantagens dos documentos eletrônicos trouxeram uma mudança no conceito de documento da forma antiga em papel, para o novo formato eletrônico. Esta mudança trouxe alguns problemas que devem ser solucionados. O maior deles diz respeito à legitimidade de tais documentos, pois por ser eletrônico pode ser alterado com facilidade abrindo-se assim espaço para inúmeras fraudes que, a priori, em papel seria mais difícil.

Alem disso existem requisitos que precisam ser preenchidos para que um determinado papel tenha valor legal. Para documentos digitais deve existir uma forma de assegurar que um determinado documento veio de uma fonte confiável, não foi alterado, entre outros.

Para que sejam tecnicamente seguros tais documentos devem ser datados e assinados digitalmente, os requisitos para a validade de um documento digital devem ser:

• Autenticidade: garante a autoria do documento;• Integridade: garante que o documento não foi alterado, sob nenhum aspecto;• Irrefutabilidade ou irretratabilidade: “que não se pode refutar, evidente, irrecusável, incontestável”;

• Tempestividade ou irretroatividade: garante que um determinado evento eletrônico ocorreu em um determinado instante.Para que seja possível atender a estes requisitos é necessária à utilização de

assinatura digital certificação digital, carimbo do tempo e um sistema confiável de protocolação digital.1 A protocoladora digital de documentos é um equipamento seguro que visa garantir a data/hora de um documento que passa por ela através de um carimbo do tempo, a maneira de operação da mesma é explicada neste manual, desde a configuração até o funcionamento do envio e recepção de emails protocolados.

46

CONFIGURAÇÃO INICIAL

Para que a Protocoladora funcione corretamente é necessária a configuração da CHAVE PRIVADA, para tal você deve acessar o CONSOLE DE ADMINISTRAÇÃO pelo endereço: HTTP://localhost:8080 /login.faces , onde será requisitado o usuário e senha :2

2

3 Figura 1 – Tela de login da console de Administração da Protocoladora

4

O usuário e senha padrão da protocoladora é Usuário: “Admin” e Senha: “Admin123”. Selecione o botão “Entrar” e você terá acesso a tela de configuração para administração da sua Protocoladora Digital de Documentos Eletrônicos.

47

5

6 Figura 2- Tela inicial do console de administração

78

Para que seja possível utilizar a PPDE, deve-se enviar a chave PRIVADA gerada no formato JKS, (gerada por uma Autoridade Registradora), selecionando a frase “Click aqui para instalar uma”.

48

9

10 Figura 3 – Envio da chave privada para ativação da protocoladora

11Logo após selecionar o chave, deve-se selecionar o botão “ENVIAR”, e aparecerá a

tela inicial onde será possível validar o status da chave.

49

12

13 Figura 4 – Console após a configuração da Chave Privada

1415

Pronto! A configuração inicial da protocoladora está concluída! Agora já é possível enviar emails protocolados apenas apontando a configuração do SERVIDOR DE SAIDA DE email para o IP da sua protocoladora, um exemplo é descrito abaixo.

50

16

17 Figura 5 – Menu “Contas...” do software de email ThunderBird 2.0

1819

Após acessar as configurações de conta deve-se cadastrar o servidor de saída de email como sendo a Protocoladora Digital de Documentos Eletrônicos, neste caso como ela está instalada no host LOCALHOST devemos configurar a porta para 25 e o host para apontar o endereço local:

51

20

21 Figura 6 – Configuração do servidor SMTP do Thunderbird para LOCALHOST

52

22 UTILIZAÇÃO

Para utilizar a PPDE é muito simples, a única coisa que deve feita é enviar um email para o seu colega, e ele será automaticamente protocolado, para tal aperte no botão nova mensagem do seu ThunderBird e envie o email. Para garantir a autenticidade deste email é só adicionar a Assinatura Digital.

2324

25 Figura 7 – Teste de envio de email26

O aviso recebido pelo destinatário contendo uma mensagem da PPDE possibilitando a consulta do código para validação do email está descrito na Figura 8.

53

27

28 Figura 8 – Mensagem enviada da PPDE

Para a validação deste protocolo enviado deve-se selecionar a instrução “nosso servidor de validação” onde deve-se digitar o PROTOCOLO GERADO, tendo como resposta após este procedimento os dados do processamento do email.

Um recibo é anexado ao email no formato PKCS#7 , que pode ser visualizado por qualquer software do mercado, um exemplo da visualização deste arquivo é demonstrada na Figura 9.

54

29

30 Figura 9 – Recibo do email em formato PKCS#7

3132

Você pode perceber que este recibo demonstra que o email foi CARIMBADO pela PPDE e tem a assinatura digital fornecida pela chave privada contida dentro da mesma, garantindo os aspectos legais deste documento.3334

55

APÊNDICE B – ARTIGO

56