APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE...

55
UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE ENGENHARIA DE TELECOMUNICAÇÕES APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES MARIANA BOTTER CÁRIO BLUMENAU 2005 2005/1

Transcript of APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE...

Page 1: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

UNIVERSIDADE REGIONAL DE BLUMENAU

CENTRO DE CIÊNCIAS EXATAS E NATURAIS

CURSO DE ENGENHARIA DE TELECOMUNICAÇÕES

APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO

DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE

CLIENTES

MARIANA BOTTER CÁRIO

BLUMENAU 2005

2005/1

Page 2: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

MARIANA BOTTER CÁRIO

APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO

DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE

CLIENTES

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 do curso de Engenharia de Telecomunicações.

Prof. Francisco Adell Péricas, Mestre - Orientador

BLUMENAU 2005

2005/1

Page 3: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO

DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE

CLIENTES

Blumenau, 1 de julho de 2005

Page 4: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

Dedico este trabalho aos meus pais pelo incentivo, carinho e amor que nunca me faltaram. Ao meu irmão pelas festas que fez por mim durante o desenvolvimento deste. À memória de minha avó, por não poder compartilhar deste momento comigo.

Page 5: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

AGRADECIMENTOS

A Deus em primeiro lugar por todos acontecimentos e por cada obstáculo que

atravessei, hoje sei que me tornaram mais forte.

Aos meus pais por terem acreditado no meu potencial.

Ao professor Francisco Adell Péricas pela forma como conduziu seu encargo de

orientador, sempre com paciência, presteza, incentivo e principalmente, com muito

conhecimento, o que contribuiu muito para a conclusão deste trabalho.

Ao Wender Cris de Souza Firmino por ter me passado um pouco do seu grande

conhecimento na área da programação.

A todos os meus amigos, os quais seria difícil citar ou chato esquecer alguém.

Page 6: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

Nunca ande pelo caminho traçado, pois ele te conduz somente até onde os outros foram.

Alexandre Graham Bell

Page 7: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

RESUMO

Este trabalho apresenta a especificação e o desenvolvimento de um aplicativo que gera, a partir de um banco de dados de clientes, um conteúdo XML protegido que pode ser transmitidos pela Web com segurança. O aplicativo desenvolvido tem por objetivo proteger dados de clientes utilizando as técnicas de criptografia ou assinatura digital em documentos XML. O trabalho pretende mostrar o documento submetido a ambas as formas de segurança e comprovar seu funcionamento.

Palavras-chave: XML, criptografia, assinatura digital, segurança.

Page 8: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

ABSTRACT

This work presents the specification and the development of software that generates, from clients data base, an XML protected content that can be transmitted by the Web with security. The software developed has for objective to protect clients data, using the cryptography techniques or digital signature in XML documents. The work intends to show the document submitted to both ways of security and prove its functioning.

Key-Words: XML, cryptography, digital signature, security.

Page 9: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

LISTA DE ILUSTRAÇÕES

Figura 1: Criptografia de chave secreta....................................................................................18

Figura 2: Criptografia de chave pública ...................................................................................19

Quadro 1 – Exemplo de um documento XML .........................................................................29

Quadro 2 – Exemplo de um documento XML criptografado...................................................29

Quadro 3 – Exemplo da estrutura de uma assinatura digital usando XML..............................32

Figura 3: Exemplo de criptografia de dado assinado e com assinatura (separado)..................34

Figura 4: Exemplo de criptografia de dado assinado e com assinatura (compactado).............34

Figura 5: Exemplo de criptografia de dado assinado e sem assinatura (separado) ..................35

Figura 6: Exemplo de assinatura de texto cifrado e criptografado (separado) ........................36

Figura 7: Fluxograma do Processo A .......................................................................................39

Figura 8: Fluxograma do Processo B .......................................................................................40

Figura 9: Fluxograma do Processo C .......................................................................................41

Figura 10: Fluxograma do Processo D .....................................................................................42

Figura 11: Código gerador de XML a partir de base de dados Texto ......................................45

Quadro 4 – Trecho do documento texto ...................................................................................45

Quadro 5 – Documento XML normal ......................................................................................46

Figura 12: Tela do documento XML normal............................................................................46

Quadro 6 – Documento XML criptografado ............................................................................47

Figura 13: Tela do documento XML criptografado .................................................................47

Quadro 7 – Documento decriptografado ..................................................................................48

Figura 14: Tela do documento XML decriptografado..............................................................48

Quadro 8 – Documento XML normal assinado .......................................................................49

Page 10: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

LISTA DE SIGLAS

AES – Advanced Encryption Standard

API – Application Programming Interface

CA – Certification Authority

DTD – Document Type Definition

HTML – Hypertext Markup Language

RSA – Rivest, Shamir, Adleman

VB – Visual Basic

XLink – XML Linking Language

XML – Extensible Markup Language

XPointer – XML Pointer Language

XSL – Extensible Style Language

W3C – World Wide Web Consortium

WWW – Word Wide Web

Page 11: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

SUMÁRIO

1 INTRODUÇÃO..................................................................................................................11

1.1 JUSTIFICATIVA..............................................................................................................12

1.2 DEFINIÇÃO DO PROBLEMA........................................................................................12

1.3 QUESTÕES DE PESQUISA ............................................................................................12

1.4 OBJETIVOS DO TRABALHO ........................................................................................13

1.4.1 Objetivo geral..................................................................................................................13

1.4.2 Objetivos específicos ......................................................................................................13

1.5 ESTRUTURA DO TRABALHO ......................................................................................14

2 SEGURANÇA EM REDE.................................................................................................15

2.1 CRIPTOGRAFIA (SIGILO) .............................................................................................16

2.1.1 CRIPTOGRAFIA DE CHAVES SECRETAS ...............................................................17

2.1.2 CRIPTOGRAFIA DE CHAVES PÚBLICAS................................................................18

2.2 ASSINATURA DIGITAL (INTEGRIDADE)..................................................................20

2.3 CERTIFICADO DIGITAL (AUTENTICAÇÃO) ............................................................21

3 APLICAÇÕES WEB.........................................................................................................23

3.1 REPRESENTAÇÃO DE DADOS EM APLICAÇÕES WEB..........................................24

3.2 XML ..................................................................................................................................25

3.2.1 DTD ................................................................................................................................26

3.3 XML PROTEGIDO...........................................................................................................27

3.3.1 Criptografia do XML ......................................................................................................28

3.3.2 Assinatura digital do XML..............................................................................................31

3.3.3 Utilizando a criptografia XML com a assinatura digital XML.......................................33

4 DESENVOLVIMENTO DO APLICATIVO ..................................................................37

4.1 REQUISITOS PRINCIPAIS DO APLICATIVO .............................................................37

4.2 ESPECIFICAÇÕES DO SISTEMA..................................................................................38

4.3 IMPLEMENTAÇÃO DO SISTEMA................................................................................42

4.3.1 Ferramentas e bibliotecas utilizadas................................................................................43

4.3.2 Implementação do software ............................................................................................45

5 CONCLUSÃO....................................................................................................................51

5.1 EXTENSÕES ....................................................................................................................52

REFERÊNCIAS BIBLIOGRÁFICAS .................................................................................53

Page 12: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

11

1 INTRODUÇÃO

A Internet é considerada por muitos como um dos mais importantes e revolucionários

desenvolvimentos da história da humanidade. Pela primeira vez no mundo, um cidadão

comum ou uma pequena empresa pode, facilmente e a um custo muito baixo, não só ter

acesso a informações localizadas nos mais distantes pontos do mundo, como também criar,

gerenciar e distribuir informações em larga escala, algo que somente uma grande organização

podia fazer usando os meios de comunicação convencionais.

Com a elaboração de softwares com interfaces cada vez mais fáceis de se manipular, as

pessoas foram se encorajando a participar da rede. O grande atrativo da Internet é a

possibilidade de se trocar e compartilhar idéias, estudos e informações com outras pessoas

que, muitas vezes nem se conhecem pessoalmente.

“Atualmente, passado pouco mais de trinta anos desde a implementação da primeira

rede Internet (a ARPANET), o mundo está bem diferente, e a Internet já faz parte da vida de

muita gente. Isto aconteceu, sobretudo por causa do advento dos navegadores Web (tipo

Netscape e Internet Explorer)” (FIGUEIREDO, 2000).

A exposição de dados na Web tem se tornado maior e o fato de ser freqüentada por

todos os tipos de pessoas, bem ou mal intencionadas, já há algum tempo tem causado

desconfiança. Esta sensação de insegurança faz com que haja um crescente número de

técnicas e ferramentas desenvolvidas para incrementar os requisitos de segurança na

comunicação entre computadores.

Uma dessas técnicas é o emprego do Extensible Markup Language (XML) protegido,

o qual tem sido bastante explorado como uma outra forma de proteção do tráfego de dados na

Internet, permitindo o surgimento de uma nova geração de aplicações de transporte,

manipulação e visualização de dados com mais segurança.

Page 13: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

12

1.1 JUSTIFICATIVA

A troca de informações na Web faz com que os dados fiquem expostos a crackers e

hackers, e, caso isto aconteça em uma infra-estrutura que inclua serviços de emergência, do

governo, no fornecimento de água, de energia elétrica, telecomunicações entre outras, estas

instituições podem ser fortemente abaladas.

O XML é uma opção bastante interessante para proteger dados que precisam ser

transportados pela Internet, utilizando a criptografia para garantir seu sigilo e as assinaturas

digitais para garantir sua autoria e integridade.

A melhor maneira de proteger qualquer documento XML que precise ser transportado

na internet é através de assinaturas digitais, e quando usados em conjunto com a criptografia,

este fornece uma solução de segurança completa.

1.2 DEFINIÇÃO DO PROBLEMA

Atualmente, no mundo das redes e do comércio eletrônico, todo sistema de

computador se tornou um alvo em potencial para intrusos. O problema é que não há como

saber os motivos que levam os intrusos a agir e nem quando podem atacar, contudo é

importante tentar se prevenir utilizando mecanismos de proteção. Uma solução para este

problema é o uso do XML protegido, que tem como objetivo permitir o acesso a dados através

do uso da criptografia e da assinatura digital.

1.3 QUESTÕES DE PESQUISA

Durante a elaboração deste trabalho, procurou-se responder as seguintes questões:

Page 14: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

13

• quais são as características técnicas que apontam à viabilidade do aplicativo de

segurança na Web usando XML criptografado e com assinatura digital;

• quais são as vantagens e desvantagens de transportar informação sigilosa pela rede

usando XML protegido.

1.4 OBJETIVOS DO TRABALHO

Os objetivos deste trabalho estão divididos em objetivo geral e objetivos específicos.

1.4.1 Objetivo geral

Este trabalho tem como objetivo desenvolver um aplicativo que gere um conteúdo de

um cadastro confidencial de clientes utilizando o XML protegido para garantir o sigilo, a

procedência e a integridade de dados.

1.4.2 Objetivos específicos

Os objetivos específicos deste trabalho são:

a) estudar a criptografia, a assinatura digital e a certificação digital;

b) estudar o XML protegido;

c) consultar um cadastro para obter os dados de clientes;

d) utilizar o XML para gerar uma página Web com o conteúdo deste cadastro;

e) utilizar o XML seguro para criptografar o conteúdo desta página XML e assim

permitir que possa ser transportado de forma segura pela internet;

f) utilizar o XML seguro para assinar o conteúdo desta página XML e assim permitir

Page 15: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

14

que possa ser transportado de forma segura pela internet.

1.5 ESTRUTURA DO TRABALHO

O trabalho está estruturado em cinco capítulos, sendo o primeiro a introdução que

compreende a justificativa, definição do problema, questões de pesquisa, objetivos do

trabalho e estrutura do trabalho. No segundo capítulo, trata-se do enfoque teórico dado à

segurança em redes de computadores e os recursos como criptografia, assinatura digital e

certificação digital. Por sua vez, o terceiro capítulo apresenta as aplicações Web e a

necessidade de criar uma nova linguagem que é a atual XML e suas formas de segurança

através da criptografia e assinatura digital. No quarto capítulo, apresenta-se o

desenvolvimento do aplicativo que está estruturado pelos subitens requisitos principais do

aplicativo, especificações do sistema e implementação do sistema. E por fim no quinto

capítulo, faz-se a conclusão do presente estudo.

Page 16: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

15

2 SEGURANÇA EM REDE

A segurança em redes refere-se à troca de dados via redes de forma segura,

assegurando que seus dados estão protegidos e não poderão ser compreendidos nem

modificados por pessoas não autorizadas.

Um dos maiores problemas e dos mais difíceis de resolver tem sido o da segurança de

dados nas redes, atualmente a necessidade da sua eficiência tem se intensificado, pois a

evolução dos meios de transmissão e o seu custo reduzido têm levado um grande número de

usuários ao uso de mensagens eletrônicas e do comércio eletrônico, tanto no meio comercial

quanto residencial, situação que tem se difundido cada vez mais.

Conforme Figueiredo (2000), com a crescente utilização da Internet, empresas

passaram a utilizá-la como meio de venda de seus produtos. Diariamente são executadas por

empresas e indivíduos inúmeras transações on-line, como por exemplo, pagamento realizado

via ordens eletrônicas, verificação de contas bancárias, informações confidenciais trocadas via

e-mail, compartilhamento de arquivos de empresas. Mediante todas estas transações on-line,

as empresas passaram a se preocupar e a investir mais na segurança de seus dados, pois têm

consciência do prejuízo que pode causar a perda ou dano de um documento.

À medida que são criadas técnicas mais avançadas para que os dados fiquem realmente

seguros em redes, ocorre um avanço também entre aqueles que praticavam atividades ilegais,

pois para eles cada nova tecnologia é um novo desafio. Perante isto, a segurança deve ser ao

longo sempre presente para proteção dos dados e não apenas depois da ocorrência de um

incidente causado por algum intruso.

Para que um sistema torne-se seguro, é necessário utilizar uma série de recursos

existentes que garantem o uso dos serviços de forma segura, como a criptografia (privacidade

de informação), assinatura digital (informação não modificada em trânsito) e certificação

Page 17: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

16

digital (identificação de pessoa ou identidade).

2.1 CRIPTOGRAFIA (SIGILO)

Um método eficaz e disponível que oferece proteção tanto no armazenamento, quanto

no transporte de informações por uma rede pública ou pela Internet é a criptografia (significa

codificar dados em informações aparentemente sem sentido, para que pessoas não consigam

ter acesso às informações que foram cifradas, usando para isso funções matemáticas e um

código especial, chamada chave).

Com a chegada dos computadores, a criptografia se tornou uma parte indispensável da

segurança moderna, sendo empregada no ambiente computacional para proteção de

documentos secretos, transmitir informações confidenciais pela Internet ou por uma rede

local, entre pessoas autorizadas.

Um algoritmo de criptografia é uma “transformação matemática usada no processo de

encriptação e de desencriptação” (SANTOS, 2005). A criptografia possibilita que se guardem

importantes informações ou as transmitam através de redes inseguras (como a Internet) de tal

forma que a informação não se torne legível a não ser por quem é pretendido. A operação de

decriptografar é exatamente o inverso, ou seja, dado o texto cifrado, através do emprego do

mesmo algoritmo e da chave usados na criptografia, obtém-se o texto legível original.

Assim sendo, um “algoritmo de criptografia trabalha em conjunto com uma chave,

uma palavra, um número ou uma frase para encriptar os dados” (SANTOS, 2005). Os mesmos

dados devem gerar diferentes dados encriptados usando chaves diferentes, ou seja, se

mudarmos a chave para um mesmo conjunto de dados geramos dados encriptados diferentes.

A segurança de dados encriptados é completamente dependente da força do algoritmo de

criptografia (esta força é medida com o tempo e recursos necessários para recuperar os dados)

Page 18: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

17

e do segredo da chave.

Quando se analisa a criptografia, fala-se também sobre chaves, pois elas são quem

fecham e abrem a criptografia dos dados. Existem dois métodos para se trabalhar com chaves

criptografadas: criptografia de chaves secretas e criptografia de chaves públicas.

2.1.1 CRIPTOGRAFIA DE CHAVES SECRETAS

Ocorre quando uma única chave criptografa e decriptografa os dados, a qual precisa

ser compartilhada previamente entre remetente e destinatário. Ela é relativamente pequena e

rápida, contudo como desvantagem, não só o transmissor deve conhecer a chave como

também o receptor, para poder ter acesso aos dados: é o problema da distribuição de chaves

(PÉRICAS, 2003). Esse método não é muito eficiente em conexões inseguras, no entanto,

quando utilizado sobre conexões seguras, a criptografia com chave secreta se torna bem

eficiente.

Como mostra a Figura 1, a criptografia de chave secreta ocorre da seguinte forma:

quando a origem cifra uma mensagem, ela utiliza um algoritmo de criptografia e uma chave

secreta para transformar uma mensagem original em um texto cifrado e o envia a seu

destinatário por uma rede insegura. O destinatário, por sua vez, para decifrar a mensagem,

utiliza o algoritmo de decriptografia correspondente e a mesma chave, para transformar o

texto cifrado na mensagem original. Caso um intruso tente decifrar a mensagem, não

conseguirá sem possuir a chave secreta.

Page 19: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

18

� � �

Fonte: Santos (2005) Figura 1: Criptografia de chave secreta

Desta forma, a segurança do sistema está em manter o segredo da chave e não mais no

algoritmo (conjunto de instruções que pode ser executado mecanicamente em uma quantidade

finita de tempo). Conforme Péricas (2003), o algoritmo escolhido atualmente como padrão de

criptografia por possuir melhor estrutura para chave secreta é o Advanced Encryption

Standard (AES), utilizando chaves de 128, 192 e 256.

2.1.2 CRIPTOGRAFIA DE CHAVES PÚBLICAS

Esse método está baseado no conceito de “um par de chaves, uma chave privada e uma

chave pública. Uma das chaves é utilizada para cifrar a mensagem e a outra para decifrá-la.

No sistema de chaves públicas, cada pessoa tem que ter duas chaves, uma que fica

publicamente disponível e outra que deve ser mantida em segredo” (SANTOS, 2005). O sigilo

da chave privada é muito importante, pois a criptografia pública se baseia no fato de que a

chave privada é realmente privada, por isso só o emissor deve ter acesso. É mais

freqüentemente usada para certificar a origem do dado e a integridade.

A Figura 2 demonstra o funcionamento da criptografia de chave pública, que se dá da

seguinte forma: quando a origem deseja enviar uma mensagem ao destinatário, precisa

primeiro encontrar a chave pública dele. Feito isto, ela cifra sua mensagem utilizando a chave

Page 20: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

19

pública de destinatário, despachando-a em seguida. Quando o destinatário recebe a

mensagem, ele a decifra facilmente com sua chave privada.

Fonte: Santos (2005) Figura 2: Criptografia de chave pública

O intruso, que interceptar a mensagem em redes inseguras, não conhecerá a chave

privada do destinatário, embora conheça sua chave pública. Mas não basta só este

conhecimento para que a mensagem seja decifrada. Em tal situação, “mesmo a origem, que

foi quem cifrou a mensagem com a chave pública do destinatário, não pode decifrá-la agora”

(SINGH, 2001).

A vantagem deste sistema é permitir que qualquer pessoa possa enviar uma mensagem

secreta, apenas utilizando a chave pública de quem irá recebê-la. Como a chave pública está

disponível, não há necessidade do envio de chaves como é feito no modelo de chave secreta.

A confidencialidade da mensagem garante que somente quem tiver acesso à chave privada

terá acesso às mensagens, e enquanto esta chave estiver segura pode-se assegurar a segurança

do método.

O algoritmo RSA (Rivest, Shamir, Adleman) é o método de criptografia que satisfaz os

requisitos exigidos para que a chave pública seja eficaz. “Este algoritmo usa chaves de 1024

bits formadas pela multiplicação de dois números primos de 512 bits” (PÉRICAS, 2003), o

Page 21: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

20

que garante a segurança do processo, que se baseia na dificuldade de fatorar números primos

muitos grandes.

Em geral, a criptografia de chave pública mostra-se mais adequada em ambientes

inseguros com um grande número de usuários. Este sistema usualmente é aplicado de forma

complementar ao sistema de chaves secretas para torná-lo mais seguro.

2.2 ASSINATURA DIGITAL (INTEGRIDADE)

A assinatura digital é um outro benefício da criptografia. Utilizando chave pública, o

mecanismo de assinatura digital envolve dois objetivos: que o receptor possa verificar a

identidade declarada pelo emissor e que o emissor não possa mais tarde negar a autoria da

mensagem.

A assinatura digital não garante a confidencialidade da mensagem, pois qualquer

pessoa poderá ter acesso a mensagem apenas utilizando a chave pública da origem. Para que

haja confidencialidade é necessário combinar os dois métodos, criptografia e assinatura

digital.

A assinatura digital segundo Guilherme (2003) funciona da seguinte forma: o emissor

gera um código hash a partir do documento, cifra o código hash (resumo de mensagem)

usando a sua chave privada gerando uma assinatura criptografada. O documento original e a

assinatura cifrada trafegam pela Internet chegando até o receptor. Este por sua vez,

descriptografa a assinatura usando a chave pública do emissor, em seguida gera o valor do

hash da mensagem e compara o resultado com a assinatura (hash) decifrada. Se esses valores

forem iguais, é determinado que o documento não foi modificado após a assinatura do

mesmo, caso contrário, o documento ou assinatura foi alterado.

A assinatura digital obtida através do uso da criptografia de chave pública não pode ser

Page 22: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

21

empregada de forma isolada, é necessário utilizar um mecanismo adequado para o emprego

da assinatura digital. Este mecanismo é a função hash, e “sua utilização como componente de

assinaturas digitais se faz necessário devido à lentidão dos algoritmos de chave pública. A

função hash oferece agilidade nas assinaturas digitais, além de integridade confiável”

(GUILHERME, 2003). Funciona como uma impressão digital de uma mensagem gerando, a

partir de uma entrada de tamanho variável, um valor fixo pequeno (resumo de mensagem).

Portanto, a característica essencial da assinatura digital é que ela deve garantir que uma

mensagem assinada só pode ter sido gerada com informações privadas do emissor. Em função

disso, uma vez verificada a assinatura com a chave pública, é possível posteriormente provar

para um terceiro, que só o proprietário da chave poderia ter gerado a mensagem.

2.3 CERTIFICADO DIGITAL (AUTENTICAÇÃO)

O certificado digital é um “documento contendo dados de identificação da pessoa ou

instituição que deseja comprovar a sua própria identidade. Serve igualmente para conferir a

identidade de terceiros” (GUILHERME, 2003). É devido aos certificados digitais que uma

transação eletrônica realizada via Internet torna-se segura, pois permite que as partes

envolvidas apresentem, cada uma, as suas reais identidades para comprovar quem são.

Os Certificados Digitais vinculam um par de chaves eletrônicas que podem ser usados

para criptografar e assinar informações digitais. Usados em conjunto com a criptografia, estes

fornecem uma solução de segurança completa, assegurando a identidade de uma ou de todas

as partes envolvidas numa transação.

Os certificados digitais evitam tentativas de substituição de uma chave pública por

outra. Para evitar isto aconteça, faz-se necessário o uso de certificados digitais de chave

Page 23: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

22

pública, pois estes garantem segurança e autenticidade àqueles que acessam redes inseguras,

prevenindo o acesso a dados confidenciais.

O certificado do destinatário contém algo mais do que sua chave pública: contém

informações sobre o destinatário (seu nome, endereço e outros dados), é assinado por alguém

em quem a origem deposita sua confiança: uma autoridade de certificação ou Certification

Authority (CA), que funciona como um cartório eletrônico, conforme afirmam Eastlake e

Niles (2002).

O certificado digital funciona da seguinte forma: primeiro deve-se localizar a chave

pública da pessoa com quem se deseja comunicar e, segundo, deve-se obter uma garantia de

que a chave pública encontrada seja proveniente do destinatário. Após estabelecer um

processo de confiança entre os interlocutores, segundo Eastlake e Niles (2002), os certificados

desempenham um importante papel em um grande número de protocolos e padrões utilizados

na proteção de sistemas de comércio eletrônico.

Toda a comunicação na Internet é por natureza anônima e pública, o que dificulta

algumas transações, por isso o certificado digital tem tanta importância neste contexto.

Page 24: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

23

3 APLICAÇÕES WEB

O nome Web vem do termo Word Wide Web (WWW) que representa “um sistema de

informações mundialmente distribuído, onde as informações são ligadas umas às outras por

links de hipertexto” (FIGUEIREDO, 2000).

A Web está disponibilizando aos seus usuários um volume de informação cada vez

maior. O conteúdo dinâmico surgiu rapidamente para dar aos usuários um serviço de

informação interativo, inclusive rastreamento de pacotes e compras on-line.

No início, o conteúdo Web era em sua grande maioria estático. Os documentos

Hypertext Markup Language (HTML) projetados para exibição e não intercâmbios de

informações eram distribuídos aos navegadores diretamente do sistema de arquivos do

servidor Web.

A adoção da Web como veículo de acesso a sistemas de informação trouxe novamente

a preocupação com a estrutura dos documentos. Primeiro, para fornecer o mesmo conteúdo

em formatos alternativos, personalizados para computadores, celulares, auto-atendimento

telefônico ou para impressão em papel; segundo, para possibilitar o acesso às informações por

outras aplicações, em vez de apenas por usuários.

O problema então era criar uma linguagem capaz de descrever qualquer tipo de

documento, exigindo extensibilidade, e, segundo Marchal (2000), preservando tanto a

facilidade de autoria do HTML, quanto a sua sintaxe simples para processamento por

software. Então surgiu a linguagem XML.

O Extensible Markup Language (XML) vem se estabelecendo como um padrão para

representação de dados semi-estruturados e vem sendo utilizado para representar dados que

serão manipulados por aplicações ou trocados na Web.

Page 25: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

24

O XML tem a capacidade de perceber os eventos causados pelo usuário e responder de

forma apropriada. “O XML está embutido no código HTML, e o seu código fonte pode ser

visualizado pelo usuário, pois não é um código compilado” (LIGHT, 1999).�

3.1 REPRESENTAÇÃO DE DADOS EM APLICAÇÕES WEB

“O XML foi originalmente planejado para ser utilizado em documentos de sites, da

mesma maneira que Hypertext Markup Language (HTML)” (FORRISTAL e TRAXLER,

2002).

Por o XML ser extensível e auto-descritivo, ele pode ser utilizado em qualquer lugar

que haja a necessidade de troca de dados ou simplesmente distribuição dos mesmos.

Inicialmente espera-se que o XML seja muito usado para descrever informações sobre

páginas HTML. Posteriormente, aplicações como transações financeiras, notícias,

informações sobre tempo, registros de dados, bibliotecas e muitas outras serão possíveis

usuárias do XML.

Conforme afirma Furtado (2003), o XML tem um futuro de muitas aplicações na Web,

por exemplo, ao realizar uma busca as pessoas são levadas a qualquer site que tenha

referência a tal assunto não importando, por exemplo, se o direcionamento é para o assunto ou

para a venda de produtos sobre este assunto. O XML admitiria o processo de direcionar o

assunto, pois permite que tais dados possam ser facilmente combinados (essa combinação

seria feita via software em um servidor intermediário, estando os bancos de dados na

extremidade da rede o que facilitaria enormemente a busca). O que acontece hoje é que sem o

XML é necessário para a aplicação de procura saber como é estruturado e construído cada

banco de dados que armazena os dados de interesse, o que é praticamente impossível.

Outra aplicação seria dos dados poderem ser atualizados em partes, evitando que uma

Page 26: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

25

pequena modificação no conjunto de dados implique na atualização do documento inteiro

novamente. Assim, somente os elementos modificados seriam enviados pelo servidor para o

cliente. Atualmente, uma modificação em um item de dados acarreta na necessidade de

atualização da página inteira. Dessa forma, os servidores têm menor sobrecarga, reduzindo a

necessidade de computação e reduzindo também a requisição de banda de transmissão para as

comunicações entre cliente e servidor. O XML também permite que novos dados sejam

adicionados aos já existentes, sem a necessidade de reconstrução da página.

3.2 XML

“O XML é uma linguagem de marcação de dados desenvolvida para a descrição de

dados (conteúdo)” (RAY, 2000). Está sendo rapidamente adotado como um meio de preservar

a estrutura em dados Web e fornecer um formato de mensagem padrão.

O XML não é uma linguagem que veio para substituir o HTML, pois foram criados

com objetivos diferentes. “O HTML está relacionado com a exibição de dados enquanto que o

XML está relacionado com a descrição dos dados. Os documentos são descritos em XML e

convertidos para HTML no momento da utilização” (PRENTICE, 1997).

O XML surgiu para suprir a carência deixada pelo HTML no desenvolvimento de

aplicações avançadas para a Internet, principalmente no que diz respeito àquelas aplicações

que precisam manipular um grande volume de dados.

Esta linguagem possibilita uma melhor estruturação da informação circulante na Web,

na medida em que permite a definição de documentos onde claramente são separados o

conteúdo, o significado e a apresentação. Os documentos em XML são fáceis de ser editados

(esta linguagem permite que o autor defina suas próprias tags e a própria estrutura do

documento) ou lidos, representando naturalmente estruturas de dados complexas e

Page 27: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

26

hierárquicas. Juntando a isto as facilidades de formatação e validação, fica fácil compreender

a boa aceitação do XML.

Na prática, XML é um padrão para troca de informações entre diversas plataformas,

que apenas possibilita a descrição de dados em um arquivo de formato texto.

O XML é definido pelas seguintes especificações: Extensible Markup Language

(XML), define a sintaxe da XML; XML Pointer Language (XPointer) e XML Linking

Language (XLink), define um padrão para representar os links entre os recursos (além dos

links simples, como a tag da HTML, o XML possui mecanismos para ligar recursos múltiplos

e diferentes. A XPointer descreve como endereçar um recurso, e a XLink descreve como

associar dois ou mais recursos); Extensible Style Language (XSL), define a linguagem de

folhas de estilos padrão para o XML (EASTLAKE e NILES, 2002).

O XML é uma família de tecnologias, dentre elas está a XSL (Extensible Stylesheet

Language): uma ferramenta usada para transformar XML de uma estrutura para outra, não

importando se o resultado final é em HTML, XML ou o que você vier a determinar

(FORRISTAL e TRAXLER, 2002). Desta forma pode-se expor os documentos XML na Web.

Seu objetivo, porém, é modificar a estrutura de um documento XML, possivelmente gerando

um resultado em dialeto diferente.

O XML provavelmente irá complementar todas as tecnologias existentes no momento,

viabilizando a construção de sistemas mais úteis de forma mais eficiente.

3.2.1 DTD

“O Document Type Definition (DTD) é um conjunto de regras ou declarações que

permitem interpretar as informações usadas em arquivos XML, além de compartilhá-lo

através de muitas aplicações” (RAY, 2000). O DTD ajuda a validar os dados quando a

Page 28: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

27

aplicação que os recebe não possui internamente uma descrição dos dados que está recebendo.

Os DTDs são velhos conhecidos dos desenvolvedores Web, pois é a linguagem

utilizada na definição dos padrões formais do HTML pelo World Wide Web Consortium

(W3C).

O DTD define a estrutura do documento, usando uma lista de elementos válidos, e

pode ser declarado dentro de um documento XML ou à parte. Os DTDs são opcionais e os

dados enviados com um DTD são conhecidos como dados XML válidos.

“Um analisador de documentos pode checar os dados que chegam analisando as regras

contidas no DTD para ter certeza de que o dado foi estruturado corretamente. Os dados

enviados sem DTD são conhecidos como dados bem formatados” (EASTLAKE e NILES,

2002). O que em outras palavras significa que o documento aceita todas as regras de

formatação especificadas.

A estrutura do DTD está baseada em uma gramática que permite declarar elementos,

atributos, entidades e notações. “Através de regras estruturais, ela define os elementos que

podem ser utilizados em um documento XML, quantas vezes eles podem aparecer e que

hierarquia deve ser seguida” (BRAGANHOLO, 2000).

3.3 XML PROTEGIDO

Há alguns anos, quando se começou a questionar a seriedade quanto à questão da

segurança digital, impulsionados pela crescente utilização da Internet como plataforma de

comunicação, começou-se a dar um destaque crescente à problemática da segurança, em

particular das aplicações Web que estão disponibilizadas na Internet para suportar processos

de negócio importantes, ou mesmo críticos em alguns casos.

A melhor maneira de proteger documentos XML na Web é através de certificados

Page 29: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

28

digitais, pois seus métodos impedem que a assinatura eletrônica seja falsificada, e quando

usados em conjunto com a criptografia, como já mensionado anteriormente, há uma maior

segurança.

Devido a ordens de compra, pagamentos, recebimentos de entrega entre outras

operações que precisam de autenticação e confidencialidade, o XML precisa de segurança.

Em alguns casos, particularmente quando a transação envolve várias partes e precisa de

diferentes tipos de autenticação para diferentes destinatários.

Por razões de simplicidade e flexibilidade, o usuário pode desejar trabalhar com a

linguagem XML usando mecanismos de segurança. Devido à crescente importância dos

serviços Web, a sua utilização em processos internos em uma organização exige uma

avaliação de um problema fundamental: a segurança. Mais concretamente, deve ser avaliado o

impacto de algumas soluções para a segurança de serviços Web (criptografia e assinatura

digital do XML), no desempenho destes processos.

3.3.1 Criptografia do XML

O XML permite usar o código binário existente e a sintaxe do texto, obtendo a

informação criptografada com um texto cifrado contendo estruturas que podem criar,

manipular e analisar.

No Quadro 1 contém um exemplo de um documento XML, onde se verifica a ficha de

um cliente com número do cartão de crédito a ser criptografado.

Page 30: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

29

Fonte: Forristal e Traxler (2002, p. 313) Quadro 1 – Exemplo de um documento XML

Caso o documento XML precise ser enviado a um destinatário e deseja-se criptografar

os dados do documento é necessário seguir a especificação representada pela tag

<EncryptedData> é responsável pela criptografia e decriptografia do documento, pois

“contém todos os elementos identificadores dos dados criptografados do documento”

(EASTLAKE e NILES, 2002). O resultado é mostrado no Quadro 2.

Fonte: Forristal e Traxler (2002, p. 313) Quadro 2 – Exemplo de um documento XML criptografado

Observa-se como característica relevante que os dados que estão localizados dentro do

elemento EncryptedData aparecem criptografados. Sua estrutura é de fácil compreensão e

visualização e permite a criptografia da mensagem inteira ou do conteúdo inteiro da

mensagem.

A parte da criptografia é a mais trabalhosa, pois a chave de sessão tem que ser gerada e

criptografada e algumas informações sobre ela devem ser incluídos no documento.

Conforme afirmam Eastlake e Niles (2002), para cada dado ou chave a ser

<?xml version=”1.0”?> <customer> <firstname>John</firstname> <lastname>Doe</lastname> <creditcard>

<number>4111111111111111</number> <expomont>12</expmonth> <expyear>2000</expyear>

</creditcard> <customer>

<?xml version=”1.0”?> <customer> <firstname>John</firstname> <lastname>Doe</lastname> <creditcard>

<xenc: EncryptedData xmlns:xenc= ‘http://www.w3.org/2000/11/temp-xmlenc’ Type=”Element”>

<xenc: CipherText>AbCd… .wXYZ</xenc:CipherText> </xenc:EncryptedData>

</creditcard> <customer>

Page 31: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

30

criptografado, uma seqüência de passos precisam ser seguidos para que a criptografia XML

seja realizada com sucesso, conforme abaixo:

a) seleciona-se algoritmos e parâmetros para usar na criptografia do dado;

b) obtém-se a chave de criptografia do material;

c) adquire-se a seqüência para criptografar;

d) criptografa a seqüência usando a chave e o algoritmo de criptografia;

e) quinto, constrói o elemento que cifra o dado;

f) finalmente, constrói-se o elemento da criptografia do dado ou da criptografia da

chave.

A criptografia deve ser cuidadosa para preservar informações necessárias para o

sucesso do processo. Quando há compartilhamento de uma chave secreta entre múltiplos

destinatários, pode-se seguramente usar a chave somente para dados desejados. As aplicações

não deverão revelar nenhuma informação dos parâmetros ou algoritmos, para que não

enfraqueçam a criptografia ou comprometam o texto.

Segundo Eastlake e Niles (2002), a aplicação é responsável como parte do processo de

criptografia que, por conseqüência, será útil para decriptografia. Por exemplo, se a aplicação

deseja criptografar o dado em um pacote formatado XML, este precisa organizar o XML

identificando o tipo de resultado desejado com o tipo de atributo de elemento de criptografia.

A probabilidade da operação da decriptografia dependerá do suporte de aplicação da

criptografia.

A criptografia pode ser gerada para qualquer tipo de conteúdo digital, incluindo

documentos XML. A criptografia XML especifica como cifrar e decifrar documentos XML e

porções de documentos XML.

O algoritmo RSA (Rivest, Shamir, Adleman) em XML não é utilizado para criptografia

do documento, mas sim para a criptografia da chave de sessão, que fica junto com o

Page 32: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

31

documento XML em um elemento separado, localizado em outro arquivo. Já o algoritmo

utilizado na criptografia do documento é o AES (Advanced Encryption Standard) com chaves

192 ou 256.

3.3.2 Assinatura digital do XML

O padrão XML de assinatura digital permite que documentos sejam assinados

digitalmente para o uso em operações XML. As assinaturas de documentos XML, assim como

as comuns, também possuem importantes características como autenticação e integridade dos

dados.

A assinatura de documentos XML tem a vantagem sobre a assinatura comum de poder

assinar somente partes específicas do documento XML, não sendo necessário assinar o

documento original inteiro. O fato de a assinatura digital poder ser feita somente sobre uma

parte do documento, não garante a integridade do documento inteiro, pois algumas partes

podem ser alteradas. Este fato não ocorre se a assinatura for aplicada ao documento XML

inteiro, pois quaisquer alterações feitas pelo usuário nos dados invalidarão a assinatura

original do documento.

O Quadro 3 expõe a estrutura de uma assinatura digital usando XML, sendo a

assinatura gerada a partir de um código hash.

Page 33: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

32

Fonte: Eastlake e Niles (2002, p. 232) Quadro 3 – Exemplo da estrutura de uma assinatura digital usando XML

Analisando o Quadro 3, observa-se que “o elemento Signature corresponde à

construção primária da especificação da assinatura digital do XML. Esta é uma especificação

para descrever assinaturas digitais usando XML, e não existem limitações quanto ao que está

sendo assinado. O elemento SignedInfo consiste na informação que está de fato assinada. O

elemento CanonicalizationMethod contém o algoritmo usado para canonizar os dados, ou

estruturar os dados de uma forma comum, aceita por quase todos. O algoritmo usado para

converter o SignedInfo canonizado para o SignatureValue é especificado no elemento

SignatureMethod. O elemento Reference identifica o recurso a ser assinado e todos os

algoritmos usados para reprocessar os dados. O DigestMethod é o algoritmo aplicado aos

<Document…> <Field1…> …myriad content… </Field1…> <Field2…>…<subF2>…<subsubF2 a=”b”/>…</subF2>… <Field2…> <Signature> <SignedInfo> <CanonicalizationMethod Algorithm= “http://www.w3.org/TR/2001/REC-xml-c14n-20010315”/> <SignatureMethod Algorithm=”http://www.w3.org/2001/04/xmldsig-more#rsa-sha1”/> <Reference URI=” “>

<Transforms><Transforms Algorithm= ”http://www.w3.org/2000/09/xmldsig#enveloped-signature”/>

</Transforms> <DigestMethod

Algorithm=”http://www.w3.org/2000/09/xmldsig#sha1”/> <DigestValue>Szvb70MrKxJjY6bx8daFhQjV1fk= </DigestValue>

</Reference> </SignedInfo> <SignatureValue>

yFw+PrsMDBmvr0kaGme1tVwQEOLa2qiIiCZycoFDQ+jQ0F 58fhf4+BGAgA8mJvRLS067u/Sbm8NDQ18GBsoPDw=

</SignatureValue> <KeyInfo><X509Data><X509Certificate> zPrj46nf38G5ufIEBG7w8G5dXVaEhNBZWaqMjJiwsL/Dwz UhId0lpVYTE1bPz/rj4y/s7GNtbdaHh9t3dzxRUfqHh6Qj …

</X509Certificate></509Data></KeyInfo> </Signature> </Document>

Page 34: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

33

dados depois de todas as transformações definidas terem sido aplicadas para gerar o valor

dentro do DigestValue. A assinatura de DigestValue acopla o conteúdo de recursos à chave do

assinante. O SignatureValue contém o valor real da assinatura digital” (FORRISTAL e

TRAXLER, 2002).

Segundo Eastlake e Niles (2002), a assinatura digital do XML associa alguns dados

com uma chave. A aplicação produz assinaturas que devem ter acesso aos dados para serem

marcados e para produzirem chave. Depois, uma aplicação pode verificar a assinatura, tendo

acesso à marcação dos dados e verificando a chave de assinatura (a chave de verificação pode

ou não ser a mesma chave de produção, depende o tipo de autenticação usada). Se a assinatura

é verificada, o verificador sabe que algumas aplicações com a produção da chave podem ter

produzido uma assinatura ou um hacker pode ter quebrado a criptografia de algoritmos.

Estes pontos não fazem referência ao significado de tudo. Alguns significados dados à

assinatura digital, além de fortemente conectado alguns dados com a chave, é uma

interpretação imposta por uma aplicação particular. Isto é comum para marcação dos dados

para incluir estruturas pretendidas para que sejam interpretadas como afirmação.

3.3.3 Utilizando a criptografia XML com a assinatura digital XML

É comum ter dados ou parte deles que necessitam ser confidenciais, uma forma de

torná-los ocultos é através de combinação da criptografia com a assinatura digital.

Segundo Eastlake e Niles (2002), precisa-se examinar cada caso individualmente para

saber se é necessário primeiro criptografar e então assinar ou assinar e depois criptografar,

pois até mesmo em um simples bloco de dados, existem múltiplas possibilidades. Existem três

possibilidades gerais que serão citados abaixo.

A primeira possibilidade, exibida na Figura 3, é a criptografia de um dado assinado e

Page 35: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

34

com assinatura. Conforme Eastlake e Niles (2002), supõe-se que existe um dado assinado e

que o dado e o elemento Signature estão todos criptografados em um texto cifrado descrito

em um EncryptedData. Este tipo oculta o máximo de quantidade de dados, tornando a

criptografia mais eficaz.

Fonte: Eastlake e Niles (2002, p. 372)

Figura 3: Exemplo de criptografia de dado assinado e com assinatura (separado)

E após o processo de compactação, a estrutura do documento se apresenta a forma

apresentada na Figura 4:

Fonte: Eastlake e Niles (2002, p. 373)

Figura 4: Exemplo de criptografia de dado assinado e com assinatura (compactado)

Page 36: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

35

O segundo caso citado por Eastlake e Niles (2002), é o da criptografia de dado

assinado, mas não com assinatura. O objetivo deste caso é somente criptografar o dado

assinado e não o elemento Signature. Visualiza-se o caso citado na Figura 5.

Fonte: Eastlake e Niles (2002, p. 374)

Figura 5: Exemplo de criptografia de dado assinado e sem assinatura (separado)

Por fim, observa-se na Figura 6, conforme afirmam Eastlake e Niles (2002) o fato da

assinatura de um dado criptografado. Nesta situação o texto cifrado e o elemento

EncryptedData são assinados. No caso de alguma pessoa tentar modificar a mensagem

original, a ação será descoberta quando a assinatura falhar.

Page 37: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

36

Fonte: Eastlake e Niles (2002, p. 375)

Figura 6: Exemplo de assinatura de texto cifrado e criptografado (separado)

Page 38: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

37

4 DESENVOLVIMENTO DO APLICATIVO

O aplicativo desenvolvido neste trabalho demonstra duas formas de tornar um

documento seguro, sendo estas através da criptografia e da assinatura digital de dados de uma

página Web baseados em um cadastro de clientes, onde se pretende garantir o sigilo e

integridade dos dados.

O aplicativo executável em microcomputador tem a função de gerar um conteúdo

XML que possa ser transmitido de forma segura e íntegra pela Web.

4.1 REQUISITOS PRINCIPAIS DO APLICATIVO

Este aplicativo deve ter os seguintes requisitos funcionais:

a) ler uma base de dados de clientes;

b) gerar lista de dados de clientes em XML;

c) gerar lista de dados de clientes em XML criptografado e XML decriptografado;

d) assinar digitalmente a lista de dados de clientes em XML.

Requisitos não funcionais são:

a) base de dados em arquivo texto;

b) rodar no sistema operacional Windows;

c) apresentar uma interface intuitiva, onde o usuário seleciona sua opção em um

campo do aplicativo e este lhe fornece o documento com o tipo de segurança

desejado (criptografado ou assinado).

Page 39: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

38

4.2 ESPECIFICAÇÕES DO SISTEMA

Para a especificação do sistema adotou-se a fluxogramação para demonstrar o fluxo

dos principais processos executados.

Na Tabela 1 são enumerados os sub-processos juntamente com a descrição de cada um

deles.

Tabela 1 – Sub-processos do aplicativo

Nome Descrição Resultado Obtido

Processo A Gerar XML

Normal

Arquivo XML Normal com conteúdo da base

de dados apresentado na forma de tabela

Processo B Gerar XML

Criptografado

Arquivo XML com conteúdo da base de dados

criptografado apresentado na forma de tabela

Processo C Gerar XML

Decriptografado

Arquivo XML com conteúdo da base de dados

decriptografados apresentado na forma de tabela

Processo D Gerar XML

Assinado

Arquivo XML com conteúdos da base de dados

apresentados na forma de tabela e com assinatura

digital do contexto

Na Figura 7 observa-se o detalhamento do processo A, onde este irá buscar sua base de

dados em um arquivo texto e inicia o processo da transformação do documento para XML.

Page 40: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

39

Figura 7: Fluxograma do Processo A

A Figura 8, apresenta o detalhamento do processo B, que é executado no aplicativo.

Neste processo é determinada a criptografia do documento XML.

Início

Abre base de dados e cria arquivo XML de saída

Lê base de dados

Escreve dado no arquivo XML

Último dado? Não Termina

arquivo XML

Sim

Escreve no arquivo cabeçalho XML

Fim

Page 41: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

40

Figura 8: Fluxograma do Processo B

A Figura 9 apresenta o detalhamento do processo C, que é executado no aplicativo.

Neste processo é feita a decriptografia do documento, utilizando o arquivo XML

criptografado como base para sua geração. Como resultado apresenta os dados

decriptografados para validação.

Início

Abre arquivo XML e cria arquivo para XML criptografado

Lê dado do arquivo XML

Escreve dado no arquivo XML critografado

Último dado?

Não

Fim

Sim Precisa criptografia?

criptografa

Sim Não

Page 42: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

41

Figura 9: Fluxograma do Processo C

A Figura 10 apresenta o detalhamento do processo D, que é executado pelo aplicativo.

Este processo é responsável pela assinatura digital dos dados do documento XML normal.

Início

Abre arquivo XML criptografado e cria arquivo para XML

decriptografado

Lê dado do arquivo XML criptografado

Último dado?

Não

Fim

Sim Precisa decriptografia?

Decriptografia

Sim Não

Escreve dado no arquivo XML decriptografado

Page 43: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

42

Figura 10: Fluxograma do Processo D

4.3 IMPLEMENTAÇÃO DO SISTEMA

O aplicativo foi desenvolvido utilizando uma base de dados de clientes com seus

respectivos nomes, números dos cartões de crédito e datas de validade para que pudessem ser

Fim

Cria assinatura do documento canonizado XML

Início

Abre base de dados e cria arquivo XML a ser assinado para saída

Lê base de dados

Escreve dado no arquivo XML

Último dado? Não

Termina arquivo XML

Sim

Escreve no arquivo cabeçalho XML assinado

Lê arquivo XML a ser assinado

Salva arquivo XML assinado

Page 44: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

43

ilustradas as funções do XML protegido sobre os dados.

4.3.1 Ferramentas e bibliotecas utilizadas

Para a implementação do aplicativo foi utilizado o ambiente de desenvolvimento

Microsoft Visual Basic 6.0. Esta ferramenta serve como ambiente para a compilação e a

execução das funções de cada botão de comando do aplicativo.

Para o desenvolvimento do aplicativo foram utilizados alguns algoritmos e bibliotecas,

são eles: Serpent, DOMDocument, MSXML.

Conforme afirma a Tropsoft (2005), o algoritmo Serpent foi projetado por Ross

Anderson, Eli Biham e Lars Knudsen como um candidato para o padrão avançado de

criptografia. Foi selecionado como um dos cinco finalistas na competição do Advanced

Encryption Standard (AES). Fornece aos seus usuários um nível elevado de garantia de que

nenhum ataque seja bem sucedido. Para conseguir isto, os desenvolvedores do algoritmo

limitaram-se a mecanismos bem compreendidos de criptografia, de modo que pudessem

confiar na larga experiência e nas técnicas provadas de cifra de bloco e calculassem a

criptografia. Os desenvolvedores do algoritmo garantem que o Serpent tem uma vida de

serviço ao menos de um século.

O algoritmo Serpent usa cifra do bloco de 128-bit, significando que os dados

criptografados e decriptografados estão nos pedaços 128-bit. O algoritmo Serpent usa 32

círculos, ou iterações do algoritmo principal. O fato de usar muitos círculos significa que é o

mais lento dos cinco finalistas do AES, mas a filosofia dos desenvolvedores do projeto é de

que a segurança vem sempre antes da velocidade. A execução da criptografia confidencial do

Serpent usa uma chave de 256 bits. O tamanho da chave é o maior possível para assegurar que

o usuário tenha sempre a melhor segurança possível. Se uma chave mais curta for fornecida

Page 45: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

44

pelo usuário, o próprio algoritmo do Serpent transforma a chave em 256 bits. O Serpent inclui

uma permutação inicial e final de nenhum significado criptografico; estas permutações são

usadas para otimizar os dados antes da criptografia. A descrição detalhada do algoritmo real é

contida no papel oficial do Serpent submetido para o AES pelos desenvolvedores do

algoritmo. O papel é puramente técnico e é necessário um determinado grau de proficiência

matemática ao leitor a fim compreendê-lo. O Serpent agora se encontra completamente no

domínio público, não sendo imposta nenhuma limitação em seu uso.

Segundo afirmação da Microsoft (2003), a biblioteca DOMDocument suporta

características caching, validação do esquema e de sustentação da linguagem do trajeto do

XML (XPath). O XML DOM fornece um navegador de classes que refletem diretamente em

especificações do modelo do objeto original da W3C (DOM). Estas classes permitem

construir um original do XML na memória. Pode-se compilar e validar os originais de XML

com um DTD ou um schema. A execução de Microsoft DOM fornece relações com o Visual

Basic e Microsoft C++. Os conceitos introduzem algumas das características fundamentais

que se relacionam ao DOM.

Como cita a Microsoft, as bibliotecas do msxml5*.dll fornecem tópicos de referência

para o Application Programming Interface (API) usado em tarefas de programação que usam

as outras bibliotecas do API do núcleo de MSXML (assinaturas de DOM, de SAX, de SOM,

de XML Digital). O API de MSXML é um conjunto de objetos COM que fornece a

funcionalidade da sustentação do DOM.

Com o Visual Basic (VB), a aproximação típica à experimentação com um

componente do modelo do objeto, tal como a biblioteca MSXML3.dll, deve criar um projeto

novo do padrão EXE, e adicionar uma referência à biblioteca do tipo de MSXML3.dll

(Microsoft XML, versão 3.0). Neste momento, o browser visual do objeto pode ser usado

para examinar as propriedades, os métodos, e os eventos para a relação de sua escolha.

Page 46: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

45

Entretanto, desde que o componente de MSXML é uma inspeção prévia da tecnologia,

não há nenhum perigo em qualquer um tentar enviar este exemplo em um ambiente da

produção.

4.3.2 Implementação do software

A Figura 11 apresenta a tela onde contém as alternativas de código gerador de XML

protegido a partir de uma base de dados de texto.

Figura 11: Código gerador de XML a partir de base de dados Texto

O botão Gerar XML Normal ativa a função para criar um documento XML a partir

de um documento texto. Após o clique e a confirmação do documento ter sido criado com

sucesso, é apresentado o documento criado na tela.

Quadro 4 – Trecho do documento texto

No Quadro 4 pode-se visualizar como são apresentados os dados do cliente no arquivo

texto e o Quadro 5 mostra os mesmos dados só que visto em XML.

Nome: João S. da Silva Número: 7586-4532-6575-2435 Validade: 05/06

Page 47: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

46

Quadro 5 – Documento XML normal

Os dados do cliente em XML normal são apresentados no browser da forma em que se

apresenta na Figura 12.

Figura 12: Tela do documento XML normal

O documento gerado exposto na tela valida a implementação deste comando sobre o

documento texto transformando-o em documento XML normal, pois o documento atingiu o

objetivo específico esperado.

O botão Gerar XML criptografado permite que a criptografia do documento XML

seja realizada a partir do documento XML normal, deixando os dados desejados de forma

ilegível, desta forma o usuário pode tornar seus dados seguros na rede. Selecionada esta opção

e após a confirmação do aplicativo, é apresentado o documento criado na tela.

No Quadro 6, pode-se visualizar o documento que contém a criptografia onde se

observa em comparação com o Quadro 5, que os dados criptografados são o número do cartão

de crédito e a data de validade do cartão do cliente.

No desenvolvimento da parte de programação da criptografia foi utilizado o algoritmo

Serpent para criptografar os dados do cliente.

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="Cards.xsl" type="text/xsl"?> <pd:Cards xmlns:pd="x-schema:Cards.xml"> <pd:Card> <pd:CardNome>João S. da Silva</pd:CardNome> <pd:CardNumero>7586-4532-6575-2435</pd:CardNumero> <pd:CardValidade>05/06</pd:CardValidade> </pd:Card> </pd:Cards>

Page 48: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

47

Quadro 6 – Documento XML criptografado

No browser os dados serão apresentados como se pode visualizar na Figura 13.

Figura 13: Tela do documento XML criptografado

O aplicativo gera o documento XML criptografado exposto na tela, validando a

implementação deste comando, desta forma atingindo o objetivo específico esperado.

Selecionado o botão Gerar XML decriptografado obtém-se o documento XML

decriptografado, no qual os dados se apresentarão da mesma maneira em que foram expostos

no documento XML normal. Este comando é gerado a partir do documento XML

criptografado, transformando os dados da forma ilegível para a forma legível, ou seja, resulta

no processo inverso da criptografia. Ao clicar no botão e após a confirmação da sua criação o

documento aparecerá na tela.

Analisando o Quadro 7, pode-se comparar à forma que o dado foi apresentado após ser

gerado. Trazendo seus dados de forma clara ao contrário do Quadro 6.

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="Cards.xsl" type="text/xsl"?> <pd:Cards xmlns:pd="x-schema:Cards.xml"> <pd:Card> <pd:CardNome>João S. da Silva</pd:CardNome> <pd:CardNumero>D3FFBFF7FCFD87046013E4C5B594D1DA3815EABD6077BAB4691CB2FE09BCDA70</pd:CardNumero> <pd:CardValidade>A553F63235CC80183B6579080110F827</pd:CardValidade> </pd:Card> </pd:Cards>

Page 49: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

48

Quadro 7 – Documento decriptografado

No trecho do código da programação da decriptografia o algoritmo Serpent também é

utilizado, assim como na criptografia, só que fazendo o processo inverso.

O browser apresenta os dados dos clientes na forma decriptografada conforme a Figura

14.

Figura 14: Tela do documento XML decriptografado

Avaliando o documento XML decriptografado gerado e exposto na tela, pode-se

visualizar que o resultado da implementação tingiu o objetivo específico esperado pelo

comando.

A função do botão de comando Gerar XML assinado é fazer com que o documento

XML normal seja assinado digitalmente, o que garante ao receptor saber que lhe enviou o

documento. Após clicar no botão e for confirmada a criação do documento, este aparecerá na

tela.

No Quadro 8, pode-se observar que o documento está composto com o elemento

Signature, o que permite ao documento estar assinado digitalmente.

<?xml version="1.0" encoding="ISO-8859-1"?> <?xml-stylesheet href="Cards.xsl" type="text/xsl"?> <pd:Cards xmlns:pd="x-schema:Cards.xml"> <pd:Card> <pd:CardNome>João S. da Silva</pd:CardNome> <pd:CardNumero>7586-4532-6575-2435</pd:CardNumero> <pd:CardValidade>05/06</pd:CardValidade> </pd:Card> </pd:Cards>

Page 50: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

49

Quadro 8 – Documento XML normal assinado

Na tela da Figura 15, pode-se visualizar a forma com que o browser apresenta a

assinatura digital em um documento e como o usuário tem acesso a ela.

<?xml version="1.0" encoding="ISO-8859-1"?> <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/> <ds:Reference URI="#Cards"> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/> <ds:DigestValue/> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue /> <ds:Object Id="Cards" xmlns:pd="x-schema:Cards.xml"> <ds:Card> <ds:CardNome>João S. da Silva</ds:CardNome> <ds:CardNumero>7586-4532-6575-2435</ds:CardNumero> <ds:CardValidade>05/06</ds:CardValidade> </ds:Card> <ds:Card> <ds:CardNome>Fernando Santos</ds:CardNome> <ds:CardNumero>4965-4158-7625-9863</ds:CardNumero> <ds:CardValidade>04/06</ds:CardValidade> </ds:Card> <ds:Card> <ds:CardNome>Carlos Augusto Costa</ds:CardNome> <ds:CardNumero>1734-2758-1211-6644</ds:CardNumero> <ds:CardValidade>11/06</ds:CardValidade> </ds:Card> <ds:Card> <ds:CardNome>Fernando Renault Santos</ds:CardNome> <ds:CardNumero>4965-4155-7625-9863</ds:CardNumero> <ds:CardValidade>04/05</ds:CardValidade> </ds:Card> </ds:Object> </ds:Signature>

Page 51: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

50

Figura 15: Tela do documento XML assinado digitalmente

A tela apresentada na opção deste comando valida a implementação do aplicativo

comprovando sua eficácia, pois a assinatura digital do documento exposto na tela obtém o

resultado esperado.

O comando Sair permite sair do sistema.

Page 52: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

51

5 CONCLUSÃO

As redes têm sido cada vez mais difundidas pela necessidade de troca de dados e ao

mesmo tempo, é difícil quem não se importe em ter seus dados ou documentos invadidos. Em

função disso, várias técnicas têm sido desenvolvidas para manter os dados longe de invasores,

pois estes podem causar danos, alterações ou mesmo o roubo de dados.

Atualmente tem-se desenvolvido muitos softwares, cada vez mais sofisticados, para

tentar limitar o número de ataques, por isto a intenção deste trabalho foi utilizar a tecnologia

de linguagem de marcação de dados desenvolvida para a descrição de dados chamada XML,

que permite manipular um grande volume de dados, e provavelmente irá complementar as

tecnologias existentes no momento.

O estudo teórico se conclui após a pesquisa das formas de proteção (criptografia e

assinatura digital) para documentos disponibilizados na rede.

A partir deste estudo, verificou-se a viabilidade de desenvolver um aplicativo que

demonstrasse ser uma ferramenta eficaz na proteção de dados XML criados através de um

documento texto.

O aplicativo permitiu comprovar os conceitos até então analisados em livros. A

utilização da linguagem para a programação da parte de criptografia e assinatura digital,

mostrou-se um tanto complicada, levando um maior período para adaptação e aprendizado.

Cada comando efetuado pelo aplicativo forneceu o resultado esperado, desta forma

pode-se verificar sua eficiência.

O aplicativo foi desenvolvido rodando em um computador local e sua aplicação seria

garantir que os dados estão armazenados de forma segura no computador.

É necessário lembrar que as ferramentas que são disponibilizadas para proteção de

documentos são consideradas seguras até que haja uma primeira invasão, por este motivo

Page 53: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

52

novas técnicas têm sido criadas e aprimoradas. Pode-se assegurar então, que este ciclo de

novas ferramentas não terá fim até se esgotar as possibilidades de invasões.

5.1 EXTENSÕES

Este trabalho pode ser incrementado com desenvolvimento de um outro botão de

comando onde se possa verificar a assinatura digital, desta forma o usuário poderia comparar

a assinatura que o documento traz, com o valor do hash da mensagem gerada, para saber se

houve alteração do documento.

Outra forma de incrementar o trabalho, seria disponibilizar este aplicativo em um

servidor Web para permitir a troca de informações sigilosas e/ou assinada via Web.

No aplicativo foi utilizada a criptografia de chave secreta, uma outra opção para um

trabalho futuro seria implementar a chave pública, para que não haja a necessidade de

compartilhar a chave anteriormente.

Page 54: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

53

REFERÊNCIAS BIBLIOGRÁFICAS

BRAGANHOLO, Vanessa P. Estudo de esquemas em XML. 2000. 60 f. Dissertação (Pós-Graduação em Computação) – Curso de Pós-Graduação em Computação, Universidade Federal do Rio Grande do Sul, Porto Alegre.

EASTLAKE, D. E.; NILES, K. Secure XML: the new syntax for signature and encryption. Boston: Addison-Wesley, 2002. 532p.

FIGUEIREDO, J. Segurança Máxima: o guia de um hacker para proteger seu site na Internet e sua rede. Tradução Edson Furmankiewicz. Rio de Janeiro: Campus, 2000. 826p.

FORRISTAL, J.; TRAXLER, J. Site Seguro: aplicações Web. Rio de Janeiro: Alta Books, 2002. 490p.

FURTADO, Miguel B. J. XML: Extensible Markup Language. Rio de Janeiro, [2003]. Disponível em: <http://www.gta.ufrj.br/grad/00_1/miguel/index.html>. Acesso em: 7 fev. 2005.

GUILHERME, J. Criptografia, chaves públicas e assinatura digital, para leigos. [2003]. Disponível em: <http://sbis.org.br/Criptografia.doc>. Acesso em: 10 fev. 2005.

LIGHT, R. Iniciando em XML. Tradução Neilande de Moraes. São Paulo: Mackron Books, 1999.

MARCHAL, B. XML: conceitos e aplicações. São Paulo: Berkeley Brasil, 2000. xv, 584p.

MICROSOFT. XML for MSXML. [2003]. Disponível em: <http://msdn.microsoft.com>. Disponível em: 21 maio 2005.

PÉRICAS, F. A. Redes de computadores: conceitos e a arquitetura Internet. Blumenau: Edifurb, 2003. 156p.

PRENTICE, H. XML Aplicações Práticas. Tradução, Victor Hugo da Paixão Alves. Rio de Janeiro: Campus, 1997.

RAY, E. R. Aprendendo XML. Tradução Daniel Vieira. Rio de Janeiro: Campus, 2000. 372p.

SANTOS, L. C. Como funciona o criptografia? (Rede). Rio de Janeiro, [2005]. Disponível em: <http://www.clubedasredes.eti.br/rede0009.htm>. Acesso em: 5 março 2005.

SINGH, S. O livro dos códigos. Tradução Ana Falcão Bastos. Lisboa: Temas & Debates, 2001, 402p.

Page 55: APLICATIVO USANDO XML PROTEGIDO PARA GERAÇÃO DE ...pericas/orientacoes/XMLProtegido2005.pdf · DE CONTEÚDO SEGURO A PARTIR DE UM CADASTRO DE CLIENTES ... Fluxograma do Processo

54

TROPSOFT. Serpent Encryption. Disponível em: <http://www.tropsoft.com>. Acessado em: 20 maio 2005.