assinaturas digitais no openofficere.granbery.edu.br/artigos/mjk0.pdf · no brasil, a pki vem...
TRANSCRIPT
1
Revista Eletrônica da Faculdade Metodista Granbery
http://re.granbery.edu.br - ISSN 1981 0377
Curso de Sistemas de Informação - N. 5, JUL/DEZ 2008
ASSINATURAS DIGITAIS NO OPENOFFICE.ORG
Flávio Alexandre dos Reis*
Chrystianne Miranda da Rocha Lopes**
Marcos Fabiano Verbena***
Bruno de Paula Ribeiro****
Patrícia Lima Quintão*****
RESUMO
Com a evolução da tecnologia e o aumento do uso da Internet, os documentos estão sendo substituídos por arquivos eletrônicos, e conseqüentemente levando a um aumento da preocupação com autenticidade e integridade dos mesmos. São apresentadas neste artigo tecnologias de assinatura digital utilizadas pelo OpenOffice.org, verificando como é feita a interação dos aplicativos com os repositórios de certificados e plataformas operacionais. E também verificamos a sua adequação aos padrões mundiais de assinatura e às exigências da ICP-Brasil.
PALAVRAS-CHAVE: Assinatura Digital, Documentos Eletrônicos.
ABSTRACT
With the technology evolution and the increasing of Internet using, the document are being replaced by electronic files, and consequently leading to an increasing with the concern of the authenticity and integrity of them. They are presented in this article technologies for digital signature used by OpenOffice.org, as there is the interaction of applications with the repositories of certificates and operational platforms. And also the adequacy to the global standards of signing and to the requirements of the ICP-Brazil.
KEY-WORDS: Digital Signature, Electronic Documents.
2
* Graduado em Informática pela Faculdade Presidente Antônio Carlos (UNIPAC ), Especialista em Redes de Computadores pelo Centro de Ensino Superior de Juiz de Fora – CES-JF, pós graduando em Segurança da Informação pela Faculdade Metodista Granbery – MG, Analista de Sistema pela empresa Life Equipamentos Elétricos Ltda. E-mail [email protected].
**Bacharel em Sistemas de Informação pelo Centro de Ensino Superior de Juiz de Fora – MG; pós graduando em Segurança da Informação pela Faculdade Metodista Granbery – MG, Analista de Infra-Estrutura na empresa Unimed Juiz de Fora Cooperativa de Trabalho Médico Ltda. E-mail: [email protected].
***Graduado em Sistemas de Informação pelo Centro de Ensino Superior de Juiz de Fora – MG; pós-graduando em Segurança da Informação pela Faculdade Metodista Granbery – MG; analista responsável pelo serviço de Tecnologia da Informação da Clínica Ultrimagem. E-mail: [email protected]
**** Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ; profissional de Segurança da Informação da empresa Certisign; professor do curso de Pós-Graduação em Segurança da Informação da FMG. E-mail: [email protected].
*****Mestre em Engenharia de Sistemas e Computação pela COPPE/UFRJ; Especialista em Gerência de Informática pela Faculdade Machado Sobrinho; coordenadora pedagógica e professora do curso de Pós-Graduação em Segurança da Informação da FMG; Coordenadora de Segurança da Informação na Prefeitura de Juiz de Fora. E-mail: [email protected].
3
1. INTRODUÇÃO
Atualmente os documentos eletrônicos fazem parte do cotidiano de todos. São
considerados documentos digitais todas as informações armazenadas em um dispositivo
eletrônico (disco rígido, disquete, CD- ROM, DVD-ROM, fitas magnéticas) ou transmitidas
através de um método eletrônico. Alguns exemplos são softwares, banco de dados, arquivos
de texto, som, imagem, bem como as informações acessadas on-line – via Internet, o que
inclui mensagens eletrônicas pessoais (e-mail), fóruns de discussão, arquivos de hipertexto,
ou arquivos da Internet usando protocolos diversos, como FTP, Telnet, entre outros, situados
em seus sites.
A forma original do documento eletrônico é em bits, não sendo assinado em papel ou
impresso. A circulação e verificação de autenticidade são feitas na forma original, eletrônica.
Várias são as vantagens em relação ao armazenamento, transmissão e recuperação.
A dificuldade está em manter a segurança de documentos eletrônicos, comparado aos
documentos físicos. Não há como colocar uma assinatura manuscrita em um documento
eletrônico para garantir a sua autenticidade. E os documentos eletrônicos podem ser
facilmente alterados, sem vestígios físicos apuráveis. Contudo, é necessário utilizar um
mecanismo técnico que permita conferir a autenticidade (certeza de quem criou o documento)
e a integridade (não alteração do documento após a sua criação) do mesmo.
A única maneira reconhecida de garantir a autenticidade e a integridade de documentos
eletrônicos é com o uso de assinaturas digitais.
Nesse contexto este artigo tem como objetivo apresentar as tecnologias de assinatura
digital utilizadas pelo OpenOffice.org, verificando como é feita a interação dos aplicativos
com os repositórios de certificados e plataformas operacionais. E também são verificadas a
sua adequação aos padrões mundiais de assinatura e às exigências da ICP-Brasil.
Para isso apresenta as seguintes seções além desta introdução: a segunda seção define o
conceito de assinatura digital. A terceira seção apresenta o teste com o OpenOffice.org,
verificando como é feita a interação do aplicativo com os repositórios de certificados e
plataformas operacionais. A quarta seção apresenta as adequações aos padrões mundiais de
assinatura da ICP-Brasil. Por fim, têm-se as considerações finais do trabalho e as referências
bibliográficas utilizadas.
4
2. ASSINATURA DIGITAL
Conforme STALLINGS (2008), uma assinatura digital é um mecanismo de
autenticação que permite ao criador de uma mensagem anexar um código que atue como uma
assinatura. A assinatura é formada tomando o hash da mensagem e criptografando-a com a
chave privada do criador. A assinatura garante a origem e a integridade da mensagem
(STALLINGS, 2008).
O processo de assinatura digital de documentos eletrônicos usa um conceito conhecido
como função hashing. Como o uso de um sistema de criptografia assimétrica nas assinaturas
digitais pode causar muita demora numa cifragem/decifragem, a função hashing se mostrou
como a solução ideal. Seu funcionamento ocorre da seguinte forma: a função hashing analisa
todo o documento e com base num complexo algoritmo matemático gera um valor de
tamanho fixo para o arquivo. Esse valor, conhecido como "valor hash", é calculado com base
nos caracteres do documento. Isso deixa claro que o arquivo em si não precisa, pelo menos
teoricamente, ser criptografado (caso não seja algo secreto), mas sim acompanhado do valor
hash. Com isso, qualquer mudança no arquivo original, mesmo que seja de apenas um único
bit, fará com que o valor hash seja diferente e o documento se torne inválido (STALLINGS,
2008).
O valor da assinatura contém o valor do resumo criptográfico assinado com a chave
privada do assinante. E, por fim, o elemento indica a chave que será usada para verificar a
assinatura. Sendo assim, esse elemento pode conter um certificado X.509, por exemplo, ou
qualquer outra informação sobre a chave do assinante.
Para verificar a integridade de um documento assinado, ou seja, assegurar que este não
foi modificado, o receptor deve recalcular o resumo criptográfico e compará-lo com o resumo
criptográfico que se encontra na mensagem. Se os dois se relacionam, então a integridade do
documento está garantida (CAMARGO, 2006).
É interessante notar que é praticamente impossível descobrir a chave privada através da
chave pública. Isso se deve ao algoritmo aplicado. Se usado o método RSA (Rivest, Shamir
and Adleman) - dois números primos muito grandes (mas muito grandes mesmo!) são
multiplicados. O resultado é a chave pública. Para descobrir é necessário fazer uma fatoração,
mas isso é impraticável (ALECRIM, 2005).
3. OPEN OFFICE (.ODT)
5
O OpenOffice.org permite que textos, planilhas e outros trabalhos, nativamente,
possam ser assinados e enviados com segurança, além de ter como padrão o Open Document
Format (ODF) o que permite uma maior interoperabilidade entre várias suítes de
desenvolvedores diferentes.
A seguir é ilustrado um exemplo de assinatura no OpenOffice.org.
Com o certificado devidamente instalado, crie seu documento e o salve com a
extensão .odt. Em seguida, acesse o menu Arquivo, opção Assinaturas Digitais e clique em
adicionar (Figura 01).
Figura 01. Tela para apresentação do certificado utilizado para a assinatura
Clicando no botão Adicionar, têm-se, na tela de trabalho, os certificados armazenados
na máquina ou os certificados armazenados em dispositivos físicos, como smartcard ou
tokens habilitados, conforme visto na Figura 02.
Figura 02. Tela contendo todos os certificados disponíveis para a assinatura
Ao se clicar em exibir, os detalhes do certificado são apresentados (Figura 03).
6
Figura 03. Informações do Certificado
É possível visualizar o certificado com maiores detalhes, conforme visto na Figura 04.
Nessa tela tem-se a versão do certificado, número de série, órgão emissor do certificado, data
de validade, etc.
Figura 04: Visualização dos detalhes do certificado selecionado
Na guia Caminho da certificação, ilustrada na Figura 05, pode-se visualizar o caminho
da Certificação, bem como o status da mesma.
Figura 05: Visualização da árvore ou raiz do certificado
A Figura 06 destaca quem assinou o documento, bem como se as assinaturas deste
7
documento são válidas.
Figura 06. Apresentação da assinatura
A partir deste momento, na Figura 07, podem-se exibir os detalhes de cada assinatura e
seus respectivos certificados.
Figura 07: Visualização de várias assinaturas para o mesmo documento
Alterando-se a extensão do arquivo gerado assDigital.odt para assDigital.zip,
pode-se observar os detalhes da assinatura. O conteúdo do arquivo pode ser visualizado
conforme Figura 08.
8
Figura 08. Visualização do conteúdo do arquivo .Zip
Dentro do diretório /META-INF localizado na Raiz do arquivo, agora
descompactado, encontra-se o xml com as informações da assinatura (Figura 09).
Figura 09. Arquivo .xml que contem informações da assinatura
O arquivo “documentsignatures.xml” (Figura 10) trás as informações sobre a
assinatura.
A principal característica de Assinaturas XML é a possibilidade de execução do
processo apenas em partes selecionadas da árvore XML, sem necessidade de assinar um
documento inteiro – um cenário totalmente alinhado com as características de documentos
digitais, onde diversas partes desses documentos são criadas, modificadas e apagadas em
diversos momentos por diversas pessoas.
A primeira etapa na criação de uma assinatura XML é a identificação das partes de um
documento que serão assinadas. De acordo com GOULART et al. (2006) essas partes são
especificadas dentro do elemento <Reference> através de URIs (Universal Resource
Identifiers) que contêm dois elementos filhos: <DigestValue> e <DigestMethod>. O primeiro,
tem o objetivo de armazenar a “essência” da referência, que é obtida através do algoritmo
especificado pelo segundo elemento, o <DigestMethod> (GOULART et al., 2006).
9
Todos os elementos <Reference> são filhos do elemento <SignedInfo>, responsável
por agrupar todas as partes da árvore que serão assinadas, as quais são transformadas em uma
forma canônica, identificada pelo elemento <CanonicalizationMethod>. Esse procedimento é
fundamental para garantia da interoperabilidade, uma vez que garante que a representação dos
dados será sempre a mesma a ser utilizada na geração da Assinatura Digital através do
algoritmo referenciado pelo elemento <SignatureMethod> (GOULART et al., 2006).
O resultado do processo realizado pelo algoritmo referenciado pelo elemento
<SignatureMethod> é armazenado no elemento <SignatureValue>, que por sua vez é
utilizado em conjunto com o elemento <KeyInfo> - que contém a chave pública do
certificado digital assinante do documento
Figura 10. Visualização de todas as informações da assinatura
4. PADRÕES MUNIDIAIS DE ASSINATURA E EXIGÊNCIAS DA ICP-
BRASIL
Devido à grande necessidade de segurança nas transações e documentos, criou-se por
meio de medida provisória a chamada ICP-Brasil, responsável por várias atribuições diante
das Autoridades Certificadoras - ACs.
Foram criados ainda padrões para assinatura digital que vêem sendo estudados e
otimizados a cada dia. Esses assuntos serão tratados nessa sessão.
4.1 INFRA-ESTRUTURA DE CHAVE PÚBLICA BRASILEIRA - ICP-BRASIL
10
Segundo KUROSE e ROSS (2007), a PKI vem sendo tratada com muita importância
em vários segmentos de mercado, principalmente na área de saúde (Prontuários médicos de
pacientes), na área pública (emissão de documentos assinados digitalmente) e na área
financeira (transações eletrônicas).
No Brasil, a PKI vem conquistando espaço, segundo KUROSE e ROSS (2007),
principalmente devido às iniciativas do governo, como são os casos do Sistema Brasileiro de
Pagamentos (SPB) e da ICP-Brasil, criados pela medida provisória nº 2200-2, de 24 de agosto
de 2001. De acordo com CERTISIGN (2008), as atividades do Comitê Gestor da ICP-Brasil
foram regulamentadas e redefinidas pelo Decreto 3.872 (CERTISIGN, 2008)
A ICP-Brasil é responsável pela infra-estrutura de chaves públicas no Brasil, criadora do
conjunto de técnicas, práticas e procedimentos desenvolvidos para sustentar sistemas
criptográficos com base em certificados digitais (ICP-BRASIL, 2008).
O comitê da ICP-Brasil, também chamado CG-ICP segundo ICP-BRASIL, é designado
pela Presidência da República para adotar as medidas necessárias ao funcionamento da
Infra-estrutura de Chaves Públicas Brasileira. O CG-ICP tem como função coordenar a
implantação e o funcionamento da ICP-Brasil, estabelecer a política, os critérios e as normas
para licenciamento de Autoridades Certificadoras (AC), Autoridades de Registro (AR) e
demais níveis de serviços de suporte da cadeia certificadora (ICP-BRASIL, 2008).
O CG-ICP conta com a ajuda de uma comissão técnica executiva (COTEC) a quem
cabe assistir e dar suporte técnico ao CG da ICP-Brasil (ICP-BRASIL, 2008).
Por meio da utilização dessa infra-estrutura de chaves, de acordo com CERTISIGN
(2008), é possível com uma Internet segura e a utilização de certificados digitais estabelecer
transações e comunicações sem riscos para ambas as partes envolvidas. Com a utilização
desses certificados digitais, podem-se assinar documentos eletrônicos, proteger e gerar recibos
de transações e comunicações
Segundo CERTISIGN (2008), “quando se utiliza um certificado digital, as partes
envolvidas tornam-se responsáveis (e sofrem conseqüências) por todas as comunicações ou
transações de que participaram”.
4.2 ESTRUTURA ICP-BRASIL
11
Na Figura 11 observa-se que a ICP-Brasil é uma AC raiz, e que existem abaixo dela
outras ACs de níveis menores. Segundo ITI (2008), sendo uma autoridade certificadora raiz a
ICP-Brasil é a executora das políticas de certificação e normas técnicas e operacionais criadas
e aprovadas pelo CG ICP-Brasil, e ainda é responsável por emitir, expedir, distribuir, revogar
e gerenciar os certificados das ACs de nível inferior de acordo com ICP-Brasil. Emitir a lista
de certificados revogados, bem como fiscalizar e auditar as ACs, ARs e demais prestadores
credenciados também são funções da agência certificadora raiz (ICP-Brasil).
Figura 11. Estrutura ICP-Brasil
4.2 PADRÃO EXTENSIBLE MARKUP LANGUAGE DIGITAL SIGNATURE
(XML-DSIG)
A especificação XML-DSig foi criada, segundo GOULART et al. (2006), por meio de
um esforço conjunto da W3C e do IETF. Seu objetivo era o de padronizar o modo como as
informações de assinaturas digitais de qualquer tipo de dado são armazenadas em XML,
12
visando garantir que qualquer aplicação em conformidade com uma estrutura padrão usufrua
das informações.
Uma das principais características da assinatura XML-DSIG é a possibilidade de
execução do processo apenas em partes selecionadas da árvore XML, sem necessidade de
assinar um documento inteiro – “um cenário totalmente alinhado com as características de
documentos digitais, onde diversas partes desses documentos são criadas, modificadas e
apagadas em diversos momentos por diversas pessoas” (CIMA, 2007).
5. CONSIDERAÇÕES FINAIS
O artigo visou demonstrar por meio de testes com o editor de texto OpenOffice.org
que os documentos estão sendo substituídos cada vez mais por arquivos eletrônicos e que
esses arquivos vêem acompanhando esse processo, implementando várias ferramentas e
metodologias que podem garantir a confiabilidade, integridade e autenticidade da informação.
Para complementar o estudo, foram tratados conceitos de assinatura digital, ICP-Brasil
e alguns padrões de certificado digitais atualmente difundidos no mercado.
Conclui-se com o estudo que a assinatura digital e criptografia por meio de editores
eletrônicos é uma forma que garantir a integridade do documento. Ainda são necessários
conhecimentos básicos para a criação de arquivos eletrônicos assinados. Por exemplo, muitos
ainda não sabem o que vem a ser uma chave privada ou ao menos o que é um certificado
digital.
É possível identificar que a ICP-Brasil vem cumprindo seu papel de autoridade
certificadora raiz e vem crescendo de forma significativa com seus padrões e, junto a isso,
fortalecendo a PKI Brasileira. Identificamos ainda os principais padrões de criptografia de
chave pública: o PKCS#7 e o XMLDsig.
REFERÊNCIAS BIBLIOGRÁFICAS
ALECRIM, Emerson. Assinatura Digital e Certificação Digital. 2005. Disponível em: <http://www.infowester.com/assincertdigital.php>. Acesso em: 17 jul. 2008.
CAMARGO, E.T., Transposicão de Autenticação em Arquiteturas Orientadas A Serviços Através de Identidades Federadas, Florianópolis, 2006.
CERTISIGN. ICP-Brasil. Disponível em: <https://www.certisign.com.br/companhia/icp-
13
brasil/>. Acesso em: 16 jul. 2008.
CIMA, F. Segurança na Microsoft. 2007. Disponível em: <http://blogs.technet.com/fcima/archive/2007/08/03/certifica-o-digital-no-openxml.aspx> . Acesso em: jul. 2008.
GOULART, L. J. ; OLIVEIRA, D. A. A. de; MORGADO, E. M. Assinador Digital para Padrões XML Abertos de Documentos. 2006. Disponível em: <http://www.ltia.fc.unesp.br/ltia2006/Artigos/AssinadorDigital/index_br.htm>. Acesso em: 10 set. 2008.
ICP-BRASIL. Disponível em: <https://www.icpbrasil.gov.br/apresentacao>. Acesso em: 16 jul. 2008.
ITI. Disponível em:<http://www.iti.gov.br/twiki/bin/view/Certificacao/EstruturaIcp>. Acesso em: 16 jul. 2008.
KUROSE, J. F.; ROSS, K.W. Redes de Computadores e a Internet - Uma abordagem top-down. São Paulo: Pearson, 3 ed., 2007.
NAKAMURA, E. T.; de GEUS, P. L. Segurança de Redes em Ambientes Cooperativos. São Paulo: Novatec Editora, 2007.
STALLINGS, W. Criptografia e Segurança de Redes. Princípios e Práticas. 4 ed. São Paulo: Prentice Hall, 2008.