Hackear WiFi - Hacker Internet Wireless Descobrir Senha Wi-Fi WEP
TCC SEGURANÇA WEP
Transcript of TCC SEGURANÇA WEP
Universidade Nove De Julho – Uninove
Unidade Memorial
Ciência da Computação
FERNANDO PEREIRA DE SOUSA BENTO
JUSSIE LUCIO RODRIGUES DE BRITO
SEGURANÇA DE DADOS
SÃO PAULO
2014
(Limite da margem inferior, fonte 12, CAIXA ALTA)
FERNANDO PEREIRA DE SOUZA BENTO
JUSSIE LUCIO RODRIGUES DE BRITO
(Limite da margem superior Fonte 12, CAIXA ALTA, sem negrito)
(6 espaços de 1,5)
SEGURANÇA DE DADOS(título: fonte 14, em negrito, se houver subtítulo deve ser precedido de : , fonte 14, sem negrito, CAIXA
ALTA)
(2 espaços de 1,5)
Projeto de Pesquisa apresentado ao Curso de
Bacharelado em Ciências da Computação da
Universidade Nove de Julho como requisito
parcial para obtenção do grau de Bacharel em
Ciências da Computação.
Linha de Pesquisa: Modelagem Computacional
Orientador: Prof. Dr. Alice Flora Madeira
Ribeiro
(fonte 11, espaçamento simples, recuo 7 cm da margem esquerda)
SÃO PAULO
2014, fonte 12, CAIXA ALTA)
SUMÁRIO
1 INTRODUÇÃO.........................................................................................................7
1.1 DELIMITAÇÃO DO TEMA..................................................................................8
1.2 PROBLEMA.......................................................................................................9
1.3 HIPÓTESE(S)..................................................................................................10
1.4 OBJETIVOS.....................................................................................................11
1.4.1 Objetivos gerais.........................................................................................11
1.4.2 Objetivos específicos.................................................................................11
1.5 JUSTIFICATIVA...............................................................................................12
2 REVISÃO DA LITERATURA..................................................................................13
3 METODOLOGIA.....................................................................................................19
4 CRONOGRAMA........................................205 REFERENCIAS BIBLIOGRAFICAS
...................................................................................................................................21
7
1 INTRODUÇÃO
Áreas de criptografia e segurança de dados estão se desenvolvendo muito
rápido neste século presente, principalmente em aplicações de telecomunicações e
segmentos industriais. A rede Internet também avança ao mesmo tempo em
questões de popularização e disseminação. Novas “lojas virtuais”, usadas para
comércio pela Internet, surgem a todo o momento, bem como aplicações que
permitem transações bancárias por meio de senhas, onde apenas a pessoa
autorizada possui o conhecimento. Além destes serviços, existem diversos outros,
tais como informações sociais, artísticas, médicas, enfim, o que resulta em
números absurdos de informações trafegando pela rede Internet.
Desta forma, é essencial que se garanta a segurança dessas
informações.
Com todo esse crescimento tecnológico, a proteção da privacidade, para
cada cidadão, se torna cada vez mais importante. Nossos dados
pessoais trafegam na Internet e é possível que sejam descobertos por pessoas
desautorizadas ou, até mesmo, inescrupulosas. Para
solucionar tecnologicamente este problema existe então a Criptografia, é uma
questão realmente de necessidade.
Existem algoritmos que permitem, de certa, esconder informações de
pessoas que não estão autorizadas e terem acesso à elas, esses algoritmos são
chamados de criptossistemas. Antigamente, os criptossistemas eram secretos, mas
8
nos dias de hoje a segurança de sistemas criptográficos é baseada apenas na
identificação da informação secreta.
Em um sistema operacional qualquer, com a finalidade de garantir a
integridade da informação em seu conteúdo, são necessárias descrições de
diretrizes e de mecanismos satisfatórios. Pode-se, desta, pensar em sistemas
seguros e inseguros, variando conforme a eficiência dos mecanismos utilizados.
Primeiramente, é necessário lembrar que o local onde são instalados os
equipamentos é importante, pois impedir o acesso de pessoas não autorizadas
também garante segurança. Atualmente, os sistemas operacionais são alvos de
vastas violações, completamente dirigidas por pessoas que não possuem
autorização, cuja finalidade é possuir o máximo de informações confidencias
possíveis para fazer uso indevido das mesmas. Um ato deste nível é
considerado crime, e pode resultar em graves problemas, levando em conta a
natureza dos dados, como por exemplo, quando se trata de dados que possam lesar
alguém (dados de uma conta bancária, senhas pessoais, entre outros), ou até
mesmo informações que possam lesar a segurança de um Estado, de um Município,
etc.
Apesar de tudo, as invasões não são totalmente causadas por acessos sem
permissão, existem outras causas. Entre tais, uma que evoluiu devido ao avanço da
microinformática, que é a causa do software mal intencionado, que por sua vez são
programas leves, mas com enorme facilidade de serem executados e
reproduzidos, causando efeitos muito graves. Esses leves programas ficaram
popularmente conhecidos como vírus. Realmente o nome já diz tudo, pois é algo
que realmente tem a intenção de infectar um sistema, podendo se reproduzir e se
espalhar entre outros sistemas, utilizando diversos meios para alcançar o objetivo.
Com o avanço de casos relacionados a isto, não restaram alternativas, pois
os governos de diversos países criaram leis e normas que prometem segurança aos
9
sistemas de informação e protegem o direito que toda pessoa tem com
relação à privacidade de suas informações particulares.
Por fim, outro ponto também importante para a segurança de um
sistema operacional é verificar o nível de segurança que as instalações necessitam,
por exemplo, uma instalação feita em um equipamento de uso compartilhado por
muitas pessoas distintas não é a mesma que uma instalação feita em um
equipamento de uso particular.
Assim, o desenvolvimento de criptografia tornou-se, na
atualidade, uma necessidade imprescindível, devido às
possibilidades de falsificações e fraudes que surgem com o crescimento da telefonia
celular digital.
10
1.1 DELIMITAÇÃO DO TEMA
Funcionamento de alguns dos principais algoritmos de criptografia
conhecidos. Como por exemplo, o algoritmo RSA que foi publicado no ano de 1978,
tem seu nome derivado das iniciais dos seus autores Ron Rivest, Adi Shamir e Len
Adleman, bem como o algoritmo DES – Data Encryption Standard, criado
pela IBM e que foi publicado no ano de 1977 nos Estados Unidos da América em
uma conferencia chamada de National Bureau of Standards – NBS, entre outros
algoritmos.
11
1.2 PROBLEMA
O_que pode ser feito para reduzir a vulnerabilidade de algoritmos de
criptografia que prometem maior segurança aos dados de determinadas
informações, apesar de parecer que a criptografia não consegue garantir totalmente
a segurança de dados em sistemas da informação (isto é uma
pergunta? ajeite). Segundo TERADA (2008), a habilidade humana é
incapaz de inventar código que a habilidade humana não possa decifrar (e......?
Conclua o pensamento!)
12
1.3 HIPÓTESE(S)
Segundo TERADA (2008), o algoritmo DES pode ser quebrado, pois com o
uso de um computador distribuído na Internet, denominado DeepCrack, cuja
velocidade média é de noventa bilhões de chaves em cada segundo, acaba-se
encontrando a chave correta de 56 bits. O tempo para que esse computador
consiga realizar tal manobra é de quatro dias e meio. O tal computador pode chegar
a atingir uma velocidade de 250 bilhões de chaves em cada segundo.
Complete...Aonde você quer chegar com esta
informação? Sua hipótese deve exprimir como você
pretende utilizar essa informação.
13
1.4 OBJETIVOS
Demonstrar formas de aumentar a segurança dos dados enviados, por
exemplo (seja específico quanto à aplicação que vai
fazer, ao invés de um exemplo), em uma rede de internet
utilizando algoritmos de criptografia.
1.4.1 Objetivos gerais
Demonstrar o funcionamento de algoritmos de criptografia (para quê?).
1.4.2 Objetivos específicos
Apresentar as formas de se utilizar a criptografia RSA para uma maior
segurança no envio de dados (onde?).
14
1.5 JUSTIFICATIVA
A segurança dos dados na transmissão de informações é um importante
ícone na atualidade. Apresentando pontos específicos, como a necessidade de
novas pesquisas cientificas para encontrar métodos que garantam um nível maior de
segurança.(?????????????????)
15
2 REVISÃO DA LITERATURA
A CRIPTOGRAFIA - HISTÓRIA
O Homem possui enorme capacidade de passar suas ideias para outras
pessoas, fazendo o uso de símbolos, e como forma de garantir maior segurança na
transmissão dessas ideias, passou a transformar linguagens oral em linguagem
escrita, fazendo uso de códigos.
Ao estudar uma forma de se comunicar secretamente, nos deparamos com a
Criptologia, palavra que deriva da palavra grega “tratado”. O estudo da Criptologia
se divide em dois sentidos, sendo o primeiro a Criptografia, palavra resultante das
palavras gregas “oculto” e “escrita”, sendo uma ciência que objetiva estudar a
estrutura e implementação de sistemas de codificação; e a Criptanálise, uma ciência
que visa estudar a segurança de sistemas de codificação e objetiva decodificar
informações secretas, ou seja, criptogramas.
Um acontecimento interessante e muito antigo, um exemplo de criptograma
aconteceu no século V a.C. quando um mensageiro levou da Pérsia para a Grécia
uma mensagem tatuada em seu próprio escalpo, a mensagem foi revelada quando
esse mensageiro teve sua cabeça rapada, a mensagem foi decodificada, se tratava
de uma ordem para que o vice-governador daquela época iniciasse um ataque
contra o povo dominante.
Durante o avanço da humanidade, rumo à tecnologia existente nos dias atuais
passou a existir diversas maneiras de comunicação secreta. Surgiu um muito
simples e famoso, seguido pelo imperador romano, Júlio Cesar. Quando o mesmo
precisava enviar informações secretas, fazia alterações no valor das letras do
alfabeto, fazendo uma troca de cada letra do alfabeto pela letra referente a quarta
posição afrente sucessivamente, trocando por exemplo a letra “a” pela letra “d”, a
letra “b” pela letra “e”, enviando por exemplo a palavra “dia”, o destinatário receberia
a palavra codificada “gld”. O rei da Inglaterra também fazia uso da criptografia,
16
enviava mensagens onde as palavras tinham suas letras trocadas de posição. Em
escrituras sagradas também foram encontradas mensagens criptografadas, quando
em Jeremias XXV, 26, o profeta troca a palavra Babel pela palavra Sheshak,
fazendo trocas e substituições das letras do alfabeto.
Com o passar dos anos, a ideia de se comunicar secretamente aumentou
significativamente, indo desde mensagens simples de carinho entre duas pessoas
até mensagens utilizadas por forças militares. Então percebeu-se que era
necessário padronizar um modelo de transmissão dessas mensagens. O primeiro
homem que escreveu sobre Criptografia foi John Trithenius, chefe de uma abadia, o
mesmo publicou um tratado no ano de 1518, nesse tratado foram fornecidas todas
as bases para os escritores que pensassem em escrever após ele.
É evidente então que a história, desde muito tempo é marcada por diversos
casos de tragédias e de sucessos referentes a prática de utilizar códigos secretos.
SEGURANÇA EXTERNA
Em um sistema qualquer, é necessário que as ferramentas de segurança se
completem entre si de tal forma que, no caso de uma pessoa com intenção de
invadir algumas proteções, acabe encontrando proteções para tornar este processo
difícil. Todas as ferramentas dirigidas a segurança de um sistema sem que o mesmo
sistema interaja nos mesmos estão unidos no que denomina-se segurança externa.
A segurança externa divide-se em dois grupos, sendo um a segurança física,
que uni as ferramentas que barram os agentes físicos de destruir a informação
contida no sistema. tais como agua, descarga elétrica, etc. A segurança física tem
um aspecto de proteção contra desastres, sendo importante também controlar itens
como a temperatura e limpeza do ambiente onde estão instalados os equipamentos
e também um aspecto proteção contra intrusos, ou seja, impedir o acesso físico de
pessoas não autorizadas, utilizando de meios como, por exemplo, cartões
magnéticos, reconhecimento de voz, etc. O segundo item do grupo e a segurança de
17
administração que por sua vez uni as ferramentas mais comuns, impedindo o
acesso logico de pessoas no sistema. Nesta segurança, se entende todas as
ferramentas cujo objetivo e dar acesso logico ao sistema, podendo ser realizado
através de um a porta do sistema ou ate mesmo de outro sistema, utilizando-se de
redes de comunicação. Para controlar as solicitações de acesso ao sistema,
permitindo a ligação no caso de um utilizador solicitar e para passar pelo controle
que e feito, utiliza-se algo denominado de proteção de acesso, que de tal forma
impede o acesso quando a identificação do utilizador ou usuário não for satisfatória.
O password(palavra de acesso), tem a finalidade de identificar o utilizador do
sistema, normalmente, a forma mais conhecida e utilizada e pedir um username
(nome de usuário) e uma senha, desta forma o equipamento acessa o banco de
dados, com a finalidade de comparar os dados, aceitando ou rejeitando o acesso.
Um administrador de sistema pode verificar de tempos em tempos se alguma
pessoa tentou lesar a segurança do sistema, utilizando-se das solicitações de
acesso sem sucesso que foram registradas no sistema, o administrador também tem
poder para em qualquer momento poder adicionar ou retirar dos utilizadores do
sistema o direito de acessar o mesmo. Em um caso de acesso ao sistema, é
atribuída ao usuário (username), uma senha (password) de inicio. Pode ser que o
nome do usuário seja utilizado por varias pessoas, mas a senha não se recomenda
desta forma que, a senha seja trocada periodicamente e que não seja escrita em
nenhum local, sendo a melhor opção, guardar na própria mente. O password usado
para acessar o sistema geralmente não é exibido na tela como no caso dos demais
dados que o usuário insere através do teclado, devido ao segredo da mesma, porém
estes dados são conservados nos ficheiros do sistema, sendo codificada ou
criptografada, impedindo o fácil reconhecimento por algum intruso, se é que me
entendem. O processo de acesso a um sistema, pergunta para se identificar como
usuário e verificação dos dados inseridos, é denominado login (Figura 1.1). O
processo inverso, ou seja, o processo de saída do sistema é denominado logout.
18
Username: xxxxxxxxxPassword:_
Figura 1.1. Processo de acesso ao sistema.
SEGURANÇA EXTERNA (o mesmo título???)
Todas as ferramentas utilizadas na segurança de um sistema operacional,
sendo o próprio sistema quem controla as mesmas, formam um tipo se segurança
que podemos chamar de segurança interna. Na segurança do processador há duas
ferramentas de proteção, sendo uma delas, os estados protegidos referentes ao
núcleo do sistema (kernel) e não protegidos (usuário) e a outra é o relógio de partes
físicas do sistema (hardware) evitando o bloqueio do processador. No caso de
segurança de memória, refere-se a ferramentas que evitam que um usuário acesse
informações de outro usuário sem estar autorizado, citamos duas ferramentas para
este caso, sendo uma delas os registros limítrofes e a outra é o estado protegido e
não protegido do processador. No caso de segurança de ficheiros, sabemos que o
maior objetivo de um computador é o tratamento do bom ou mau uso da informação
que é armazenada nos ficheiros. Quando estas informações são perdidas ou
alteradas por engano ou sem intenção, ocorrem graves transtornos que podem por
sua vez ser até mesmo irreparáveis, sendo então necessário decidir medidas de
19
segurança no sistema, sendo consideradas de duas formas diferentes, uma delas é
a disposição dos ficheiros e a outra é a privacidade dos ficheiros. Quanto a
disponibilidade dos ficheiros, dizemos que um ficheiro deve possuir a informação
prenunciada e disposta no ato em que o usuário do mesmo necessitar.
Para assegurar esse processo, deve ser feito cópias de segurança (backup).
O backup tem a finalidade de realizar periodicamente, ou seja, hora, dia, semana,
mês e assim por diante, uma cópia de tudo que há nos ficheiros, assim o fazendo,
se os ficheiros forem destruídos, será possível a recuperação dos dados a partir da
ultima cópia realizada. As cópias de segurança e a utilização dos dados destas
cópias, geralmente são feitas através de programas de uteis que compõem o
sistema operacional. A confiança do backup depende na maioria das vezes do
período em que foram feitas as cópias, assim como do ritmo ao qual são feitas as
atualizações nos tais ficheiros. As cópias de segurança devem ser guardadas em
memórias eletrônicas, os seja, em discos rígidos, cds, pen drives, entre outras,
garantindo a segurança das mesmas. Realizando ou não as cópias de segurança,
também é indicado que haja uma duplicidade dos ficheiros no mesmo disco local,
sendo possível desta forma, realizar uma recuperação rápida dos ficheiros originais
caso haja necessidade.
Geralmente, os sistemas tendem a automatizar as cópias de segurança
através de programas instalados pelo usuário, que periodicamente faz a verificação
da data em que foi feita a ultima cópia dos ficheiros, e também a data da ultima
atualização, após estes processos, o programa irá decidir quais ficheiros terão que
ser copiados. Em sistemas onde trabalham muitos usuários ao mesmo tempo, sendo
feitas atualizações de numerosos ficheiros também ao mesmo tempo, as cópias de
segurança feitas periodicamente acabam não sendo suficientes para parar a perda
de informação.
Quando o computador falha por motivos inesperados, e justamente no ato da
falha uma sessão de trabalho com muitos usuários estava ativa, pode ser feita a
recuperação de informação dos ficheiros com a solicitação da ultima cópia de
segurança. Porem em algumas situações especificas, esse processo de
recuperação das informações pode não ser suficiente, se recomenda então, que
20
estes sistemas, haja ficheiros auxiliares, onde estarão guardadas todas as
alterações que um determinado usuário realize em seus ficheiros. Nestes ficheiros
também ficarão armazenadas as mais recentes alterações nas informações dos
ficheiros, como também as que apresentarem diferenças em relação as já
existentes. O nome destes ficheiros é denominado ficheiros log, eles são
processados em conjunto com as eventuais cópias de segurança, sendo
manuseados por usuários do sistema operacional que por sua vez possuem o
conhecimento necessário para fazer as recuperações de dados, ou seja, tem a
vocação voltada para isso. Quanto à privacidade dos ficheiros, temos que garantir
que o conteúdo dos mesmos esteja protegido de acessos sem autorização.
Comentando sobre os riscos de permitir a todos os usuários do sistema o direito ao
acesso a qualquer ficheiro e a qualidade referente a severidade a um caso onde o
sistema deve permitir acessos controlados e submissos a regras predefinidas, quem
por sua vez indicam as resultantes autorizações. Quando um usuário do sistema
inicia sua sessão de trabalho, logicamente com sua identificação, o sistema de
proteção importa um domínio composto por uma sucessão de recursos e operações
permitidas. Como por exemplo, uma relação de ficheiros aos quais é permitido o
acesso, não tendo porem a permissão para acessar aos que não constarem na
relação.
Os sistemas operacionais na maioria dos casos armazenam a informação
referente aos domínios naquilo que denominamos de matriz de domínios, ou seja, as
filas mostram os domínios existentes e as colunas mostram os recursos. Os
elementos desta matriz apontam o direito de usufruir do recurso adequado ao
domínio. No caso de uma matriz abrigar pouca informação, é indicado recorrer a
outro modo de armazenamento de informação sobre domínios. Este modo tem a
finalidade de atribuir a cada recurso uma lista com os domínios quem podem utiliza-
los, oque denomina-se de lista de acesso. Existe outro modo, onde a cada domínio
se atribui uma lista de recursos aos quais se podem acessar, neste caso o modo de
armazenamento denomina-se lista de capacidades. Nos casos citados, a
administração das listas de controle é feita utilizando comandos de uso restringido,
ou seja, somente livre aos administradores do sistema.
21
CRIPTOGRAFIA BÁSICA
A seguir é exibida rapidamente a criptografia para aqueles leitores que não
estejam familiarizados com ela. Em uma criptografia básica, sua função é levar uma
mensagem ou um arquivo, que por sua vez é chamado de texto plano, e criptografá-
lo para um texto cifrado que por sua vez a pessoa autorizada possa convertê-lo
outra vez para um texto plano. Que para muitas outras pessoas o texto é um monte
de incompreensível numero de bits. Para iniciantes na área, possam ser estranhos
os algoritmos (funções) criptográficos e de decriptação que devem ser pública, pois
tentar mantê-los em segredo nunca funciona e mostra para as pessoas uma falsa
sensação de segurança pensando que estão mantendo segredo, porem no mercado
esse tipo de ação é chamada de segurança por obscuridade que é utilizada por
amadores em segurança e também estão incluídas muitas das grades corporações
multinacionais que na verdade deveriam saber disso.
A seguir podemos conferir a figura 2.1 onde mostramos que o segredo
depende de parâmetros denominados chaves. Se neste caso, o P for um arquivo de
texto plano, KE a chave criptográfica, C o texto cifrado e E for uma função, dizemos
que C = E(P, KE). Basicamente isto seria uma explicação de criptografia. Ela indica
que o texto cifrado foi obtido através de um algoritmo criptográfico E, onde o texto
plano P e a chave criptográfica KE são os parâmetros. Igualmente em P = D(C, KD)
onde D é um algoritmo de decriptação e KD se refere a uma chave de decriptação. É
possível possuir o texto plano P que corresponde ao texto cifrado C e a chave de
decriptação KD. Para isso é preciso ser executado o algoritmo D com C e KD sendo
os parâmetros.
22
Figura 2.1 Relações entre texto plano e texto cifrado.
INVASÃO DE CRACKERS
Na maioria dos casos um cracker invade um sistema simplesmente se
conectando a um computador alvo, fazendo varias tentativas de combinações, ou
seja, nome e senha, até encontrar uma que seja aceita. Na parte do nome, muitas
vezes as pessoas acabam usando seus próprios nomes como entrada. No caso de
um nome ser Rodolfo Almeida Dos Santos, almeira, rodolfo, almeida_rodolfo,
ro.santos e ro.almeira são algumas das possibilidades aceitáveis. Um cracker pode
com certeza montar uma lista informatizada de relativos nomes de entradas
apropriados aos países nos quais tenha intenção de atacar, por exemplo, fazendo
uso de um livro intitulado 5001 nomes para seu bebê, que facilmente pode ser
comprado em uma liraria.
Se o cracker tiver a intenção de invadir um país como Brasil ou Portugal, o
nome de entrada almeida_rodolfo pode funcionar bem, mas se for um país como
Japão, é muito provável que não funcione. Obviamente acertar apenas o nome de
entrada não é o suficiente para invadir um sistema, sendo necessário também
possuir a senha, oque pode ser mais fácil do que se pensa. Em 1979, dois ingleses
chamados Morris e Thompson, elaboraram um trabalho clássico referente a
segurança por senha em sistemas do tipo Unix. Foi feita por eles uma lista de
possíveis senhas como: nomes de rua, primeiro e ultimo nomes, nomes de bairros,
palavras invertidas, números de placas de veículos e pequenas quantidades de
caracteres onde cada um dos caracteres se liga a uma probabilidade. Com a lista
criada, eles pegaram outra lista que continha senhas de um sistema e fizeram uma
comparação entre ambas, para verificar se haveria algum acerto.
23
O resultado foi que mais de oitenta e seis por cento de todas as senhas
contidas na lista de senhas de um sistema, correspondiam com a lista que eles
haviam criado. No ano de 1990 um resultado bastante parecido foi elaborado por
outro inglês chamado Klein. Quando pensamos que usuários com maior
qualificação fazem melhor a escolha de suas senhas, estamos enganados. No ano
de 1997 foi realizada uma análise referente a senhas no distrito financeiro de
Londres, e o resultado foi impressionante, pois foi concluído que oitenta e dois por
cento das senhas poderiam ser descobertas facilmente. Esta analise mostrou que as
senhas eram geralmente compostas por palavras abusivas, expressões sexuais,
nome de pessoas da família, nomes de um ator famoso e de objetos comuns. Sem
ter muito trabalho, esta é uma forma do cracker construir uma lista com possíveis
nomes de entrada e senhas. Seria Importante saber se as senhas são fáceis de
serem descobertas? Sim. No ano de 1998, uma reportagem feita em uma cidade da
Califórnia, nos Estados Unidos revelou que um morador dessa cidade, mais
precisamente da cidade de Berkeley, conseguiu fazer uma configuração em diversos
computadores que não eram usados, para serem usados como ferramenta de
discagem, ou seja, os computadores teriam que discar dez mil números de telefone
de certo prefixo, por exemplo, (011)4473-XXXX, em ordem aleatória para que não
despertasse a atenção da empresa telefônica, que com certeza poderia desconfiar e
tentar achar o autor desse fato. Após uma quantia de dois milhões e seiscentas mil
chamadas, esse homem encontrou de certa forma, vinte mil computadores em uma
região, onde duzentos deles não possuíam nenhuma segurança sequer.
Foi estimado então, que um cracker disposto a gastar o seu tempo e limite
sendo persistente conseguiria invadir em torno de setenta e cinco por cento dos
computadores que neste caso, apresentassem alguma segurança. Em um outro
caso, um morador da Austrália, desenvolveu um programa que também tinha a
finalidade de discar uma quantia de telefones com determinado prefixo e fazia
tentativas de invasão, quando a invasão era bem sucedida, o programa exibia uma
mensagem avisando que houve sucesso. Muitos sistemas puderam ser invadidos
com esse método, um deles foi o computador de um banco localizado na Arábia
Saudita, com essa invasão, ele conseguiu obter números de cartões de crédito e
24
seus respectivos limites, em um dos casos, o limite chegava a ser cinco milhões de
dólares. Uma informação deste tipo usada de forma impropria, certamente levaria o
banco a negar que a falha era possível, jogando a culpa para o cliente, ou seja,
alegando que o cliente não tomou as devidas precauções em relação aos seus
dados pessoais ou senhas, entre outros. Outra opção de um computador poder
atacar é através da Internet. Qualquer computador que esteja conectado na Internet
possui um endereço denominado IP (Internet Protocol) de 32 bits que é usado para
identificar o mesmo. O IP é escrito de forma pontuada decimal como 1.100.200.201,
onde cada um dos quatro campos do endereço IP é formado por um decimal que
pode ser de 0 a 255.
É possível que um cracker teste com facilidade se algum computador tem
endereço de IP e se permanece ligado e em execução, inserindo dados do tipo
comando e IP, como por exemplo, digitando: ping 184.156.0.6. Teste um exemplo
disso, no sistema operacional Windows, abra o menu iniciar, clique em “Executar” e
digite “cmd”, na janela que for aberta, digite “ping”, dê espaço e insira o IP de sua
maquina, ou se preferir, insira um domínio. Quando a tentativa de conexão é aceita,
já se tornam possíveis as tentativas de invasão com nomes e senhas de uma
suposta lista criada pelo cracker. Sem duvidas um processo desse tipo no inicio será
de tentativa e erro, mas não deixa de ser possível que em poucos minutos o cracker
possa obter o arquivo onde se localizam as senhas, por exemplo, no caso de
sistemas Unix, onde o arquivo fica localizado em “/etc/passwd” e pode ser lido
livremente. Com o sucesso destes processos, basta que o cracker colete
informações de como as ocorrências do nome de entrada se comportam e qual a
sua frequência, podendo desta forma ter mais sucesso em futuras tentativas.
Diversos daemons (Disk And Execution Monitor – Monitor de Execução e de Disco)
de telnet (Protocolo de Internet que possibilita a interface de terminais e de
aplicações com o auxilio da Internet) podem derrubar uma conexão TCP
(Transmission Control Protocol – Um dos principais protocolos da suíte de protocolo
de Internet) após um numero de tentativas de acesso ao sistema sem sucesso, isso
no caso é feito para atrapalhar os crackers (Wikipedia, 2012).
25
A resposta dos crackers a este processo é feito através da configuração de
vários threads, ou seja, processos que se dividem a si mesmos em duas ou mais
tarefas, podendo ser executados em conjunto, a partir de diversos computadores,
simultaneamente. A finalidade do cracker com relação a isto é realizar o tanto de
tentativas por segundo que a largura de banda permitir. Para um cracker, ter que
desbaratar a invasão sobre diversos computadores ao mesmo tempo não significa
desvantagem. Ao invés de tentar invadir computadores seguindo a ordem do
endereço IP com o comando ping, o cracker tem a opção de querer atacar um
sistema ou uma empresa especifica, por exemplo, a Universidade Uninove em
uninove.br. Possivelmente se obtem o endereço da universidade, ou seja, uma lista
com alguns endereços IP da mesma, basta digitar o comando da seguinte forma:
“dnsquery uninove.br”. Esse comando é usado com o auxilio de programas de
computador. No passado, uma unidade de alocação possuía 65 536 endereços,
porem uma vez que a organização possua essa unidade de alocação e o cracker
consiga obter os dois primeiros bytes de seu endereço IP que o comando dnsquery
fornece, se torna possivelmente fácil que um comando ping seja executado sobre
cada um dos 65 536 endereços, desta forma, verificando os que irão responder e
aceitar uma conexão telnet. Apos este processo, basta que o cracker volta sua
atenção em tentativas de encontrar nomes e senhas. Estes processos todos, de
iniciar com um nome de domínio, obter os dois primeiros bytes dos endereços IP,
executar um comando que verifique os endereços ativos, verificar os endereços que
aceitam conexão e tentar as combinações prováveis de nome e senha, são
processos muito adequados ao que se quer obter. Com certeza muitas tentativas
serão necessárias para obter algum sucesso, mas como os computadores são
maquinas ótimas para fazerem repetições de comandos ate obter um resultado,
bastaria um computador com uma conexão de alta velocidade e programado, então
depois de longas horas o cracker daria uma olhada para verificar os processos que
obtiveram sucesso. Além das senhas de usuários terem a característica de serem
frágeis, a senha raiz, ou seja a senha do root também tem essa característica. Na
primeira vez que um sistema e configurado, as instalações recebem uma senha, ou
seja, a senha default, e particularmente, essas instalações acabam, muitas vezes
não trocando a senha default.
26
O numero de invasões aumentam continuamente, pois elas estão sendo feitas
por usuários que não tem um nível de conhecimento alto o bastante para
escreverem seus próprios códigos interpretados (scripts), então eles pegam os que
encontram prontos na internet. Tais códigos resultam em ataques com grande forca
e recebem dos usuários que realmente são hackers, o nome de script kiddies
`garotada dos códigos interpretados`. Os scripts kiddies geralmente não têm a
intenção de roubar informações, apenas querem achar as maquinas que seriam
facilmente invadidas, ou seja, as maquinas que estão desatentas aos ataques.
CRIPTOGRAFIA DE CHAVE SECRETA
Com a criptografia de chave secreta é possível produzir algoritmos
criptográficos seguros e eficientes que são denominados algoritmos de chave
secreta ou simétricos onde por exemplo um usuário “A” com a chave K, criptografa
um texto “x”, que se possa entender, ou seja, legível em um texto “y” que não se
possa entender, ou seja, ilegível, obtendo fK(x) = y. Acontece então que o texto “y” é
enviado para o computador de destino, sendo usado pelo usuário “B”, onde esse
texto “y” devera ser decriptografado através de um algoritmo inverso fK-1(y). O texto
“x” será obtido se e só se o usuário de destino “B” conhecer a chave K. Quem não
possuir a chave K, dificilmente conseguira decifrar o texto “y” tendo apena o
conhecimento do texto “x”. Para que isso aconteça, é necessário que o algoritmo
seja bem projetado, ou seja, seguro.
Algoritmos de chave secreta nos permitem resolver problemas como por
exemplo o de esconder informações sigilosas do usuário “A” que não quer que
informações como os números do seu cartão de credito sejam vistos por pessoas
não autorizadas, mas quer que o usuário “B” receba esses números. Quando o
usuário “A” deseja enviar as informações que contém os números do seu cartão de
crédito apenas para o usuário “B”, ocorre-se um acontecimento chamado de
autenticação do destino.
27
Com o uso de algoritmos de chave secreta também é possível resolver
problemas de como impedir que pessoas desautorizadas leiam informações que já
tenham sido enviadas e estão armazenadas por exemplo no computador do usuário
“B”. Também existe uma variação desse problema, mas no caso, quando é para
impedir que pessoas desautorizadas leiam e alterem as informações que já tenham
sido enviadas e estão armazenadas no computador do usuário “B”, esse
acontecimento é denominado de detecção de integridade de informação.
ALGORITMO DATA ENCRYPTION STANDARD – DES
O algoritmo DES teve um enorme significado no avanço cientifico, pois ele foi
o primeiro algoritmo de criptografia em que o seu conhecimento se tornou publico.
Antes do algoritmo DES, todos os que existiam eram algoritmos secretos. Isso pelo
fato de que a seguranças das informações envolvidas nessa história dependem do
conhecimento da chave secreta e não no conhecimento do próprio algoritmo. Tal
algoritmo foi desenvolvido pela IBM e no ano de 1977 foi publicado em uma
conferencia chamada National Bureau of Standards – NBS, para que pudesse ser
usado como padrão nos Estados Unidos da América, garantindo segurança nas
informações comerciais.
Quando a função do algoritmo DES é decriptografar as informações, ele
utiliza a mesma chave usada para criptografar as mesmas, possui entrada de 64
bits, uma chave de 56 bits e uma saída de 64 bits, é especialmente criado para ser
implementado em circuitos integrados, pois devido à ocorrência de varias
permutações com sequencias longas de bits, acaba sendo desapropriado para ser
implementado em software.
A Inspiração para que surgisse o algoritmo DES se teve a partir de um
algoritmo que já havia sido criado pela IBM, um algoritmo chamado de LUCIFER,
28
onde sua diferença era na chave que por sua vez era de 128 bits, porem a chave de
entrada e a chave de saída eram também de 64 bits. A agencia nacional de
segurança NSA nos Estados Unidos da América possivelmente havia feito pedidos
para que a tal chave fosse encurtada. O Algoritmo LUCIFER foi projetado no final da
década de 1960, o líder da IBM nessa época era Horst Feisted e em meados da
década de 1970, Walter Tuchman e Carl Meyer eram os lideres do projeto de
criação do DES.
Entre as diversas criticas que o algoritmo DES enfrentou antes de ser tornar
padrão foi pelo motivo de possuir uma redução na chave que era de 128 bits no
algoritmo LUCIFER para então a chave de 56 bits, o que o tornaria mais
economicamente exequível calcular a chave secreta, ainda que fosse por força
bruta, ou seja, enumerando as chaves. Independente das criticas, o algoritmo DES é
muito utilizado, principalmente em áreas de finanças.
No ano de 1997 o National Institute of Standards in Technology – NIST lança
abertamente uma competição para algum algoritmo que fosse o sucessor do DES,
sendo chamado de AES – Advanced Encryption Standard. Essa competição obteve
dezoito propostas de diversos países, sendo que três dessas propostas inscritas
foram descartadas em agosto do ano de 1998 em uma reunião feita para avaliação
pelo NIST, quando pesquisadores perceberam que tais propostas apresentavam
vulnerabilidades fortes. A primeira reunião foi na Califórnia, e então uma segunda
reunião ocorreu no ano de 1999 em Roma, porem dessa vez nenhuma proposta foi
descartada e neste mesmo ano de 1999, o NIST anunciou uma lista onde haviam
cinco finalistas para o concurso, sendo eles o RC6, Mars, Twofish, Serpent e
Rijndael.
CRIPTOGRAFIA DE CHAVE PÚBLICA
Em 1976 dois autores publicaram um artigo seminal propondo um método de
criptossistema denominado de chave pública – (Diffie, W. e Hellman, M. E.). O
criptossistema propunha que cada usuário deveria possuir um par de chaves (S,P)
29
onde S se referia à sua chave particular e secreta, e o P se referia a uma chave
pública.
Matematicamente, existindo um relacionamento entre as chaves S e P, de
certa forma é possível dizer que:
Se uma variável x indicar um texto que se possa ler, e S() indicar a aplicação
da chave S, se faz uma transformação de “x” em S(x)=y dessa forma P(y)=x sendo
que P() indica uma aplicação da chave P, se entende então que S é a chave
invertida da chave P, resultando em P(S(x))=x.
É computacionalmente fácil de realizar o calculo do par de chaves (S,P).
Calcular a chave S a partir do conhecimento da chave P é
computacionalmente difícil.
Obtendo-se as chaves S e P, os cálculos de S() e P() são
computacionalmente fáceis.
Sem conhecer a chave S, o calculo de S() é computacionalmente difícil.
Com a representação destas informações, cada usuário calcula em seu
próprio computador o par de chaves (S,P), ficando armazenada de forma segura e a
chave P é pública, ou seja, é enviada a todos.
ALGORITMO RSA
Publicado no ano de 1978, o algoritmo RSA tem o nome derivado das iniciais
de seus atores, os quais foram Ron Rivest, Adi Shamir e Len Adleman. Trata-se de
um algoritmo que se baseia na dificuldade computacional quando o assunto é fatorar
determinado numero inteiro em números primos.
No RSA, a principio deve-se calcular um par de chaves, obtendo-se um
usuário “A” com uma chave pública “P” e uma chave particular secreta “S” de tal
forma, onde será preciso calcular dois números inteiros primos e longos que
possuem centenas de bits, esses dois números chamados de q e r deverão ser
30
multiplicados, obtendo o produto “n”. Como por exemplo, q=2 e r=11. A fatoração
rápida de n em números primos deve ser inviável, para que isso aconteça, é
aconselhável que o comprimento de q esteja perto do comprimento de r.
32
4 CRONOGRAMA
EXECUÇÂO DE ATIVIDADES 1º
Mês
2º
Mês
3º
Mês
4º
Mês
Pesquisa bibliográfica X
Leitura e fichamento X
Coleta e seleção de dados X
Revisão bibliográfica X
Análise crítica do material X
Aplicação de questionários (caso necessário) X
Análise e compilação dos dados obtidos X
Elaboração preliminar do texto X
Redação provisória X
Entrega ao orientador para correção X
Revisão e elaboração final X
Entrega oficial X
33
REFERÊNCIAS BIBLIOGRÁFICAS
CABRAL João, A Criptografia. 2013. Disponível em.
http://repositorio.uac.pt/handle/10400.3/2554. Acesso em: 28/04/2014.
MEHRAN MISAGHI, Um Ambiente Criptográfico Baseado na Identidade. São Paulo,
2008. Disponível em: http://www.teses.usp.br/teses/disponiveis/3/3142/tde-
15092008-135036/publico/versaofinaltesemehranmisaghi.pdf. Acesso em:
02/05/2014.
OKUMURA, Mirella Kiyo. Números primos e criptografia RSA. São Carlos, 2014.
Disponível em: http://www.teses.usp.br/teses/disponiveis/55/55136/tde-04042014-
101744/publico/mirella_okumura_revisada.pdf. Acesso em: 07/05/2014.
E.ALCALDE, J.MORERA e J.A.PEREZ, Introdução aos sistemas Operativos,
Segurança nos Sistemas Operativos, Editora Mcgraw, pag. 175-184, 1993.
ANDREW S. TANENBAUM, Sistemas Operacionais Modernos, Segurança, Editora
Pearson, 2ª Ed., pag. 439-502, 2003.
PIGATTO, Daniel Fernando. Segurança em Sistemas embarcados críticos –
utilização de criptografia para comunicação segura. São Carlos, 2012. Disponível
em: http://www.teses.usp.br/teses/disponiveis/55/55134/tde-06092012-154011/
publico/DanielFernandoPigatto.pdf. Acesso em: 08/05/2014.
RODRIGUES, Douglas. Um estudo comparativo das especificações de segurança
aplicada a uma arquitetura orientada a serviços. São Carlos, 2011. Disponível em: