Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Braslia DF 2011
Monografia apresentada como parte dos requisitos para obteno do ttulo de Tecnlogo em Desenvolvimento de Sistemas com enfase em Redes de Computadores , pela Unio Educacional de Braslia UNEB Habilitao: Tecnologia Orientador: Prof. Clauder Costa de Lima
Braslia DF 2011
EVANGELISTA, Victor N. / DA SILVA, Cristina L. Anlise de segurana do portal / Victor N. Evangelista, Cristina L. Da Silva. Unio Educacional de Braslia UNEB, 2011. Espcie de trabalho (monografia para graduao, Trabalho de Concluso de Curso TCC, para graduao em Administrao de Sistema de Informao mdulo optativo em redes) 1. Segurana 2. HTML 3. Sniffer 4. SSL 5. RSA 6. Criptografia
Monografia aprovada como requisito final para obteno do grau de Tecnlogo em Desenvolvimento de Sistemas com enfase em Redes de Computadores , pela Unio Educacional de Braslia UNEB Habilitao: Tecnologia Data de aprovao ______ / ______ / ______ BANCA EXAMINADORA Nome: Instituio: Unio Educacional de Braslia UNEB Assinatura: _____________________________________ Nome: Instituio: Unio Educacional de Braslia UNEB Assinatura: _____________________________________ Nome: Clauder Costa de Lima Instituio: Unio Educacional de Braslia UNEB Assinatura: _____________________________________
Braslia DF 2011
Dedicatria
Dedico este trabalho a meus pais que sempre me motivaram e investiram em meu desenvolvimento intelectual. Que sempre batalharam, lutaram e tiveram foras para me proporcionar o melhor que podiam me dar. Desenvolvimento que me permitiu chegar a este trabalho e que me ajudar a abrir portas no futuro. Victor Neves.
Agradecimentos
Victor Neves, Depois de tanto esforo e dedicao, posso contemplar a realizao de um trabalho que marcar para sempre a minha vida acadmica, o meu primeiro Trabalho de Concluso de Curso. Agradeo enormemente a todas as pessoas que ajudaram na construo deste trabalho. Agradeo em especial minha amiga Cristina Lopes da Silva que tanto me apoiou e me motivou a acreditar que concluiramos esta etapa de nossas vidas; e a nosso orientador Clauder Costa de Lima que se dedicou tanto quanto eu e Cristina para a realizao deste trabalho, cedendo seu tempo e pacincia para nos ajudar sempre quando precisvamos. Alm das pessoas que nos ajudaram, sem ns trs isto no seria possvel. Cristina Lopes, um momento muito feliz na minha vida -- a realizao de um sonho -tive que ter coragem, perseverana e dedicao. Contei com o apoio do Fernando, meu companheiro que esteve sempre comigo torcendo pelo meu sucesso. Dedico minha Me a quem honro por ser um exemplo de mulher; a todos os professores na pessoa do professor Clauder que muito contribuiu para a minha formao, me ajudando com seus conhecimentos para concluso do meu curso.
RESUMO
Este trabalho trata da utilizao da anlise de segurana no portal da UNEB, uma ferramenta importante e essencial a alunos e professores. Todos aqueles que utilizam o portal devem estar e se sentir seguros quanto privacidade de seus dados pessoais e acadmicos. Aps a apurao dos dados, verificou-se que h uma grande deficincia de segurana na arquitetura do atual sistema que permite ter acesso a informaes acadmicas de alunos e professores. A instituio deve buscar uma infraestrutura de segurana mais conveniente, possibilitando a alunos e professores melhor segurana de seus dados pessoais. Palavras-chaves: Segurana, HTML, sniffer, SSL, RSA.
Resumen
Este trabajo trata del uso del anlisis de seguridad en el portal de la UNEB, una herramienta importante y esencial para alumnos y profesores. Todos aquellos que usan el portal deben estar y sentirse seguros encuanto a la privacidad de sus datos personales y acadmicos. Despues de la anlisis de los datos, se verific que hay una gran deficincia de seguridad en la arquitectura del actual sistema, que permite tener acceso a informaciones acadmicas de alumnos y profesores. La institucin debe buscar una infraestructura de seguridad mas conveniente, posibilitando a alumnos y profesores mejor seguridad de sus datos personales.
ndice de ilustraes
Ilustrao 1: Modelo cliente servidor........................................................................................14 Ilustrao 2: Requisio e resposta via HTTP. (Basham, Sierra & Bate, 2008) ......................17 Ilustrao 3: Aparncia ta tela descrita no cdigo HTML........................................................18 Ilustrao 4: Envio de formulrio entre usurio e servidor. (Basham, Sierra & Bate, 2008) . .19 Ilustrao 5: Demonstrao da cifragem de cdigo (ITI, 2005, p.2).......................................22 Ilustrao 6: Demonstrao da encriptao por chave pblica e privada (ITI,2005,p.4 com alteraes do autor)...................................................................................................................23 Ilustrao 7: Primeira fase do handshake SSL..........................................................................26 Ilustrao 8: Segunda fase do handshake SSL..........................................................................26 Ilustrao 9: Terceira fase do handshake SSL...........................................................................27 Ilustrao 10: Quarta fase do handshake SSL...........................................................................28 Ilustrao 11: Incluso do cdigo de autenticao de mensagens (Stallings, p.382, 2008)......29 Ilustrao 12: Wireshark capturando login e senha...................................................................30 Ilustrao 13: Aluno sendo capturado.......................................................................................33 Ilustrao 14: Demonstrao do atual sistema de login............................................................33 Ilustrao 15: Demonstrao do funcionamento do ataque .....................................................34
SUMRIO
1. Introduo .............................................................................................................................11 2. Fundamentao terica ........................................................................................................12 2.1. Internet ..........................................................................................................................12 2.1.1. World Wide Web ...................................................................................................12 2.1.2. Correio Eletrnico ................................................................................................13 2.1.3. Funcionamento Web .............................................................................................13 2.1.4. Definies de portal ..............................................................................................15 2.2. Protocolos .....................................................................................................................15 2.2.1. O protocolo TCP ...................................................................................................15 2.2.2 O protocolo HTTP .................................................................................................16 2.3. HTML ...........................................................................................................................17 2.3.1 JavaScript ...............................................................................................................19 2.4. Segurana de Redes ......................................................................................................19 2.4.1. Definies do MD5 ..............................................................................................21 2.4.2. Criptografia ...........................................................................................................21 2.4.2. Como RSA calcula suas chaves ............................................................................23 2.4.3. O protocolo SSL ...................................................................................................24 2.4.3.1. Primeira fase..................................................................................................25 2.5.3.2. Segunda fase..................................................................................................26 2.4.3.3. Terceira fase...................................................................................................26 2.4.3.4. Quarta fase ....................................................................................................27 2.5. Sniffer de Rede .............................................................................................................29 2.5.1. Wireshark ...................................................................................................................29 2.6. Ferramenta Computacional ..........................................................................................30 2.6.1. Plataforma utilizada ..............................................................................................30 3. Anlise Institucional .............................................................................................................31 3.1. Instituio .....................................................................................................................31 3.2. Portal UNEB .................................................................................................................31 3.3. Anlise da segurana do portal .....................................................................................32 3.4. Apresentao dos resultados .........................................................................................35 4. Propostas de Segurana ........................................................................................................36 5. Concluso .............................................................................................................................38 6. Referncia.............................................................................................................................39 7. Apndices .............................................................................................................................40 7.2. Cdigo HTML da pgina usada para a intruso no portal ............................................40 7.2. Imagem completa do handshake do SSL ......................................................................41
11
1. Introduo
O objetivo principal deste Trabalho de Concluso do Curso foi avaliar algumas falhas de segurana no portal da UNEB (Unio Educacional de Braslia). Atravs de tcnicas simples e fceis ser exposto como pode-se obter o acesso no autorizado a uma conta do portal. Este trabalho abordar desde temas simples como comunicao pela Internet, programao para Web at temas mais especficos como captura de pacotes, criptografia e comunicao criptografada, onde ser apresentado de forma clara e objetiva como foram os passos para se chegar ao resultado esperado a invaso e uma possvel soluo para a segurana. Durante dois meses foram capturados acessos de usurio no Portal, atravs de tcnicas prprias com a utilizao de um analisador de trafego de redes. Com isso foi detectado uma vulnerabilidade que permite acesso no autorizado. A monografia finalizada explicando o mecanismo de segurana adotado, seus fundamentos e como ele, basicamente opera.
12
2. Fundamentao terica
Para obter um melhor clareza do assunto apresentado, necessrio a compreenso de determinados conceitos que tem por funo fornecer o conhecimento mnimo necessrio para o entendimento do assunto apresentado.
2.1. Internet
Segundo Kurose&Ross, Internet uma rede de computadores mundial, isto , uma rede que conecta milhes de equipamentos de computao em todo o mundo(Kurose&Ross,p.1,2004). J Tanenbaum possui uma viso sutilmente diferente, ao afirmar que: Embora possa parecer estranho para algumas pessoas, nem a Internet nem a World Wide Web uma rede de computadores. [] A resposta simples que a Internet no uma nica rede, mas uma rede de redes (Tanenbaum, p.2, 2003). Embora sejam definies sutilmente diferentes, podemos analisar que ambos concordam que a Internet seja uma enorme conexo entre diversas redes e/ou equipamentos. Internet pode ser definido tambm como um conjunto de computadores autnomos interconectados por uma nica tecnologia (Tanenbaum p.2, 2003). A Internet, sendo uma infra estrutura mundial que conecta milhes de equipamentos, fornece tambm vrios servios. Os servios mais utilizados so os servios de correio eletrnico e World Wide Web.
13 distribudo que funcionada na Internet (Tanenbaum,p.2.2003). Um sistema distribudo um sistema onde um conjunto de computadores independentes parece ser, para seus usurios, um nico (Tanenbaum, p.2,2003). Vale enfatizar que a Web no uma rede separada, mas apenas uma das muitas aplicaes distribudas que utilizam os servios de comunicao providos pela Internet (Kurose&Ross, p.3,2004). Devido ao fcil manuseio da Web, esta popularizou e virou sinnimo de ser A Internet. sistema coerente.[...]
14
Ilustrao 1: Modelo cliente servidor Esse modelo amplamente usado e constitui a base da grande utilizao da rede (Tanenbaum, p.4, 2003). Um servidor web uma mquina destinada a disponibilizar pginas para os clientes. Um servidor web pode armazenar dezenas ou as vezes centenas de pginas e disponibilizar essas pginas sempre que algum requisitar. Uma pgina Web constituda de objetos. Um objeto simplesmente um arquivo. (Kurose&Ross, p.66, 2003) Todas as atividades na Internet que envolvem duas ou mais entidades de comunicao remota so governadas por protocolos. (Kurose&Ross, p.6, 2004) Um protocolo define o formato e a ordem das mensagens trocadas entre duas ou mais entidades que se comunicam, bem como as aes tomadas durante a transmisso e/ou recepo da mensagem ou outro evento. (kurose&Ross, 2006) Um conjunto de regras em que controla o formato e o significado dos pacotes ou mensagens que so trocadas pelas entidades (Tanenbaum, p.39, 2004). Existem dezenas de protocolos, um para cada servio. Quando requisitamos uma pgina de um servidor web, o protocolo em que utilizamos, por exemplo, o protocolo HTTP. As informaes so armazenadas nos chamados pacotes. Pacotes so como envelopes de correspondncia, imagine um texto impresso (a informao), e voc precisa enviar esse texto para outra pessoa em outra cidade. Voc decide
15 enviar por correspondncia, mas existe um detalhe, voc ter que dividir seu texto (informao) em pginas e enviar separadamente em vrios envelopes (pacotes). Um protocolo define o formato e a ordem das mensagens trocadas entre duas ou mais entidades comunicantes, bem como as aes realizadas na transmisso e/ou no recebimento de uma mensagem ou outro evento. (KUROSE & ROSS, p.13)
2.2. Protocolos
Um protocolo, em contraste, um conjunto de regras que governa o formato e significado de quadros, pacotes ou mensagens que so trocados entre entidades parceiras dentro de uma mesma camada. As usam protocolos para implementar suas definies de servios. (Tanenbaum, p.31, 2003) Uma rede pode usar diversos protocolos como TCP/IP, NetBEUI, SPX/IPX entre outros. (Torres, p.34 , 2001)
16 Este protocolo define como deve ser feita uma conexo entre cliente/servidor. Existem outros recursos que tambm so oferecidos pelo TCP como por exemplo, a garantia de entrega de todos os pacotes ao destinatrio, bem como a confirmao de entrega dos mesmos; Controle de fluxo, impedindo que um transmissor rpido sobrecarregue um receptor lento (TANENBAUM, p.45); entre outros.
17
Ilustrao 2: Requisio e resposta via HTTP. (Basham, Sierra & Bate, 2008)
2.3. HTML
Todas as pginas na Internet, na verdade, possuem um conjunto de cdigos que so interpretados pelo browser e traduzidos em tabelas, cores, imagens, linhas e etc para os usurios. Quando vemos uma pgina cheia de tabelas coloridas existe, na verdade, cdigos que quando lidos pelo browser ele os interpreta como sendo tabelas, cores, linhas e etc. Esse cdigo se chama HTML (HyperText Markup Language ou, Linguagem de Marcao de Hipertexto). Toda pgina HTML delimitado pelas tags <html> </html>, tudo o que tiver entre essas tags ser interpretado como cdigo HTML. A primeira marca o incio, a segunda marca o fim. E dentro de cada pgina HTML existe o que chamamos de formulrio, um fomulrio tem seu incio marcado por <form> e seu fim por </form>, todos os campos que estiverem dentro do formulrio e forem preenchidos,marcados ou selecionados sero enviados ao servidor de destino. No
18 servidor existe um arquivo especfico que ir receber o que o usurio marcou,digitou ou selecionou dentro do formulrio. Dentro das tags existem os chamados parmetros, um desses parmetros diz ao formulrio para qual o endereo ele deve enviar os dados do usurio, o parmetro responsvel por essa ao o parmetro action. E dentro dos fomulrios temos tambm os campos, que so o que preenchemos ou selecionamos, os campos so inseridos usando a tag <input type=text>, e definimos no parmetro type se ele texto (text), selecionvel (select), um boto (buton), enviar um formulrio (submit) e etc. Ento suponha que exista o seguinte cdigo:
<html> <form action=paginaDestino > <span>Apos digitar login e senha clique em enviar</span> Login:<input type=text name=login value= /><br> Senha:<input type=text name=senha value=/><br> <input type=submit name=Acessar value=Acessar /> </form> </html>
Ilustrao 3: Aparncia ta tela descrita no cdigo HTML Esse cdigo nos diz que, os campos de login e senha (identificados pelo parmetro name), sero enviados paginaDestino, informado pelo parmetro action. Ou seja, a valor que ser escrito ser enviado ao servidor aps clicar no boto Enviar. Para melhor entendimento, veja a imagem seguinte:
19
Ilustrao 4: Envio de formulrio entre usurio e servidor. (Basham, Sierra & Bate, 2008)
2.3.1 JavaScript
Javascript uma linguagem que liga uma pgina web a uma experincia interativa. (Morrison, p.4, 2008) proporcionando ao cliente uma interatividade maior com os recursos que uma pgina web proporciona. Cdigos javascript, como podese deduzir, rodam no browser, ou seja, rodam no lado do cliente. A tecnologia javascript funciona juntamente com HTML como um dos modernos componentes para a construo de uma pgina web (Morrison, p.4, 2008) e entra em ao sempre que solicitado. Javascript possui, dentre suas vrias opes, a opo de enviar valores do HTML para um destino atravs do mtodo submit(). O cdigo delimitado pelas tags <script type="text/javascript"> </script> Com javascript possvel enviar ao destinatrio os parmetros que desejado, e como desejarmos, inclusive, se pode pegar parmetros digitados pelo usurio e modificar, adicionando, retirando ou alterando de alguma forma o contedo.
20 Segurana de redes est ligada diretamente Internet, pois nessa rede mundial que a maioria dos ataques ocorrem. fato que cada dia que passa se torna mais difcil manter informaes seguras nas redes de computadores. Para Tanembaum A segurana um assunto abrangente e inclui inmeros tipos de pecados. Em sua forma mais simples, a segurana se preocupa em garantir que as pessoas mal-intencionadas no leiam ou, pior ainda, modifiquem mensagens enviadas a outros destinatrios. A segurana so procedimentos para minimizar a vulnerabilidade de bens (qualquer coisa de valor) e recursos, onde a vulnerabilidade qualquer fraqueza que pode ser explorada para violar um sistema de informao que ele contm.(Soares 1995, p. 448) Outra preocupao da segurana se volta para as pessoas que tentam ter acesso a servios remotos, os quais elas no esto autorizadas a usar. Ela tambm permite que voc faa uma distino entre uma mensagem supostamente verdadeira e um trote, a segurana trata de situaes mensagens legtimas so capturadas e reproduzidas , alem de lidar com pessoas que negam terem enviado determinadas mensagens
Confidencialidade, autenticao, integridade e no-repudiao vem sendo considerados componentes fundamentais da comunicao segura h bastante tempo.(McCumber, 1991)
Segundo Kurose&Ross no existe uma rede inacessvel, porm o que deve ser feito para evitar um ambiente propcio a ataques, mais seguro e menos vulnervel atender os elementos bsicos de segurana. Confidencialidade - Somente o remetente e o destinatrio pretendido devem poder entender o contedo da mensagem transmitida. Autenticao - O remetente e o destinatrio precisam confirmar a identidade da outra parte envolvida na comunicao - confirmar que a outra parte mesmo quem alega ser.
21 Integridade e no repudiao de mensagem - Mesmo que o remetente e o destinatrio consigam se autenticar reciprocamente, eles tambm querem assegurar que o contedo de sua comunicao no seja alterado, por acidente, ou por m inteno, durante a transmisso. Disponibilidade e controle de acesso A necessidade imperiosa de segurana na rede ficou dolorosamente obvia nos ltimos anos a numerosos ataques de recusa de servio (denial of service DoS) que utilizaram uma rede, um hospedeiro ou qualquer outro componente da infraestrutura de rede, para usurios legitmos. Se sua empresa gasta mais em caf do que em segurana de TI, ter um incidente de segurana (Richard Clarke)
2.4.2. Criptografia
Primeiramente de fundamental importncia entender o que uma conexo criptografada. Uma conexo criptografada um canal de comunicao onde toda a informao transitada entre os pontos so criptografadas com o objetivo de garantir sua confidencialidade. Uma das implementaes mais utilizadas nos dias de hoje a implementao de certificados digitais e o protocolo Secure Sockets
22 Layer (SSL). Um certificado digital um documento eletrnico que fornece dados sobre seu remetente denominado chave pblica, esse documento eletrnico serve para garantir a autenticidade de uma informao, ou seja, se sua fonte realmente quem ela diz ser. A tecnologia de certificao digital foi desenvolvida graas aos avanos na rea de criptografia (processo de escrever em cdigos visando deixar um texto incompreensvel para pessoas no autorizadas). O processo de ocultao chamado de cifragem, e o processo inverso, de decifragem. Portanto, manter uma informao secreta basta cifr-la e manter a chave segura.
Atualmente existem dois tipos de criptografia: a simtrica e a de chave pblica (ITI,p.3, 2005 ). A criptografia por chave simtrica realiza a cifragem e a decifragem a partir de uma nica chave, a mesma que cifra, a mesma que decifra. A criptografia por chave pblica (tambm conhecida como chave assimtrica) utiliza dois tipos de chaves, a chave pblica e a chave privada. A chave pblica est disposio para todo o mundo, j a chave privada de conhecimento apenas do emissor da chave pblica. Utilizando um tradicional exemplo no mundo dos estudos de chaves criptogrficas, se Alice quer falar com Bob, Alice busca a chave pblica de Bob e em seguida ela criptografa usando essa mesma chave, e envia a mensagem criptografada para Bob. Bob utiliza sua chave privada (que
23 somente ele tem conhecimento dessa chave) para descriptografar a mensagem enviada por Alice.
Ilustrao 6: Demonstrao da encriptao por chave pblica e privada (ITI,2005,p.4 com alteraes do autor)
Existem vrios algoritmos que tratam de chaves privadas, no entanto, a chave mais utilizada hoje em dia o RSA, que se tornou quase um sinnimo de criptografia de chave pblica (Kurose&Ross, 2003, p.450). H dois componentes inter-relacionados no RSA: Escolha de chave pblica e chave privada; O algoritmo de criptografia/decriptografia.
24 com z. A letra e usada na criptografia; 4. Achar um nmero d, tal que ed-1 seja exatamente divisvel por z (ou seja, no haja resto na diviso). Em outras palavras, escolhemos d tal que ed mod z = 1. O nmero inteiro , que o resto da diviso de um nmero x por um nmero n, chamado de x mod n. Portanto, a nossa chave pblica o par de nmeros (n,e); e a chave privada, (n,d). Para Alice enviar um padro de bits m a Bob, Alice precisa calcular o resto inteiro da diviso de me por n, expressado por c=m e mod n Para decifrar, Bob processa
m=c mod n
d
25 Dois conceitos importantes que so necessrios entender so os conceitos de sesso e conexo: Conexo: , de fato, o envio de informao.Para o SSL, as conexes so relacionamentos peer-to-peer (Stallings,2008,p381) e uma conexo est associada a apenas um sesso. Sesso: uma sesso SSL uma associao entre um cliente e um servidor (Stallings,2008,p381). A sesso define parmetros de segurana (como algoritmos, identificadores de sesso) para as conexes, parmetros que podem ser usadas por vrias conexes, ou seja, de uma sesso, podem haver vrias conexes estabelecidas. Para entender o seu funcionamento, vamos divid-lo em duas partes. A primeira trata do Handshake, ou seja, do estabelecimento da sesso. A segunda, do envio da mensagem. O cenrio em que este projeto criado uma conexo entre cliente a servidor (empresa). Vamos comear examinando o Handshake, que dividido em 4 fases:
2.4.3.1. Primeira fase
O cliente envia para o servidor um client_hello contendo a verso do SSL mais alta que entendida pelo cliente, com seu nmero randmico (RNc) gerado e quais cifras ele pode entender (Kurose&Ross,p.476 , 2004 ). O servidor responde ao cliente com um server_hello, com a informao de qual verso do SSL ser usada, obviamente, a verso utilizada ser a maior verso admitida tanto pelo cliente quanto pelo servidor. enviado tambm qual o nmero randmico do servidor (RNs) e qual ser a chave criptogrfica a ser usada, normalmente a chave RSA devido ao seu amplo aceitamento e por seu nvel de segurana. (Stallings ,p.386, 2008 )
26
Inicialmente, o servidor envia seus certificados x509 caso precise ser autenticado. Se esse certificado no for assinado por alguma autoridade conhecida, ele tambm envia uma cadeia de certificados que pode ser seguida de volta at chegar a uma autoridade original (Tanenbaum, p. 865,2003). Todos os navegadores so pr-carregados com cerca de 100 chaves pblicas, o que permite estabelecer uma cadeia entre as chaves. Em seguida, o servidor pode ou no, enviar um server_key_exchange. Isso vai depender da chave usada, em caso de chave RSA essa mensagem no necessria. O servidor solicita um certificado do cliente com a mensagem certificate_request e por fim encerra a segunda fase com um server_done.Depois de enviar essa mensagem, o servidor esperar pela resposta de um cliente. Essa mensagem no possui parmetros (Stallings,2008,p.388) .
27 O cliente verifica a veracidade do certificado do servidor, ou seja, se o certificado vlido e se os parmetros do server_hello so vlidos. O cliente envia tambm seu certificado (aquele pedido na segunda fase pelo servidor), se ele no possuir um certificado prprio, ele envia uma uma mensagem de alerta no_certificate. Caso o cliente tenha informado seu certificado, o servidor verifica se o mesmo vlido. Nessa fase necessrio o envio da client_key_exchange, e seu contedo depender do tipo de troca de chaves, no caso RSA. Tendo a RSA como chave criptogrfica, o cliente gera um pre-mastersecret (pms), e envia ao servidor na mensagem client_key_exchange. O cliente com seu RNc, com o RNs e com o pms gera o master_secret (ms). O master_secret um valor de 384 bits (48 bytes) de uso nico gerado por essa sesso por meio da troca de nmeros randmicos RNc e Rns.
Essa fase no considerada parte do Protocolo de Estabelecimento de Sesso (Stallings,2008,p.389), essa fase parte do Protocolo de Mudana de Especificao de Cifra. O cliente envia ento um finished message (mensagem de concluso) e especifica o master_secret como a nova chave de sesso com o parmetro change_cipher_spec. Aps essa resposta, o servidor envia seu prprio
28 finished message com seu change_cipher_spec. Aqui termina a fase do handshake , onde o cliente e o servidor podero trocar dados na camada de aplicao.
Para uma compreenso mais clara e ampla do funcionamento do handshake, todas as quatro fases se encontram em anexo. Aps a fase do handshake, hora do transporte real das informaes utilizando o SSL. Inicialmente, cada mensagem fragmentada em blocos de 16384 bytes (Stallings, p. 383, 2008), em seguida aplicada opcionalmente a compactao deste fragmento (Stallings, p. 383, 2008). Aps a fragmentao e a compactao opcional uma chave secreta derivada dos dois nonces e da chave pr-mestre concatenada com o texto compactado, e o resultado passa por um hash com o algoritmo hash combinado (normalmente, o MD5). Esse hash anexado a cada fragmento como o MAC (Tanenbaum, p.867, 2003). Ou seja, o MAC (cdigo de autenticao de mensagens) derivado de um clculo dos dois nonces e do PMS trocados na fase do handshake juntamente com o tamanho do fragmento a ser transportado, como mostra a figura a seguir:
29
Observe que o MAC calculado antes que a criptografia ocorra e que o MAC ento criptografado juntamente com o texto claro ou texto claro compactado (Stallings, p.383, 2008). Aps este processo, o fragmento poder ser enviado ao cliente.
2.5.1. Wireshark
Wireshark atua como um Sniffing na rede, sedo um analisador de protocolos de rede para o Unix e o Windows. Permite a interatividade com o browser dos dados analisados, checagem em nvel detalhado do pacote, inclusive de dados gravados em discos. O Wireshark destacou-se pelo filtro apurado de protocolos e a
30 possibilidade de visualizar o fluxo reconstrudo de uma sesso TCP. (site oficial wareshark: http//www.wireshark.org) A ferramenta Wireshark pode capturar valores de campos HTML, o parmetro elogin refere-se ao campo que contm o valor da matrcula do aluno ou professor; o parmetro esenha refere-se ao campo que contm o valor da senha do aluno ou professor. Na imagem exemplificada abaixo, um usurio com a matrcula 01234567-8 deseja acessar sua pgina em um portal. Ento so enviados login e senha (no caso,encriptada em MD5) ao servidor.
31
3. Anlise Institucional
Neste captulo, faremos uma breve anlise institucional do objeto de estudo, no caso, a faculdade UNEB.
3.1. Instituio
A faculdade oferece cursos de graduao, ps-graduao e extenso nas reas de cincias sociais e exatas.
A Unio Educacional de Braslia (UNEB) foi criada em 06 de agosto de 1979, a fim de desenvolver o ensino nas diversas reas do conhecimento humano. Iniciou suas atividades em abril de 1981, com a realizao do primeiro concurso vestibular para trs cursos autorizados naquela oportunidade. Atualmente, a UNEB mantenedora dos Institutos de Cincias Sociais Aplicadas (ICSA) e de Cincias Exatas (ICEX), possuindo cursos de graduao, ps-graduao e seqenciais e ensino distncia. (www.uneb.com.br)
funcionamento a partir do segundo semestre de 2004 na qual feita a comunicao direta com os alunos, contendo informaes da Faculdade, professores, alunos e disciplinas, alm disso consta histricos escolares, notas, presenas, faltas e o resultado final de cada matria. No portal os professores lanam a vida acadmica dos seus alunos e por esse motivo necessrio que o mesmo seja seguro. Segundo pesquisas realizadas, foram constatados algumas falhas de segurana no Portal. Atualmente, so feitas cerca de 80 mil acessos por ms. Desde o trmino de sua construo, foi iniciada a utilizao com as seguintes funcionalidades de disponibilizar as notas de cada aluno, bem como seus histrico de notas; disponibilizar as matrias em que o aluno est cadastrado; Visualizar dados pessoais; disponibilizar caixa de e-mail; e para professores, lanar notas, pautas e arquivos para as matrias ministradas. O portal atende a todas as propostas idealizadas (Rogrio Franco). O portal conta com informaes importantes para o aluno tanto da vida
32 acadmica quando da vida pessoal. Uma vez que o portal possui informaes que podem comprometer tanto a vida acadmica e pessoal dos alunos, deveria este obedecer as normas de segurana atentando para: Confidencialidade: visa garantir que a informao seja acessvel somente por quem tiver autorizao para isso. O portal da UNEB no garante a confidencialidade das informaes de alunos e/ou professores; Integridade: procura assegurar que a informao no seja adulterada durante uma transmisso entre duas partes. Uma vez dentro do portal de um aluno ou professor, possvel alterar alguns dados confidenciais; Disponibilidade: funcionamento contnuo e com bom desempenho do sistema. O portal, aparentemente, demonstra estar disponvel na maior parte do tempo; No-repdio: evita que uma das partes na comunicao negue a autoria da informao por ele produzida.
33
Um dos pacotes possua o nmero de matrcula e a senha do aluno. Porm, antes da senha ser enviada ao servidor, ela encriptada utilizando a chave simtrica MD5. Ento, os campos de login e senha (com os nomes elogin e esenha, respectivamente) so enviados ao servidor, mas interceptados pelo sniffer. A figura a seguir exemplifica o simples processo de envio de parmetros ao servidor que hospeda o portal:
34 possibilita que seja criada uma pgina em HTML que submeteria ao servidor responsvel pela autenticao logins e senhas capturadas Foi ento criado uma pgina em HTML para enviar ao servidor que hospedava o portal os campos de login e senha. Com um detalhe, era enviado a senha encriptada, direto ao servidor. No era necessrio saber a senha, e sim, o seu valor encriptado e a matrcula do aluno. Tais valores foram obtidos durante uma captura de pacotes, como mostra a imagem a seguir:
O servidor, ao receber a matrcula e a senha encriptada, verificava se existe tal aluno e se a senha est correta, caso estiver, o servidor devolveria ao atacante o acesso ao portal do aluno referente matrcula capturada. O cdigo da pgina criada para burlar o servidor est em apndice. Os parmetros da pgina criada devem conter os mesmos nomes da pgina do portal da UNEB. Pois o servidor espera os valores de um campo com um
35 nome j pr determinado no sistema de login, no caso, os nomes dos parmetros so elogin e esenha. A pgina deve conter tambm o mesmo action, para que os valores sejam enviados ao mesmo arquivo para onde seriam se o login fosse feito pela pgina original da UNEB.
O conhecimento do problema surgiu ao analisar a comunicao entre o portal da UNEB e o servidor Web destino. Ao realizar login, e com o auxlio de um analisador de trfego, notou-se que possvel ter acesso ao login e senha que o usurio inseriu.
36
4. Propostas de Segurana
A proposta para contornar o problema de segurana no portal da UNEB a utilizao da tecnologia de criptografia conhecida como Secure Socket Layer, SSL. Com essa tecnologia, as informaes trafegadas entre cliente e servidor sero criptografadas, dificultando um acesso indevido. Para implementar esta tecnologia pode ser usado quase qualquer plataforma, porm, normalmente, usa-se a combinao Apache com o Sistema Operacional Linux. O Apache um servidor Web que pode fornecer uma conexo criptografada aps devidas configuraes. O Linux amplamente usado devido sua confiabilidade em segurana, por ser um sistema em que sua implementao relativo segurana mundialmente conhecida como fortemente bem desenvolvida. A chave privada pode ser gerada atravs de vrios sistemas geradores de certificados para autenticao, a mais conhecia o OpenSSL, uma ferramenta opensource e gratuita que pode gerar diversos certificados utilizando diversas chaves criptogrficas. Este certificado, que na verdade a chave pblica do servidor, ento submetido ao que conhecido como Autoridade Certificadora. Autoridade Certificadora ou simplesmente AC a principal componente de uma Infra-Estrutura de Chaves Pblicas e responsvel pela emisso dos certificados digitais (ITI ,p.11 ,2005). Entre as atividades de uma AC, a mais importante verificar a identidade da pessoa ou da entidade antes da emisso do certificado digital. O certificado digital emitido deve conter informaes confiveis que permitam a verificao da identidade do seu titular. (ITI, p. 12, 2005) A principal funo de um certificado vincular uma chave pblica a um protagonista (indivduo,empresa,etc) (Tanenbaum, p. 814, 2003) A vantagem mais notvel aps a utilizao do SSL o fato da mesma disponibilizar todas as primitivas necessrias para conexes seguras, a saber: Autenticao, troca de chaves de sesso com o uso de criptografia assimtrica
38
5. Concluso
Apesar do sistema atual fornecer uma encriptao em MD5 antes de submeter os campos de login e senha ao servidor, este no isenta o sistema de uma invaso a contas de alunos e professores. possvel a criao de uma pgina HTML e submeter login e senha (ainda que encriptada) ao servidor responsvel pela autenticao, e com isso, obter acesso. Com a atual arquitetura possvel obter acesso no autorizado a contas do portal e, com isso, obter acesso a informaes pessoais das vtimas como endereo, telefone residencial e histrico de notas. O fato de ser possvel obter acesso no autorizado tambm s contas dos professores permite alterar notas de alunos, comprometendo assim a vida acadmica dos mesmos. A proposta implementar uma conexo criptografada utilizando a tecnologia Secure Sockets Layer, popularmente conhecida tambm como SSL.
39
6. Referncia
STALLINGS, William. Criptografia e segurana de redes - Princpios e prticas. 4.ed. Prentice Hall,2008. TANENBAUM, Andrew S. Redes de computadores. 4.ed. Campus, 2003. KUROSE, James & ROSS, Keith. Redes de compuatdores e a internet Uma abordagem top down. 3.ed. Addison-Wesley, 2004. TORRES, Gabriel. Redes de computadores Curso completo. 15.ed. Axcel Books, 2001. BEZERRA, Marcos. Certificao digital Utilizao em aplicaes Web. Instituto de Educao Superior da Paraba, 2008. O que Certificao Digital? ITI, Braslia, 29 jul. 2005. Disponvel em: <http://www.iti.br/twiki/bin/view/Main/Cartilhas/CertificacaoDigital.pdf>. Acesso em: 17 Jan. 2011, 22:26. LARGURA, Luiz. Monografia sobre SSL para o Curso de Extenso Segurana em Redes de Computadores. UnB, 2000. http//www.wireshark.org acessado em : 20 Fev. 2011, 08:35 BASHAM, Bryan&SIERRA, Kathy& BATES, Bert. Head First Servlets & JSP. 2.ed. O'Reilly, 2008. MORRISON, Michael. Head First Javascript. 1.ed. O'Reilly, 2008.
40
7. Apndices
7.2. Cdigo HTML da pgina usada para a intruso no portal
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <title> UNEB login </title> </head> <body> <center> <span> Apos digitar login e senha clique em enviar</span> <form action="http://portal.uneb.com.br/login.asp" method="post" id="portal" > Login: <input type="text" name="elogin" id="elogin" value="" /> <br> Senha: <input type="text" name="esenha" id="esenha" value="" /> <br> <input type="submit" name="Acessar" value="Acessar" /> </form> </center> </body> </html>
41
42