2 Mecanismos de segurança e notificação

Conforme a proposta de Gerenciamento de Segurança OSI, vários são os mecanismos de proteção que podem ser usados para garantir segurança a um ambiente de comunicação em sistemas abertos. Neste capítulo serão apresentadas as principais técnicas, padrões e softwares relacionados a esses mecanismos.

2.a Mecanismos de autenticação

Nos sistemas distribuídos, os parceiros da comunicação (isto é, o usuário origem e o usuá-rio destino de um intercâmbio) estão interconectados através de uma rede aberta na qual vários outros usuários também tem acesso. Assim sendo todo o intercâmbio realizado entre os dois parceiros deverá ser encaminhado através da rede, ficando portanto propício de ser intercepta-do por um outro usuário que poderá modificar ou destruir as mensagens enviadas bem como inserir mensagens falsas nesta comunicação. Particularmente o processo de autenticação de usuários é bastante prejudicado por essas possibilidades de interceptação, decorrentes do fato de que as informações confidenciais que são necessárias para autenticar o cliente (ou o usuário origem) junto ao servidor (ou usuário destino), poderão ser manipuladas por outros usuários ao trafegarem pela rede.

Devido a esses problemas de vulnerabilidade da comunicação possibilitando ameaças à se-gurança do sistema, um sistema de autenticação propício a esse ambiente deverá requerer:

As ameaças de segurança em um ambiente distribuído poderão ser controladas usando criptografia para fornecer uma autenticação forte, mútua e contínua. Independentemente de qual técnica de criptografia se irá utilizar, é necessário que os parceiros da comunicação te-nham conhecimento da chave criptográfica que irá ser utilizada na segurança do seu processo; se a chave de criptografia é compartilhada apenas entre os dois parceiros, denominamos esse processo de protocolo de autenticação two-party.

Na criptografia simétrica, cada dupla de parceiros deverá compartilhar entre si uma única informação confidencial; a cada novo parceiro de comunicação, uma nova informação confi-dencial deverá ser intercambiada entre eles. Dependendo do número de parceiros que estão envolvidos no processo de comunicação, poderá ficar bastante complexo a etapa de autentica-ção devido a quantidade de chaves confidenciais que irão ser necessárias para autenticar cada parceiro isoladamente.

Na criptografia assimétrica, teremos um problema semelhante com o gerenciamento das chaves públicas que, apesar de não ser uma informação confidencial como no caso anterior, continuará existindo uma diversidade de chaves (cada parceiro possui a sua própria chave pú-blica).

Baseado na complexidade do processo de autenticação em sistemas distribuídos, idealizou-se um serviço de autenticação utilizando um servidor dedicado: Servidor de Autenticação (SA). Nesse protocolo o usuário precisará ter conhecimento apenas da chave relacionada com o SA; por sua vez o SA deverá ter conhecimento de todas as chaves dos usuários relacionados com o seu domínio de atuação. Esse tipo de protocolo é denominado protocolo de autentica-ção third-party por existir um terceiro parceiro que será encarregado de, com segurança, ad-ministrar os usuários e suas senhas bem como autenticar usuários autorizados por sessão de comunicação.

É apresentado a seguir o software Kerberos como uma proposta de serviço de autenticação baseado na existência de um Servidor de Autenticação.

2.a.1 KERBEROS

Kerberos é um serviço de autenticação distribuída desenvolvido no MIT (Massachusetts Institute of Technology) que permite um parceiro provar sua identidade perante um outro par-ceiro sem enviar dados confidenciais pela rede. Esse processo é realizado como um serviço de autenticação terceiro parceiro confiável utilizando criptografia convencional; opcionalmente ele também fornece integridade e confidencialidade das mensagens intercambiadas.

A origem do nome desse serviço é proveniente da mitologia grega, onde KERBEROS era o nome do cachorro de três cabeças que vigiava os portões de Hades e sua principal missão era evitar a entrada de pessoas ou coisas indesejáveis. Assim sendo foi o nome dado ao serviço de autenticação do projeto Athena por ele estar baseado em três servidores: Servidor de Autenti-cação (SA), Servidor de Concessão de Ticket (TGS) e Servidor de Administração (KADM).

O Kerberos utiliza criptografia para provar a identidade do usuário manipulando dois tipos de chave:

Existem dois tipos de credenciais usadas neste modelo, o ticket e o autenticador:


fig 3 - Modelo de funcionamento do Kerberos

2.b Mecanismos de criptografia

A criptografia transforma uma informação legível em uma informação inelegível, através de um algoritmo criptográfico e geralmente uma chave.

Os modernos sistemas criptográficos podem ser classificados em duas categorias de acordo com o tipo de chave que utiliza:

Como a criptografia simétrica está baseada no compartilhamento de uma mesma chave en-tre o emissor e o destinatário da mensagem, o principal problema deste método é o gerencia-mento das chaves: a chave secreta tem que ser gerada, transmitida e armazenada de uma ma-neira segura e confidencial para garantir que apenas o usuário origem e o usuário destino te-nham acesso a essa informação; ela deve ser protegida da ação dos intrusos que poderão tentar capturá-la para decifrar as mensagens secretas intercambiadas entre os parceiros de uma co-municação.

A principal vantagem da criptografia assimétrica é não necessitar desse tipo de gerencia-mento de chaves: ela possibilita uma maior segurança por não precisar compartilhar uma mes-ma chave criptográfica. A chave privada deve ser conhecida apenas pelo usuário proprietário e a chave pública correspondente (necessária para fazer o processo criptográfico inverso) poderá ser conhecida por todos. Apesar da criptografia assimétrica ser bem mais segura que a simétri-ca, ela possui uma grande desvantagem: para permitir a propriedade de utilizar duas chaves distintas, a sua execução está baseada em protocolos complexos que exigem mais recursos computacionais. Assim sendo os algoritmos simétricos são bem mais rápidos que os assimétri-cos.

A solução ideal seria combinar as duas técnicas de tal forma que usufruíssemos da vantagem de segurança do algoritmo assimétrico e da vantagem de rapidez de execução do algoritmo simétrico. Um método híbrido bastante utilizado atualmente baseia-se em:

Serão apresentados a seguir dois dos principais algoritmos criptografadores.

2.b.1 Algoritmo simétrico - DES

O DES - Data Encryption Standard - é um algoritmo de bloco simétrico desenvolvido pela IBM visando atender a uma solicitação do governo dos EUA e em nov/76, foi adotado como padrão federal americano (FIPS46 - Federal Information Processing Standard). Atualmente é o algoritmo mais divulgado e utilizado em sistemas criptográficos no mercado mundial.

A chave criptográfica DES possui apenas 56 bits; assim sendo, a segurança do DES é bas-tante questionada: o algoritmo pode ser quebrado por um ataque de força bruta pois a chave secreta faz parte de um conjunto de 256 chaves (esse procedimento levará 2000 anos de execu-ção para descobrir a chave secreta se considerarmos que uma máquina realizasse uma cripto-grafia DES em 1 microsegundo). Podemos concluir que esse algoritmo poderá não ser apro-priado para confidencialidade de informações de longa duração (por exemplo para informa-ções diplomáticas que devem ser mantidas sobre sigilo por mais de 40 anos) mas pode ser to-talmente adequado para proporcionar segurança para informações confidenciais de curta dura-ção (por exemplo nos dados de uma aplicação de transferência eletrônica de fundos).

Existe uma técnica de melhorar a segurança do algoritmo DES utilizando uma criptografia tripla que é conhecida como DES triplo. Nesta técnica cada mensagem passa por três proces-sos criptográficos que irão reduzir a possibilidade da segurança ser quebrada através de ata-ques de força bruta. Isto equivale a, no mínimo, dobrar o tamanho da chave DES para 112 bits.

2.b.2 Algoritmo assimétrico - RSA

O RSA (Rivest, Shamir e Adleman algorithm) é o mais popular algoritmo de chave pública bem como o mais fácil de compreender e de implementar. Este algoritmo foi desenvolvido por um grupo de pesquisadores: Ronald Rivest do MIT, Adi Shamir do Weizmann Institute de Israel e Leonard Adleman da University of Southern California, sendo patenteado pelo MIT em 1978.

A segurança do RSA está baseada na dificuldade de fatorar grandes números: as chaves são calculadas matematicamente combinando dois números primos de grande tamanho. Mesmo se conhecendo o produto desses número primos (que faz parte da chave pública divulgada), a segurança do algoritmo é garantida pela complexidade de fatorar esse produto e se obter os valores secretos.

A grande desvantagem do RSA é portanto a lentidão do processo que envolve exponencia-ção modular (é realizado uma série de multiplicações modulares).

2.c Mecanismos de integridade e assinatura digital

As mensagens intercambiadas entre os parceiros devem ser protegidas contra modificações que possam a vir ocorrer durante a fase da comunicação. Na realidade, não existem maneiras de evitar que a mensagem seja corrompida mas caso isso venha a ocorrer, os parceiros obriga-toriamente devem identificar essa adulteração.

Dentre os mecanismos de integridade, podemos destacar os mecanismos à prova de colisão (collision proof) - que compreendem as funções hash one-way ou message digest: são funções que a partir de uma mensagem de tamanho variável e aplicando certos cálculos matemáticos, é gerado um valor resumo da mensagem (hash ou checksum) de tamanho fixo. As principais características dessas funções é que deve ser computacionalmente impossível descobrir a men-sagem original a partir do seu valor hash e de preferência não deverá existir duas mensagens que gerem o mesmo valor hash.

A assinatura digital é uma aplicação especializada da criptografia utilizada para assegurar a origem da mensagem e a identidade do emissor. Esse esquema está baseado na utilização de algoritmos criptográficos de chave pública: o emissor irá assinar a mensagem usando sua chave privada e o destinatário irá decodificar a assinatura usando a chave pública do emissor. Assim sendo no processo de assinatura digital, a chave privada é usada apenas para assinar uma men-sagem e a chave pública é usada apenas para autenticar assinaturas. Uma assinatura digital segura não pode ser repudiada isto é, um assinante de um documento não poderá rejeitar pos-teriormente que sua assinatura foi forjada.

A seguir será comentado um dos algoritmos message digest mais utilizados: o MD5.

2.c.1 MD5

O MD5 foi projetado por Ron Rivest e é de domínio público para uso em geral. A partir de uma mensagem de um tamanho qualquer, ele gera um valor hash de 128 bits; com este al-goritmo é computacionalmente impraticável descobrir duas mensagens que gerem o mesmo valor bem como reproduzir uma mensagem a partir do seu digest.

O algoritmo MD5 é utilizado como mecanismo de integridade em vários protocolos de pa-drão Internet (RFC1352, RFC1446, etc.) bem como pelo CERT e CIAC.


Índice
Capítulo 1
Capítulo 3