33
Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO PARA ACESSO VIA INTERNET Curitiba 2008 Monografia apresentada a Universidade Federal do Paraná, como requisito para a conclusão do curso de Engenharia Elétrica, orientada pelo professor Dr. Eduardo Parente Ribeiro.

Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Afonso Satoshi Akiba, GRR20020046Alessandro Kuniyoshi Tachibana, GRR20024753

TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO PARA ACESSO VIA INTERNET

Curitiba2008

Monografia apresentada a Universidade Federal do Paraná, como requisito para a conclusão do curso de Engenharia Elétrica, orientada pelo professor Dr. Eduardo Parente Ribeiro.

Page 2: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

1 INTRODUÇÃO ........................................................................................................... 5 2 FUNDAMENTAÇÃO TEÓRICA ............................................................................... 12

2.1 O QUE É AUTENTICAÇÃO ............................................................................... 12 2.1.1 Algo que o usuário possui ....................................................................... 12 2.1.2 Algo que o usuário é ................................................................................. 13 2.1.3 Algo que o usuário conhece .................................................................... 13

2.2 O PROTOCOLO SSH ........................................................................................ 13 2.3 O PROTOCOLO SSL/TLS ................................................................................. 14

3 MONTAGEM DO PROJETO ................................................................................... 18 3.1 SERVIDOR ........................................................................................................ 18

3.1.1 Apache ....................................................................................................... 19 3.1.2 MySQL ........................................................................................................ 19 3.1.3 PHPBB ........................................................................................................ 21 3.1.4 O Software Proposto ................................................................................ 22

3.1.4.1 O primeiro estado ................................................................................. 23 3.1.4.2 O segundo estado ................................................................................ 24 3.1.4.3 O terceiro estado .................................................................................. 24 3.1.4.4 A geração da senha do lado servidor .................................................. 25 3.1.4.5 O software no celular ........................................................................... 27 3.1.4.6- Funcionamento do software no celular ............................................... 27

4 CONCLUSÕES ........................................................................................................ 28

2

Page 3: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Lista de Figuras:

Figura 1: Mapa da Europa com as proporções de telefone móveis em relação à população. Fonte: Wikipedia. 2008c.........................................................................8Figura 2: Localização no SSL entre as camadas de rede. Fonte: SUN Reference Guide, 2006................................................................................................................16Figura 3: Diagrama demonstrando a troca de mensagens no protocolo SSL Fonte: SUN Reference Guide, 2006.........................................................................16Figura 4: Diagrama demonstrando a troca de mensagens no protocolo SSL...18Figura 5: Diagrama temporal representando as fases de execução do sistema......................................................................................................................................26Figura 6: Diagrama ilustrando possível tentativa de comprometimento do sistema.......................................................................................................................28Figura 7: Diagrama ilustrando tentativa de comprometimento do sistema.......29

Lista de Tabelas:

Tabela 1: Dados de vendas e participação de mercado de fabricantes de celular. Fonte: Gartner Group, 2008..........................................................................8Tabela 2: Vendas por região e variação em relação ao ano anterior. Fonte: Gartner Group, 2008....................................................................................................9Tabela 3: Funcionalidades criprográficas do pacote Java. Fonte: SUN Reference Guide, 2006..............................................................................................15Tabela 4: Tabela com as colunas do banco de dados PHPDB............................20Tabela 5: Tabela com as colunas do banco de dados JAVADB..........................20

3

Page 4: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

1 INTRODUÇÃO

As comunicações de dados digitais por redes de computadores trazem

problemas para a confidência das informações transmitidas, pois mesmo que não

seja destinatário das mensagens enviadas, uma pessoa pode ter acesso aos dados.

Há também a dificuldade de se garantir a identidade das partes comunicantes.

O primeiro problema, o de acesso indevido por terceiros, deriva-se da infra-

estrutura da Internet, que depende de equipamentos roteadores em todos os locais

do planeta onde se necessita acesso. Por isso, qualquer entidade pode colocar um

equipamento na rede, desde que seguindo as regras básicas para permitir

conectividade entre a rede e o novo equipamento. Basta instalar um equipamento

chamado switch – ou outro chamado hub – em um ponto qualquer da Internet, que

se pode observar todo o tráfego que se passa naquela região da rede. Para se

analisar o tráfego capturado, utiliza-se um software, normalmente chamado

analisador de tráfego, que é capaz de abrir os pacotes transmitidos e decodificar o

conteúdo. Para reduzir esse problema, pode ser utilizada uma codificação extra na

carga de dados em cada pacote, chamada criptografia. A criptografia é um método

para cifrar uma mensagem de forma que somente o destinatário tenha capacidade

de decifrá-la.

O segundo problema, o de assegurar a identidade das partes comunicantes,

pode ser tratado utilizando-se de métodos de autenticação. Um método de

autenticação baseia-se em uma ou mais informações que unicamente identificam

uma pessoa ou entidade. No caso de uma pessoa, pode ser um aspecto físico,

como a impressão digital; ou algo que somente ela saiba, como uma senha. Pode

também ser um objeto único que esteja em sua posse, como uma carteira de

4

Page 5: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

habilitação para dirigir. Em situações de comunicações digitais, outros

identificadores são endereços IP, nomes de domínio, certificados e assinaturas

digitais.

Normalmente, são feitas verificações de autenticidade do servidor que está

sendo acessado usando checagens de DNS (Domain Name System), observando

certificados digitais e, mais recentemente, com ferramentas anti-phishing,

específicas dos navegadores, que buscam em um grupo de repositórios centrais as

informações quanto à autenticidade de um site. Por isso, é relativamente garantido

que se esteja realmente visitando determinado endereço eletrônico na Internet, salvo

casos em que o usuário é infectado por algum vírus de computador que executa

instruções à sua revelia.

É por esse motivo que é na parte do usuário que se encontram os maiores

problemas quanto à identidade, pois os métodos simples – usar senhas para

autenticar acesso – não oferecem um nível adequado de segurança, enquanto um

método mais seguro, como usar assinaturas digitais nas comunicações não é

facilmente utilizável e nem viável para a maioria dos usuários na Internet.

Se a identidade de um usuário é comprometida, o indivíduo que a

comprometeu pode se passar por outra pessoa e obter acesso a recursos ao quais

não deveria. Pode também enviar mensagens eletrônicas falsas como se fosse o

próprio usuário.

Uma forma de se reduzir esses problemas está em devidamente autenticar o

usuário ao servidor. Se confirmada sua identidade, a confiança gerada permite

trocas de informações confidenciais e também que tais informações sejam de

responsabilidade de que a enviou.

5

Page 6: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Para autenticar uma pessoa deve-se poder unicamente identificá-la dentre

todas as outras que potencialmente acessam o serviço usando-se de informações

inerentes somente àquela pessoa como, por exemplo, senhas e carteiras de

identidade. Pode-se também utilizar objetos pessoais que sejam unicamente

identificáveis uns dos outros.

A telefonia celular está grandemente difundida em praticamente todo o

mundo. Alguns lugares como, por exemplo, Hong Kong (OFTA, 2008) e países

europeus como Áustria (RTR, 2008) já possuem índices de posse de aparelhos

celulares superiores a população total do país. Outros países atingem índices que se

aproximam da totalidade, enquanto na África, por causa da baixa penetração de tais

aparelhos, a taxa de crescimento é aproximadamente o dobro da taxa mundial

(BBC, 2005) e, em poucos anos atingirá patamares de densidade de acessos

elevados. Mesmo dentro do Brasil, no Distrito Federal a quantidade de aparelhos

celulares já é superior à população. Na média, a densidade de acessos móveis já é

superior a 65% no Brasil (ANATEL, 2008).

6

Page 7: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Figura 1: Mapa da Europa com as proporções de telefone móveis em relação à população. Fonte: Wikipedia. 2008c.

De acordo com uma pesquisa por nós realizada no catálogo de produtos dos

maiores fabricantes de aparelhos celulares do mundo, estas ofertam mais de 80%

(Nokia - catálogo, 2008; Motorola – catálogo, 2008; LG - catálogo, 2008; Samsung -

catálogo, 2008; Sony-Ericsson - catálogo, 2008) de seus produtos com suporte Java

móvel, o que nos possibilita desenvolver um software capaz de carregar o

identificador do usuário que abranja um grande número de potenciais usuários,

Companhia1Q08 Vendas (x1000)

1Q08 Participação de Mercado (%)

1Q07 Vendas (x1000)

1Q07 Participação de Mercado (%)

Nokia 115.191,8 38,1 92.048,1 35,5Samsung 42.396,5 14,4 32.099,8 12,4Motorola 29.884,7 10,2 47.620,7 18,4LG 23.645,8 8 16.009,3 6,2Sony-Ericsson 22.061 7,5 21.771,5 8,4Outros 61.103,2 20,8 49.489,8 19,1Total 294.283 100 259.039,2 100Tabela 1: Dados de vendas e participação de mercado de fabricantes de celular. Fonte: Gartner

Group, 2008

7

Page 8: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

1Q08 Vendas (Milhões)

Variação em rela-ção à 1Q07 (%)

Ásia/Pacífico 114,4 26,6Europa Oriental, Oriente Médio, África 56,4 25,8Japão 13,2 -10,1América Latina 32,5 28,4América do Norte 41,9 2,4Europa Ocidental 35,9 -16,4

Tabela 2: Vendas por região e variação em relação ao ano anterior. Fonte: Gartner Group, 2008

Na tabela 2 se pode verificar que as regiões com menor crescimento ou que

até apresentam decrescimento no número de aparelhos vendidos são aquelas onde

o mercado já está em estado mais avançado de consolidação. Nesses mercados os

telefones celulares já estão bastante difundidos, não havendo mais espaço para

crescimento vegetativo da base instalada. Também não ocorreram grandes

inovações em termos de funcionalidade adicional nos aparelhos.

Regiões com menor saturação da base instalada contam com taxas maiores

de crescimento e, com a oferta de modelos de telefone celular atual, já se pode

considerar um grande aumento na base instalada de telefones com suporte Java, o

que eleva a abrangência de nossa proposta de software também a esses países,

Brasil incluído.

Por causa desses fatores, uma das condições básicas para implantação do

sistema é facilmente satisfeita, que é o custo zero ou próximo de zero para o usuário

obter o hardware necessário. Evidentemente o custo do aparelho celular não é zero,

mas pode ser considerado amortizado, pois fator motivador da compra do celular é

outro, na maioria dos casos; usar o celular para conversar.

O objetivo de nosso projeto é contornar o problema de autenticação segura

dos usuários para utilização de serviços na Internet, onde o simples uso de senhas

já não é suficiente para garantir a identidade do usuário, oferecendo um método de

8

Page 9: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

autenticação mais segura. Para isso, utilizaremos, além de senhas de acesso,

identificação por posse de um identificador instalado no aparelho de telefonia celular

do cliente.

Nossa solução baseia-se no conceito de autenticação em múltiplas etapas,

utilizando mais de um tipo delas para tornar o método mais resistente contra ataques

à privacidade do usuário. O Mecanismo proposto prevê a utilização de uma semente

de identificação, que é uma seqüência aleatória de 64 bytes de tamanho, além da

senha. Para acessar um serviço da Internet que requeira autenticação, bastaria que

o usuário possuísse um aparelho de telefone celular e tivesse previamente efetuado

cadastro no serviço de autenticação para poder dispor de um nível maior de

segurança no acesso.

Possíveis usuários para o serviço seriam correntistas de instituições

financeiras, listas de discussão (fóruns de Internet) e comunidades que dependem

de contribuição pública com segurança quanto à identidade dos participantes

(Wikipedia, por exemplo).

Em nosso projeto, colocaremos no ar um fórum de discussões eletrônico

utilizando este mecanismo. Este tipo de serviço permite que os usuários discutam

sobre determinado assunto através de postagens visíveis aos membros do fórum ou

a qualquer pessoa se assim o administrador do fórum decidir. Mesmo que as

discussões sejam tornadas públicas, normalmente é requerido um cadastro para

garantir a identidade das pessoas participantes e para que seja possível tomar

medidas para moderar o seu comportamento.

O objetivo será que um usuário tenha possibilidade de acessar as áreas

restritas utilizando para isso seu celular para obter a semente de identificação e

9

Page 10: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

assim prevenir que outro usuário com intenções maliciosas consiga personificá-lo e

pôr em risco sua identidade.

No capítulo seguinte apresentaremos a fundamentação teórica, com as

ferramentas utilizadas no projeto, além de alternativas consideradas e tecnologias já

existentes. Depois, há uma explicação detalhada dos processos realizados e das

configurações executadas, além de casos de possíveis falhas de segurança e as

medidas cabíveis para proteger o usuário.

Por fim, discutimos as conclusões obtidas, os problemas encontrados e as

decisões tomadas, e também possibilidades de desenvolvimento futuro da

tecnologia.

10

Page 11: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

2 FUNDAMENTAÇÃO TEÓRICA

2.1 O QUE É AUTENTICAÇÃO

Autenticação é a confirmação da autenticidade da identidade digital do

usuário, a confirmação é efetuada pelo fator de autenticação e podem ser

classificados em três casos:

• Algo que o usuário possui;

• Algo que o usuário conhece;

• Algo que o usuário é;

Um ou mais fatores podem ser usados para confirmar a identidade, os casos

em que é utilizado dois ou mais fatores podem ser classificados como uma

autenticação em duas etapas.

O uso de múltiplos fatores de autenticação implica em um nível maior de

segurança, pois não é exclusivamente dependente de uma única informação,

dificultando acessos por pessoas não autorizadas, pois são duas informações a

serem comprometidas (Authentication World, 2008).

2.1.1 Algo que o usuário possui

As formas mais comuns de posse são os smart cards e os USB tokens.

Ambos contêm informações únicas para realizar a autenticação do usuário.

(Authentication World, 2008)

11

Page 12: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

2.1.2 Algo que o usuário é

São utilizadas características físicas únicas de um usuário. Como a

impressão digital, a imagem da íris do olho ou até mesmo a face da pessoa.

Geralmente a implementação de uma característica física como forma de

autenticação tem um custo elevado e um dos problemas é que uma vez quebrada a

segurança, os dados de autenticação não podem mais ser mudados, pois dependem

das características físicas do usuário. (Authentication World, 2008)

2.1.3 Algo que o usuário conhece

São as senhas e os PINs. O uso da senha vem desde tempos antigos onde

uma sentinela apenas permitia a passagem de alguém caso respondesse a pergunta

com a resposta certa. O nível de segurança geralmente é baixo. O motivo é que

normalmente as senhas utilizadas são facilmente quebradas por alguém que tenha a

intenção de fazê-lo, pois são utilizados dados como datas de nascimento, dados de

endereço ou palavras contidas no dicionário. (Authentication World, 2008)

2.2 O PROTOCOLO SSH

O protocolo SSH (Secure Shell) é um protocolo de rede que permite que a

comunicação por terminal remoto através de um canal seguro entre dois

computadores.

O SSH faz conexões entre computadores e assegura a autenticação, a

criptografia e a integridade dos dados de uma transmissão.

12

Page 13: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Na autenticação, por exemplo: para se efetuar o logon em um computador

remoto, será necessário que o SSH aceite a assinatura digital que lhe é enviada,

caso contrário a conexão é rejeitada. Na criptografia o SSH codifica os dados para

que não sejam lidos por terceiros protegendo os dados.

Caso algum terceiro intercepte os dados e os modifique, o SSH também tem

a função de detectar alterações nos dados transmitidos.

Porém o SSH não é uma solução de segurança completa, pois não protege

os computadores contra ataques massivos de hackers, e também não elimina vírus

e cavalos de tróia.

A primeira versão do SSH, o SSH-1, foi desenvolvida para adicionar

segurança a serviços de TELNET (Telecommunication Network), RSH (Remote

Shell) e rlogin.

Uma nova iteração do protocolo foi desenvolvida para melhorar o nível de

segurança e apresenta melhorias como o protocolo de derivação de chaves Diffie-

Hellman (IETF, 1999), mas não apresenta compatibilidade com a versão anterior, o

que impede a adoção do protocolo sem uma migração total da base instalada de

SSH1 para SSH2 (O’Reilly, 2003).

2.3 O PROTOCOLO SSL/TLS

O protocolo SSL, desenvolvido em 1994 pela Netscape, é o mais

amplamente utilizado para efetuar comunicações seguras de dados pela Internet.

Ele usa uma combinação de processos criptográficos para garantir a confidência e

integridade dos dados transmitidos. Com contribuições advindas da comunidade da

Internet, tornou-se um padrão e agora é mantido pela IETF (Internet Engineering

13

Page 14: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Task Force), que mudou seu nome para TLS (Transport Security Layer). Apesar da

mudança de nome, ainda é muito utilizado o nome SSL, pois as mudanças

implantadas desde a versão 3 do SSL até a primeira versão do TLS são mínimas.

Funcionalidades criptográficas disponíveis no JSSE

Algoritmo de Criptografia

Processo de Criptografia Comprimento das Chaves

(Bits)

RSA Authentication and key exchange

512 and larger

RC4 Bulk encryption 128128 (40 effective)

DES Bulk encryption 64 (56 effective)64 (40 effective)

Triple DES Bulk encryption 192 (112 effective)

AES Bulk encryption 256128

Diffie-Hellman Key agreement 1024512

DSA Authentication 1024

Tabela 3: Funcionalidades criprográficas do pacote Java. Fonte: SUN Reference Guide, 2006O protocolo SSL é inserido entre as camadas de transporte e de aplicação,

ou seja, sobre a camada TCP e antes dos protocolos de aplicação como, por

exemplo, HTTP (hypertext transfer protocol) ou IMAP (interactive message access

protocol).

14

Page 15: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Figura 2: Localização no SSL entre as camadas de rede. Fonte: SUN Reference Guide, 2006

SSL tem três funções; garantir a identidade das partes que efetuam a

comunicação, garantir a privacidade das comunicações, impedindo que terceiros

tenham acesso ao conteúdo das mensagens, e garantir a integridade dos dados

recebidos, através da utilização de checksums, as funções de hash seguras.

A primeira função é de uso opcional, e garante a identidade das partes

comunicantes através da utilização de certificados digitais. Cada parte apresenta à

outra seu certificado digital que, se aceito, permitirá às duas partes continuar o

processo de negociação da sessão.

Figura 3: Diagrama demonstrando a troca de mensagens no protocolo SSL Fonte: SUN Reference Guide, 2006.

15

Page 16: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Após realizar a troca de certificados, ocorre o processo de negociação do

melhor conjunto de chaves criptográficas para as duas partes. As chaves secretas

acordadas são transmitidas à outra parte criptografadas com a chave pública obtida

do certificado digital. Após essa troca, as comunicações subseqüentes já passam a

utilizar o algoritmo de criptografia selecionado.

A proteção da integridade dos dados é feita através da utilização de hashs

criptográficos, que detectam se houve algum tipo de alteração dos dados no caso de

os dados terem sido interceptados. A implementação no protocolo SSL é através do

HMAC, o hash do message authentication code, que são hashes criptográficos

baseados em uma chave criptográfica secreta, conhecida apenas pelas partes

comunicantes. (SUN Reference Guide, 2006)

16

Page 17: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

3 MONTAGEM DO PROJETO

O sistema é uma combinação de banco de dados, servidor web e aplicativos

Java e é instalado em dois lugares: um servidor, que abriga o serviço que precisa da

autenticação e o sistema de autenticação; e o telefone celular, que abriga a semente

de identificação – que é uma seqüência numérica gerada aleatoriamente com 64

bytes – e o software gerador de senhas de acesso.

Figura 4: Diagrama demonstrando a troca de mensagens no protocolo SSL

3.1 SERVIDOR

No lado do servidor fica instalado um servidor web Apache, cuja função é

disponibilizar documentos para acesso por um computador externo através de um

navegador Internet (browser). Fica instalado também um software de fórum, escrito

em PHP, o PHPBB na terceira versão, um banco de dados MySQL e o software

proposto, que faz a interface entre banco de dados e a página web do fórum, e

também a autenticação dos usuários. Em conjunto com os scripts do fórum, foi

17

Page 18: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

acoplado um aplicativo Java que, depois de carregado na máquina do usuário,

executa conexão com o programa no lado do servidor.

3.1.1 Apache

O servidor Apache está configurado para servir seus documentos no

servidor escutando na porta TCP 8253. O diretório-base foi alterado para apontar

para a base de documentos do diretório de instalação do PHPBB, além disso,

Apache foi configurado para permitir acesso somente a esse local.

Como o endereço IP da máquina não tem um domínio registrado, para

acessar o site é necessário digitar o endereço IP e a porta na barra de endereços do

navegador. Exceto por essas alterações, a configuração do Apache foi deixada

muito próxima daquela que é o padrão de fábrica.

3.1.2 MySQL

O banco de dados é utilizado para armazenar todas as informações sobre

usuários e suas postagens no fórum e também para armazenar as configurações e

permissões de acesso para o fórum.

A instalação do banco de dados foi realizada de forma a conter duas bases

de dados. A primeira base, a partir daqui chamada PHPDB, foi criada junto com um

usuário específico para o fórum realizar a conexão e efetuar transações com o

banco de dados. Esse usuário é também utilizado pelo aplicativo no momento no

qual o usuário tenta a autenticação.

Depois de criado o banco de dados para o fórum, PHPDB, o próprio

programa do fórum se encarrega de criar as tabelas necessárias. No total, foram

18

Page 19: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

criadas sessenta e duas tabelas para as configurações, conteúdo das mensagens e

opções de usuários. Os campos principais do PHPDB no sistema de autenticação

estão descritos a seguir:

Nome da Coluna Tipo de Dado

username VARCHAR

user_password VARCHAR

user_last_access INTEGER

Tabela 4: Tabela com as colunas do banco de dados PHPDB

Na tabela de usuários foi adicionada uma coluna para o propósito de

autenticar o usuário pelo nosso sistema. É uma coluna que armazena dados do tipo

INTEGER, que guarda um timestamp, em formato UNIX para marcar o instante de

tempo no qual o usuário efetuou a geração de senha e evitar acessos duplicados ou

que a senha se mantenha a mesma por um período de tempo excessivo. O nome

dessa coluna adicional é “user_last_access”. Além disso, são usados os campos de

nome de usuário para identificação e é alterado o campo de senha a cada vez que é

gerada uma nova senha.

A segunda base de dados, chamada JAVADB, serve ao aplicativo Java e é

acessada através de um programa criado especificamente para essa função, para

recuperar a semente para o usuário e para gerar a senha de acesso e armazena-la

na base de dados do fórum. Essa base é formada por apenas uma tabela e possui

os seguintes cinco campos:

Nome da Coluna Tipo de Dado

Username VARCHAR

Password VARBINARY

User_ID INTEGER

Token (semente) VARBINARY

FLAG TINYINT

Tabela 5: Tabela com as colunas do banco de dados JAVADB

19

Page 20: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

A primeira coluna indica o nome com o qual o usuário irá se autenticar no

fórum. O dado é armazenado como texto banco de dados. A segunda coluna é o

campo de senha para acessar o gerador das senhas da semente. Essa senha é

armazenada como um hash em valor binário e não varia com o tempo, mas não dá

acesso a nenhuma parte do fórum. O terceiro campo é o índice da entrada no banco

de dados, em formato de numeral inteiro. O quarto campo armazena o token, ou

semente, de identificação do usuário em valor binário e a quinta coluna armazena

um marcador para indicar a retirada da semente do banco de dados. O formato de

armazenamento de FLAG não é boolean porque não é suportada pela versão do

MySQL utilizada (MySQL5.0 Reference Manual, 2008).

3.1.3 PHPBB

O PHPBB (PHPBB, 2008) é o software responsável por fornecer a interface

gráfica para o usuário acessar a página do fórum. Como ele é escrito em PHP, é

necessário instalar o interpretador da linguagem no servidor. A instalação do PHP

(PHP Hypertext Preprocessor) não necessita nenhuma configuração adicional.

Para adaptar o fórum às características do nosso sistema, foram executadas

modificações na função de autenticação. Originalmente o processo de autenticação

fazia a comparação das credenciais providas pelo usuário na tela de login e permitia

ou não a entrada baseado no resultado dessa comparação. Após a modificação, o

fórum executa uma comparação adicional, buscando o valor da coluna

“user_last_access” e comparando com a função “now()” do PHP. Se o resultado for

menor que 600 segundos (10 minutos), em conjunto com a identificação positiva da

outra comparação, ao usuário é garantido o acesso.

20

Page 21: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Toda vez que o usuário conseguir obter acesso ao fórum, a coluna de último

acesso é automaticamente zerada, para evitar conexões concomitantes.

A outra modificação foi alterar a forma como a senha é armazenada no

banco de dados. A forma original transformava a senha em um hash em formato

específico do PHP. Para garantir maior interoperabilidade entre o fórum e o

aplicativo Java, alteramos o formato de armazenamento para um hash SHA-1,

comum às duas linguagens.

3.1.4 O Software Proposto

O software proposto foi programado em Java, versão 6, funciona como um

intermediário entre o usuário em um PC remoto e o servidor. O software fica

continuamente rodando, esperando por conexões na porta 8254. O tipo de socket

utilizado é o seguro (SSL – Secure Sockets Layer) e recebe conexões feitas a partir

dos computadores dos usuários, que ativam em seus browsers o aplicativo Java

responsável pela geração do número de desafio. O software também possui uma

conexão com o banco de dados, a qual utiliza para acessar e atualizar os dados

cadastrais dos usuários.

O programa tem três modos de operação: um para registrar o usuário nas

bases de dados, o segundo para realizar a autenticação do usuário, e o terceiro para

recuperar a semente de identificação para posterior instalação no aparelho celular

do usuário.

O primeiro estágio de funcionamento é a espera por uma conexão. O

aplicativo se mantém em estado dormente até a recepção da primeira conexão.

Quando isso acontece, é gerado um processo que passará a rodar em segundo

21

Page 22: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

plano enquanto o processo principal retorna à dormência para esperar pela próxima

conexão.

Após o início de cada processo é realizado o procedimento de

estabelecimento de conexão SSL e o processo entra na fase da seleção do modo de

operação (“STATE”). Nesse estado o programa volta a aguardar comunicação por

parte do PC cliente de uma mensagem prefixada com “STATE“. Os valores válidos

são 1, 2 e 3.

3.1.4.1 O primeiro estado

Este é o modo de registro de usuário no sistema. Após a mensagem de

seleção de modo de operação, o usuário deve enviar o nome com o qual deseja se

identificar e uma senha para garantir privacidade e assegurar o primeiro nível de

autorização. Essas mensagens são prefixadas com “NAME:” e “PASS:”.

Depois de certificar que as mensagens foram recebidas com a devida

formatação, o servidor realizará a geração da semente. O processo consiste em

combinar os caracteres do nome e da senha fornecidos pelo usuário, adicionar o

valor do horário de registro no site e passar essa seqüência por um algoritmo de

hash SHA-512. Os valores de nome, senha e semente serão então armazenados

em seus respectivos campos no JAVADB.

Ao terminar o processo de cadastro, o servidor enviará uma mensagem ao

cliente confirmando o sucesso da operação e fechará a conexão, pois não são mais

necessárias trocas de mensagens até que o usuário realize a instalação da semente

e do gerador de senhas em seu celular.

22

Page 23: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

3.1.4.2 O segundo estado

O segundo estado é a geração do arquivo de texto com o valor da semente

para o usuário. O aplicativo recebe as credenciais de nome e senha e realiza a

busca no JAVADB. O critério da busca é que nome e senha sejam iguais às

entradas e que a coluna “FLAG” seja igual a zero. Essa última condição serve para

impedir que o arquivo de semente seja gerado mais de uma vez, pois a retirada da

semente pela primeira vez aciona o método que atualiza “FLAG” para o valor “1”.

O arquivo da semente deve ser transferido, juntamente com o programa

gerador de senhas, diretamente para o aparelho de telefone celular através de uma

conexão USB.

3.1.4.3 O terceiro estado

Esse é o modo de acesso propriamente dito. Assume-se que o usuário já

tenha realizado o cadastro corretamente e já instalou a semente em seu celular.

Como no modo de operação anterior, o usuário inicia o modo fornecendo suas

credenciais (as mesmas que ele forneceu no momento do cadastro). O aplicativo

fará conexão com o JAVADB, para executar uma busca pelos campos de nome e

senha.

O sucesso da busca recuperará o valor da semente do usuário, que será

utilizado no processo de geração da senha de acesso pelo lado do servidor. O

sucesso da busca também dispara o início da rotina de geração de um número

aleatório para combinação com a semente. Esse valor aleatório é obtido usando-se

a função “RAND()” do MySQL em conjunção com a função “MD5()”. O resultado é

truncado para oito dígitos para evitar um número muito longo para o usuário.

23

Page 24: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

O número aleatório é enviado ao usuário pelo soquete seguro através do

programa conector localizado no cliente e também é armazenado em um buffer para

a geração da senha pelo lado do servidor. Vale ressaltar que o valor da semente é

armazenado localmente do lado do servidor e fica atrelado à identidade do seu

respectivo usuário, não sendo necessária a transmissão desse dado, pois já é de

posse do usuário em seu celular.

3.1.4.4 A geração da senha do lado servidor

O número aleatório é combinado com o valor da semente, ambos

convertidos para formato string, e aplicados o algoritmo SHA-1. Divide-se o valor

resultante em pares de dígitos e se pega o primeiro dígito dos oito primeiros pares.

O resultado disso é a senha de acesso, que deve ter sido gerada identicamente no

lado do celular. Esse valor é então atualizado no PHPDB no campo “password”

juntamente com o campo “user_last_access” para o horário atual do acesso pelo

software do lado do servidor.

24

Page 25: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Figura 5: Diagrama temporal representando as fases de execução do sistema.

A partir daí, o usuário retornará à página inicial do fórum e digitará seu nome

de usuário e a senha gerada no celular. O fórum realizará o processo de

autenticação e autorizará o acesso se todas as condições forem satisfeitas.

25

Page 26: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

3.1.4.5 O software no celular

O software, depois de compilado, é armazenado em um arquivo com

extensão “JAD” e outro com extensão “JAR”. Para instalá-lo, basta copiá-lo para o

celular e confirmar a instalação do aplicativo. O funcionamento do programa é

idêntico ao explicitado anteriormente.

As funções do programa são: carregar a semente em sua memória,

criptografar e descriptografar o seu conteúdo no armazenamento seguro e executar

o algoritmo de criação de senha.

3.1.4.6- Funcionamento do software no celular

O software do celular carrega a semente de um arquivo de texto

“TOKEN.TXT”, que foi gerado pelo servidor e foi depois copiado para o telefone

através da interface USB. O arquivo é então criptografado através da biblioteca

Icecrypt (Icecrypt, 2008) e então é armazenado no RMS (Record Management

Store), (SUN Developer Network, 2004).

O usuário deve digitar a seqüência numérica obtida na tela do computador

que acessa o fórum diretamente no celular. Após a realização das computações, a

senha é gerada e depois mostrada no visor do celular. A senha é gerada também

pelo servidor para servir de comparação com o valor obtido do usuário.

O usuário deve então digitar a nova seqüência numérica no campo

“Password” da tela inicial do fórum para obter autorização de acesso às áreas

restritas.

26

Page 27: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

4 CONCLUSÕES

Foi implementado e testado o sistema de autenticação usando o celular

como forma de armazenamento e gerador de senha de acesso para controlar o

acesso de um usuário a um fórum de Internet.

O sistema resultou em uma forma mais segura de autenticação de usuários,

pois foi introduzida uma camada extra de segurança para autenticação. E como os

dois passos, senha e senha gerada pela semente, são necessários ao processo

completo de autenticação, mesmo que o usuário tenha sua senha copiada por um

terceiro, este não conseguirá acesso sem a posse do celular onde se encontra

armazenado a semente de identificação do usuário.

Na figura 6 é apresentado um exemplo no qual o computador utilizado pelo

usuário está infectado por um keylogger, um programa captura todos os dados

digitados pelo usuário e também os apresentados ao usuário. Não haverá quebra de

segurança se ocorrer como demonstra o diagrama, pois quando o invasor for utilizar

a senha temporária, ela já não terá mais validade.

Figura 6: Diagrama ilustrando possível tentativa de comprometimento do sistema.

27

Page 28: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Além disso, a semente é armazenada no celular em forma criptografada

para que, no caso de roubo ou extravio do aparelho, a semente permaneça

suficientemente segura até o usuário requisitar a anulação de sua validade e uma

nova semente precise ser gerada e emitida. O uso do celular para armazenar a

semente foi considerado mais seguro, pois além de ser um sistema pessoal do

usuário onde tem controle do que acontece, a quantidade de vírus e outras

ferramentas maliciosas existentes para os dispositivos móveis é bem menor do que

se comparado ao sistema operacional Windows.

Figura 7: Diagrama ilustrando tentativa de comprometimento do sistema.

Pode existir a possibilidade de o invasor tentar capturar os dados em tempo

real e tentar comprometer o sistema antes de o usuário efetuar o acesso, como

ilustrado na figura 7. Neste caso existe uma possibilidade real de o invasor

comprometer a segurança , ao utilizar a senha temporária antes mesmo do usuário.

Para evitar esse tipo de quebra de segurança, o serviço que for

implementado deverá verificar o endereço IP do computador que fez a requisição de

28

Page 29: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

geração da senha e o endereço IP do computador que tentou utilizar a senha e,

caso sejam eles diferentes, o servidor deverá negar o acesso.

Inicialmente foi planejado que o programa instalado no celular pudesse

contatar o servidor e obter o retorno da seqüência aleatória para a geração da

senha. Após testes iniciais não foi obtido sucesso em conectar-se ao servidor

usando os serviços da operadora VIVO. Para tornar o projeto mais abrangente,

evitando possíveis bloqueios por parte das operadoras nas portas, foi retirada essa

funcionalidade e introduzida a funcionalidade de obtenção do número aleatório

através de um programa Java localizado no mesmo servidor do fórum, com o celular

funcionando somente para armazenar a semente e gerar a senha de acesso.

A escolha do algoritmo Icecrypt foi devida à simplicidade e melhor

desempenho em comparação a outras bibliotecas como o BouncyCastle para J2ME.

No caso do armazenamento seguro no celular foi utilizado um modo que prioriza o

desempenho para tornar o processo rápido e não depender de um modelo com um

processador muito avançado. Eventualmente, com o advento de maior capacidade

de processamento dos chips dos celulares e poderão ser facilmente implementados

algoritmos de criptografia mais sofisticados.

29

Page 30: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Glossário

Diffie-Hellman – protocolo que permite o estabelecimento de uma chave secreta entre dois usuários, sem qualquer tipo de conhecimento anterior de um pelo outro.

MySQL – programa utilizado para criar e gerenciar bancos de dados e que tem a sua licença open-source.

PHPDB – nome dado ao banco de dados usado pelo fórum.

RSA – algoritmo para criptografias para ser usado em chaves publicas, sigla criada partir dos sobrenomes dos criadores, Ron Rivest, Adi Shamir e Leonard Adleman.

Acrônimos:

AES - Advanced Encryption Standard, Padrão Avançado de Criptografia.

ANATEL – Agência Nacional de Telecomunicações.

BBC - British Broadcasting Corporation.

DES - Data Encryption Standard, Padrão de Criptografia de Dados.

DSA - Digital Signature Algorithm, Algoritmo de Assinatura Digital.

FTP - File Transfer Protocol, Protocolo de Transferência de Arquivos.

HMAC - Hash Message Authentication Code, Código de Autenticação de Hash de Mensagem.

HTTP - Hypertext Transfer Protocol, Protocolo de Transferência de Hipertexto.

IETF - Internet Engineering Task Force, Força Tarefa de Engenharia da Internet.

IMAP - Interactive Message Access Protocol, Protocolo de Acesso de Mensagens Interativas.

J2ME – Java 2 Micro Edition, Edição Micro do Java 2.

J2SE – Java 2 Stantard Edition, Edição Padrão do Java 2.

JSSE - Java Secure Socket Extension, Extensão de Soquete Seguro para Java.

JAD - Java Application Descriptor, Descritor de Aplicativos Java.

JAR - Java Archive, Arquivo Java

MD5 – Message-Digest algorithm 5, Algoritmo Digestor de Mensagens 5.

30

Page 31: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

OFTA – Office of the Telecommunications Authority, Escritório da autoridade de telecomunicações (Honk Kong).

PIN - Personal Identification Number, Número de Identificação Pessoal.

PHP - Hypertext Preprocessor, Pré-processador de Hipertextos.

RC4 - Rivest Cipher 4.

RSH – Remote Shell,

RTR – Rundfunk und Telekom Regulierungs, Agência reguladora de telecomunicações e radiodifusão (Áustria).

SFTP - Secure File Transfer Protocol, Protocolo Seguro de Transferência de Arquivos.

SQL - Structured Query Language, Linguagem de Requisição Estruturada.

SHA – Secure Hash Algorithm, Algoritmo Seguro de Hash.

SSL – Secure Socket Layer, Camada de Soquete Segura.

TCP - Transmission Control Protocol, Protocolo de Controle de Transmissão.

TELNET - Telecommunication Network, Rede de Telecomunicação.

TLS – Transport Secure Layer, Camada Segura de Transporte.

USB - Universal Serial Bus, Barramento em Série Universal.

31

Page 32: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

REFERÊNCIAS

ANATEL, 2008. Dados de Acessos Móveis. Disponivel em: <http://www.anatel.gov.br/Portal/exibirPortalRedireciona.do?codigoDocumento=213049&caminhoRel=Cidadao-Telefonia M óvel-Dados%20do %20SMP>.

Authentication World, 2008, Disponível em: <http://www.authenticationworld.com/>

BBC, 2005. Disponível em: <http://news.bbc.co.uk/2/hi/business/4331863.stm>.

Cay S. Horstmann, Gary Cornell, 2004, Core Java 2 Volume I & II, Seventh Edition, Editora: Prentice Hall PTR.

Icecrypt, 2008. Biblioteca de criptografia Icecrypt. Disponível em: http://www.darkside.com.au/ice/index.html, acessado em 2008-06-22.

IETF, 1999. Diffie-Hellman Key Agreement Method. Disponível em: http://tools.ietf.org/html/rfc2631, acessado em 2008-06-14.

LG, 2008. Modelos de telefones celulares. Disponível em: http://br.lge.com/md/product/prodcategorylist.do?actType=list&categoryId=1000000396&parentCategoryId=0000000006&categoryLevel=3, acessado em 2008-06-20.

Motorola, 2008. Modelos de telefones celulares. Disponível em: http://www.motorola.com/consumer/v/index.jsp?vgnextoid=f5f36dc0c580b010VgnVCM1000008206b00aRCRD&show=showallproduct&showSectionPage=All%20Phones, acessado em 2008-06-20.

Nokia, 2008. Modelos de telefones celulares. Disponível em: http://www.nokia.com.br/A4523227. Acessado em 2008-06-20.

OFTA. 2008 . Disponível em: <http://www.ofta.gov.hk/en/DATASTAT/eng_wireless.pdf>.

PHPBB, 2008, PHP Hypertext Preprocessor Bulletin Board. Disponível para download em: <http://www.phpbb.com/downloads/olympus.php?sid=b6f35bebe0434cc037e9320251b884b1>, acessado em 2008-06-22.

MySQL5.0 Reference Manual, 2008, Disponível em: <http://dev.mysql.com/doc/refman/5.0/en/other-vendor-data-types.html>

RTR, 2008, mobile penetration in austria, page 18 chapter 3. Disponível em: <http://www.rtr.at/en/tk/TKMonitorQ12008>.

32

Page 33: Telefone celular como elemento de autenticação via Internet · Afonso Satoshi Akiba, GRR20020046 Alessandro Kuniyoshi Tachibana, GRR20024753 TELEFONE CELULAR COMO ELEMENTO DE AUTENTICAÇÃO

Samsung, 2008. Modelos de telefones celulares. Disponível em: http://br.samsungmobile.com/mobile_phone/comparison.jsp, acessado em 2008-06-20.BARRET, Daniel J., SILVERMAN, Richard E., 2003. Secure Shell: The Definitive Guide. Editora: O’Reilly.

Sony-Ericsson, 2008. Modelos de telefones celulares.Disponível em: http://www.sonyericsson.com/cws/products/mobilephones?cc=br&lc=pt, acessado em 2008-06-20.

SUN Developer Network, 2004. Disponível em: http://developers.sun.com/mobility/midp/articles/databaserms/, acessado em 2008-06-22.

SUN Reference Guide. 2006. Disponível em: <http://java.sun.com/javase/6/docs/technotes/guides/security/jsse/JSSERefGuide.html>.

Wikipedia, 2008a, Secure Shell. Disponível em: <http://en.wikipedia.org/wiki/Secure_Shell >.

Wikipedia, 2008b, Two-factor authentication, Disponível em: <http://en.wikipedia.org/wiki/Two-factor_authentication>.

Wikipedia, 2008c, Disponível em: <http://en.wikipedia.org/wiki/Image:Europe_mobile_phone_penetration_map.png, em 2008-06-14>

33