3.4 Mecanismos de Segurança
3.4.2 Assinatura Digital e Entidades Intermediárias
A assinatura digital é um mecanismo de autenticação que permite que o criador de uma
mensagem anexe um código que atue como uma assinatura (STALLINGS; VIEIRA,2008). A
utilização da assinatura digital providencia a prova inegável de que uma mensagem veio do
emissor. Para verificar este requisito, as seguintes propriedades são necessárias (TANENBAUM,
2003):
• Autenticidade: o receptor deve poder confirmar que a assinatura foi feita pelo emissor;
• Integridade: qualquer alteração da mensagem faz com que a assinatura não corresponda mais ao documento;
• Não repúdio: o emissor não pode negar a autenticidade da mensagem.
A assinatura digital consiste na criação de um código, por meio da utilização de uma chave, de modo que a pessoa ou entidade que receber uma mensagem contendo este código possa verificar se o remetente é mesmo quem diz ser e identificar qualquer mensagem que possa ter sido modificada.
Para garantir a integridade de uma determinada mensagem ou a autenticidade de um determinado emissor podem-se utilizar entidades intermediárias. Em um ambiente de computação em nuvem, as entidades intermediárias tem um papel fundamental para permitir que organizações associadas se autentiquem. Para isso, as propriedades dos métodos de assinatura digital e das criptografias de chave simétrica e pública são combinadas para a geração de um certificado digital.
3.4.2.1 Assinaturas com chave simétrica
Na assinatura com chave simétrica é utilizado um intermediário conhecido como central de distribuição de chave (KDC – Key Distribution Center), no qual todos os envolvidos nas
trocas de mensagens confiam (KUROSE; ROSS,2013).
O usuário escolhe uma chave secreta e a leva para o KDC. Quando o emissor envia uma mensagem, esta mensagem passa pelo intermediário que verifica a sua origem, onde ele só aceitará a mensagem se ela for criptografada com a chave secreta daquele emissor, descriptografa e a envia ao receptor. O receptor recebe a mensagem com o texto simples e a mensagem assinada pelo KDC. Ou seja, o KDC gera um certificado digital que atesta a identidade do emissor da mensagem. Um exemplo de sistema projetado para isso é o Kerberos.
O Kerberos é um serviço de autenticação projetado para uso em um sistema distribuído, onde ele utiliza um serviço de autenticação de terceiros confiável, que permite que clientes e
servidores estabeleçam uma comunicação autenticada (STALLINGS; VIEIRA,2008).
3.4.2.2 Assinaturas com chave assimétrica
Na criptografia de chave assimétrica é utilizada a autoridade certificadora (CA – Certi- fication Authority) que possui a responsabilidade de verificar se determinada chave pertence a uma entidade. Se a chave pública for certificada e se a autoridade certificadora que a certificou for confiável, então a veracidade sobre a quem essa chave pertence é garantida.
Um exemplo é o serviço de autenticação X.509 que define uma estrutura para a provisão de serviços de autenticação pelo diretório X.500 aos seus usuários. Esse diretório pode ser usado como um repositório de certificados de chave pública, no qual cada certificado contém a chave pública de um usuário e é assinado com a chave privada de uma autoridade certificadora confiável
(STALLINGS; VIEIRA,2008). O OpenLDAP (Open Lightweight Directory Access Protocol) é
um exemplo de serviço de diretório com as características descritas.
No entanto, fazer uma única CA emitir todos os certificados do mundo não funcionaria, pois ela seria um ponto central de falha, além de ficar sobrecarregada. Por essas razões foi desenvolvida a PKI (Public Key Infrastructure).
Uma PKI possui vários componentes, como usuários, autoridades certificadoras, certi- ficados e diretórios e é um órgão que tem como objetivo manter uma estrutura de emissão de chaves públicas baseada no princípio da terceira parte confiável, oferecendo uma mediação de credibilidade e confiança em transações entre partes que utilizam certificados digitais. A sua principal função é definir um conjunto de técnicas, práticas e procedimentos a serem adotados pelas entidades a fim de estabelecer um sistema de certificação digital baseado em chave pública
3.4. Mecanismos de Segurança 37
3.4.2.3 Sumário de mensagens
Apesar da utilização de uma entidade intermediária ser uma estratégia válida para a validação de identidades, distribuição de chaves e emissão de certificados, a exigência de que todos os envolvidos confiem nela pode ser um fator crítico, visto que atacantes podem utilizar desse artifício para interceptar e manipular dados. Dessa forma, pode ser interessante que o ato de assinatura de documentos não exija a presença de uma autoridade intermediária.
A assinatura digital com criptografia assimétrica traz uma solução para esse problema. Devido à lentidão dos algoritmos assimétricos, os métodos de assinatura digital assinam um sumário da mensagem, também conhecido como resumo da mensagem, ao invés da mensagem toda. Esse sumário é obtido por meio do processamento da mensagem em uma função hash, a qual
extrai um trecho qualquer do texto e, a partir dele, gera uma cadeia de bits (MORENO; PEREIRA;
CHIARAMONTE,2005). Dessa forma, tem-se a combinação da criptografia assimétrica com a
função hash na geração da assinatura digital. Essa combinação é apresentada na Figura5.
Sumário da mensagem SHA-1 Criptografia com chave privada Sumário criptografado enviado ao receptor Documento Chave privada do emissor Sumário
Documento enviado ao receptor
Figura 5 – Assinatura digital utilizando criptografia de chave púbica e função hash, adaptado de (ROSENBERG; REMY,2004)
Inicialmente aplica-se uma função hash, como por exemplo, o SHA-1 (Secure Hash Algorithm 1), sobre o texto original gerando um sumário de tamanho fixo. Em seguida, ocorre a criptografia do sumário utilizando a chave privada do emissor e o envio do documento original juntamente com o sumário criptografado para o receptor. O receptor recebe o documento original e o sumário criptografado, aplica a mesma função hash sobre o documento original e compara
bita bit o resultado obtido com o sumário descriptografado a partir da chave pública do emissor.
Sumário da mensagem SHA-1 Sumário criptografado Documento Descriptografia com chave pública
Sumário Chave pública do emissor Sumário da mensagem São compatíveis? Sim: assinatura válida Não: assinatura inválida
Figura 6 – Verificação da assinatura digital, adaptado de (ROSENBERG; REMY,2004)
Para atingir o objetivo especificado, é necessário que a função hash tenha as seguintes
características (BURNETT; PAINE,2001):
• Ser eficiente e rápida para gerar o sumário da mensagem;
• Não permitir que o documento original seja gerado a partir do sumário da mensagem; • Não gerar o mesmo sumário a partir de dois documentos originais distintos.
Os algoritmos de função hash mais utilizados são o MD5 (Message Digest Algorithm 5) e o SHA-1. O MD5 é um algoritmo de hash de 128 bits unidirecional desenvolvido pela RSA Data Security, descrito na RFC 1321, e muito utilizado por softwares com o protocolo P2P (Peer-to-Peer) na verificação de integridade de arquivos e logins. Foi desenvolvido em 1991 por Ronald Rivest para suceder ao MD4 que tinha alguns problemas de segurança. Por ser um algoritmo unidirecional, uma hash MD5 não pode ser transformada novamente no texto que lhe deu origem. Dessa forma, o método de verificação é feito pela comparação das duas hash, uma
da mensagem original confiável e outra da mensagem recebida (TANENBAUM,2003).
O SHA-1 é um algoritmo que produz um sumário de 160 bits. Ele é baseado no MD4, que é semelhante ao MD5, com algumas operações adicionais. Ele é significantemente mais lento do que o MD5, mas o sumário de 160 bits apresenta uma segurança maior contra ataques
3.4. Mecanismos de Segurança 39
estilo força bruta. Podem-se gerar sumários maiores como os de 224, 256 e 512 bits, porém o seu comprimento adicional acarreta em maiores custos para a geração, armazenamento e
comunicação de assinaturas digitais (COULOURIS; DOLLIMORE; KINDBERG,2007).