SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS...

66
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS ELETRÔNICOS RECÍGIO POFFO BLUMENAU 2010 2010/2-24

Transcript of SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS...

Page 1: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE CIÊNCIA DA COMPUTAÇÃO – BACHARELADO

SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE

DOCUMENTOS ELETRÔNICOS

RECÍGIO POFFO

BLUMENAU 2010

2010/2-24

Page 2: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

RECÍGIO POFFO

SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE

DOCUMENTOS ELETRÔNICOS

Trabalho de Conclusão de Curso submetido à Universidade Regional de Blumenau para a obtenção dos créditos na disciplina Trabalho de Conclusão de Curso II do curso de Ciência da Computação — Bacharelado.

Prof. Paulo Fernando da Silva - Orientador

BLUMENAU 2010

2010/2-24

Page 3: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE

DOCUMENTOS ELETRÔNICOS

Por

RECÍGIO POFFO

Trabalho aprovado para obtenção dos créditos na disciplina de Trabalho de Conclusão de Curso II, pela banca examinadora formada por:

______________________________________________________ Presidente: Prof. Paulo Fernando da Silva, Mestre – Orientador, FURB

______________________________________________________ Membro: Prof. Fernando dos Santos, Mestre – FURB

______________________________________________________ Membro: Prof. Everaldo Artur Grahl, Mestre – FURB

Blumenau, 13 de dezembro de 2010

Page 4: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

Dedico este aos meus pais, que me serviram de exemplo e fizeram de mim o que sou. Aos meus amigos, fortes alicerces da minha vida.

Page 5: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

AGRADECIMENTOS

À minha família, a qual sempre me apoiou.

Aos meus amigos, os quais em minhas ideias sempre acreditaram.

A todos que de alguma forma contribuíram para que este trabalho fosse um sucesso.

Page 6: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

Uma mente que se abre a novas ideias nunca mais será a mesma.

Albert Einstein

Page 7: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

RESUMO

O objetivo deste trabalho é a criação de uma protocoladora digital de documentos eletrônicos. Fazendo uso de mecanismos de segurança como criptografia, assinatura e datação, utilizando no processo uma data legalmente reconhecida. Pretende-se criar um serviço confiável que possa gerar um recibo, garantindo a integridade e autenticidade do documento. O serviço será disponibilizado via web, fazendo uso da linguagem PHP e do framework Zend Framework. Deve-se acessar o serviço para protocolar o documento e posteriormente para verificar sua autenticidade.

Palavras-chave: Protocolação digital. Criptografia. Assinatura digital. Datação.

Page 8: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

ABSTRACT

The objective of this work is to create a digital protocol for electronic documents. The protocol uses security mechanisms such as encryption, signing and dating, using a date in the process legally recognized. It is intended to create a reliable service that can generate a receipt, ensuring the integrity and authenticity of the document. The service will be available via web, using the PHP Zend Framework and the framework. You should access the service for filing the document and then to verify its authenticity. Key-words: Digital protocol. Encryption. Digital signature. Dating.

Page 9: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

LISTA DE ILUSTRAÇÕES

Quadro 1- Requisitos Funcionais. ............................................................................................ 29 

Quadro 2 - Requisitos Não Funcionais. .................................................................................... 30 

Quadro 3 - Detalhamento do caso de uso Cadastrar Usuário. .................................................. 32 

Quadro 4 - Visualizar Usuários Cadastrados. ........................................................................... 32 

Quadro 5 - Editar Usuário. ....................................................................................................... 33 

Quadro 7 - Detalhamento do caso de uso de Protocolar Documento. ..................................... 34 

Quadro 8 - Detalhamento do caso de uso Verifica Recibo. ...................................................... 35 

Quadro 9 - Programa em C para iniciar aplicação. ................................................................... 45 

Quadro 10 - Verificação da senha do sistema. ......................................................................... 46 

Quadro 11 – KeyRepository. .................................................................................................... 47 

Quadro 12 - Classe ProcoladoraAuto. ...................................................................................... 48 

Quadro 13 - Sincronia de tempo. .............................................................................................. 49 

Quadro 14 – Método protocolar da classe protocolação. ......................................................... 50 

Quadro 15 - Criação do recibo. ................................................................................................ 51 

Quadro 16 - Método verificaProtocolacao. .............................................................................. 53

Figura 1 - Codificação simétrica. ............................................................................................. 18 

Figura 2 - Decodificação simétrica. .......................................................................................... 19 

Figura 3 - Codificação assimétrica. .......................................................................................... 20 

Figura 4 - Decodificação assimétrica. ...................................................................................... 20 

Figura 5 - Processo de datação de um documento. .................................................................. 23 

Figura 6 - Encadeamento linear. ............................................................................................... 24 

Figura 7 - Estrutura de um ambiente web. ............................................................................... 26 

Figura 8 – Bry PDDE. .............................................................................................................. 28 

Figura 9 - Caso de uso que pode ser executado pelo visitante. ................................................ 31 

Figura 10 - Casos de usos que podem ser executados pela empresa cadastrada. ..................... 31 

Figura 11 - Casos de usos que podem ser executados pelo usuário. ........................................ 34 

Figura 12 - Classes de modelo. ................................................................................................. 36 

Figura 13 - Classes de controle. ............................................................................................... 37 

Figura 14 - Classes de protocolação. ........................................................................................ 38 

Figura 15 - Diagrama de sequência para Protocolar Documento. ............................................ 40 

Page 10: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

Figura 16 - Diagrama de sequencia de Verifica Recibo. .......................................................... 41 

Figura 17 - Estrutura do banco de dados .................................................................................. 42 

Figura 18 - Recibo Exemplo. .................................................................................................... 52 

Figura 19 - Iniciando serviço de protocolação. ........................................................................ 54 

Figura 20 - Tela inicial do sistema. .......................................................................................... 55 

Figura 21 - Cadastro de nova empresa. .................................................................................... 55 

Figura 22 - Tela de login do sistema. ....................................................................................... 56 

Figura 23 - Cadastro de usuários de uma empresa. .................................................................. 57 

Figura 24 - Lista de usuários cadastrados de uma empresa. ..................................................... 57 

Figura 25 - Opções do usuário funcionário. ............................................................................. 58 

Figura 26 - Tela "Protocolar Documento". ............................................................................... 58 

Figura 27 - Recibo sendo emitido pela protocoladora. ............................................................. 59 

Figura 28 - Verificar recibo. ..................................................................................................... 59 

Figura 29- Resultado da validação de um recibo. .................................................................... 60 

Page 11: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

LISTA DE SIGLAS

AD – Autoridade de Datação

AES - Advanced Encryption Standard

CC-BY - Creative Commons

FTP – File Transporte Protocol

HLB – Hora Legal Brasileira

HTML - HyperText Markup Language

HTTP – Hypertext Transfer Protocol

MD5 – Message-Digest Algorithm 5

MIT – Massachusetts Institute of Technology

MVC - Model View Controller

NIST - Instituto Nacional de Padrões e Tecnologia dos EUA

NTP- Network Time Protocol

PDDE – Protocoladora Digital de Documentos Eletrônicos

PEAR - PHP Extension and Application Repository

PHP - Hypertext Preprocessor

RSA - Rivest Shamir Adleman

SHA-1 – Secure Hash Algorithm 1

SSL - Secure Sockets Layer

TSL - Transport Layer Security

UML - Unified Modeling Language

XML - Extensive Markup Language

Page 12: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

SUMÁRIO

1  INTRODUÇÃO .................................................................................................................. 13 

1.1  OBJETIVOS DO TRABALHO ........................................................................................ 14 

2  FUNDAMENTAÇÃO TEÓRICA .................................................................................... 15 

2.1  DOCUMENTOS ELETRÔNICOS ................................................................................... 15 

2.2  ASSINATURAS DIGITAIS ............................................................................................. 16 

2.2.1 Resumo de documentos eletrônicos ................................................................................ 16 

2.2.2 Conceitos de criptografia ................................................................................................ 17 

2.2.3 Chaves simétricas e assimétricas .................................................................................... 18 

2.3  DATAÇÃO DE DOCUMENTOS DIGITAIS .................................................................. 21 

2.3.1 A Hora Legal Brasileira .................................................................................................. 21 

2.3.2 Método de datação relativa ............................................................................................. 22 

2.4  AUDITORIA DOS RECIBOS .......................................................................................... 24 

2.5  O ZEND FRAMEWORK .................................................................................................. 25 

2.6  TRABALHOS CORRELATOS ........................................................................................ 27 

3  DESENVOLVIMENTO .................................................................................................... 29 

3.1  REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ....................... 29 

3.2  ESPECIFICAÇÃO ............................................................................................................ 30 

3.2.1 Diagramas de casos de uso .............................................................................................. 30 

3.2.1.1 Casos de usos de cadastros ........................................................................................... 31 

3.2.1.2 Casos de uso de protocolação ....................................................................................... 33 

3.2.2 Diagramas de classe ........................................................................................................ 35 

3.2.2.1 Classes de Modelo ........................................................................................................ 35 

3.2.2.2 Classes de Controle ....................................................................................................... 37 

3.2.2.3 Diagrama de classes de protocolação ........................................................................... 38 

3.2.3 Diagramas de Sequência ................................................................................................. 39 

3.2.4 Estrutura do banco de dados ........................................................................................... 41 

3.3  IMPLEMENTAÇÃO ........................................................................................................ 42 

3.3.1 Técnicas e ferramentas utilizadas.................................................................................... 43 

3.3.1.1 O OpenSSL ................................................................................................................... 43 

3.3.1.2 O Crypt_RSA e o AES ................................................................................................. 44 

3.3.1.3 O Repositório de chaves assimétricas e a senha mestre do sistema ............................. 44 

Page 13: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

3.3.1.4 Autenticação dos usuários ............................................................................................ 47 

3.3.1.5 O serviço de NTP e a obtenção de uma hora legal. ...................................................... 49 

3.3.1.6 Protocolação dos documentos ....................................................................................... 49 

3.3.1.7 Validação e auditoria dos recibos ................................................................................. 52 

3.3.2 Operacionalidade da implementação .............................................................................. 54 

3.4  RESULTADOS E DISCUSSÃO ...................................................................................... 60 

4  CONCLUSÕES .................................................................................................................. 62 

4.1  EXTENSÕES .................................................................................................................... 63 

REFERÊNCIAS BIBLIOGRÁFICAS ................................................................................. 64 

Page 14: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

13

1 INTRODUÇÃO

A escrita tem suma importância para história da humanidade. Não se sabe com certeza

absoluta a data de sua origem, porém, a primeira escrita apareceu na região entre os rios

Tigres e Eufrates, na Mesopotânia (SILVA JUNIOR, 1998) e desde cedo ela se mostrou útil

na vida política e econômica, da contabilidade das colheitas, às ordens dadas pelos reis aos

seus exércitos.

Tão logo a escrita e os papéis tornaram-se um recurso indispensável, surgiram também

os primeiros métodos de falsificação de documentos e a necessidade de garantir certos

requisitos de segurança como autenticidade e integridade. Várias técnicas foram criadas e

aperfeiçoadas ao longo do tempo, fruto de novas idéias.

A técnica de protocolação foi uma resposta a estas necessidades. Fazendo uso da

mesma é possível garantir, por meio de um comprovante, validado por uma entidade

responsável e reconhecida, que um documento existiu em determinada data.

Com o avanço da informática tornou-se popular o uso de documentos eletrônicos.

Transações eletrônicas ocorrem o tempo todo. Com os documentos eletrônicos, novamente

surge a necessidade de garantir certos requisitos de segurança para assegurar seus valores. Em

um processo jurídico, por exemplo, pode-se usá-los como provas confiáveis.

Diante do exposto, surge a idéia de criar um serviço web para protocolação digital de

documentos eletrônicos, um recurso que possa ser acessado a partir de qualquer computador

conectado a internet e que seja capaz de datar e assinar de forma segura estes documentos.

Sendo o documento eletrônico de um formato de texto ou imagem permitido pelo

sistema, o objetivo é gerar um recibo que servirá como garantia da existência do mesmo em

determinada data ou sua precedência em relação a outro documento, sendo este recibo

possível de auditoria para validação de sua autenticidade.

As técnicas de protocolação digital garantem a impossibilidade de se protocolizar um

documento eletrônico de forma retroativa com relação ao tempo, ao número do protocolo e ao

conteúdo do original. Se o documento eletrônico original for modificado, sua integridade será

verificada. A simples abertura do documento eletrônico original em algum aplicativo pode

alterar seu conteúdo e torná-lo inválido (TRIBUNAL REGINAL DO TRABALHO, 2002).

A Protocoladora Digital de Documentos Eletrônicos (PDDE) é um recurso que já vem

sendo testado e usado por várias empresas e pelo governo federal de alguns estados no meio

jurídico. Mostrando-se de suma importância para o judiciário, onde pode garantir que

Page 15: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

14

determinados valores legais sejam assegurados aos documentos, principalmente sua

autenticidade e data de criação.

Com a segurança aprimorada, torna-se viável o abandono dos documentos impressos e

a substituição pelos mesmos em suas formas eletrônicas. O que resolve problemas como a

dificuldade de armazenamento, de localização e de deterioração pela qual sofrem os papéis.

De modo geral os documentos eletrônicos vêm sendo utilizados cada vez mais e se

mostram úteis na transação de informações por meio eletrônico. Basta a eles agora toda a

confiabilidade dada aos documentos impressos, para tal, a necessidade de uma protocoladora

digital de documentos eletrônicos.

1.1 OBJETIVOS DO TRABALHO

O objetivo deste trabalho foi criar um serviço web de protocolação digital de

documentos eletrônicos.

Os objetivos específicos do trabalho são:

a) criar um serviço capaz de receber documentos eletrônicos e criar um resumo

(1hash);

b) aplicar um carimbo temporal no resumo documento;

c) assinar os resumos dos documentos eletrônicos para garantir a autenticidade da

protocoladora digital e gerar um recibo como comprovante do processo;

d) garantir que a assinatura possa ser confirmada e a existência de determinado

documento em determinado período do tempo possa ser verificada;

e) garantir a sincronia de tempo do serviço com a hora legal brasileira.

1 Um resumo (hash) pode ser entendido como uma grande quantidade de informação transformada em uma pequena quantidade de informação.

Page 16: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

15

2 FUNDAMENTAÇÃO TEÓRICA

Este capítulo trata das questões teóricas e conceituais que envolvem a protocolação

digital de documento eletrônicos. O texto inicia descrevendo documentos eletrônicos,

resumos de documentos e depois trata de assinaturas digitais, sua divisão entre assimétricas e

simétricas, explicando suas diferenças enquanto fala de criptografia.

Neste capítulo também é abordado o conceito de datação relativa. É mostrada a

existência da Hora Legal Brasileira, e também o ambiente de desenvolvimento proposto para

a aplicação.

Ao fim, são apresentados os trabalhos correlatos que auxiliaram na compreensão e

resolução dos requisitos propostos.

2.1 DOCUMENTOS ELETRÔNICOS

Um documento eletrônico pode ser entendido como a representação de um fato

concretizado por meio de um computador e armazenado em formato específico (organização

singular de bits e bytes), capaz de ser traduzido ou aprendido pelos sentidos mediante o

emprego de programa (software) apropriado (CASTRO, 2003).

Os documentos eletrônicos são produzidos, manuseados e transmitidos com auxílio de

máquinas eletrônicas, porém, em si mesmo, tais documentos não são “eletrônicos”, pois não

são circuitos elétricos e nem possuem válvulas, semicondutores ou qualquer outro dispositivo

eletrônico (TADAMO 2002).

Não sendo os documentos por si próprios eletrônicos, o que se considera por

documentos eletrônicos são informações armazenadas e transmitidas por máquinas

eletrônicas, ou seja, documentos criados e armazenados de forma digital. Também são

chamados de “Documentos Digitais”, onde o processo de conversão para representar algo na

sua forma digital chama-se “digitalização”.

Essa informação, quando interpretada por máquinas eletrônicas, como um computador,

podem se apresentar de várias formas. Podem ser uma imagem ou um texto, como exemplo. É

a integridade e validade destes documentos que se pretende garantir. Mais que isso, essa

garantia também deve existir na forma digital, para se ter um real aproveitamento das

Page 17: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

16

transmissões eletrônicas, onde se pode enviar ou armazenar o documento e também a prova

de sua existência.

2.2 ASSINATURAS DIGITAIS

Com a chegada da internet, a transação a longa distância popularizou-se e hoje

vivemos um período de ascensão do comércio eletrônico. Entretanto, este novo tipo de

comércio criou um paradigma quanto ao aspecto de impessoalidade nas transações, ou seja,

como confiar em algo escrito por alguém a milhares de quilômetros de distância? Novamente

a tecnologia apresentou alternativas para esclarecer dúvidas neste sentido. Uma destas

alternativas é a chamada assinatura digital (TADAMO, 2002, p. 13).

Quando um usuário envia sua mensagem, o outro, receptor, necessita garantir que a

mensagem realmente provém de quem a gerou, ou seja, que a mensagem é autêntica (SILVA,

2004, p. 182), neste ponto do processo fica clara a importância da assinatura digital.

A assinatura digital é composta basicamente de dois momentos, a criação de um

resumo do documento (hash) e logo após a encriptação do mesmo. Da união dos dois

processos é possível garantir os requisitos básicos da assinatura digital: autenticidade,

integridade e irretratabilidade.

2.2.1 Resumo de documentos eletrônicos

Por motivos de segurança, o que se usa e guarda dos documentos eletrônicos na

assinatura digital é apenas um resumo do mesmo e não a informação completa. Esse resumo é

gerado a partir de um algoritmo matemático, como MD5 (Message-Digest algorithm 5) ou

SHA-1 (Secure Hash Algorithm 1), que tem como resultado um conjunto de caracteres de

tamanho conhecido (hash).

Esse hash quando criado segue premissas básicas e deve ter certas propriedades, as

quais são:

a) deve ser impossível recuperar o documento original a partir do hash do mesmo;

Page 18: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

17

b) o hash deve parecer aleatório, mesmo que o algoritmo seja conhecido. Uma função

de hash é dita forte se a mudança de um bit no documento original resulta em um

novo hash totalmente diferente;

c) deve ser impossível encontrar dois documentos diferentes que levam a um mesmo

hash.

Esse hash é bastante útil, pois possui várias características que são importantes para o

processo de protocolação e para a segurança do mesmo. Qualquer mudança no arquivo

original torna-se evidente no resultado final e é impossível obter-se o documento inicial

apenas com o resultado da protocolação. Além de ser improvável encontrar dois documentos

diferentes que levem a um mesmo hash como resultado.

Neste passo garantem-se duas características na assinatura: a integridade e

irretratabilidade. A integridade garante que o documento é integro, não sofreu alterações, a

irretratabilidade, que a partir do dado armazenado, o hash, é impossível de se obter o

documento original.

Resumir documentos proporciona outra característica benéfica, seu pequeno tamanho

quando se precisa armazenar muitos resumos de assinaturas e documentos, caso da PDDE.

2.2.2 Conceitos de criptografia

O termo criptografia surgiu da fusão das palavras gregas "kryptós" e "gráphein", que

significam "oculto" e "escrever", respectivamente. Trata-se de um conjunto de conceitos e

técnicas que visa codificar uma informação de forma que somente o emissor e o receptor

possam acessá-la. (ALECRIM, 2009).

As primeiras técnicas de criptografias são muito antigas, denotam de muito antes de

Cristo, aparecem na escrita hieroglífica dos egípcios e nos textos romanos, como exemplo.

Manter o sigilo entre as mensagens sempre foi um ponto importante para as civilizações.

No mundo moderno, na computação, as formas de criptografias mais conhecidas

utilizam chaves como elementos fundamentais. São algoritmos matemáticos que fazem uso

destas chaves como parâmetros junto da informação que se deseja criptografar para criar o

resultado que se deseja, a informação criptografada.

Na criptografia atual as chaves são longas sequências de bits. Visto que um bit pode ter

Page 19: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

18

apenas dois valores, 0 ou 1, uma chave de três dígitos oferecerá 2³ = 8 possíveis valores para a

chave. (TADAMO 2002). Sendo assim, para uma maior confiabilidade recomendam-se

chaves de tamanhos maiores como 512 ou 1024 bits atualmente.

2.2.3 Chaves simétricas e assimétricas

As chaves criptográficas utilizadas para obter mensagens criptrografadas podem ser

separadas em dois conjuntos: chaves simétricas e chaves assimétricas.

Um algoritmo de chaves simétricas usa a mesma chave para encriptar e decriptar o

texto. A mensagem que se deseja criptografar é enviada a determinado algoritmo de

codificação junto da chave. Este algoritmo aplica determinado método matemático de

criptografia na mensagem usando a chave como parâmetro, tem-se como resultado a

mensagem codificada. A figura 1 ilustra o processo de codificação.

Fonte: Carvalho (2008). Figura 1 - Codificação simétrica

Para se obter novamente o texto original, é preciso estar de posse da mensagem

criptografada e da chave. Então, envia-se novamente ambos para o algoritmo e este retorna a

mensagem em seu estado original. A figura 2 ilustra esse processo de decodificação.

Page 20: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

19

Fonte:Carvalho (2008). Figura 2 - Decodificação simétrica

Fazendo uma analogia com o mundo real, a criptografia simétrica é semelhante a se

colocar uma mensagem dentro de um cofre, e fechá-lo com um cadeado. Somente as pessoas

que possuem a chave do cadeado podem abrir o cofre e obter o conteúdo da mensagem.

(Carvalho, 2008). Este modelo de chaves é mais simples e menos custoso em relação ao

modelo de chaves assimétricas.

Um dos algoritmos utilizados para criptografia simétrica é o AES (Advanced

Encryption Standard), também sendo conhecido com o Rijndael. Ele foi anunciado ao mundo

pelo NIST (Instituto Nacional de Padrões e Tecnologia dos EUA) em 2002, como método

padrão de criptografia do governo americano depois de uma seleção entre vários algoritmos.

No método de chaves assimétricas, também conhecida como criptografia de chaves

públicas, são utilizadas duas chaves diferentes para realizar o processo de codificação e

decodificação. Uma destas chaves será pública e a outra privada. A chave pública pode ser

distribuída livremente enquanto a chave privada deve ser guardada sobre total sigilo, sendo

acessível somente a seu dono.

Segundo Carvalho (2008), toda mensagem codificada com a chave privada só pode ser

decodificada com a sua respectiva chave pública. Toda mensagem codificada com a chave

pública só pode ser decodificada com o uso de sua chave privada correspondente. Desta

forma, se o usuário A deseja enviar uma mensagem codificada para o usuário B, ele pode

codificá-la com a chave pública de B, e enviar para B. Somente o usuário B, que possui a

chave privada B, conseguirá ler o conteúdo da mensagem enviada por A.

Da mesma forma que as chaves simétricas, um mesmo algoritmo de codificação é

utilizado, mas neste caso, ele recebe duas chaves diferentes para o processo de criptografia e

descriptografia. Quando o usuário B deseja se comunicar com o usuário A de forma segura,

ele envia sua chave pública e aguarda a mensagem codificada a partir de sua chave. A figura 3

Page 21: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

20

ilustra processo de codificação utilizando a chave privada.

Fonte: Carvalho (2008). Figura 3 - Codificação assimétrica

De posse da mensagem codificado, o usuário B então usa sua chave privada para

descriptografar a mensagem e obter o texto original. A figura 4 ilustra o processo de

decodificação utilizando a chave publica.

Fonte: Carvalho (2008). Figura 4 - Decodificação assimétrica

Sabendo as propriedades das chaves assimétricas garantem-se dois pontos importantes:

Quando o usuário A utiliza a chave pública de B para enviar sua mensagem, ele sabe que

somente o usuário B pode lê-la; Por sua vez, quando o usuário B utiliza sua chave privada

para codificar determinada mensagem, todo aquele que usar sua chave pública tem a garantia

de autenticidade da mensagem. Somente a chave privada de B poderia codificar de forma

correta o texto para se obter a mensagem decodificada de forma legível com sua chave

pública. A garantia de autenticidade é outra premissa fundamental para uma protocoladora.

Um algoritmo de chaves assimétricas muito utilizado é o Rivest  Shamir  Adleman 

(RSA). O RSA foi criado no Massachusetts Institute of Technology (MIT) por três de seus

professores: Ronald Rivest, Adi Shamir e Leonard Adleman. Como o nome sugere, foi

batizado com a primeira letra do sobrenome destes professores. Como este algoritmo usa

Page 22: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

21

números primos e a fatoração dos mesmos, o seu custo computacional é muito maior quando

comparado com outro que utiliza chaves simétricas.

2.3 DATAÇÃO DE DOCUMENTOS DIGITAIS

A datação digital tem como objetivo assegurar a existência de um documento

eletrônico em uma determinada data e hora (LIPMAA, 1999). A data e a hora anexadas ao

documento devem condizer com a data e a hora em que o documento foi submetido ao

processo de datação, de modo a garantir que o documento existiu em um determinado

momento no tempo (COSTA et al., 2003).

Apesar da aparência trivial (COSTA et al., 2003), fala que o processo de datação tem

certo grau de dificuldade. Adicionar data e hora corretas a um documento eletrônico não é

trivial. É preciso obter uma hora que seja considerada legal e inserí-la de forma que seja

possível, logo após, recuperá-la.

A data e hora anexadas ao documento devem condizer com a data e a hora em que o

documento foi submetido ao processo de datação, de modo a garantir que o documento existiu

em um determinado momento no tempo (COSTA at al., 2003).

Até o início dos anos 90 a única maneira de datar um documento digital era através de

Autoridades de Datação (AD), que precisavam ser legalmente reconhecidas. Hoje já existem

métodos confiáveis para fazer este trabalho. Sejam eles a partir do sincronismo com um

servidor que disponibilize a hora legal ou utilizando alguma forma de datação relata. Com

relação a esta última pode-se mencionar o método do encadeamento linear e o método da

árvore sincronizada.

2.3.1 A Hora Legal Brasileira

O Network Time Protocol (NTP) é um protocolo para sincronização dos relógios dos

computadores, ou seja, ele define um modo para um grupo de computadores conversarem

entre si e acertar seus relógios, baseados em alguma fonte confiável de tempo, como os

Page 23: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

22

relógios atômicos do Observatório Nacional, que definem a Hora Legal Brasileira. (COMITE

GESTOR DE INTERNET DO BRASIL, 2009).

O NTP.br é um projeto que visa oferecer condições para que os servidores de internet

no Brasil estejam sincronizados. Fruto de um acordo entre o Observatório Nacional e o

Núcleo de Informação e Coordenação do Ponto BR, ele disponibiliza um meio de

sincronização para a Hora Legal Brasileira, que é gerada, conservada e disseminada pelo

Observatório Nacional.

O NTP.br mantém vários servidores os quais podem ser utilizados através do protocolo

NTP. O serviço disponível pelo NTP.br é rastreável e auditável em relação a hora

disponibilizada pelo Observatório Nacional.

2.3.2 Método de datação relativa

Um método de datação relativa não se baseia na data e hora correntes, mas na ordem

em que os documentos são enviados para a PDDE. Sua implementação se baseia na teoria da

complexidade de funções de sentido único. Neste tipo de datação não se sabe em que

momento do tempo um documento foi protocolado, mas é possível verificar entre dois

documentos, qual foi datado primeiro. Uma PDDE deve utilizar informações de data e hora o

mais confiável possível. Neste sentido é interessante adotar simultaneamente os dois tipos de

datação: absoluta e relativa. (COSTA et al., 2003).

COSTA et al. (2003) afirma que em um processo de datação seguro o resumo do

documento, o qual se deseja datar, deve ser enviado para uma AD. Esta se utilizando uma data

confiável, chamada Fonte de Tempo, aplica um carimbo temporal e emite um recibo,

armazenando posteriormente em um banco de dados para futura auditoria, este processo é

ilustrado pela figura 5.

Page 24: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

23

Banco de Dados

7 56

121110

8 4

21

9 3

Fonte de Tempo

ClienteAutoridadede Datação

ResumoResumo

Internet

ReciboRecibo

ReciboRecibo

Fonte: Costa et al. (2003, p. 3).

Figura 5 - Processo de datação de um documento

Para conseguir formar uma datação relativa, além dos resumos dos documentos, é

necessário utilizar resumos de documentos anteriores, formando um encadeamento. Para isso

é utilizada uma função de sentido único G, que seja resistente a colisão. Todo esse

encadeamento deve ser mantido em um banco de dados para que seja possível fazer qualquer

auditoria posterior necessária. Chama-se esse processo de encadeamento linear.

O encadeamento é formado por links, onde o primeiro link da cadeia deve ser

escolhido de maneira randômica e tornado público, formando o 0L . Em seguida, o segundo

link 1L é gerado utilizando o link anterior 0L e o resumo do documento 0D enviado pelo

cliente. (COSTA et al, 2003). Sendo que a função matemática sugerida por COSTA (2003) de

forma genérica se apresenta da seguinte forma:

))(,,,( 1111 −−−−= nnnnn LHHIDtL

O elemento 1−nt representa a data e a hora em que o documento anterior foi datado,

1−nID é um identificador do cliente que emitiu o resumo do documento anterior, 1−nH é o

resumo do documento anterior e H(Ln-1) é resumo do link anterior. Esse encadeamento é

ilustrado pela figura 6.

Page 25: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

24

Fonte: Costa et al. (2003, p. 3).

Figura 6 - Encadeamento linear

O nó inicial é criado com dados randômicos e sem ligação com algum nó anterior. O

diferencial deste método é a possibilidade de garantir a precedência entre dois documentos no

encadeamento e consequentemente no tempo. É impossível que um novo dado seja inserido

em algum ponto da cadeia sem que aconteça uma falha. É preciso ter todos os documentos

originais em mãos e reassiná-los novamente na ordem que se deseja.

Caso isso seja feito de forma a enganar o sistema, mesmo assim as datas serão

modificadas e os recibos antigos se tornarão inválidos, sendo possível, durante uma auditoria

descobrir o ataque. Um dos pontos negativos desse método é a ineficiência para se auditar um

recibo colocado em algum ponto na cadeia. É preciso refazer todo o processo a partir do

recibo que se deseja conferir.

2.4 AUDITORIA DOS RECIBOS

De nada vale todo processo de datar e assinar os documentos se não for possível

auditar todo seu processo e verificar a autenticidade das informações. O ato de auditar refere-

se a uma revisão das atividades e dos registros de um sistema de maneira independente

(NATIONAL COMPUTER SECURYTI CENTER, 1987).

O processo de datação, assinatura e criação do recibo é somente parte do objetivo

pretendido através da protocolação. De nada ele serviria se mais tarde não fosse passível de

auditoria. De posse do recibo e do documento original, a partir de um novo acesso ao site que

executará o serviço de protocolação, deve ser possível conferir a integridade do documento e

a validade do recibo.

Acessando novamente o serviço de protocolação na internet, reenviando o documento

Page 26: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

25

digital, refazendo parte do processo e produzindo novamente um resumo do documento

original, um hash, junto das informações do recibo, tem-se todos os dados necessários para

fazer a comparação e validação do documento.

A data e assinaturas do recibo são conferidas e comparadas com o novo resumo e tem-

se uma verificação confiável do documento, sua autenticidade, integridade e existência em

determinada data e hora. Podendo-se inclusive verificar sua posição na corrente construída na

datação relativa.

2.5 O ZEND FRAMEWORK

Para tornar o serviço acessível para usuários de diversos lugares, o ambiente web se

mostra o ideal. A internet hoje possibilita que determinado serviço seja acessado quase de

qualquer lugar do mundo. Com o amadurecimento da grande rede, hoje é possível e seguro

efetuar boa parte das transações necessárias utilizando-a.

As linguagens de programação utilizadas nesse meio evoluíram e hoje possuem

diversos recursos, bibliotecas e frameworks. Utilizando páginas construídas com a linguagem

HyperText Markup Language (HTML) a partir de uma linguagem de programação mais

robusta, a parte visual de uma aplicação se torna acessível em diversos dispositivos. Boa parte

dos sistemas operacionais, inclusive para celulares, já possuem aplicativos para interpretar

páginas HTML.

As páginas em HTML são estáticas, por isso elas precisam de uma linguagem que trata

as informações de forma dinâmica, como por exemplo o JavaScript e o PHP. Quando o cliente

requisita uma página a um servidor na internet, este faz uso do PHP que por sua vez exibe o

resultado desejado no formato HTML. O fluxo é ilustrado na figura 7. Um computador

requisita uma página a um servidor na internet, sendo ela uma página em PHP, ela é

executada e um arquivo em formato HTML é enviado ao cliente.

Page 27: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

26

Fonte: Alvarez (2004).

Figura 7 - Estrutura de um ambiente web

Todas as informações da aplicação são salvas no lado servidor, para tal, o servidor

utiliza um banco de dados para persistir as informações. O PHP se comunica diretamente com

ele, requisitando dados salvos e enviando novos para serem guardados. Por questões de

segurança, do lado do servidor, faz se uso da linguagem C para gerar uma camada de

segurança para proteger o servidor e dar início à aplicação.

O PHP sucede de um produto mais antigo, chamado PHP/FI. PHP/FI foi criado por

Rasmus Lerdorf em 1995, inicialmente como simples scripts Perl como estatísticas de acesso

para seu currículo online. (The PHP Group, 2010).

Ele é uma linguagem que roda no lado do servidor, executando em um computador na

internet que recebe dados a partir de uma camada de visualização, de um protocolo de acesso

ou disponibilizando um serviço como o padrão Web Service, que é baseado em requisições do

tipo Hypertext Transfer Protocol (HTTP) e escrito em Extensive Markup Language (XML).

Com o tempo várias novas funcionalidades foram requeridas para o PHP e o código

fonte da linguagem foi disponibilizado para a comunidade. Depois de tantos anos, a

linguagem teve seu nome reduzido a PHP, foi reescrita várias vezes e englobou conceitos

como Orientação a Objetos. Possui uma série de recursos e especializa-se em realizar funções

no mundo web.

Utilizando-se do PHP e de páginas de internet pretende-se criar todo o ambiente

Page 28: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

27

necessário para o envio de documentos eletrônicos e criação de recibos.

Em 1997, Zeev Suraski e Andi Gutmans, contribuindo com o PHP, reescreveram todo

o cerne da linguagem, lançando o PHP 3. Em 1999, eles fundaram a Zend Technologies Ltd.,

empresa que hoje é responsável por boa parte das manutenções e mudanças no PHP.

Entre uma série de recursos e aplicações para a linguagem, a Zend Technologies Ltd

criou o Zend Framework, um framework para PHP com licença de código aberto. Dando

continuidade a filosofia do PHP, o Zend Framework tenta ser simples, orientado a objeto,

extensivamente testado e seguir diversos padrões de projetos reconhecidos, como o Model

View Controller (MVC), o Factory e o Singleton.

O Zend Framework permite a utilização de templates XHTML e auxilia abstraindo

parte da comunicação com o banco de dados. Além de facilitar a disponibilização de uma

outra série de recursos como internacionalização, comunicação com Web Services, e uso de

protocolos como o NTP.

2.6 TRABALHOS CORRELATOS

Existem vários artigos, mas poucos softwares que tratam da protocolação digital de

documentos eletrônicos. A única empresa brasileira homologada que tem posse da tecnologia

necessária (hardware e software) para o mesmo é a BRy Tecnologia (BRY CERTIFICAÇÃO

DIGITAL, 2010) localizada em Florianópolis.

Seu produto é a Bry PDDE, um misto de hardware e software capaz de protocolar

documentos eletrônicos. É um equipamento que pode ser instalado nas empresas e ser

acessado pelos computadores da mesma. Entre os artigos disponíveis, pode-se destacar o

Protocoladora Digital de Documentos Eletrônicos (COSTA et al, 2003). A figura 8 ilustra o

equipamento.

Page 29: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

28

Fonte: BRy Certificação Digital (2010).

Figura 8 – BRy PDDE

A solução BRy PDDE é um sistema protocolador que garante a autoria de documentos,

a irretroatividade e a sua integridade. Permite afirmar se o documento eletrônico não sofreu

alteração desde o momento da protocolação, assegurando, desta forma, a validade jurídica da

informação (BRY CERTIFICAÇÃO DIGITAL, 2010). A solução é composta de uma série de

algoritmos postos dentro de um hardware conectado a internet. Para garantir a legitimidade

legal, ela faz uso da Hora Legal Brasileira (HLB), sincronizada com o uso do Network Time

Protocol (NTP), um protocolo utilizado para sincronizar relógios através da internet.

A partir de determinado sistema de acesso é criado um resumo do documento que

deseja-se protocolar e este resumo é enviado a BRy PDDE. A protocoladora recebe o resumo

e faz a solicitação da hora atual e sua localização a determinado servidor pré-configurado. Ao

receber a resposta, fazendo uso de vários algoritmos, a protocoladora assina e carimba

temporalmente o resumo, armazenando em um banco de dados o resultado do processo. Logo

após um recibo é criado e enviado ao sistema que solicitou a protocolação.

O artigo de nome Protocoladora Digital de Documentos Eletrônicos (COSTA et al,

2003) trata de requisitos básicos de segurança e propõe procedimentos padrões para uma

protocolação confiável de documentos digitais. Ele aborda as necessidades básicas do

processo, como criptografia e assinatura, sugerindo ao fim métodos matemáticos para garantir

a datação dos documentos eletrônicos, com ênfase na idéia de que um método de datação

relativo deve ser empregado. Fazendo uso de técnicas matemáticas, deve ser possível verificar

a precedência entre documentos, em relação a data de sua protocolação.

Page 30: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

29

3 DESENVOLVIMENTO

As seções seguintes detalham o funcionamento do protótipo de serviço de protocolação

de documentos eletrônicos e seu funcionamento em ambiente web. Sua operacionalidade é

explicada com ajuda de casos de uso, telas, diagramas de classe e sequência para as situações

mais complexas, tendo por fim as conclusões do trabalho.

3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

O serviço de protocolação digital de documentos eletrônicos, para estar disponível e

utilizar determinados recursos na internet, precisa estar em meio web. Para tal ele deve ser

apresentar como um site e ter todos os requisitos necessários para a protocolação.

Para o processo de protocolação são necessários alguns requisitos de segurança para

garantir a validade dos recibos e a integridade da informação manipulada. A seguir são

apresentados os requisitos funcionais e não funcionais do serviço.

Requisitos Funcionais RF01 – O sistema deverá ser capaz de receber documentos eletrônicos e criar um resumo dos mesmos (hash). RF02 – O sistema deverá ser capaz de aplicar um carimbo temporal nos documentos enviados. RF03 – O sistema deverá ser capaz de assinar os documentos eletrônicos para garantir a autenticidade da protocoladora digital e gerar um recibo como comprovante do processo. RF04 – O sistema deverá ser capaz de confirmar a existência de determinado documento em determinado período do tempo. RF05 – O sistema deverá ser capaz de acessar algum serviço confiável de hora legal para obter a hora correta de datação dos documentos.RF06 – O sistema deverá ser capaz de gerar um recibo para o usuário como prova da protocolação. RF07 – O sistema deverá ser capaz de conferir o recibo a partir do seu envio junto do documento.

Quadro 1- Requisitos funcionais

Page 31: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

30

Requisitos Não Funcionais

RNF01 – O sistema deverá fazer uso da linguagem PHP.

RNF02 – O sistema deverá utilizar o Zend Framework.

RNF03 – O sistema deverá funcionar em ambiente web e utilizar HTML na camada de visão. RNF04 – O sistema deverá utilizar o protocolo NTP e buscar a Hora Legal Brasileira para datar os documentos. RNF05 – O sistema deverá utilizar o banco de dados MySql para armazenar informações dos recibos e documentos. RNF06 – O sistema deverá utilizar o método de encadeamento linear para aplicar uma datação relativa nos documentos junto da datação absoluta.

Quadro 2 - Requisitos não funcionais

3.2 ESPECIFICAÇÃO

Para criar a especificação foi utilizada a ferramenta Enterprise Architect. A ferramenta

tem recursos para construir os artefatos propostos de acordo com a Unified Modeling

Language (UML), uma linguagem de modelagem que facilita a visualização do sistema por

partes ou como um todo. São apresentados a seguir, diagramas de caso de uso, classe e

sequência e as tabelas do banco de dados.

3.2.1 Diagramas de casos de uso

Os casos de uso são artefatos que mostram a iteração entre o usuário, sendo ele

humano ou máquina, e o sistema. No ambiente do serviço de protocolamento digital de

documentos eletrônicos existem três atores: visitante, empresa e usuário.

Fazendo uso desses atores, é possível dividir o conjunto de casos de uso em dois

grupos: casos de uso de cadastros e casos de uso de protocolação. Mesmo sendo o primeiro

indispensável, o foco e a complexidade encontram-se no segundo. Os principais casos de uso

são detalhados a seguir.

Page 32: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

31

3.2.1.1 Casos de usos de cadastros

A figura 9 ilustra o caso de uso que é executado por um visitante. Em um primeiro

momento ao acessar o site, apenas encontra-se disponível o cadastro de novas empresas.

Figura 9 - Caso de uso que pode ser executado pelo visitante

Sendo que depois de cadastrada, uma empresa pode cadastrar novos usuários do

sistema. Sendo assim, todo usuário do sistema é ligado diretamente a uma empresa e uma

empresa pode ter vários usuários com a permissão de protocolar documentos. O cenário com

os casos de uso que podem ser executados pela empresa encontra-se na figura 10.

Figura 10 - Casos de usos que podem ser executados pela empresa cadastrada

Os casos detalhados dessa seção são: Cadastrar Usuário, Visualizar Usuários

Cadastrados, Editar Usuário e Remover Usuário.

No quadro 3 é apresentado o fluxo do detalhamento do caso de uso de Cadastro de

Page 33: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

32

Usuário. Uma vez o ator empresa logado, apresenta-se um formulário com os campos de

informações necessárias para cadastros de usuários.

UC1.04 – Cadastrar Usuário: permite o cadastro de novos usuários com acesso ao serviço

Pré-condições Empresa possui um usuário previamente cadastrado no sistema

Cenário Principal

1) Usuário preenche campos com informações do usuário a ser cadastrado. 2) Sistema valida dados preenchidos. 3) Sistema envia um e-mail de boas vindas. 4) Sistema mostra uma mensagem de sucesso.

Exceção 01 No passo 3, caso o sistema não consiga enviar o e-mail, uma mensagem informando uma falha é exibida.

Exceção 02 No passo 2, caso os dados sejam inválidos, o sistema exibe um alerta e pede que estes sejam corrigidos.

Pós-condições Novo usuário com permissão de protocolar documentos é criado no sistema. E-mail de boas vindas é enviado.

Quadro 3 - Detalhamento do caso de uso Cadastrar Usuário

Nos quadros 4, 5 e 6, é apresentado o detalhamento do caso de uso de Visualizar

Usuários Cadastrados e os dois outros casos de uso que o estende: Remover Usuário e

Editar Usuário.

UC1.05 – Visualizar Usuários Cadastrados: permite a visualização de usuários cadastrados

Pré-condições Empresa possui um usuário previamente cadastrdo no sistema

Cenário Principal 1) Usuário clica no link “listar usuários”. 2) Sistema exibe lista de usuários cadastrado pelo usuário atual.

Fluxo alternativo 01 No passo 1, o usuário seleciona um usuário da lista e executa o UC1.06

Fluxo alternativo 02 No passo 1, o usuário seleciona um usuário da lista e executa o UC1.07

Quadro 4 – Detalhamento do caso de uso Visualizar Usuários Cadastrados

Na tela em que se apresenta a lista de usuários, encontram-se disponíveis os botões

para os casos de uso de estendem o Visualizar Usuários Cadastrados.

Page 34: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

33

UC1.06 – Editar Usuário: permite a edição de usuários cadastrados pelo ator empresa

Cenário Principal 1) Usuário seleciona um usuário na lista e clica em "Remover". 2) Sistema pede uma confirmação. 3) Sistema remove o usuário escolhido.

Quadro 5 - Detalhamento do caso de uso Editar Usuário

UC1.07 – Excluir Usuário: permite a exclusão de usuários cadastrados pelo ator empresa

Cenário Principal

1) No passo 1, o usuário pode escolher algum usuário e clica em "Editar". 2) Sistema busca informações do banco de dados e exibe o formulário de edição com os dados do usuário. 3) Usuário altera as informações que desejar e clica em "Salvar". 4) Sistema valida os campos e salva as alterações.

Exceção 01 No passo 4, caso algum campo tenha um tipo de dado incorreto, é imitada uma alerta pedindo que as informações sejam corrigidas

Quadro 6 - Detalhamento do caso de uso Excluir Usuário

3.2.1.2 Casos de uso de protocolação

É nesta seção que se encontram os casos de usos principais do serviço: Protocolar

Documento e Validar Recibo.

Na figura 11 são mostrados os casos de uso que podem ser executados pelos usuários

que são cadastrados pelos atores empresas, etapa vista na seção anterior.

Page 35: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

34

Figura 11 - Casos de usos que podem ser executados pelo usuário

No quadro 7 é detalhado o caso de uso de Protocolar Documento. Este é o caso de

uso utilizado para se protocolar um documento digital e receber um recibo do processo. O

documento eletrônico é enviado ao site e após a protocolação um recibo é emitido. Este recibo

é armazenado em banco na forma de uma corrente, onde cada nó referencia o anterior.

UC2.02 – Protocolar Documento: permite a protocolação de novos documentos

Pré-condições - Usuário estar logado no sistema. - Documento precisa estar disponível

Cenário Principal

1) Sistema requisita documento o qual deseja-se protocolar. 2) Usuário envia documento. 3) Sistema cria um hash do documento. 4) Sistema requisita informações de data e hora a um servidor externo. 5) Sistema assina documento. 6) Sistema salva informações e criar nó na corrente de recibos. 5) Sistema emite um recibo como comprovante do processo. 6) Sistema mostra uma opção de download do recibo ao usuário.

Exceção 01 No passo 4, caso o sistema não consiga acessar um servidor de data e hora externo, uma mensagem de erro é exibida.

Pós-condições Uma nova entrada na corrente de recibos é criada.

Quadro 6 - Detalhamento do caso de uso de Protocolar Documento

Page 36: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

35

No quadro 8 é detalhado o caso de uso de Validar Recibo. É neste caso de uso que é

possível a um usuário cadastrado verifica a veracidade de um recibo e a integridade de um

documento. O documento digital é enviado a sistema junto do recibo e o sistema executas as

etapas necessárias para imitir uma resposta.

UC2.03 – Validar Recibo: permite verificar a veracidade de um recibo.

Pré-condições - Usuário estar logado no sistema. - Documento precisa estar disponível

Cenário Principal

1) Sistema requisita documento original e recibo da protocolação. 2) Sistema cria um hash do documento. 3) Sistema decodifica dados do recibo. 4) Sistema valida assinatura. 5) Sistema verifica se existe o recibo enviado na corrente armazenada. 5) Sistema exibe data de emissão do recibo, data da protocolação e o usuário responsável.

Exceção 01 No passo 3, caso a assinatura seja inválida, o sistema emite uma mensagem avisando que o recibo é inválido.

Exceção 02

No passo 3, caso a assinatura é valida mas não é encontrada nenhuma entrada no banco de dados para o recibo em específico, o sistema emite uma mensagem avisando da possível invalidade do recibo.

Quadro 7 - Detalhamento do caso de uso Validar Recibo

3.2.2 Diagramas de classe

Os diagramas de classe fornecem uma visão de como as classes do sistema estão

organizadas e como elas se relacionam entre si. Mostram seus atributos e métodos,

identificando onde é feito o uso de cada objeto.

Essa seção pode ser dividida em três partes distintas: Modelo, Controle e

Protocolamento.

3.2.2.1 Classes de Modelo

A figura 12 mostra como é organizada a parte de modelo e persistência do serviço de

protocolamento.

Page 37: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

36

Figura 12 - Classes de modelo

Nessa seção estão representados os objetos que trafegam pelo sistema e são persistidos

no banco de dados. Tem-se o funcionário, que representa o usuário cadastrado pela empresa, a

empresa, que é a entidade que primeiramente cadastra-se no sistema, e o recibo, que é

guardado e encadeado para futuras auditorias.

Como na aplicação é utilizado o Zend Framework, parte da lógica de persistência é

abstraída. Os objetos que representam tabelas em banco estendem da classe

Zend_Db_Table_Abstract e classes de mapeamento, com o sufixo de Mapper são

responsáveis pela comunicação entre o sistema e as suas entidades.

Destaca-se a classe Application_Model_RecibeMapper que é responsável pelo

controle, criação e verificação da cadeia de recibo que é armazenada. Cria novos recibos a

partir do método save, busca recibos por diversos critérios diferentes com os métodos find,

findAll e findHash, e é capaz de verificar a ordem dos nós da cadeia com o método

verifyRecibeOrder.

Page 38: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

37

3.2.2.2 Classes de Controle

A figura 13 mostra como estão organizadas as classes de controle do serviço.

Figura 13 - Classes de controle

As classes de controle são as que se comunicam diretamente com a interface. Quando

o usuário faz alguma requisição, são elas que recebem os dados enviados e processam a

resposta correspondente.

A associação do tipo “use” é utilizada para identificar quando uma classe faz uso de

outra. Neste caso a classe alvo não é um atributo, seu uso é feito através da criação de uma

nova instância enquanto seu uso é necessário.

O Zend Framework também abstrai parte da complexidade necessária para o controle e

diversas páginas do site são controladas por vários controles. Todos eles estendendo a classe

Zend_Controller_Action, classe essa que disponibiliza recursos para recepção de

parâmetros, instanciação de formulários, redirecionamentos e outros recursos. Os formulários,

por sua vez, estendem a classe Zend_Form, que é responsável pela criação dos formulários.

É nesta seção também que se encontra a classe Protocoladora_Auto, uma

implementação da interface Zend_Auth_Adapter_Interface. Esta classe é responsável pelo

controle de acesso e as restrições impostas a cada tipo de usuário cadastrado no sistema. As

Page 39: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

38

classes de controle invocam seus métodos para obter informações para permitir ou não o

acesso a determinadas áreas do sistema.

Também existe uma classe utilitária para criar hash’s dos documentos, a

FileHashHandler, que é chamada para converter o documento enviado em um resumo para

ser utilizado pelas classes de protocolação.

3.2.2.3 Diagrama de classes de protocolação

A figura 14 mostra como estão organizadas as classes responsáveis pela protocolação

digital dos documentos eletrônicos.

Figura 14 - Classes de protocolação

Nesta seção estão dispostas as classes responsáveis pelo coração do sistema. São elas

que são requisitadas pelos controles e utilizam as bibliotecas envolvidas para efetuar a

protocolação e criação dos recibos. São elas também que invocam as classes de mapeamento

para persistir informação em banco de dados.

Page 40: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

39

A classe de entrada é a Protocoladora, ela centraliza toda a entrada e saídas de dados.

Quando um novo documento precisa ser protocolado, é para ela que ele deve ser enviado.

Assim como também é responsável por validar um recibo criado anteriormente.

A classe Assinatura é responsável por criptografar, decriptografar e realmente assinar

os resumos dos documentos. Ela é invocada pela protocoladora durante o processo de

protocolação junto de outra classe, a NtpSync. Esta última classe que é responsável por buscar

uma hora legal e válida através do protocolo NTP.

Por motivos de segurança, as chaves utilizadas no sistema precisam estar armazenas de

forma segura e criptografadas. Para o acesso a essas chaves, a classe de assinatura utiliza a

classe KeyRepository, que é responsável pelo controle das chaves, controlando seu

repositório. A KeyRepository, por sua vez, utiliza a classe Security para obter informações

necessárias para ter acesso as chaves. O método getSystemKey da classe Security é

sublinhado pois é estático.

3.2.3 Diagramas de Sequência

Os diagramas de sequência servem para ilustrar as etapas de um processo, a trocas de

mensagens entre as diversas camadas do sistema. São apresentados de forma detalhada dois

diagramas de sequência, o Protocolar Documento (UC2.02) e o Verificar Recibo

(UC2.03).

A figura 15 ilustra o processo de Protocolação através do seu diagrama de sequência.

Page 41: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

40

Figura 15 - Diagrama de sequência para Protocolar Documento

O processo se iniciar na camada de visão, na interface, onde o usuário envia o

documento eletrônico e o controle posteriormente requisita que seja feita um resumo do

mesmo. Do resumo feito, o controle solicita que esse resumo seja protocolado, mensagem

essa enviada a classe Protocoladora.

A Protocoladora busca as chave necessárias para o processo no repositório de chaves.

Uma vez obtida a chave, a Protocoladora requisita uma data e hora legal. De posse de

ambos, a assinatura é feita e o recibo criado. Ao final do processo, é persistida a informação

em banco e adicionado um nó na corrente de recibos.

A figura 16 ilustra o diagrama de sequência do processo de Verificar Recibo.

Page 42: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

41

Figura 16 - Diagrama de sequencia para Verificar Recibo

Esse processo é bastante semelhante com o de protocolação, visto que parte do

processo é refeito mas com um objetivo inverso.

O processo se inicia com o usuário requisitando a auditoria da validade de um recibo,

ele envia então o documento original e seu respectivo recibo. O sistema cria um resumo do

documento e faz a leitura do recibo. De posse destes dois, o sistema invoca a protocoladora

para validar as informações.

A protocoladora busca a chave pública do sistema no repositório de chaves e testa a

validade do recibo. Mostrando ao fim a validade do recibo e a sua respectiva presença na

corrente persistida em banco.

3.2.4 Estrutura do banco de dados

A figura 17 ilustra as tabelas utilizadas pela aplicação.

Page 43: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

42

Figura 17 - Estrutura do banco de dados

O banco de dados é responsável por armazenar todas as informações relativas a

aplicação. A tabela key guarda as chaves do sistema, a pública e privada, utilizadas para

efetuar as assinaturas dos resumos dos documentos digitais. A tabela user guarda

informações do usuário mestre do sistema, um usuário interno da aplicação.

As tabelas funcionário e empresa guardam informações dos usuários cadastrados no

sistema e a recibo, dos recibos protocolados. A tabela recibo guarda informações na forma de

uma corrente, cada nova entrada referencia a entrada anterior. Isso garante a datação relativa

dos documentos digitais protocolados.

3.3 IMPLEMENTAÇÃO

Nessa seção são apresentadas as ferramentas utilizadas, técnicas e informações

específicas da aplicação. Ela contém questões peculiares e explica como são resolvidos alguns

requisitos do sistema.

Page 44: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

43

3.3.1 Técnicas e ferramentas utilizadas

A aplicação foi implementada utilizando a linguagem PHP (versão 5) no lado servidor,

para executar toda a lógica e persistir toda a informação necessária, e HTML para a camada

de interface, a qual interage com o usuário.

Como ambiente de desenvolvimento foi escolhido o Zend Studio (versão 7.0.0), uma

ferramenta criada pela Zend para maximizar a produtividade de profissionais que trabalham

com PHP. Como framework foi escolhido o Zend Framework (versão 1.10.0), por ser um dos

mais robustos e completos para utilizar na aplicação. Ele abstrai uma série de recursos que

teriam que ser implementados e testados (o qual já foi discutido na seção 2.4.1.1).

Para lidar com a parte da criptografia e assinatura, foram utilizadas duas bibliotecas, a

Crypt_RSA e a AES. Para gerar as chaves assimétricas utilizadas pela aplicação foi utilizada a

ferramenta OpenSSL. Para atender a requisitos de segurança, a linguagem C foi utilizada para

criar uma camada de segurança para iniciar o servidor da aplicação.

O servidor web escolhido foi o Apache e a solução para persistência em banco de

dados o MySQL. O Apache é uma ferramenta open source, que suporta scripts PHP,

disponibilizada pela Apache Software Foundation, organização responsável por vários

projetos disponibilizados a comunidade. O MySQL é uma solução também open source e

distribuída pela Oracle, sendo muito popular quando em conjunto com PHP.

3.3.1.1 O OpenSSL

O OpenSSL Project é um projeto colaborativo para a criação de uma ferramenta

robusta para criptografia que implementa também os protocolos de comunicação Secure

Sockets Layer (SSL) e Transport Layer Security (TSL).

Na implementação do projeto, a ferramenta teve o papel de criação das chaves

assimétricas utilizadas pelo algoritmo RSA. Ela não tem contato direto com a aplicação e

somente serviu para gerar as chaves. Chaves estas que ficam guardadas em banco de dados

criptografadas.

Qualquer outra ferramenta para gerar chaves RSA poderia ser utilizada em vez do

OpenSSL, mas ela foi escolhida devido sua praticidade e confiabilidade. Seu uso é somente

em um momento inicial ou na hora de uma possível troca de chaves do sistema.

Page 45: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

44

3.3.1.2 O Crypt_RSA e o AES

Para fazer uso de métodos de criptografia e posteriormente assinar resumos de

documentos, é preciso escolher algoritmos já existentes ou criar um novo. Para garantir a

confiabilidade de aplicações escolheram-se dois algoritmos muito testados aos longos dos

anos, o RSA e o AES (ambos citados anteriormente na seção 2.2.3).

A biblioteca Crypt_RSA está disponível no repositório PHP Extension and

Application Repository (PEAR), um framework e sistema de distribuição para componentes

PHP. Atualmente a versão estável do Crypt_RSA é a 1.2.1, funcionando com o PHP versão 4

ou superiores.

Ela é capaz de manipular e criar chaves baseadas no algoritmo RSA, possuindo

funções para criptografia, decriptografia e assinatura de informações. É distribuída livremente

e pode ser utilizada sobre a mesma licença do PHP.

Chris Veness é o criador de uma implementação do algoritmo AES (Rijndael) para

PHP, a biblioteca é distribuída sobre a licença Creative Commons (CC-BY) versão 3.0. Ela é

utilizada como método de criptografia simétrica na aplicação. A biblioteca funciona com a

versão 4 do PHP ou superiores.

A integração do Crypt_RSA e do AES é demonstrado nas próximas seções.

3.3.1.3 O Repositório de chaves assimétricas e a senha mestre do sistema

As chaves que são usadas para assinar os resumos dos documentos estão armazenadas

em banco, criptografadas com o algoritmo AES. Este é um importante requisito de segurança.

A chave pública da aplicação pode ser distribuída livremente, sendo que com essa chave, caso

necessário, um software externo pode fazer a leitura das informações do recibo. Porém, a

chave privada deve ser secreta.

Para tal foi criado um mecanismo de segurança que deve ser usado para a aplicação

funcionar. Um programa escrito em C é utilizado para requisitar uma senha e dar inicio ao

servidor Apache e ao MySQL. O quadro 9 mostra o código.

Page 46: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

45

Quadro 8 - Programa em C para iniciar aplicação

Esse mecanismo não faz nenhuma verificação de segurança, ele requisita uma senha e

a coloca em um escopo que seja acessível pelo Apache. Enquanto ele estiver executando, a

variável está disponível, em consequência, a senha. Esta senha por sua vez é capturada pelo

PHP como uma variável de ambiente do Apache.

Na aplicação então é feita uma verificação de segurança pela classe Security. A

classe faz a leitura da variável e compara a senha enviada com um arquivo contendo esta

mesma senha criptografada com AES. A aplicação decriptografa o arquivo usando a senha

como chave e caso o resultado seja a própria chave, então o serviço torna-se disponível. O

quadro 10 ilustra o funcionamento da classe.

Page 47: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

46

Quadro 9 - Verificação da senha do sistema

Essa é a senha mestre do sistema, utilizada para permitir o início da aplicação e no

passo seguinte para decriptografar a chave privada da aplicação. Ela não deve ficar

armazenada em um local que deve ser de conhecimento apena do administrador a aplicação.

Caso a senha enviada ao iniciar o servidor seja inválida, ou tente-se iniciar o servidor de

alguma outra forma, o serviço fica indisponível.

Uma vez a senha sendo válida, então a aplicação pode recuperar as chaves assimétricas

do banco e decriptografá-las corretamente. O quadro 11 ilustra esse processo.

Page 48: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

47

Quadro 10 – KeyRepository

A classe KeyRepository é responsável por carregar as chaves usadas pelo sistema. Ele

requisita a classe Security a chave mestra e ao banco as chaves criptografadas. Usando o

algoritmo AES e a chave mestra, ele decriptografa e carrega a chave pública e privada do

sistema. Deixando-a disponível para as classes que fazem o processo de protocolação.

Sendo as chaves criptografadas em banco, garante-se que mesmo com acesso a elas,

podendo-se copiar até o sistema inteiro, sem a chave mestra, é impossível utiliza-lo. Pode-se

trocar a chave privada do sistema por uma conhecida nesse processo de cópia, mas aí a chave

pública fornecida pelo sistema oficial não mais será funcional e perde-se a garantia de

autenticidade dos recibos.

3.3.1.4 Autenticação dos usuários

Existem dois tipos de usuários a nível de implementação na aplicação: a empresa e o

funcionário. A empresa é a primeira a ser cadastrada no sistema e ela por sua vez cadastra

novos usuários para efetivamente irão usar o serviço de protocolação, já que o usuário

empresa não tem esse recurso.

Para controlar os acessos e definir o escopo do usuário logado, as classes de controle

Page 49: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

48

utilizam um recurso do Zend Framework, o Zend_Auth. Uma classe que abstrai questões

como a criação de sessões para os usuários. Para funcionar, o Zend_Auth precisa trabalhar em

conjunto com uma classe adaptadora que implemente a interface

Zend_Auth_Adapter_Interface, também disponibilizada pelo framework. O quadro 12

ilustra essa implementação.

Quadro 11 - Classe ProcoladoraAuto

No momento em que o usuário envia suas credenciais, o LoginController chama

uma instancia do Zend_Auth passando como adaptador o ProcoladoraAuto, então o método

authenticate é chamado. Esse método tenta logar o usuário primeiramente como empresa e

caso não obtenha sucesso, verifica se ele é um funcionário.

Caso obtenha sucesso em uma das duas tentativas, as informações do usuário são

armazenadas em sessão e ficam disponíveis para toda aplicação. Os controles utilizam os

métodos hasIdentity e getIdentity, disponibilizados pela classe Zend_Auth, para

verificar se o usuário está logado e buscar suas credenciais, respectivamente.

Page 50: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

49

3.3.1.5 O serviço de NTP e a obtenção de uma hora legal.

O Observatório Nacional disponibiliza uma lista de servidores NTP para acessar a

Hora Legal Brasileira. O Zend Framework disponibiliza um recurso de sincronia de tempo

através da classe Zend_TimeSync. O Quadro 13 apresenta esse processo.

Quadro 12 - Sincronia de tempo

O Zend_TimeSync é instanciado e são adicionados os servidores de NTP. Logo após,

o método getDate é utilizado para buscar a data atual. O método roda a lista de servidores

disponíveis buscando a informação, caso nenhum deles responda, uma exceção então é

lançada.

3.3.1.6 Protocolação dos documentos

O processo de protocolação começa com o envio de um documento digital através de

um formulário no site. O ProtocoladoraController cria um novo

Page 51: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

50

Application_Form_Documento, o qual é enviado para a tela. Uma vez o formulário

preenchido e enviado o documento, o ProtocoladoraController chama o método

createHash da classe FileHashHandler. Este método cria um hash do documento enviado

utilizando a função md5 nativa do PHP.

Tendo o resumo do documento, o ProtocoladoraController então chama a função

protocolar da classe Protocoladora passando o hash e o id do usuário atual logado

como parâmetro. O funcionamento do método protocolar é apresentado no Quadro 14.

Quadro 13 – Método protocolar da classe protocolação

Uma nova instancia da classe NtpSync é criada para buscar a data atual e uma nova

instância da classe Assinatura é criada para assinar o hash. As chaves são carregadas, a

data é buscada e então é assinado o hash. O processo de assinatura consiste em criptografar o

resumo atual com a chave privada do sistema usando o algoritmo RSA através da biblioteca

Crypt_RSA. Uma vez o hash assinado é criado um pré-recibo contendo a assinatura, a data

atual e o id do usuário. O pré-recibo então é salvo em banco.

A criação do recibo é apresentada no quadro 15.

Page 52: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

51

Quadro 14 - Criação do recibo

O sistema inicia um nova transação e seta o usuário do recibo, no caso o

id_funcionário. O recibo recebe uma referência do recibo anterior com o método

getLastRecibeHash. Este método faz um hash do recibo anterior para formar uma corrente

que garante a datação relativa. Se tudo ocorrer corretamente, o recibo salvo é retornado e a

transação é fechada.

Uma vez o recibo criado, encadeado e salvo em banco, a última etapa é assiná-lo. O

hash do documento contido no mesmo já foi assinado, mas para afirmar autenticidade do

recibo, ele é transformado em texto pelo método makeRecibe visto no Quadro 14 e

reassinado. O formato do recibo é ilustrado na figura 18.

Page 53: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

52

Figura 18 - Recibo Exemplo

O recibo possui a data da protocolação, a assinatura do documento, o hash anterior e o

usuário responsável pelo processo. Para futura leitura usou-se o símbolo “#-#” como

separador. O item 1 ilustra o formado, o item 2, um exemplo de recibo ainda não assinado e o

item 3 mostra como é a informação que chega até o usuário final.

3.3.1.7 Validação e auditoria dos recibos

Para validar a protocolação de um documento digital, desejando-se verificar a

integridade do documento ou validade do recibo é preciso reenviar ambos para o serviço de

protocolação. A classe ProtocoladoraController cria um novo

Application_Form_Verifica e este é enviado para tela, para ser preenchido pelo usuário.

Uma vez o formulário preenchido e enviado o documento digital original e o recibo, a

ProtocoladoraController cria novamente um hash do documento original e faz a leitura

do recibo. Logo após envia as informações para a classe Protocoladora chamando o método

verificaProtocolacao. O método é apresentado no quadro16.

Page 54: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

53

Quadro 15 - Método verificaProtocolacao

O método instancia uma nova classe de assinatura e carrega as chaves do sistema

acessando o repositório de chaves. Logo após chama o método readRecibe da classe

Assinatura que faz a decriptografia do recibo usando o algoritmo de chaves assimétricas

RSA através da classe Crypt_RSA, utilizando a chave pública do sistema e lê os dados do

recibo.

Uma vez os dados decriptografados, então é chamado o método validate_sign da

classe Assinatura que valida a assinatura do recibo. O método recebe o hash do arquivo

original e a assinatura do mesmo. Utilizando-se o algoritmo RSA e da chave pública do

sistema ele decriptografa a assinatura e compara com o resumo do documento. Se ambos

forem idênticos, então a assinatura é valida e o recibo é verdadeiro.

No próximo passo o sistema instancia um novo Application_Model_RecibeMapper,

que faz o mapeamento dos recibos para a respectiva tabela em banco e chama o método

verifyRecibeOrder. Este método percorre a tabela de recibos, encontra o recibo qual se

deseja conferir e verifica a datação relativa refazendo a corrente do recibo atual até o início da

corrente. Processo baseado no sistema descrito na seção 2.3.2

Feito todos os passos, então o sistema informa a validade do recibo quanto a sua

assinatura e quanto a datação relativa. Mostrando também a data de protocolação e o usuário

responsável.

Page 55: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

54

3.3.2 Operacionalidade da implementação

Nesta seção é apresentado como é iniciada a aplicação e como é seu funcionamento.

Como acontece o processo de protocolação de um documento digital, a emissão e validação

de um recibo.

Antes de tudo é preciso dar inicio a aplicação e isto deve ser feito pelo administrador

do serviço. Ele irá iniciar o servidor Apache e o banco de dados MySQL através de um

executável, o qual requisita a ele um usuário e senha. O processo de solicitação de senha e

inicio do servidor é ilustrado na figura 19.

Figura 19 - Iniciando serviço de protocolação

Se a senha digitada é incorreta, então ao tentar acessar a aplicação é exibida uma

mensagem de erro.

Quando a senha digitada é válida, então o serviço mostra-se disponível, com a opção

de fazer um novo cadastro ou efetuar login. Como ilustrado na figura 20.

Page 56: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

55

Figura 20 - Tela inicial do sistema

Caso o usuário já esteja cadastrado como uma empresa ou como um funcionário de

determinada empresa, então ele pode apenas logar no serviço, caso contrário ele deve

cadastrar-se como ilustra a figura 21.

Figura 21 - Cadastro de nova empresa

A tela de login é a mesma para os dois tipos de usuário e é mostrada na figura 22.

Page 57: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

56

Figura 22 - Tela de login do sistema

Uma vez logado no sistema, o usuário que se cadastrou como uma empresa tem a

opção de cadastrar novos usuários do tipo funcionário, para protocolar documentos ou editar

os já existentes. O cadastro de usuário é ilustrado na figura 23 e a lista de usuários para

edição na figura 24.

Page 58: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

57

Figura 23 - Cadastro de usuários de uma empresa

Figura 24 - Lista de usuários cadastrados de uma empresa

Ainda nessas telas o usuário empresa logado pode editar seus dados clicando no link

Editar e sair clicando em Sair.

Uma vez o usuário funcionário cadastrado pela empresa, ele então pode fazer uso do

serviço de protocolação. As opções disponíveis para este tipo de usuários estão ilustradas na

figura 25.

Page 59: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

58

Figura 25 - Opções do usuário funcionário

Na tela de entrada o usuário visualiza uma lista dos últimos protocolos realizados,

podendo baixar novamente o recibo. Nesta tela estão disponíveis os links para protocolar um

novo documento, verificar um protocolo, listar os protocolos e sair do sistema.

A figura 26 ilustra como é a tela do link Protocolar Documento. É exibido um

formulário com um campo de envio de arquivos onde o usuário escolhe o documento que

deseja protocolar.

Figura 26 - Tela do link Protocolar Documento

A figura 27 mostra o sistema emitindo o recibo e dando a opção de download do

mesmo.

Page 60: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

59

Figura 27 - Recibo sendo emitido pela protocoladora

A figura 28 mostra como é exibida a tela de Verificar Documento onde o usuário

pode enviar um documento digital o qual deseja-se conferir com seu protocolo.

Figura 28 – Tela Verificar Documento

O recibo e o documento digital são enviados e todo processo de verificação é

executado. O exemplo de um resultado pode ser visto na figura 29.

Page 61: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

60

Figura 29 - Resultado da validação de um recibo

Nesta pode-se observar que o recibo foi considerado válido e foi encontrado na

corrente de recibos no banco de dados. O sistema também mostra o usuário responsável pela

protocolação e a empresa que o cadastrou.

Como pode-se observar durante todo o processo, o serviço é bem simples e intuitivo de

se usar. Toda complexidade fica abstraída pelo sistema.

3.4 RESULTADOS E DISCUSSÃO

Os resultados obtidos ao término da aplicação são satisfatórios, conseguiu-se atender

todos os requisitos propostos no início e um serviço que, com mais alguns incrementos, ficará

em um estado maduro o suficiente para ser testado em alguma empresa ou instituição.

Com relação ao produto da BRY CERTIFICAÇÃO DIGITAL (2010), conseguiu-se

desenvolver parte da funcionalidade proposta pela solução mista da empresa. De um ponto de

vista externo, visto que não se tem acesso aos códigos do equipamento, considera-se que o

trabalho conseguiu-se atingir os requisitos básicos de segurança também atingidos pelo

equipamento.

Da monografia de Costa et al (2003), que elencava a importância da datação relativa,

conseguiu-se implementar neste trabalho um dos métodos descritos, o da corrente de recibos.

Este mostrou-se muito interessante para firmar certos requisitos de segurança, como a

integridade e precedência entre documentos.

A criação dos resumos dos documentos atendeu as exigências de segurança, após o

upload, transformando os documentos em hash’s, tem-se a garantia de que somente

Page 62: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

61

determinado documento pode gerar um hash único correspondente e qualquer modificação é

identificada. Também se ganha na confidencialidade por que nenhum arquivo é armazenado

no servidor, somente os resumos.

Com o uso do protocolo NTP e do serviço disponibilizados pelo NTP.br, tem-se uma

hora legal Brasileira para o processo de protocolação. Isso garante a confiabilidade da data de

assinatura e criação dos recibos, já que ela não fica atrelada ao servidor que disponibiliza o

serviço. No âmbito jurídico é essencial que a hora de protocolação seja provida por um órgão

confiável.

Para as assinaturas e criação dos recibos, usou-se uma biblioteca escrita em PHP que

faz uso do algoritmo RSA. A biblioteca se mostrou bastante simples, o armazenamento das

chaves ocorreu em banco de dados, criptografadas com uma chave mestre.

Criptografando as chaves com esta senha mestre, tornou-se muito difícil criar uma

cópia falsa do sistema que seja capaz de protocolar documentos e gerar recibos válidos. Como

a autoria dos recibos é garantida pela chave privada do sistema, que está criptografada, criar

recibos falsos como se fossem verdadeiros torna-se muito difícil.

O método de datação relativa proposto agregou muito valor ao serviço, tem-se uma

segurança a mais já que necessariamente seu recibo precisa estar na corrente de recibos. Isso

possibilita também que a precedência entre dois documentos possa ser fortemente garantida.

Afinal eles estão obrigatoriamente em um ponto anterior ou sucessor na corrente.

Os recibos mostraram-se bastante confiáveis. Apesar do processo de verificação dos

mesmos ser feita também pelo serviço de protocolação, qualquer um que possua a chave

pública da assinatura pode verificar sua validade. Somente ficando impossibilitada a

verificação de precedência, já que a corrente ficar armazenada no servidor.

De uma forma geral, por estar na internet e possibilitando cadastros de empresas e

usuários, o serviço se mostrou bastante flexível. Após o término, ficou claro que alguns

recursos poderiam ser agregados para dar valor ao serviço. Enviar documentos protocolados

junto de seus recibos por e-mail ou ter a opção de armazená-los para futuro download, seriam

recursos que agregariam bastante valor e estão na sessão 4.1.

Page 63: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

62

4 CONCLUSÕES

Ao início do trabalho não estava bem claro todos os requisitos necessários de

segurança para uma protocoladora digital de documentos eletrônicos e foi uma tarefa difícil

elencá-los, pouca informação sobre protocolamento foi encontrada. Em parte por que o

processo é composto de várias etapas distintas, em parte por que há ainda pouca coisa

existente.

Os recibos foram criados de forma a ser possível verificar fortemente a autenticidade

da protocolação. Além de informações como data e o hash do documento, viu-se a

necessidade de anexar um identificador relacionado ao nó da corrente de recibos salva em

banco de dados.

Uma dificuldade encontrada foi a manipulação de chaves do sistema. As bibliotecas

envolvidas foram estudadas e satisfizeram as necessidades, mas houve um esforço para

garantir a segurança das chaves, de forma que as senhas não ficassem disponíveis em nenhum

lugar.

Nesse momento, para resolver o problema das senhas, foi utilizado um recurso externo

a linguagem PHP, o qual foi incluído em um momento final e não estava previsto

anteriormente, o uso da linguagem C e a criação de um pequeno programa para iniciar os

servidores, o web e o de banco de dados.

Uma vez as chaves seguras, mostrou-se a necessidade de dar um acabamento no

serviço criando os cadastros de empresa e funcionários, os usuários reais do sistema. Supondo

que o ambiente ideal era um que fosse possível validar determinado recibo e verificar seu

autor. Tornando a aplicação realmente um serviço e não apenas um recurso.

Tomou-se o cuidado, ao longo do desenvolvimento, de criar classes orientadas a

objetos e na forma de uma biblioteca. Em parte obteve-se sucesso, ficando apenas faltando

um menor acoplamento entre os controles e a criação dos resumos dos documentos.

A aplicação pode ser estendida e utilizada de diversas formas para incrementar outras

aplicações. Aplicações que gerenciam o armazenamento de documentos digitais são um bom

exemplo. Assim como serviços que lidam com transferências de informações.

O Zend Framework ajudou na resolução de alguns problemas como o de conexão com

o protocolo NTP. Nenhuma classe distinta foi implementada, o serviço somente fez uso de um

recurso já existente no framework. O trabalho apenas se deu em um momento inicial, na

busca por uma hora legal e por um serviço que a disponibilizasse.

Page 64: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

63

A Hora Legal Brasileira pode ser obtida através dos servidores NTP disponibilizados

pelo projeto NTP.br, ligados ao Observatório Nacional que é responsável por manter a hora

oficial do Brasil.

Essa inclusão foi feita de forma a não impedir que qualquer sistema externo, de posse

da chave pública do serviço possa fazer a leitura dos dados e verificar a auditoria. Esse

identificador a mais não impede que a assinatura seja validade e a data conferida, mas neste

caso, não é possível verificar a data relativa, a corrente de recibos, visto que ela é armazenada

e acessada somente pelo serviço.

De uma forma geral, o trabalho estendeu o conhecimento sobre segurança, sobretudo

sobre o processo de protocolação. Hoje parte do assunto foi desmistificado e tem-se uma

visão mais abrangente sobre o assunto.

4.1 EXTENSÕES

Existem recursos que podem ser estendidos ou agregados à aplicação, a maioria está

ligada ao controle, armazenamento ou envio de documentos eletrônicos. Já que hoje somente

existe o processo de protocolação. As extensões sugeridas são:

a) integrar o serviço com alguma ferramenta que gerencie o armazenamento de

documentos eletrônicos (GED). Além de efetuar a protocolação, com esta

extensão, o serviço seria capaz de armazenamento e versionar documentos

eletrônicos.

b) criar um serviço de envio e recebimento de arquivos junto com o processo de

protocolação. Junto da protocolação estaria disponível um recurso de envio de

documentos para outros computadores com diretórios compartilhados na rede ou

para transferência dos mesmos a um servidor através de um protocolo como o File

Transport Protocol (FTP).

c) criar um serviço de protocolação e e-mails. Disponibilizar um serviço capaz de

protocolar e enviar e-mails emitindo um recibo ao fim.

Page 65: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

64

REFERÊNCIAS BIBLIOGRÁFICAS

ALECRIM, Emerson. Entendendo a certificação digital. [S.l.], 2009. Disponível em: <http://www.infowester.com/assincertdigital.php>. Acesso em: 20 mar. 2010.

ALVARES, Miguel A. O que é PHP. [S.l], 2004. Disponível em: <http://www.criarweb.com/artigos/202.php >. Acesso em: 28 ago. 2010.

BRY CERTIFICAÇÃO DIGITAL. Protocolação digital. [S.l], 2010. Disponível em: <http://www.bry.com.br/index.php?class=solucoes&page=proto>. Acesso em: 04 abr. 2010.

CARVALHO, Eiji T. PKI - Infra-estrutura de Chaves Públicas. [S.l], 2008. Disponível em: < http://www.gta.ufrj.br/ensino/eel879/trabalhos_vf_2008_2/hugo/index.html>. Acesso em: 20 set. 2010.

CASTRO, Aldemario A. O documento eletrônico e o novo código civil. [S.l.], 2003. Disponível em: <http://www.elvecio.com/artigos/O_DOCUMENTO_ELETRoNICO_E_O_NOVO_CoDIGO_CIVIL.doc>. Acesso em: 18 mar. 2010.

COMITE GESTOR DE INTERNET DO BRASIL. Projeto NTP.br. [S.l], 2009. Disponível em: <http://ntp.br/>. Acesso em: 10 set. 2010.

COSTA, Vanessa et al. Protocolação digital de documentos eletrônicos. [S.l.], 2003. Disponível em: <http://www.iti.gov.br/twiki/bin/viewfile/OLD/Forum/ArtigoG02?rev=1.1;filename=g02-costa-custodio-dias-rolt.rtf>. Acesso em: 16 mar. 2010.

LIPAA, Helger. Secure and efficient time-stamping systems. [S.l.], 1999. Disponível em: <http://www.cyber.ee/cms-et/firmainfo/infomaterjalid/failid-1/lipmaa-thesis.pdf>. Acesso em: 03 abr. 2010. NATIONAL COMPUTER SECURITY CENTER. A guide to understanding audit in trusted systems. [S.l.], 1987. Disponível em: <http://www.fas.org/irp/nsa/rainbow/tg001.htm>. Aceso em: 03 abr. 2010.

SILVA, Lino Carlos da. Public Key Infrastructure – PKI. São Paulo: Novatec Editora Ltda, 2004. SILVA JUNIOR, José T. Da evolução da escrita ao livro. [S.l.], 1998. Disponível em: <http://www.forum.ufrj.br/biblioteca/escrita.html>. Acesso em: 20 mar. 2010.

Page 66: SERVIÇO DE PROTOCOLAÇÃO DIGITAL DE DOCUMENTOS …dsc.inf.furb.br/arquivos/tccs/monografias/TCC2010-2-24-VF-RecigioP… · Neste capítulo também é abordado o conceito de datação

65

TADAMO, Katiucia Y. GED: assinatura digital e validade jurídica de documentos eletrônicos. 2002. 98 f. Trabalho de Conclusão de Curso (Bacharelado em de Ciências da Computação) - Universidade Federal de Mato Grosso do Sul, Cuibá. Disponível em: <http://www.prontuarioeletronico.odo.br/docs/GEDAssinaturaDigital.pdf >. Acesso em: 03 abr. 2010.

THE PHP GROUP. A história do PHP. [S.l], 2010. Disponível em: <http://www.php.net/manual/pt_BR/history.php> Acesso em: 10 set. 2010.

TRIBUNAL REGIONAL DO TRABALHO. PDDE: protocoladora digital de documentos eletrônicos. [S.l.], 2002. Disponível em: <https://seguro.trt12.jus.br/peticao/scripts/peticao/msg/pdde-detalhado.asp>. Acesso em: 20 mar. 2010.