Você está na página 1de 106

CENTRO UNIVERSITRIO DE BRASLIA UniCEUB FACULDADE DE TECNOLOGIA E CINCIA SOCIAIS APLICADAS - FATECS CURSO DE ENGENHARIA DE COMPUTAO

PROJETO FINAL

PAULO GABRIEL RIBACIONKA GES DE ARAJO

SISTEMA DE CONTROLE DE ACESSO VIA SMART CARD COM AUTENTICAO BIOMTRICA DA IMPRESSO DIGITAL

Orientador: M. Sc. MARCO ANTNIO DE OLIVEIRA ARAJO

BRASLIA DF, DEZEMBRO DE 2010

PAULO GABRIEL RIBACIONKA GES DE ARAJO RA: 2051650/7

SISTEMA DE CONTROLE DE ACESSO VIA SMART CARD COM AUTENTICAO BIOMTRICA DA IMPRESSO DIGITAL

Trabalho apresentado ao Centro Universitrio de Braslia (UniCEUB) como pr-requisito para a obteno de Certificado de Concluso do Curso de Engenharia de Computao. Orientador: M. Sc. Marco Antnio de Oliveira Arajo.

BRASLIA DF, DEZEMBRO DE 2010

PAULO GABRIEL RIBACIONKA GES DE ARAJO RA: 2051650/7

SISTEMA DE CONTROLE DE ACESSO VIA SMART CARD COM AUTENTICAO BIOMTRICA DA IMPRESSO DIGITAL

Trabalho apresentado ao Centro Universitrio de Braslia (UniCEUB) como pr-requisito para a obteno de Certificado de Concluso do Curso de Engenharia de Computao. Orientador: M. Sc. Marco Antnio de Oliveira Arajo.

Este Trabalho foi julgado adequado para a obteno do Ttulo de Engenheiro de Computao, e aprovado em sua forma final pela Faculdade de Tecnologia e Cincias Sociais Aplicadas FATECS.

_________________________
Abiezer Amarlia Fernandez Coordenador do Curso Banca Examinadora:

_________________________
Prof. Marco Antnio de Oliveira Arajo, Mestre em Cincia da Computao. Orientador UniCEUB

_________________________
Prof. Miguel Arcanjo Bacellar Goes Telles Junior, Doutor em Geologia. UniCEUB

_________________________
Prof. Vera Lucia Farini Alves Duarte, Mestre em Matemtica. UniCEUB

DEDICATRIA

Dedico este trabalho e todos os meus esforos para concluso do curso de Engenharia de Computao s pessoas mais importantes da minha vida: meu pai Ilton Jos Ges de Arajo, minha me Neusa Ribacionka, minhas quatro irms Paula, Juliana, Maysa e Carol e minha amada namorada Thas Maia.

Determinando tu algum negcio, ser-te- firme, e a luz brilhar em teus caminhos. Bblia J, 22:28

AGRADECIMENTOS

Em primeiro lugar agradeo minha me Neusa Ribacionka pelo incondicional apoio. Agradeo ao meu pai Ilton Jos por toda inspirao e por todo exemplo de vitria e perseverana de sua histria de vida. Agradeo minha amada Thas Maia pela companhia durante grande parte da minha jornada acadmica e pela pacincia durante os momentos que exigiram dedicao total de minha parte ao projeto final. Agradeo ao CEUB, do qual sou aluno desde 1994, por toda a estrutura e oportunidades oferecidas. Agradeo aos professores do cursos de Engenharia de Computao por todos os ensinamentos, conselhos e dedicao. Finalmente agradeo aos meus amigos Paulo Ueiner e Said Abd pela companhia durante as horas interminveis de estudo no decorrer do curso de Engenharia de Computao.

LISTA DE FIGURAS
Figura 2.1 Exemplos do Mtodo de Bertillon / Fonte: PINHEIRO, 2008............................. 18 Figura 2.2 Funcionamento de um Sistema Biomtrico / Fonte: O autor. .............................. 22 Figura 2.3 Mincias da Impresso Digital / Fonte: Site Biometric Group ............................ 25 Figura 2.4 Leitor Biomtrico Nitgen Hamster I / Fonte: Site Nitgen .................................... 25 Figura 2.6 Situao dos Principais Sistemas Biomtricos no Mercado / Site Biometric ...... 26 Figura 2.7 Aparncia Fsica de um Smart Card / Fonte: CHEN, 2000. ................................ 28 Figura 2.8 Mensagens APDU de Comando e Resposta / Fonte: CHEN, 2000. .................... 30 Figura 2.10 Particularidades do Java Card / Fonte: CHEN, 2000. ....................................... 35 Figura 3.1 Nmero de Clientes, Internet Banking e Cartes / Fonte: FEBRABAN .............. 37 Figura 3.2 Gastos realizados em Tecnologia / Fonte: FEBRABAN ..................................... 38 Figura 3.3 Chupa-cabra parte externa / Fonte: Site Linha Defensiva .................................... 40 Figura 3.4 Chupa-cabra parte interna / Fonte: Site Linha Defensiva .................................... 41 Figura 4.1 Topologia da Proposta de Soluo do Problema / Fonte: O autor. ...................... 45 Figura 4.2 Diagrama de Caso de Uso / Fonte: O autor. ......................................................... 45 Figura 4.3 Sistema Montado / Fonte: O autor. ...................................................................... 48 Figura 4.4 Modelo de Dados / Fonte: O autor. ...................................................................... 49 Figura 4.5 Tela Principal / Fonte: O autor. ............................................................................ 50 Figura 4.6 Cadastro do Usurio / Fonte: O autor................................................................... 51 Figura 4.7 Captura da Digital / Fonte: O autor. ..................................................................... 51 Figura 4.8 Gerao e Insero do PIN / Fonte: O autor. ........................................................ 52 Figura 4.9 Diagrama de Atividades Conexo e Cadastro do Usurio / Fonte: O autor. ........ 53 Figura 4.10 Verificao da Impresso Digital / Fonte: O autor. ............................................ 54 Figura 4.11 Diagrama de Atividades Autenticao do Usurio / Fonte: O autor. ................. 55 Figura 4.12 Caso de Uso Autenticar Usurio / Fonte: O autor. ............................................. 56 Figura 4.13 Relatrio de Acessos / Fonte: O autor. ............................................................... 57 Figura 5.1 Cadastro do Usurio A / Fonte: O autor. .............................................................. 60 Figura 5.2 Confirmao de Cadastro do Usurio A / Fonte: O autor. ................................... 60 Figura 5.3 Autenticao de Acesso do Usurio A / Fonte: O autor....................................... 60 Figura 5.4 Liberao de Acesso do Usurio A / Fonte: O autor. ........................................... 61 Figura 5.5 Cadastro do Usurio B / Fonte: O autor. .............................................................. 62 Figura 5.6 Confirmao de Cadastro do Usurio B / Fonte: O autor. ................................... 62 Figura 5.7 Acesso No Autorizado do Usurio A / Fonte: O autor. ...................................... 63 Figura 5.8 Carto B Bloqueado / Fonte: O autor. .................................................................. 63 Figura 5.9 Acesso No Autorizado do Usurio B / Fonte: O autor. ...................................... 64 Figura 5.10 Acesso Negado de Usurio No Cadastrado / Fonte: O autor............................ 65 Figura 5.11 Acesso Negado Devido a Carto Bloqueado / Fonte: O autor. .......................... 66 Figura 5.12 Acesso Liberado para Usurio A / Fonte: O autor. ............................................ 66 Figura 5.13 Relatrio de Acessos Gerado / Fonte: O autor. .................................................. 67

LISTA DE QUADROS E TABELAS


Quadro 2.5 Comparativo entre Tipos Biomtricos ................................................................ 26 Tabela 2.9 Exemplos de Mensagens de Status / Fonte: CHEN, 2000. .................................. 32 Tabela 4.14 Custos Envolvidos no Projeto / Fonte: O autor. ................................................ 58 Tabela 5.14 Resultado dos Teste / Fonte: O autor. ................................................................ 67

LISTA DE ABREVIATURAS

RFID Radio Frequency Identification, em portugus, Identificao por Rdio Frequncia. AFIS - Automated Fingerprint Identification System, em portugus, Sistema de Identificao Automatizada da Impresso Digital. GSM - Global System for Mobile Communications, em portugus, Sistema Global para Comunicaes Mveis. (RFC 4186) ISO - International Organization for Standardization, em portugus, Organizao Internacional para Padronizao. ROM Read Only Memory, em portugus, Memria Somente de Leitura. EEPROM - Electrically-Erasable Programmable Read-Only Memory. RAM Random Access Memory, em portugus, Memria de Acesso Randmico. APDU - Application Protocol Data Units. TPDU Transmission Protocol Data Units. ATR Answer to Reset. JCVM Java Card Virtual Machine. JCRE Java Card Runtime Environment. API Application Programming Interface. JVM Java Virtual Machine. JCDK Java Card Development Kit. PIN Personal Identification Number

RESUMO

Este trabalho visa a integrao de duas tecnologias de controle de acesso j existentes. A inteno proporcionar uma forma mais segura e eficaz de proteger um ambiente de acesso restrito. As tecnologias a serem integradas so smart cards e identificao biomtrica da impresso digital. A soluo foi desenvolvida com a utilizao de um computador, um leitor biomtrico, uma leitora e gravadora de smart cards e dois smart cards com suporte a tecnologia Java Card. O sistema permite cadastrar usurios, capturando sua impresso digital e os dados cadastrais, posteriormente o usurio vinculado a um carto inteligente. No momento da autenticao do acesso o usurio precisa fazer a verificao da impresso digital e apresentar o smart card. O acesso s liberado se a digital estiver cadastrada no sistema e se o indivduo for o portador legtimo do carto. O diferencial do projeto est na unificao de tecnologias de segurana j contempladas. A posse de um carto inteligente e a impresso digital constituem um controle de acesso baseado em dois fatores: autenticao baseada no que se possui e autenticao baseada nas caractersticas individuais.

Palavras-chave: Biometria, impresso digital, smart cards, Java Card, controle de acesso, segurana da informao.

10

ABSTRACT

This project attempts to unify two control access technologies. The objective is create a most secure way to protect a restrict environment. The technologies to be used are smart cards and biometric identification of fingerprints. The project was developed using a computer, a biometry reader, a smart card reader and writer and two smart cards that supports the Java Card technology. The system allows users to be enrolled by catching their fingerprints and another information. The user must be enrolled to a single smart card too. When the user try to access the restrict environment, he needs to match his fingerprint with the template inserted into the base and shows his smart card. The access is allowed if his fingerprint is enrolled and if him is the legitimate owner of the smart card. The projects main characteristic is the technologies union. Use a smart card and the fingerprint to access an environment produces a two factor control system based on what the person haves and who the person are.

Key words: Biometry, fingerprint, smart cards, Java Card, access control, information security.

11

SUMRIO
DEDICATRIA ....................................................................................................................... 3 AGRADECIMENTOS ............................................................................................................. 5 LISTA DE FIGURAS ............................................................................................................... 6 LISTA DE QUADROS E TABELAS ..................................................................................... 7 LISTA DE ABREVIATURAS................................................................................................. 8 RESUMO................................................................................................................................... 9 ABSTRACT ............................................................................................................................ 10 CAPTULO 1 INTRODUO .......................................................................................... 13
1.1 1.2 1.3 Motivao...............................................................................................................................14 Objetivos ................................................................................................................................14 Estrutura da Monografia ........................................................................................................15

CAPTULO 2 REFERENCIAL TERICO ..................................................................... 17


2.1 Biometria ...................................................................................................................................17 2.1.1 Mtodos de Autenticao ...................................................................................................19 2.1.2 Requisitos de um Sistema Biomtrico ................................................................................20 2.1.3 Componentes de um Sistema Biomtrico ...........................................................................21 2.1.4 Funcionamento de um Sistema Biomtrico ........................................................................22 2.1.5 Tipos de Biometria .............................................................................................................22 2.2 Smart Cards ..............................................................................................................................27 2.2.1 Histrico do Smart Card ....................................................................................................27 2.2.2 Componentes de um Smart Card........................................................................................28 2.2.3 Sistema de Memria de um Smart Card ............................................................................29 2.2.4 Protocolos de Transmisso e Comunicao ......................................................................30 2.2.5 Segurana no Smart Card ..................................................................................................33 2.2.6 - Tecnologia Java Card.........................................................................................................34

CAPTULO 3 PROBLEMAS DE SEGURANA DA INFORMAO ........................ 37


3.1 - Identificao do Problema e Cenrio Atual ...............................................................................37 3.2 Ferramentas e Tcnicas Maliciosas ..........................................................................................39 3.3 Dispositivos de Segurana Utilizados Atualmente ...................................................................42

CAPTULO 4 DESENVOLVIMENTO DO PROJETO .................................................. 44


4.1 - Proposta para Soluo do Problema ..........................................................................................44 4.2 Pr-Requisitos ...........................................................................................................................46 4.3 Tecnologias Utilizadas ..............................................................................................................46 4.3.1 - Softwares.............................................................................................................................46 4.3.2 - Hardware ............................................................................................................................47 4.4 Modelo de Dados ......................................................................................................................48

12

4.5 Desenvolvimento da Aplicao.................................................................................................49 4.5.1 Cadastramento do Usurio ................................................................................................49 4.5.2 Autenticao do Usurio ...................................................................................................54 4.5.3 Controle do Acesso ............................................................................................................56 4.5.4 Relatrio de Acessos ..........................................................................................................57 4.6 Estimativa de Custos .................................................................................................................58

CAPTULO 5 TESTES E RESULTADOS ...................................................................... 59


5.1 Casos de Teste...........................................................................................................................59 5.1.1 Caso Nmero 1 ...................................................................................................................59 5.1.2 Caso Nmero 2 ...................................................................................................................61 5.1.3 Caso Nmero 3 ...................................................................................................................64 5.1.4 Caso Nmero 4 ...................................................................................................................65 5.1.5 Tabela de Resultados dos Testes ........................................................................................67 5.2 Anlise dos Resultados .............................................................................................................67 5.2.1 Pontos Positivos .................................................................................................................67 5.2.2 Dificuldades e Desvantagens .............................................................................................68

CAPTULO 6 CONCLUSO............................................................................................ 69
6.1 Sntese Conclusiva ....................................................................................................................69 6.2 Sugestes para Trabalhos Futuros ............................................................................................70

REFERNCIAS BIBLIOGRFICAS ................................................................................. 71 APNDICES ........................................................................................................................... 73 ANEXOS ............................................................................................................................... 105

13

CAPTULO 1 INTRODUO

Qualquer informao de carter essencial para os negcios de interesse de uma Empresa digna de proteo e preservao. um ativo, ou seja, um coisa que tenha valor para a organizao(ABNT 27002, 2007). Tudo aquilo que importante precisa de proteo.
A informao pode existir em diversas formas. Pode ser impressa ou escrita em papel, armazenada eletronicamente, transmitida pelo correio ou meios eletrnicos, apresentada em filmes ou falada em conversas. Seja qual for a forma apresentada, ou o meio atravs do qual a informao compartilhada ou armazenada, recomendado que ela seja sempre protegida adequadamente. (ABNT 27002, 2007)

Tomando como exemplo o caso de um banco, pode-se imaginar a perda de informaes tais como os valores presentes em cada conta corrente. Pode-se considerar ainda o vazamento das informaes de um novo projeto de veculo de uma grande montadora de automveis. Enfim, so inmeras as situaes em que um desvio ou perda desse ativo pode ocasionar em um desastre. A sociedade, da maneira que organizada hoje, permite que a troca de informaes ocorra de maneira simples, rpida e eficaz. Esse avano tecnolgico traz tantos benefcios quanto traz problemas. As ameaas e vulnerabilidades preocupam aqueles que desejam manter seguros seus bens preciosos. A necessidade de segurana para as informaes passa a ser vital para a sobrevivncia de qualquer organizao do mundo moderno. impossvel atuar como mero espectador nessa guerra de ameaas e tentativas de proteo. A adoo de mtodos de segurana da informao torna-se obrigatria para que ocorra a preservao da confidencialidade, da integridade e da disponibilidade da informao; adicionalmente, outras propriedades, tais como autenticidade, responsabilidade, no repdio e confiabilidade, podem tambm estar envolvidas.(ABNT 27002, 2007) Sendo assim fica evidenciada a importncia da proteo dos ativos e de um bom sistema de controle de acesso ambientes onde so guardadas essas informaes, seja um ambiente fsico ou virtual.

14

Este trabalho visa o estudo da integrao de duas solues de controle de acesso j conhecidas e consolidadas no mercado: Smart Cards e autenticao biomtrica. Os smart cards j fazem parte do dia a dia das pessoas. Cartes de crdito, cartes de bancos e alguns documentos de identificao possuem essa tecnologia. Identificadores biomtricos so encontrados em catracas, pontos eletrnicos de empresas, cofres, entre outros. A unio da complexidade dos registros biomtricos com a portabilidade e confiabilidade dos cartes inteligentes o diferencial para a criao dessa soluo de controle de acesso ambientes restritos.

1.1 Motivao

So muitas as notcias na mdia sobre roubo de informaes, vazamentos de dados sigilosos e, principalmente, casos de clonagem de cartes de bancos ou utilizao de cartes por terceiros no autorizados pelo titular. Todas essas situaes so exemplos claros de pessoas que conseguiram acessar um ambiente restrito e certamente protegido. Isso mostra a evoluo das ameaas e a necessidade de um controle de acesso mais seguro. Juntar dois sistemas consolidados na rea de segurana de informao de modo a produzir uma ferramenta confivel e adaptvel a diversas situaes, essa a principal ideia motivadora desse projeto.

1.2 Objetivos

O objetivo principal elaborar uma soluo de controle de acesso, seja ela a um sistema computadorizado ou a um ambiente fsico, baseada na utilizao de Smart Cards. A autenticao utilizada pelo Smart Card para liberao do acesso ser feita atravs de leitura biomtrica da impresso digital do usurio.

15

Como objetivos especficos: Desenvolvimento do software para gravar as informaes no chip do Smart Card; Desenvolver um software que permita a integrao entre o leitor biomtrico e o carto inteligente. Sero compreendidas as operaes de leitura, escrita e validao das informaes; Simulao de um ambiente de acesso restrito; Integrao do software, mdulo de gravao e leitor biomtrico com o ambiente restrito.

1.3 Estrutura da Monografia

A monografia est distribuda da seguinte forma: Captulo 1: Introduo. Parte que trata da motivao do trabalho, objetivos gerais e especficos e como a monografia foi estruturada. Captulo 2: Referencial Terico. Oferece o embasamento terico da proposta de soluo do problema. So abordados os temas de biometria e smart cards. Captulo 3: Problemas de Segurana da Informao. Explanao sobre o problema que o trabalho se prope a tratar. Aborda assuntos como fraudes bancrias, roubo de informaes e problemas no controle de acesso. Tambm so mostradas algumas ferramentas e tcnicas utilizadas por entidades maliciosas. Os principais dispositivos de segurana utilizados atualmente tambm so tema desse captulo. Captulo 4: Desenvolvimento do Projeto. A parte de projeto de software e hardware abordada nesse item. Todo o procedimento, metodologia, tecnologias e equipamentos so

16

mostrados e detalhados. A estimativa de custos do projeto tambm esta presente neste captulo. Captulo 5: Testes e Resultados. Apresentao dos casos de testes efetuados para comprovar o funcionamento do dispositivo. apresentado tambm a anlise dos resultados. Captulo 6: Concluso. Sntese conclusiva do projeto final e sugestes para trabalhos futuros.

17

CAPTULO 2 REFERENCIAL TERICO

2.1 Biometria

A biometria visa reconhecer uma pessoa com base em caractersticas fsicas e biolgicas. De acordo com PINHEIRO podemos definir biometria como:
A cincia da aplicao de mtodos de estatstica quantitativa a fatos biolgicos, ou seja, o ramo da cincia que se ocupa da medida dos seres vivos (do grego bio = vida e mtron = medida). Resumindo, a biometria reconhece um indivduo pelas suas caractersticas humanas mensurveis e assim autentica a identidade de um indivduo. (PINHEIRO, 2008)

Todas as pessoas apresentam caractersticas nicas e mensurveis. Impresses digitais, ris, voz e topologia da face so exemplos do que pode ser utilizado para diferenciar indivduos. Obviamente que para efetuar comparaes e autenticaes necessrio o auxlio de processos automatizados ou de profissionais capacitados. Historicamente h relatos da utilizao de tcnicas que remetem biometria desde os tempos do Egito Antigo. Ainda segundo PINHEIRO, no sculo II a.C., os governantes chineses j usavam as impresses digitais para lacrar documentos (PINHEIRO, 2008). O primeiro mtodo de identificao biomtrica, reconhecido oficialmente, foi elaborado pelo francs Alphonse Bertillon no final do sculo XIX. A figura a seguir retrata como eram feitas as medidas e comparaes:

18

Figura 2.1 Exemplos do Mtodo de Bertillon / Fonte: PINHEIRO, 2008.

Atualmente a utilizao da biometria se d atravs de tcnicas muito mais modernas e robustas. Identificadores biomtricos so encontrados em diversos equipamentos,

principalmente os leitores de impresso digital. Inclusive, nos prximos anos, a expectativa da indstria tecnolgica de que empresas dos mais diversos setores adotem dispositivos que identifiquem as pessoas a partir de seus traos fsicos ou comportamentais, com o objetivo de aumentar a proteo s seus ativos.

19

2.1.1 Mtodos de Autenticao

Para realizar um controle de acesso atravs da identificao e autenticao de um usurio podem ser utilizados um dos trs mtodos abaixo descritos. Tambm possvel combinar dois ou at mesmo os trs mtodos. Eles possuem caractersticas e nveis de segurana diferentes e quem define qual dever ser utilizado o responsvel pela poltica de segurana da empresa. PINHEIRO define os trs mtodos da seguinte forma: Autenticao Baseada no que se Conhece (O que voc sabe?): Trata-se da autenticao baseada em algo que o usurio do sistema conhea. Nessa categoria enquadram-se os nomes de acesso, as senhas e as chaves criptogrficas. o que oferece o mais baixo nvel de segurana. Autenticao Baseada no que se Possui (O que voc tem?): Trata-se da autenticao baseada em algo que o usurio do sistema possua. O dispositivo de posse do usurio pode ser dotado de memria ou dotado de algum tipo de processamento. Tokens e Smart Cards so exemplos da utilizao desse mtodo. o segundo em termos de nvel de segurana. Autenticao Baseada nas Caractersticas Individuais (O que voc ?): Trata-se da autenticao baseada em algo que o indivduo . Pode ser uma medida fisiolgica, uma caracterstica comportamental ou um padro ou atividade especfica que distingue o indivduo, de forma confivel, de outros seres humanos, e que pode ser utilizado para autenticar sua identidade. Exemplos: Impresso digital, geometria da mo, ris, assinatura, fala, entre outros. o que oferece o nvel mais alto de segurana entre os mtodos. No projeto proposto sero combinados dois mtodos: o baseado nas caractersticas do usurio e o baseado no que o usurio possui. Essa combinao deve-se ao fato da utilizao do Smart Card com o leitor biomtrico e o objetivo agregar mais segurana ao ambiente de acesso restrito.

20

2.1.2 Requisitos de um Sistema Biomtrico

Como os sistemas biomtricos so baseadas em caractersticas inerentes ao ser humano, necessrios que o sistema atenda trs requisitos bsicos, conforme descreve PINHEIRO: A caracterstica biomtrica deve conter diferenas significativas entre indivduos diferentes; As caractersticas devem ser estveis durante o perodo de vida do indivduo; O sistema deve ser robusto e oferecer segurana contra tentativas de fraudes. J as caractersticas humanas a serem utilizadas no sistema biomtrico precisa satisfazer os seguintes requisitos, ainda segundo PINHEIRO: Universalidade: Todos os indivduos devem possuir a caracterstica a ser utilizada como medida; Singularidade: Indica que a medida da caracterstica utilizada no deve ser igual em pessoas diferentes, ou, no mnimo, que a probabilidade de haver duas pessoas com a mesma medida dessa caracterstica seja muito pequena; Permanncia: Cada caracterstica no deve variar com o tempo, por exemplo, alterar-se devido ao envelhecimento; Mensurabilidade: Pode ser medida quantitativamente, tendo por base um modelo da caracterstica selecionada. Por fim, mais trs caractersticas so essenciais para garantir o funcionamento de um sistema biomtrico. PINHEIRO as define da seguinte forma: Preciso e Desempenho: Refere-se preciso com que se realiza a identificao, aos recursos necessrios para a medio e aos fatores ambientais que afetam a preciso. O desempenho do sistema depender da preciso dos resultados obtidos tanto na coleta quanto na autenticao;

21

Aceitabilidade: Esta caracterstica indica o nvel de aceitao do sistema de reconhecimento biomtrico por parte de seus usurios; Proteo: Consiste na facilidade ou dificuldade de usurios burlarem o sistema.

2.1.3 Componentes de um Sistema Biomtrico

De acordo com PINHEIRO so componentes de um Sistema Biomtrico: Subsistema Interface de usurio (Sensor): o conjunto de elementos que contm o dispositivo ou sensor que capta a amostra biomtrica do indivduo e a converte em um formato adequado para ser utilizado. A qualidade da amostra coletada afeta diretamente o desempenho do resto do sistema. Subsistema Estao de Controle (Crebro): responsvel pelas funes de controle dos dispositivos e tambm por receber a amostra biomtrica fornecida pelo subsistema de interface de usurio e convert-la em uma forma adequada para o processamento pelo mdulo de comparao. Subsistema Comparador (Comunicaes e Processamento): Faz a comparao da amostra biomtrica apresentada com o template da base de dados. Aqui feita a comparao para verificar se as amostras so similares. Tambm decidido se a amostra coletada similar amostra do usurio constante na base de dados. A deciso de autenticidade ou falsidade repassada aos outros elementos do sistema pelo subsistema comparador. Subsistema de Armazenamento (Banco de Dados): Este mdulo mantm os templates dos usurios cadastrados no sistema biomtrico. Os templates podem ser armazenados em cartes de memria, em Banco de Dados centralizado ou em cartes magnticos, Smart Cards, tokens, entre outros. O tipo de armazenamento se dar pela aplicabilidade a que se destina o sistema biomtrico.

22

2.1.4 Funcionamento de um Sistema Biomtrico

Cumpridos os requisitos e premissas de um sistema biomtrico possvel passar para o seu funcionamento. Em um primeiro momento necessrio o cadastramento dos usurios em uma base de dados. O usurio deve fornecer a caracterstica fsica escolhida para a captura. A captura feita atravs de um leitor biomtrico preparado para tal. O dado capturado ento enviado para uma central de processamento onde tratado e enfim inserido na base de dados. O registro do usurio mantido para a verificao futura. O processo de verificao tambm se inicia com o fornecimento da caracterstica fsica do usurio. O leitor biomtrico tambm utilizado para captura. O dado capturado processado e, ao invs de ser inserido na base de dados, comparado com o registro anteriormente inserido no banco de dados. Caso a comparao confirme a similaridade entre os registros o acesso concedido. Caso contrrio negado.

Figura 2.2 Funcionamento de um Sistema Biomtrico / Fonte: O autor.

2.1.5 Tipos de Biometria

So vrias as caractersticas que podem ser utilizadas em sistemas biomtricos. Elas podem ser divididas em dois grupos: Elementos Biomtricos Fisiolgicos e Elementos Biomtricos Comportamentais. No grupo dos fisiolgicos encontramos a face, as mos, os

23

dedos, a ris e a orelha. J no grupo dos comportamentais podemos citar a voz, a escrita e a assinatura. Os tipos de biometria se diferem em outros aspectos alm da questo fsica ou comportamental. Alguns tipos so mais utilizados, outros so mais fceis de se utilizar e outros so mais invasivos para os usurios. Alm disso podem se diferir no aspecto da confiabilidade e preciso e principalmente em relao aos custos para implementao. O mais importante conhecer cada tipo para se decidir qual o ideal para a situao ou informao a ser protegida. So exemplos de tipos de biometria: Reconhecimento Facial: Considera as medidas do rosto que nunca se alteram, mesmo que o indivduo seja submetido a cirurgias plsticas. Essas medidas bsicas so: distncia entre os olhos, distncia entre boca, nariz e olhos e distncia entre olhos, queixo, boca e linhas dos cabelos. um dos sistemas menos intrusivos dentre os existentes. Suas desvantagens so a menor confiabilidade, maior tempo de leitura e pesquisa das informaes e o alto custo de implementao. (PINHEIRO, 2008) Geometria da Mo: Nesse mtodo utilizado um scanner especialmente desenhado para capturar as medidas das palmas das mos, das mos e dos dedos a partir de uma perspectiva tridimensional. um sistema com baixa confiabilidade porque as caractersticas capturadas no so suficientemente descritivas para a identificao. H ainda problemas com a presena de anis e o indivduo precisa encaixar corretamente a mo no equipamento de leitura. O custo de implementao baixo. (PINHEIRO, 2008) Identificao pela ris: A ris a parte colorida do olho, em torno da pupila, e permite 249 pontos de diferenciao que podem ser usados no processo de reconhecimento de um indivduo. Trata-se de um identificador biomtrico estvel, pois suas caractersticas no so alteradas pelo envelhecimento. O reconhecimento apresenta alto grau de preciso e um alto desempenho no processo de verificao. A desvantagem se d na difcil captura e no alto custo de implementao. (PINHEIRO, 2008)

24

Reconhecimento de Voz: O reconhecimento pela voz uma tecnologia que analisa os padres harmnicos e no apenas reprodues de sequncias predefinidas de voz. Para capturar a voz pode ser utilizado um microfone. Entre as vantagens desse tipo esto o fato de a voz ser natural e simples para o ser humano. Como desvantagem alguns sistemas podem obrigar o usurio a falar mais alto ou at mesmo repetir vrias vezes uma mesma frase, o que pode representar na demora do cadastramento ou validao dos dados. Alm disso o sistema sensvel a rudos do ambiente e estados fsicos do indivduo como gripe ou estresse. (PINHEIRO, 2008) Assinatura: Muito utilizada em Bancos e cartrios. A assinatura manuscrita altamente aceita como forma de identificao e autorizao de um indivduo. O estudo que compreende a anlise de padres e caractersticas de uma assinatura chama-se grafoscopia. Na anlise de uma assinatura so levados em conta a presso sobre a caneta, direo e sentido da escrita e velocidade da escrita. A chave do sucesso de um sistema de reconhecimento de assinaturas encontrar caractersticas constantes. um sistema de baixo custo. (PINHEIRO, 2008) Impresso Digital: De todas as caractersticas biomtricas, a impresso digital a mais estudada. As impresses digitais so nicas para cada indivduo e consideradas o tipo biomtrico mais seguro para determinar a identidade, depois do teste do DNA. Esse mtodo baseado na identificao atravs das irregularidades das impresses digitais, retiradas de um ou mais dedos, as chamadas mincias (vide figura 2.3). O reconhecimento por impresses digitais requer o uso de um dispositivo capaz de capturar (vide figura 2.4), com um bom grau de preciso, as mincias, alm de um software que trate a imagem capturada e faa o reconhecimento da digital. o tipo biomtrico mais utilizado em todo mundo, pouco invasivo ao usurio e de baixo custo. (PINHEIRO, 2008)

25

Figura 2.3 Mincias da Impresso Digital / Fonte: Site Biometric Group

Figura 2.4 Leitor Biomtrico Nitgen Hamster I / Fonte: Site Nitgen

Por fim segue um comparativo entre os tipos biomtricos mais reconhecidos e utilizados atualmente. So evidentes as vantagens e grande aplicabilidade da impresso digital. Tal motivo serve como justificativa para a escolha desse tipo biomtrico para o desenvolvimento do projeto em questo.

26

Quadro 2.5 Comparativo entre Tipos Biomtricos

Figura 2.6 Situao dos Principais Sistemas Biomtricos no Mercado / Site Biometric

A situao dos principais sistemas biomtricos no mercado tambm refora a preferncia pelos sistemas de impresso digital. O sistema AFIS tambm baseado em impresses digitais. Ele possui uma base bastante robusta e completa e foras policiais de vrios pases a utilizam. Assim, de acordo com a pesquisa do Grupo Internacional de Biometria, os sistemas biomtricos baseados em digitais compreendem 66,7% do total.

27

2.2 Smart Cards

Os cartes inteligentes se assemelham bastante com um carto de crdito comum, a comear pelo tamanho e formato. A principal diferena que o Smart Card capaz de processar e armazenar informaes atravs de um microprocessador inserido no prprio plstico do carto. Alm disso oferecem portabilidade, segurana e independncia de bases de dados no momento da transao. Apesar de no ser uma tecnologia nova bastante utilizada atualmente, principalmente por instituies financeiras.

2.2.1 Histrico do Smart Card

A ideia de inserir um circuito integrado em um carto vem do final da dcada de 70. Dois inventores alemes, Jurgen Dethloff e Helmut Grotupp, foram responsveis pelo feito. No Japo, Kunitaka Arimura patenteou uma inveno semelhante. No entanto, o progresso dessa tecnologia se deu a partir das patentes registradas por Roland Moreno em 11 pases, entre eles a Frana, durante os anos de 1974 e 1979. Foram essas patentes que deram incio fabricao de Smart Cards em escala industrial. A primeira aplicao que utilizava um carto inteligente foi registrada na Frana. Foi no ano de 1984 e a ideia era substituir as fichas pelos cartes nos telefones pblicos. Trs anos mais tarde a Alemanha tambm apostou na mesma aplicao. E mesmo com todas as limitaes tecnolgicas da poca, principalmente no que se refere a tcnicas de criptografia e capacidade de processamento, os Smart Cards no caram no esquecimento e continuaram sendo objetos de estudo e pesquisa. A aposta deu resultado e hoje claramente perceptvel a utilizao desses cartes nas mais diversas reas. Cartes de crdito, crachs para controle de acesso, autenticadores de televiso cabo ou satlite so exemplos da utilizao dessa tecnologia. Entretanto a maior comprovao do sucesso dessa aplicao est na rea de comunicao. Os celulares que utilizam a rede GSM precisam de um chip, conhecido por SIM Card, que nada mais do que um Smart Card de tamanho reduzido.

28

2.2.2 Componentes de um Smart Card

Toda a aparncia fsica e propriedades de um carto inteligente so definidas pela ISO 7816. Abaixo, a aparncia fsica de um Smart Card:

Figura 2.7 Aparncia Fsica de um Smart Card / Fonte: CHEN, 2000.

forte a semelhana com um carto de crdito comum. O tamanho e a espessura so praticamente os mesmos. A diferena apenas a presena do circuito integrado embutido no carto. O Smart Card possui oito pontos de contato em seu chip. CHEN os define da seguinte forma: VCC: o que fornece energia ao chip. Varia de 3 a 5 Volts; RST: utilizado para enviar um sinal de reinicializao para o microprocessador; CLK: Fornece o sinal de clock externo, o qual o sinal de clock interno derivado; GND: Utilizado como tenso de referncia. Seu valor considerado 0 Volts;

29

VPP: opcional e apenas cartes antigos o possuem. Utilizado para alterar a voltagem durante a programao; I/O: utilizado para transferir dados e comandos entre o carto inteligente e o meio externo. O modo de transmisso half duplex, o que significa que pode receber e enviar dados mas no de forma simultnea; RFU: So os dois pontos inferiores. Eles esto reservados para uso futuro. Ainda de acordo com CHEN, a unidade central de processamento de um Smart Card normalmente compreende um microcontrolador de 8 bits com uma velocidade de clock de aproximadamente 5 MHz. Cartes mais modernos podem atingir uma velocidade de at 40 MHz. Os cartes inteligentes atuais podem ainda ter um microcontrolador de 16 ou 32 bits.

2.2.3 Sistema de Memria de um Smart Card

Podem ser trs os tipos de memria de um carto inteligente. Ainda de acordo com CHEN, os tipos de memria mais utilizados so: ROM: Memria no voltil. Utilizada para armazenar os programas fixos do carto. No necessrio energia para acessar esse tipo de memria. Entretanto no possvel alterar o contedo dessa memria; EEPROM: Parecida com a memria ROM. Tambm capaz de preservar o contedo gravado quando a energia interrompida. A diferena que esse tipo de memria pode ter seu contedo modificado durante a utilizao do carto. Alis nesse tipo de memria que os dados do usurio so gravados. Sua funcionalidade parecida com a de um disco rgido de um computador comum; RAM: a memria temporria. Como depende da energia considerada voltil. utilizada em operaes de modificao e alocao de dados.

30

H outros tipos de memrias que esto ganhando fora nos cartes inteligentes. Um exemplo a memria Flash que muito mais rpida, eficiente e possui mais espao que a EEPROM. Entretanto essa deve ser uma mudana perceptvel somente em uma prxima gerao de Smart Cards.

2.2.4 Protocolos de Transmisso e Comunicao

A comunicao dos Smart Cards com o meio externo se d atravs do mtodo halfduplex, ou seja, h um receptor e um emissor e ambos podem emitir mensagens mas no ao mesmo tempo. No mundo dos cartes inteligentes o modelo adotado o de mestre-escravo. O carto faz a parte de escravo e aguarda comandos do ambiente externo. Os comandos recebidos so executados e as respostas so repassadas ao cliente. Esse comandos obedecem um protocolo chamado APDU. (CHEN, 2000) O protocolo APDU pertence camada de aplicao portanto responsvel por prover os servios entre o Smart Card e o computador. As mensagens APDU podem ter duas estruturas diferentes, uma utilizada pelo computador para enviar comandos para o carto e a outra utilizada pelo carto para enviar respostas ao computador.

Figura 2.8 Mensagens APDU de Comando e Resposta / Fonte: CHEN, 2000.

31

Cada campo de uma mensagem APDU definido por CHEN da seguinte maneira: CLA: Classe de instruo. Identifica a categoria de comando e resposta de um APDU; INS: Cdigo de instruo. Especifica a instruo do comando; P1 e P2: Parmetros utilizados para prover qualificaes para a instruo; LC: Campo opcional. Especifica o tamanho do campo de dados; DATA FIELD: Contm os dados que sero enviados ao carto para serem executados conforme as instrues; LE: Nmero de bytes da resposta enviada pelo carto ao computador. J nas mensagens de resposta, e ainda segundo CHEN, temos: DATA FIELD: Contm os dados da resposta. O tamanho da resposta deve estar de acordo com o especificado no campo LE da mensagem de comando; SW1 e SW2: Juntos formam a palavra de status. O status que vai informar se o comando foi executado corretamente ou se ocorreu algum erro. A tabela abaixo contm alguns exemplos de status de mensagens APDU: SW1 SW2 90 00 90 01 90 10 60 01 60 02 60 03 Status OK Comando executado com sucesso OK Utilizando o protocolo T=1 OK Protocolo sncrono em utilizao Tipo de carto no selecionado Sem carto na leitora Tipo de carto invlido

32

60 04 60 05 60 20 60 22 62 01 67 01 67 02 67 03 67 04 67 05 67 12

Carto no energizado Cdigo de instruo invlido Falha no carto Curto circuito no conector do carto Cdigo secreto invlido Comando incompatvel com o tipo de carto Endereo do carto invlido Tamanho da informao invlido Tamanho da resposta invlido Cdigo secreto bloqueado Comando APDU cancelado

Tabela 2.9 Exemplos de Mensagens de Status / Fonte: CHEN, 2000.

Para o transporte das mensagens o protocolo utilizado o TPDU. Ele pertence camada de transporte. CHEN menciona que os dois tipos de TPDU que esto em uso hoje so o T=0 e T=1. O T=0 faz a transmisso das mensagens entre o carto e o computador byte por byte. J o T=1 faz a transmisso atravs de blocos de bytes. Outra informao importante sobre a comunicao dos Smart Cards o ATR. CHEN define o ATR como sendo uma mensagem inicial que o carto envia para o computador especificando todos os parmetros necessrios para que a conexo entre eles seja estabelecida. O ATR enviado imediatamente aps a energizao do carto. Ele contm 33 bytes e possui informaes como a taxa de transmisso, os parmetros de hardware do carto, o nmero serial do chip e o nmero de verso.

33

2.2.5 Segurana no Smart Card

Os cartes inteligentes possuem uma maneira muito segura de lidar com as informaes restritas. Essa tecnologia de processamento no prprio carto gera muitos benefcios do ponto de vista da segurana. Outra grande vantagem destes cartes reside na facilidade de desenvolver aplicaes j que os smart cards possuem uma infraestrutura preparada para tal com memria e unidade de processamento. (SOUZA, 2010) O smart card permite um processamento seguro fora da rede e atravs da funo de leitura e escrita permite duas funes importantes dos sistemas de controle de acesso. De acordo com SOUZA as funes so: Anti dupla passagem (Anti Passback): Funo utilizada para monitorar a entrada e sada de pessoas. O sistema verifica o fluxo da atividade do carto checando suas entradas e sadas. Isso pode gerar uma regra que obrigue o usurio a registrar a entrada antes de registrar sua sada. Caso no seja obedecida, sua presena no local no ser registrada e um evento de alerta pode ser gerado. Anti dupla passagem global: Tambm visa monitorar a entrada e sada de pessoas, mas em um ambiente com vrias entradas e sadas. A maioria dos sistemas que utilizam cartes para fazer o controle de acesso necessitam de uma comunicao online para registrar e verificar o acesso do usurio. A utilizao de cartes inteligentes em sistemas que permitem a leitura e escrita no carto tornou vivel o funcionamento do antipassback de forma off-line, ou seja, sem a necessidade de uma rede de comunicao. Tudo graas ao processamento interno. (SOUZA, 2010) Outro benefcio de importante destaque destes cartes a proteo aos dados inseridos na memria do carto. H algoritmos criptogrficos que blindam as informaes, dificultando a interceptao ou extrao. Cada fabricante define qual algoritmo ser implantado em seu carto, bem como a chave criptogrfica. Algoritmos de criptografia simtrica como DES e

34

DES Triplo e de chave assimtrica como o RSA, so exemplos de funcionalidades criptogrficas presentes em muitos smart cards. Todas essas vantagens dos cartes inteligentes dificultam muito o trabalho de entes maliciosos. A clonagem de cartes, por exemplo, torna-se muito mais trabalhosa e onerosa, chegando ao ponto de inibir a ao de bandidos devidos aos gastos e empenhos dedicados para clonar ou capturar a informao de um chip de smart card.

2.2.6 - Tecnologia Java Card

Os Smart Cards so uma das menores plataformas de computao existentes no mercado. E mais uma vez a tecnologia Java est presente. O conceito principal da linguagem no que remete a portabilidade se adequa perfeitamente ao mundo dos cartes inteligentes. A tecnologia Java Card permite que programas escritos em Java rodem em Smart Cards. (CHEN, 2000) A tecnologia Java Card possui algumas particularidades. Embora a forma de codificar, os conceitos da linguagem, a sintaxe e a semntica sejam iguais a qualquer outro programa Java, h alguns detalhes que so muito importantes para o programador. As principais excees se concentram na mquina virtual, no JCRE, nas APIs e na forma de desenvolvimento dos Applets. So particularidades da tecnologia Java Card: JCVM: A principal diferena entre a mquina virtual Java Card e mquina virtual Java que a JCVM dividida em duas partes. Uma parte est presente dentro do carto e possui o interpretador do cdigo em bytes. A outra parte roda no computador e possui o conversor do cdigo. Juntas as partes implementam a funo da mquina virtual que carregar e executar as classes Java. (CHEN, 2000) Arquivo CAP: O arquivo CAP contm a representao binria de uma classe Java. As informaes da classe, os cdigos executveis, informaes de conexo e informaes de verificao so compactadas nesse arquivo. Uma classe Java a parte mais

35

importante da arquitetura da linguagem. Devido s limitaes do Smart Card necessria a converso das classes Java em arquivos CAP. Dessa maneira possvel que o programa seja carregado e executado dentro do carto inteligente. (CHEN, 2000) Java Card Converter: Para converter as classes Java em arquivos CAP necessrio o auxlio de um conversor. Durante a converso o Converter realiza todas as tarefas que uma mquina virtual comum executaria durante o carregamento de uma classe. Portanto atividades como verificar violaes da linguagem no cdigo, inicializao das variveis, otimizao do cdigo e alocao de espao em memria so realizadas nesse momento. Aps a converso do arquivo .CLASS de uma classe Java gerado o arquivo CAP. (CHEN, 2000) JCRE: responsvel pelo sistema que roda dentro do carto inteligente. Toda a administrao de recursos, comunicao de rede e execuo do applet, de responsabilidade do JCRE. (CHEN, 2000) API: a biblioteca de informaes. Contm vrias classes customizadas para tornar possvel a programao e desenvolvimento de aplicativos para Smart Cards. So essenciais para os programadores. (CHEN, 2000) A figura abaixo ilustra como a diviso entre a parte on-card e a parte off-card:

Figura 2.10 Particularidades do Java Card / Fonte: CHEN, 2000.

36

O desenvolvimento de um aplicativo Java Card comea como qualquer outro programa Java. O cdigo desenvolvido ento compilado e gerado o arquivo .CLASS. Para ser compatvel com as limitaes do carto inteligente feita uma converso e assim obtm-se o arquivo CAP. O arquivo CAP inserido dentro do Smart Card e o JCRE cuida do restante. Quando da instalao do aplicativo no carto inteligente pelo JCRE no possvel fazer alteraes dinmicas. Por consequncia os applets carregados no carto devem referenciar classes Java existentes no carto. No possvel instalar novas classes Java durante a execuo do aplicativo. Eventuais mudanas ou necessidades de novas classes tornam necessrio a gerao de um novo arquivo CAP a ser instalado no Smart Card. Neste projeto ser utilizado um kit de desenvolvimento Java Card disponibilizado pela Sun em seu site na internet. O JCDK 2.2.1 possui toda a API necessria para o desenvolvimento dos aplicativos, bem como o conversor para gerar o arquivo CAP.

37

CAPTULO 3 PROBLEMAS DE SEGURANA DA INFORMAO

3.1 - Identificao do Problema e Cenrio Atual

No Brasil h vrias instituies financeiras de grande porte e, consequentemente, uma base de clientes bancrios considervel, que por sua vez, utiliza os servios e canais de atendimento que os bancos oferecem. De acordo com dados divulgados pela Federao Brasileira de Bancos FEBRABAN, o nmero de clientes, cartes de crdito e de usurios do internet banking :

Figura 3.1 Nmero de Clientes, Internet Banking e Cartes / Fonte: FEBRABAN

O Banco do Brasil, por exemplo, segundo dados do prprio stio da empresa, tem uma base de 52,7 milhes de clientes e obteve um lucro lquido de R$5,1 bilhes no primeiro semestre de 2010. Essas informaes mostram o quanto alta a movimentao financeira no pas. Todo esse montante de ativos desperta a cobia de quadrilhas especializadas. Ainda segundo a pesquisa divulgada pela FEBRABAN em 31 de Agosto de 2010, os bancos

38

brasileiros devem somar R$900 milhes em prejuzo at o final de 2010 somente levando-se em conta crimes eletrnicos. Em 2009 o prejuzo foi semelhante. A maior parte das fraudes bancrias envolvem cartes de crdito (45%), seguido de golpes via internet banking (30%) e cartes de dbito (20%). O restante se divide por outros canais. O cenrio no pior porque as instituies investiram aproximadamente R$19,4 bilhes em Tecnologia da Informao e R$1,4 bilhes em Segurana, o que prova a preocupao com os acontecimentos. A figura abaixo ilustra os gastos:

Figura 3.2 Gastos realizados em Tecnologia / Fonte: FEBRABAN

Outra situaes tambm podem ser dadas como exemplo. Em Agosto de 2008 um continer da Petrobrs foi arrombado e foram furtados dados sobre pesquisas ssmicas, que incluam a descoberta de petrleo e gs. Outra situao aconteceu em Agosto do presente ano, quando dados de 12 milhes de inscritos no ENEM desde 2007 vazaram na internet. Mais recente ainda o caso do acesso indevido aos dados do imposto de renda de Vernica Serra, filha de Jos Serra, candidato presidncia da Repblica em 2010. Aliado aos fatos expostos ainda h os casos de venda de mdias com declaraes de imposto de renda de vrios contribuintes, venda de cadastros, desvio de informaes dentro de corporaes, roubo de provas de concursos pblicos e vestibulares e muitos outros casos.

39

Todas as situaes apontam para uma nica diretriz: a fragilidade do elo ser humano e informao. No caso de roubos de senhas a maioria das ocorrncias deve-se ao fato de senhas de fcil combinao, guarda inapropriada do cdigo secreto ou divulgao do mesmo a parente, amigos e companheiros. As situaes de furto mostram fragilidade no controle de acesso ao ambiente restrito. J o desvio e venda de informaes caracteriza claramente o acesso por pessoas no autorizadas e a falta de registro dos acessos. A alternativa para aqueles que desejam manter seus dados seguros investir em equipamentos de Segurana da Informao. A proposta deste projeto integrar dois equipamentos de segurana.

3.2 Ferramentas e Tcnicas Maliciosas

Os motivos para atacar, invadir e roubar informaes so os mais diversos. H quem faz por diverso, quem faz por visibilidade social, quem faz por vingana, que faz por questes financeiras e quem faz por motivos polticos. Para atingirem seus objetivos, as entidades maliciosas se aproveitam de brechas e muitas vezes utilizam ferramentas para capturar o que desejam. So exemplos dessas ferramentas: Keyloggers: Software que captura as teclas digitas no computador. Atualmente, o termo foi expandido para incluir vrios softwares de monitorao completa do sistema, tais como o Perfect Keylogger. (LINHA DEFENSIVA, 2010) Phishing: Mensagens fraudulentas que tentam se passar por avisos reais de grandes empresas, como bancos, antivrus e cartes de crdito. Mensagens desse tipo possuem um link que aponta para algum site malicioso ou contm algum programa como keyloggers ou trojans. As mensagens podem ser enviadas via e-mail ou bate-papos. (LINHA DEFENSIVA, 2010) Vrus: todo programa de computador que funciona como parasita, infectando os arquivos que existem em um computador. Utilizam a rede para se espalhar. (LINHA DEFENSIVA, 2010)

40

Denial Of Service: Em portugus conhecido como Negao de Servio. Trata-se de uma atividade maliciosa atravs da Internet que busca derrubar um servio de um servidor. O Servio se refere algum servio da internet, tal como pginas da internet. Sites atingidos por ataques de negao de servio ficam indisponveis. (LINHA DEFENSIVA, 2010) Trojans: Um Trojan Horse um programa que faz algum tipo de atividade malfica como capturar informaes do usurios e envi-las para um computador receptor. Dados bancrios so frequentemente roubados com a ajuda dos cavalos de tria. (LINHA DEFENSIVA, 2010) Chupa-cabra: Acessrios adicionados aos leitores de carto do banco. So como um acabamento adicional que se sobrepem ao leitor de carto, e que possuem um dispositivo de leitura adicional que grava os cdigos da tarja magntica do plstico e as envia para um computador receptor. Os bandidos utilizam ainda uma micro cmera para capturar as senhas digitadas pelos clientes. Com as senhas e os dados do carto possvel criar clones e efetuar compras e saques. (LINHA DEFENSIVA, 2010)

Figura 3.3 Chupa-cabra parte externa / Fonte: Site Linha Defensiva

41

Figura 3.4 Chupa-cabra parte interna / Fonte: Site Linha Defensiva

Embora eficazes, as ferramentas s so eficientes devido a tcnica mais utilizada e difundida desde os primrdios da humanidade, a Engenharia Social.
A habilidade de se manipular pessoas para obter informaes necessrias para conseguir acessar um sistema, roubar dados de bancos ou qualquer outra coisa. Visa manipular sentimentos, emoes e aspiraes das pessoas para se obter informaes privilegiadas, as quais normalmente no seriam entregues. Os meios para a tcnica acontecer podem ser vrios: Internet, telefone, carta ou mesmo pessoalmente. O que mais manipulado pelos engenheiros sociais: Curiosidade, Confiana, Simpatia, Culpa, Medo. Toda a base dos ataques se encaixa em uma dessas categorias. (MITINICK, 2010)

Os estelionatrios esto sempre aprimorando seus golpes e os crackers, ou piratas virtuais, no param de lanar novas verses das ferramentas e at mesmo novos programas maliciosos. Empresas e polticos tambm usufruem de tcnicas ilegais para confrontar seu concorrentes. Funcionrios insatisfeitos, maridos trados e at jovens viciados em drogas podem ser protagonistas nesse cenrio criminoso. Ou seja, no faltam motivaes e interessados em invadir ou roubar. Proteo algo extremamente necessrio.

42

3.3 Dispositivos de Segurana Utilizados Atualmente

As tcnicas e ferramentas maliciosas esto em constante desenvolvimento e, se os bandidos evoluem, os prejudicados no podem ficar inertes. H muitos dispositivos que se consolidaram no mercado por atender as necessidades dos usurios, diminuindo fraudes, protegendo informaes e evitando acessos no autorizados. Abaixo so detalhados alguns desses dispositivos: Cartes bancrios com chip: O desenvolvimento dos cartes de crdito baseados em smart cards, pode ser considerado uma mudana fundamental na indstria mundial dos sistemas de pagamento. Os cartes que utilizam chip tem capacidade de armazenar dados de forma segura (criptografados) e tem uma maior capacidade de memria. Alm disso, os cartes com chip no podem ser clonados, pelo menos no com meios simples. (PARODI, 2010) Leitores biomtricos: Catracas, salas de servidores e computadores pessoais so exemplos do que pode ser protegido por esse sistema complexo e que visa identificar o usurio com base em perfis e caractersticas biomtricas. Cartes de proximidade RFID: Tambm bastante utilizado em catracas, portarias de prdios residenciais ou comerciais, garagens e vale transporte. Funciona com uma fonte, normalmente chamada de antena, que emite uma onda de rdio frequncia. Dentro do carto h outro componente, chamado transponder. Ao receber o sinal da antena, o transponder responde emitindo um sinal que identificado pela fonte emissora. As informaes transmitidas e as respostas dependem do tipo de servio executado. (MARX TECNOLOGIA, 2010) Certificado Digital: O Certificado Digital uma credencial que identifica uma entidade, seja ela empresa, pessoa fsica, mquina, aplicao ou site na web. O arquivo de computador gerado pelo Certificado Digital contm um conjunto de informaes que garante a autenticidade de autoria na relao existente entre uma chave de criptografia e uma pessoa fsica, jurdica, mquina ou aplicao. Os Certificados Digitais so compostos por um par de chaves (chave pblica e

43

privada) e a assinatura de uma terceira parte confivel - a Autoridade Certificadora AC. As Autoridades Certificadoras emitem, suspendem, renovam ou revogam certificados, vinculando pares de chaves criptogrficas ao respectivo titular. (CERTISIGN, 2010) Embora sejam apenas alguns exemplos e existam muito mais aplicaes e equipamentos de segurana, o cenrio atual demanda o estudo contnuo e o desenvolvimento de novos aplicativos. Aproveitando o reconhecimento do mercado e o fato de permitir a criao de um sistema de autenticao de dois fatores (o que voc tem e o que voc ) optouse pelo estudo da integrao de dois dos dispositivos citados a cima: Smart card e leitor biomtrico.

44

CAPTULO 4 DESENVOLVIMENTO DO PROJETO

4.1 - Proposta para Soluo do Problema

Para desenvolver a soluo integrada sero necessrios um leitor biomtrico, para capturar a impresso digital do usurio, uma leitora e gravadora de smart card para proporcionar a gravao das informaes no carto inteligente, e um smart card. A integrao das tecnologias se dar atravs de um software. Uma interface ser responsvel pelo e captura da impresso digital. Aps capturada a digital ser convertida em um cdigo nico de caracteres e esse cdigo que ser utilizado posteriormente para a validao do acesso. Os dados bsicos do cliente e o cdigo da impresso digital sero inseridos em um banco de dados. No momento da insero no banco de dados, as informaes bsicas do usurio sero concatenadas com o cdigo do usurio e com o ATR do carto inteligente. A string gerada pela concatenao ser convertida em um hash code atravs do algoritmo MD5 e posteriormente gravada na base de dados. Esse cdigo hash ser inserido na memria do smart card para posteriormente identificar o dono do carto. Quando o usurio inserir o carto na leitora ser solicitado a validao com a leitura da impresso digital. O usurio ento colocar na leitora o mesmo dedo que cadastrou anteriormente. O software ir converter a imagem da impresso digital, em cdigo de caracteres, e providenciar a comparao com os cdigos de digitais gravados no banco de dados. Se a digital coincidir com alguma inserida no banco de dados, ser feita a verificao do portador do carto. A impresso digital ir pertencer h algum usurio e esse usurio ter um hash code associado. Para confirmar se o indivduo o dono do smart card, o cdigo hash ser comparado com o cdigo inserido no carto. Se forem iguais significa que o usurio est devidamente cadastrado no sistema e o portador do carto, portanto seu acesso vlido. Caso seja encontrada a digital no banco de dados mas o cdigo no coincida com a informao gravada no carto, significa que o usurio est cadastrado mas no o dono do smart card, assim, o acesso ser negado. Se a digital no for encontrada o acesso tambm ser

45

negado pois indica o no cadastramento do indivduo. Tem-se como premissa que os smart cards devem possuir um cdigo gravado em sua memria, portanto devem ter um portador associado. Dessa maneira ser possvel utilizar as duas solues em conjunto para fazer o controle de acesso. A portabilidade do carto com a complexidade da soluo biomtrica aumentar o nvel de segurana alm de permitir o registro de entrada dos usurios e de inviabilizar a transferncia das senhas de acesso.

Figura 4.1 Topologia da Proposta de Soluo do Problema / Fonte: O autor.

Figura 4.2 Diagrama de Caso de Uso / Fonte: O autor.

46

4.2 Pr-Requisitos

So pr-requisitos para o funcionamento da aplicao: Usurio com impresso digital possvel de ser capturada pela leitora; Todo smart card deve ter apenas um usurio vinculado e para acessar o sistema o usurio deve ser cadastrado previamente; Ambiente de acesso restrito deve possuir computador para que a aplicao seja instalada; Configurao mnima do computador: Processador de 1,5 GHz, 1 GB de memria RAM, 20 GB de disco rgido, placa de rede habilitada e sistema operacional Windows XP ou superior So necessrias duas portas USB para conexo da leitora de smart card e do leitor biomtrico; Os cartes inteligentes devem suportar a verso 2.2.1 do Java Card; Instalao e configurao do Java no computador (configurao das variveis de ambiente e aplicativos JAVAC e JAVA funcionando corretamente); Instalao e configurao do banco de dados.

4.3 Tecnologias Utilizadas

4.3.1 - Softwares

Os programas de computador necessrios para o desenvolvimento e execuo da aplicao so:

47

Java SE Runtime Environment 6: Embora os recursos disponveis na verso 6 do Java no sejam utilizados, optou-se por essa verso por ser a mais recente disponvel no mercado. A verso 3 do Java atende perfeitamente a soluo;

Java Card Development Kit 2.2.1: Possui toda a API necessria para o desenvolvimento da Applet a ser inserida no carto inteligente. Possui tambm o aplicativo de converso da Classe para o arquivo CAP;

IDE Eclipse: Ferramenta para desenvolvimento e compilao de aplicativos Java. Possui ferramentas e muitos recursos essenciais;

GPShell: Ferramenta responsvel por fazer a insero do arquivo CAP no smart card;

Microsoft Visual Basic 6: Ferramenta para desenvolvimento e compilao de aplicativos Visual Basic;

SDK Nitgen: Possui as bibliotecas necessrias para o desenvolvimentos de aplicativos utilizando o leitor biomtrico fabricado pela Nitgen. Alm disso, o programa da Nitgen providencia a converso da impresso digital para o cdigo em caracteres;

MySQL: Banco de Dados utilizado para persistncia das informaes.

4.3.2 - Hardware

As ferramentas de hardware necessrias para o desenvolvimento e execuo da aplicao so: Leitor biomtrico Nitgen Hamster I: Responsvel pela captura e verificao da impresso digital; Leitora e gravadora de Smart Card ACR 38: Responsvel pela leitura e gravao de dados na memria do carto inteligente;

48

Smart Cards JCOP 2.2.1: Cartes inteligentes que suportam a tecnologia Java Card 2.2.1.

Figura 4.3 Sistema Montado / Fonte: O autor.

4.4 Modelo de Dados

Em razo da aplicao utilizar minimamente o Banco de Dados, adotou-se um modelo bem simples. H apenas uma tabela e atende a soluo perfeitamente. A seguir segue uma figura do modelo de dados.

49

Figura 4.4 Modelo de Dados / Fonte: O autor.

4.5 Desenvolvimento da Aplicao

4.5.1 Cadastramento do Usurio

O processo tem incio com a conexo do leitor biomtrico. Na tela principal do programa, necessrio clicar no boto Conectar (vide figura 4.5) para que as funes responsveis pela conexo sejam executadas. Esse boto tambm ir executar dois processos batch, um que compila a classe Java da Applet que ser inserida no smart card e outro que providencia a criao do arquivo CAP da Applet.

50

Figura 4.5 Tela Principal / Fonte: O autor.

Feita a conexo e com o arquivo CAP devidamente gerado possvel cadastrar um usurio no sistema. O cadastro bem simples e compreende apenas trs campos obrigatrios: Nome, Empresa e E-Mail. Preenchidas as informaes deve-se clicar em Cadastrar (vide Figura 4.6). Esse boto ir primeiramente providenciar a instalao da Applet no Smart Card, portanto mais um arquivo batch ser executado. O programa GPShell o responsvel por inserir o arquivo CAP na memria do carto inteligente. Posteriormente a impresso digital ser capturada (vide Figura 4.7). O software responsvel pela captura e converso da impresso digital no faz parte do escopo deste projeto, portanto utilizado um software de propriedade da Nitgen. Com a digital capturada e transformada em cdigo de caracteres possvel inserir o usurio no banco de dados.

51

Figura 4.6 Cadastro do Usurio / Fonte: O autor.

Figura 4.7 Captura da Digital / Fonte: O autor.

52

Ainda como resultado do clique no boto Cadastrar, mais um processo batch executado. Tal processo executado pela JCVM e o resultado o nmero ATR do carto. Esse nmero gravado no banco de dados. O passo seguinte gerar o PIN que ser inserido no carto. O PIN definido pela concatenao de cinco strings: ID do usurio, ATR do carto, Nome do usurio, Empresa do usurio e Email do usurio. Aps a concatenao o PIN passa por um algoritmo chamado MD5 que gera um hash code com o objetivo de manter a integridade do PIN no momento da escrita e da leitura no smart card. O PIN ento inserido na base de dados na linha correspondente ao usurio.

Figura 4.8 Gerao e Insero do PIN / Fonte: O autor.

Por fim outro processo batch executado, dessa vez o objetivo compilar e executar a classe Java responsvel por enviar a mensagem APDU que insere o PIN na memria do smart card. Com a finalizao desse processo, o usurio estar cadastrado e apto para acessar o sistema.

53

Figura 4.9 Diagrama de Atividades Conexo e Cadastro do Usurio / Fonte: O autor.

54

4.5.2 Autenticao do Usurio

Para realizar a autenticao do usurio e verificar se o mesmo esta apto para ingressar no ambiente de acesso restrito basta um clique no boto Autenticar. Optou-se pela simulao de um ambiente restrito de maneira simples para no destoar o foco do projeto, que a integrao das ferramentas de carto e biometria. A primeira ao do boto fazer a captura da impresso digital do usurio que est tentando o acesso. Novamente o software proprietrio da Nitgen utilizado para fazer a captura e converso da digital em string de caracteres. A impresso digital capturada ser ento comparada com as impresses digitais cadastradas no banco de dados. Quando houver a coincidncia de digitais o sistema retornar o ID do usurio dono da impresso digital.

Figura 4.10 Verificao da Impresso Digital / Fonte: O autor.

Sabendo-se o ID do usurio, outra rotina batch executada, com o objetivo de fazer a comparao do PIN do usurio com o PIN gravado no smart card. O processo de comparao iniciado atravs de uma mensagem APDU enviada para o carto. Por sua vez, o carto

55

responde e grava essa resposta no banco de dados. Com base na resposta possvel saber se o usurio que tentou o acesso o portador ou no do smart card. Segue diagrama de atividades:

Figura 4.11 Diagrama de Atividades Autenticao do Usurio / Fonte: O autor.

56

4.5.3 Controle do Acesso O controle de acesso o sistema que permite ou no a entrada de um indivduo ou objeto em determinados locais, em determinados horrios, mediante sua identificao. (SOUZA, 2010). Diante do exposto, define-se que neste projeto o controle ser feito com base em duas informaes: se a impresso digital existe e se o usurio o portador do smart card. Caso a digital do indivduo for encontrada na base de dados e posteriormente o PIN gravado no carto inteligente for igual ao PIN relacionado ao indivduo, o acesso ao sistema ser liberado. Neste caso o carto ter enviado a resposta 9000, que corresponde ao sucesso na validao do PIN. Se a digital seja encontrada mas o PIN inserido no carto no coincida com o do usurio, o acesso ser negado. Neste caso o carto ter enviado a resposta 6300, que corresponde ao caso de PIN invlido. Se a digital no for encontrada o acesso ser imediatamente negado pois supe-se que o indivduo no est cadastrado no sistema e portanto no tem direto ao acesso. Por fim h o caso de o carto responder 6e89, o que significa que o nmero mximo de tentativas de acesso com aquele smart card ter sido atingido. Essa situao implica o bloqueio do carto e a negao do acesso ao ambiente. Abaixo o caso de uso de autenticao:

Figura 4.12 Caso de Uso Autenticar Usurio / Fonte: O autor.

57

4.5.4 Relatrio de Acessos

O objetivo do relatrio de acessos possibilitar uma auditoria das entradas realizadas no sistema. Espera-se registrar todas os eventos de tentativas de acesso, que tiveram ou no sucesso. O relatrio de extrema importncia pois permite a gerao de planos de aes corretivas e preditivas. Alm disso atua como fator inibidor e at mesmo como controle do horrio de entrada e sada dos usurios. O relatrio possui caractersticas simples e criado a partir de uma lista que contm todos os registros do banco de dados e mais aqueles que tentaram o acesso mas no esto cadastrados. A lista transcrita para um arquivo no formato TXT e finalmente salva no disco rgido do computador. sempre criado um arquivo de nome igual, portanto para manter um histrico necessrio renomear o arquivo ou mov-lo para um outro ambiente. A ao que chama a rotina de gerao do relatrio a sada do programa, acionada atravs do boto Sair. Na figura abaixo h um exemplo do Relatrio de Acessos.

Figura 4.13 Relatrio de Acessos / Fonte: O autor.

58

4.6 Estimativa de Custos

Equipamentos Leitor Biomtrico Nitgen Hamster I Kit de Desenvolvimento Java Card (Leitora ACR38 + 2 Smart Cards) Softwares (Livres ou com licena para estudantes)

Valor R$287,90 R$220,00

R$0,00

Tabela 4.14 Custos Envolvidos no Projeto / Fonte: O autor.

Valor total: R$507,90. Em caso de implementao em maior escala seria necessrio a aquisio de mais Smart Cards, cujo valor varia de R$15,00 a R$35,00. Sendo assim, estima-se que uma aplicao semelhante com suporte a 50 usurios e considerando apenas um ambiente para registro e autenticao dos mesmos, custaria em torno de R$1757,90.

59

CAPTULO 5 TESTES E RESULTADOS

5.1 Casos de Teste

5.1.1 Caso Nmero 1

Cadastro do usurio A no carto A. Tentativa de acesso do usurio A utilizando o carto A. O resultado esperado a liberao de acesso do usurio A. Realizao do teste: O primeiro passo clicar no boto conectar para que seja realizada a conexo entre o leitor biomtrico e o computador. O segundo passo o cadastro das informaes do Usurio A e a captura da impresso digital. A figura abaixo ilustra o procedimento.

60

Figura 5.1 Cadastro do Usurio A / Fonte: O autor.

Figura 5.2 Confirmao de Cadastro do Usurio A / Fonte: O autor.

O terceiro passo a tentativa de autenticao do usurio. Vide figura abaixo.

Figura 5.3 Autenticao de Acesso do Usurio A / Fonte: O autor.

61

O ltimo passo a liberao do acesso.

Figura 5.4 Liberao de Acesso do Usurio A / Fonte: O autor.

5.1.2 Caso Nmero 2

Cadastro do usurio A no carto A e cadastro do usurio B no carto B. Quatro tentativas de acesso do usurio A utilizando o carto B e uma tentativa de acesso do usurio B utilizando o carto A. O resultado esperado a negao de acesso a ambos os usurios e o bloqueio do carto B. Realizao do teste: Como a conexo do leitor biomtrico j foi realizada no teste anterior, ela dispensada.

62

Assim o primeiro passo o cadastro das informaes do Usurio B e a captura da impresso digital. O Usurio A j foi cadastrado. A figura abaixo ilustra o procedimento.

Figura 5.5 Cadastro do Usurio B / Fonte: O autor.

Figura 5.6 Confirmao de Cadastro do Usurio B / Fonte: O autor.

63

O terceiro passo so as quatro tentativas de autenticao do Usurio A utilizando o carto B. Vide figura abaixo.

Figura 5.7 Acesso No Autorizado do Usurio A / Fonte: O autor.

Conforme a figura abaixo percebe-se a negao do acesso e, por consequncia das vrias tentativas de acesso, o bloqueio do carto B.

Figura 5.8 Carto B Bloqueado / Fonte: O autor.

64

O quarto passo a tentativa de acesso do Usurio B com o carto A. A figura abaixo mostra a negao do acesso.

Figura 5.9 Acesso No Autorizado do Usurio B / Fonte: O autor.

5.1.3 Caso Nmero 3

Tentativa de acesso do usurio no cadastrado C utilizando o carto A. O resultado esperado a negao de acesso porque o usurio C no est cadastrado no sistema. Realizao do teste: Realizao de tentativa de acesso de um usurio no cadastrado utilizando o carto A. Conforme mostrado na figura abaixo, o acesso no concedido.

65

Figura 5.10 Acesso Negado de Usurio No Cadastrado / Fonte: O autor.

5.1.4 Caso Nmero 4

Tentativa de acesso do usurio B com o carto bloqueado B. Tentativa de acesso do usurio A com o carto A. Gerao do relatrio de acessos. O resultado esperado a negao de acesso ao usurio B porque o carto B deve estar bloqueado. J o acesso ao usurio A deve ser concedido. Alm disso, ao pressionar o boto Sair o relatrio de acessos deve ser gerado. Realizao do teste: Novamente, como a conexo do leitor biomtrico j foi realizada no primeiro teste, esse procedimento dispensado. Assim o primeiro passo a tentativa de acesso do Usurio B com o carto bloqueado B. A figura abaixo mostra a negao do acesso devido ao bloqueio.

66

Figura 5.11 Acesso Negado Devido a Carto Bloqueado / Fonte: O autor.

O segundo passo a tentativa de autenticao do Usurio A utilizando o carto A. A figura abaixo mostra a liberao.

Figura 5.12 Acesso Liberado para Usurio A / Fonte: O autor.

67

O terceiro passo o relatrio de acessos gerado. A figura abaixo demostra o resultado.

Figura 5.13 Relatrio de Acessos Gerado / Fonte: O autor.

5.1.5 Tabela de Resultados dos Testes

Caso de Teste Nmero 1 Nmero 2 Nmero 3 Nmero 4

Resultado Aprovado Aprovado Aprovado Aprovado

Tabela 5.14 Resultado dos Teste / Fonte: O autor.

5.2 Anlise dos Resultados 5.2.1 Pontos Positivos

O resultado dos testes representam o sucesso da aplicao desenvolvida. A simulao de entrada em um ambiente de acesso restrito foi realizada utilizando os dois sistemas de autenticao, portanto considera-se um sucesso a integrao de ambos. Mostrou-se tambm que o carto inteligente e o leitor biomtrico no funcionam de maneira isolada e sim de

68

maneira conjunta. Alm disso importante destacar a simplicidade e rapidez da realizao do cadastro e a eficincia na autenticao dos usurios.

5.2.2 Dificuldades e Desvantagens

Algumas dificuldades encontradas durante o desenvolvimento do projeto: Apesar de ser uma tecnologia no muito recente, h pouco material de estudo sobre smart card; A tecnologia Java Card tambm no muito difundida. H poucos livros na rea e poucos profissionais especializados. A fonte de material se concentra em estudos acadmicos e comunidades especializadas na internet, como o frum de discusso da Oracle Sun; A memria limitada do smart card no suportou a insero da string de caracteres contendo a digital do usurio, por isso foi necessrio uma adaptao utilizando um banco de dados; O smart card utilizado suporta a verso 2.2.1 do Java Card. Essa verso no abrange a API de Biometria e por isso no foi possvel inserir o padro biomtrico da digital diretamente na memria do carto; Dependncia do banco de dados. Com cartes que suportem verses superiores do Java Card ser possvel eliminar o banco de dados.

69

CAPTULO 6 CONCLUSO

6.1 Sntese Conclusiva

Toda situao, que envolve seres humanos e ativos confidenciais, tem um risco. O homem suscetvel corrupo, pode possuir ideologias divergentes, pode ter um desejo de vingana, pode ter alguma motivao religiosa, poltica ou empresarial, entre outros motivos. Portanto o cenrio expe a necessidade de estudos frequentes de metodologias, tcnicas e ferramentas que foquem na proteo de ambientes sensveis. Levando-se em conta os fatos foi definido como objetivo deste trabalho a integrao de duas tecnologias de segurana da informao visando somar seus benefcios e agregar maior confidencialidade aos sistemas de controle de acesso. O desenvolvimento do projeto resultou em um prottipo que permite a integrao do leitor biomtrico com o smart card e assim obteve-se um sistema de segurana baseado no que o usurio possui e no que o usurio . A simulao de registro e autenticao no sistema apresentou resultado satisfatrio na fase de testes, onde quatro casos foram realizados e todos eles bem sucedidos. Em suma, pode-se considerar o cumprimento do objetivo geral e dos objetivos especficos, j que as tecnologias foram integradas e o sistema para cadastro e simulao de entrada em um ambiente de acesso restrito foi desenvolvido. A viabilizao da integrao traz uma nova diretriz para os sistemas de controle de acesso e de segurana da informao. As caractersticas biomtricas tem um ndice muito baixo de falhas e os cartes inteligentes possuem uma boa proteo contra a clonagem. O estudo e investimento na rea j so realidade e as perspectivas para o futuro so muito boas.

70

6.2 Sugestes para Trabalhos Futuros

As dificuldades encontradas durante a realizao deste projeto abrem oportunidades para o desenvolvimento de novos trabalhos relacionados ao tema. Entre essas oportunidades destacam-se: Elaborar soluo semelhante utilizando Smart Cards que suportem verso superior da tecnologia Java Card, para assim abranger a API de Biometria e permitir a eliminao da dependncia do banco de dados; Propor e apresentar uma soluo semelhante utilizando outro tipo de autenticao biomtrica; Propor e apresentar uma soluo semelhante utilizando outro tipo de carto, como os cartes sem contato (contactless card).

71

REFERNCIAS BIBLIOGRFICAS

BANCO DO BRASIL. Grandes nmeros do Banco do Brasil. Disponvel em <http://www.bb.com.br/portalbb/home23,116,116,1,1,1,1.bb> Acesso em: 31 de Agosto de 2010. BIOMETRIC, Group. Biometrics Market and Industry Report 2009-2014. Disponvel em <http://www.biometricgroup.com/reports/public/market_report.php> Acesso em: 01 de Outubro de 2010. CEFET, Rio Grande do Norte. Projeto JAVACARD Cefet-RN. Disponvel em <http://www.cefetrn.br/javacard/doku.php?do=search&id=> Acesso em: 25 de Julho de 2010. CHEN, Ziqun. Java Card Technology for Smart Cards. Prentice Hall, 2000. CERTISIGN, Empresa. O que Certificao Digital? Disponvel http://www.certisign.com.br/certificacao-digital/por-dentro-da-certificacao-digital> em: 02 de Setembro de 2010. em < Acesso

CUSTODIO, Klecius Vinicius Assis. Estudo do uso de biometria para autenticao tem terminais de auto-atendimento. Monografia de Graduao do Curso de Engenharia de Computao. Braslia: UniCEUB, 1 Semestre de 2007. ESTADO, Jornal. Dados do ENEM vazam na internet. Disponvel em <http://www.estadao.com.br/estadaodehoje/20100804/not_imp590058,0.php> Acesso em: 01 de Setembro de 2010. FEBRABAN. O setor bancrio em nmeros. Disponvel em <http://www.febraban.org.br/> Acesso em: 31 de Agosto de 2010. FOLHA DE SO PAULO , Jornal. Furto de Informaes da Petrobrs. Disponvel em <http://www1.folha.uol.com.br/folha/dinheiro/ult91u372319.shtml> Acesso em: 01 de Setembro de 2010. GLOBO, Reportagem. Bancos brasileiros perdero R$ 900 milhes com fraudes online no ano. Disponvel em <http://g1.globo.com/economia-e-negocios/noticia/2010/08/bancosbrasileiros-perderao-r-900-milhoes-com-fraudes-online-no-ano.html> Acesso em: 31 de Agosto de 2010. IETF. Request For Comments. Disponvel em <http://www.ietf.org/rfc.html> Acesso em: 03 de Outubro de 2010. LINHA DEFENSIVA, Site. Dicionrio de Termos de Segurana da Informao. Disponvel em <http://www.linhadefensiva.org/dicionario/> Acesso em: 01 de Setembro de 2010.

72

MACORATTI, Jos Carlos. Dicas e tutoriais sobre VB6. Disponvel <http://www.macoratti.net/Default.aspx> Acesso em: 03 de Setembro de 2010. MARX TECNOLOGIA, Empresa. O que RFID? Disponvel http://www.marx.com.br/rfid/o-que-e-rfid> Acesso em: 02 de Setembro de 2010. em

em <

MICROSOFT, TechNet Brasil. Entendendo e implementando a Norma ABNT NBR ISO/IEC 17799:2005. Academia de Segurana. Disponvel em <https://www.technetbrasil.com.br/academia2007/seguranca/home.aspx> Acesso em: 25 de Agosto de 2010. MITNICK, Kevin. Engenharia Social. Disponvel em <http://www.invasao.com.br/2010/02/01/kevin-mitnick-explica-o-que-e-engenharia-social/> Acesso em: 01 de Setembro de 2010. MOREIRA, Tiago Maccagnan. Verificao biomtrica da palma da mo com identificao via Smart Card. Monografia de Graduao do Curso de Engenharia de Computao. Curitiba: UnicenP, 2004. NBR/ISO/IEC 27002. Tecnologia da Informao Cdigo de prtica para a gesto da segurana da informao. Rio de Janeiro. Associao Brasileira de Normas Tcnicas, 2007. PARODI, Lorenzo. Cartes com Chip. Disponvel em < http://www.fraudes.org> Acesso em: 02 de Setembro de 2010. PINHEIRO, Jos Maurcio. Biometria nos Sistemas Computacionais - Voc a Senha. Rio de Janeiro: Editora Cincia Moderna Ltda., 2008. RANGEL, Alexandre. MySQL: Projeto, Modelagem e Desenvolvimento de Banco de Dados. Rio de Janeiro: Alta Books, 2004. SIERRA, Kathy; BATES, Bert. Use a cabea! Java. 2 Edio. Rio de Janeiro: Editora Alta Books, 2005. SONSUN. Kit de Desenvolvimento JAVACARD. Disponvel <http://www.sonsun.com.br/sonsun_JCOP.php> Acesso em: 10 de Julho de 2010. em

SOUSA, Giovanni Ferreira. Controle de ponto utilizando a tecnologia Java Card. Monografia de Graduao do Curso de Engenharia de Computao. Braslia: UniCEUB, 2 Semestre de 2009. SOUZA, Marcelo Barbosa. Controle de Acesso: Conceitos, Tecnologia e Benefcios. So Paulo: Editora Sicurezza, 2010. SUN, Java. Java Card Development Kit 2.2.1. <http://java.sun.com/javacard/devkit/> Acesso em: 11 de Julho de 2010. Disponvel em

73

APNDICES

Transcreve-se abaixo o cdigo de interface do usurio:

' ########################################################################### ###################### ' ' UniCEUB - FATECS - Engenharia de Computacao ' Disciplina: Projeto Final ' 2o. Semestre de 2010 ' ' Titulo: SISTEMA DE CONTROLE DE ACESSO VIA SMART CARD COM AUTENTICAO BIOMTRICA DA IMPRESSO DIGITAL ' ' Aluno: Paulo Gabriel Ribacionka Goes de Araujo ' RA: ' ' ########################################################################### ###################### 2051650/7

' Variveis Globais

Dim objNBioBSP As NBioBSPCOMLib.NBioBSP

74

Dim objDevice As IDevice Dim objExtraction As IExtraction Dim objMatching As IMatching

Dim impressaoDigital As String

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

' ------------------------------------------------------------------------------------------------' Initialize application / Copyright: NITGEN Co., Ltd. ' ------------------------------------------------------------------------------------------------Private Sub Form_Load()

' Create NBioBSP object Set objNBioBSP = New NBioBSPCOMLib.NBioBSP Set objDevice = objNBioBSP.Device Set objExtraction = objNBioBSP.Extraction Set objMatching = objNBioBSP.Matching

btAutenticar.Enabled = False btCadastrar.Enabled = False

End Sub

' ------------------------------------------------------------------------------------------------' Terminate application / Copyright: NITGEN Co., Ltd.

75

' ------------------------------------------------------------------------------------------------Private Sub Form_Terminate()

Set objDevice = Nothing Set objExtraction = Nothing Set objMatching = Nothing Set objNBioBSP = Nothing

End Sub

' ------------------------------------------------------------------------------------------------' Open device / Copyright: NITGEN Co., Ltd. ' ------------------------------------------------------------------------------------------------Private Sub btConectar_Click()

Call FCarregaArquivoJAVA("Compila_ClasseGravaValidaSenha") Call FCarregaArquivoJAVA("Gera_ArquivoCAP")

' Select device type nNameID = 0 iDeviceID = NBioAPI_DEVICE_ID_AUTO_DETECT id = 0 iDeviceID = objDevice.MakeDeviceID(iDeviceID, id)

' Close Device if before opened

76

Call objDevice.Close(objDevice.OpenedDeviceID)

' Open device Call objDevice.Open(iDeviceID)

If objDevice.ErrorCode = NBioAPIERROR_NONE Then btAutenticar.Enabled = True btCadastrar.Enabled = True nDeviceID = iDeviceID End If

End Sub

' ------------------------------------------------------------------------------------------------' Cadastrar Usurio ' ------------------------------------------------------------------------------------------------Private Sub btCadastrar_Click()

Dim nomeUsuario As String Dim empresaUsuario As String Dim emailUsuario As String Dim db As ADODB.Connection Dim stringConexao As String Dim sqlINSERT As String

77

Dim sqlSELECT As String Dim sqlUPDATE As String Dim rs As ADODB.Recordset Dim codigoUsuario As String Dim Hash As New MD5Hash Dim bytBlock() As Byte Dim pin_card As String

nomeUsuario = nome.Text empresaUsuario = empresa.Text emailUsuario = email.Text

If FCarregaArquivoJAVA("Instalar_AppletSmartCard") Then

impressaoDigital = "" Call objExtraction.Enroll("", Null)

End If

If objExtraction.ErrorCode = NBioAPIERROR_NONE Then

stringConexao = "PROVIDER=MSDASQL;dsn=projeto;uid=;pwd=;" Set db = New ADODB.Connection db.CursorLocation = adUseClient db.Open stringConexao

78

impressaoDigital = objExtraction.TextEncodeFIR

sqlINSERT = "INSERT INTO tb_user (name_user, company_user, email_user, digital) " &_ "VALUES ('" & nomeUsuario & "', '" & empresaUsuario & "','" & emailUsuario & "', " & _ "'" & impressaoDigital & "'); "

db.Execute (sqlINSERT)

If FCarregaArquivoJAVA("CompilaExecuta_ClasseATR") Then

Set rs = New ADODB.Recordset sqlSELECT = "SELECT * from tb_user ORDER BY id_user desc LIMIT 1;" rs.Open LCase(sqlSELECT), db, adOpenStatic, adLockOptimistic

codigoUsuario = rs!id_user & rs!atr_card & rs!name_user & rs!company_user & rs!email_user

bytBlock = StrConv(codigoUsuario, vbFromUnicode)

pin_card = Hash.HashBytes(bytBlock)

sqlUPDATE = "UPDATE tb_user SET pin_card = '" & pin_card & "' WHERE id_user = " & rs!id_user & ";" db.Execute (sqlUPDATE)

79

End If

If FCarregaArquivoJAVA("CompilaExecuta_GravaSenha") Then

MsgBox ("Usurio " & nomeUsuario & " cadastrado com sucesso!")

nome.Text = "" empresa.Text = "" email.Text = ""

End If

End If

rs.Close Set rs = Nothing db.Close Set db = Nothing

End Sub

' ------------------------------------------------------------------------------------------------' Autenticar Acesso ' ------------------------------------------------------------------------------------------------Private Sub btAutenticar_Click()

80

Dim db As ADODB.Connection Dim stringConexao As String Dim sqlSELECT As String Dim sqlINSERT As String Dim sqlDELETE As String Dim sqlUPDATE As String Dim rs As ADODB.Recordset Dim rs2 As ADODB.Recordset Dim rs3 As ADODB.Recordset Dim id As Integer

stringConexao = "PROVIDER=MSDASQL;dsn=projeto;uid=;pwd=;" Set db = New ADODB.Connection db.CursorLocation = adUseClient db.Open stringConexao

sqlSELECT = "SELECT * from tb_user;"

Set rs = New ADODB.Recordset rs.Open LCase(sqlSELECT), db, adOpenStatic, adLockOptimistic

id = 0 objExtraction.Capture Do While Not rs.EOF impressaoDigital = rs!digital

81

Call objMatching.VerifyMatch(objExtraction.TextEncodeFIR, impressaoDigital) If objMatching.MatchingResult = NBioAPI_TRUE Then id = rs!id_user Exit Do End If rs.MoveNext Loop

If id <> 0 Then

sqlINSERT = "INSERT INTO tb_user (atr_card, name_user, company_user, email_user, digital, pin_card, sw_grava) " & _ "VALUES ('" & rs!atr_card & "','" & rs!name_user & "', '" & rs!company_user & "','" & rs!email_user & "', " & _ "'" & rs!digital & "', '" & rs!pin_card & "', '" & rs!sw_grava & "');" db.Execute (sqlINSERT)

If FCarregaArquivoJAVA("CompilaExecuta_AutenticaSenha") Then

sqlSELECT = "select * from tb_user order by id_user desc limit 1;" Set rs2 = New ADODB.Recordset rs2.Open LCase(sqlSELECT), db, adOpenStatic, adLockOptimistic

sqlUPDATE = "UPDATE tb_user SET sw_autentica = '" & rs2!sw_autentica & "' WHERE id_user = " & rs!id_user & ";" db.Execute (sqlUPDATE)

sqlDELETE = "DELETE from tb_user WHERE id_user = " & rs2!id_user & ";"

82

db.Execute (sqlDELETE)

sqlSELECT = "select * from tb_user WHERE id_user = " & rs!id_user & ";" Set rs3 = New ADODB.Recordset rs3.Open LCase(sqlSELECT), db, adOpenStatic, adLockOptimistic

If rs3!sw_autentica = "9000" Then MsgBox ("***ACESSO AUTORIZADO***") relatorio.AddItem (Now & " - Usurio " & rs3!name_user & " da empresa " & rs3!company_user & ". Situao: Acesso liberado.") ElseIf rs3!sw_autentica = "6e89" Then MsgBox ("!!!! CARTO BLOQUEADO. ACESSO NO AUTORIZADO. !!!!") relatorio.AddItem (Now & " - Usurio " & rs3!name_user & " da empresa " & rs3!company_user & ". Situao: Acesso no permitido. Carto bloqueado.") Else MsgBox ("-- CARTO PERTENCE A OUTRO USURIO. ACESSO NO AUTORIZADO. --") relatorio.AddItem (Now & " - Usurio " & rs3!name_user & " da empresa " & rs3!company_user & ". Situao: Acesso no permitido. Carto no pertence ao usurio.") End If

rs2.Close Set rs2 = Nothing rs3.Close Set rs3 = Nothing

End If

83

Else relatorio.AddItem (Now & " - Tentativa de acesso de usurio no cadastrado.") MsgBox ("-_- USURIO NO CADASTRADO. ACESSO NO AUTORIZADO. -_-") End If

rs.Close Set rs = Nothing db.Close Set db = Nothing

End Sub

' ------------------------------------------------------------------------------------------------' Carrega o arquivo .bat especificado ' -------------------------------------------------------------------------------------------------

Private Function FCarregaArquivoJAVA(arquivo_bat As String) As Boolean

FCarregaArquivoJAVA = False

Select Case arquivo_bat

Case "Compila_ClasseGravaValidaSenha" ' Compila a Classe que sera inserida no cartao Call ExecCmd("C:\javacard\projetoFinal\Compila_ClasseGravaValidaSenha.bat")

84

FCarregaArquivoJAVA = True

Case "Gera_ArquivoCAP" ' Gera o arquivo CAP Call ExecCmd("C:\javacard\projetoFinal\Gera_ArquivoCAP.bat") FCarregaArquivoJAVA = True

Case "Instalar_AppletSmartCard" ' Instala a Applet no cartao Call ExecCmd("C:\javacard\projetoFinal\Instalar_AppletSmartCard.bat") FCarregaArquivoJAVA = True

Case "CompilaExecuta_ClasseATR" ' Captura o ATR do cartao e salva no Banco de Dados Call ExecCmd("C:\javacard\projetoFinal\CompilaExecuta_ClasseATR.bat") FCarregaArquivoJAVA = True

Case "CompilaExecuta_GravaSenha" ' Grava as informaes no carto Call ExecCmd("C:\javacard\projetoFinal\CompilaExecuta_GravaSenha.bat") FCarregaArquivoJAVA = True

Case "CompilaExecuta_AutenticaSenha" ' Confere usurio cadastrado no carto Call ExecCmd("C:\javacard\projetoFinal\CompilaExecuta_AutenticaSenha.bat") FCarregaArquivoJAVA = True

85

End Select

End Function

' ------------------------------------------------------------------------------------------------' Gera o relatorio ' -------------------------------------------------------------------------------------------------

Private Sub SGerarRelatorioTXT()

Dim diretorio As String Dim log As String Dim i As Integer

diretorio = "C:\Users\Paulo Gabriel\Desktop\UniCEUB - Engenharia de Computacao Projeto Final - Paulo Gabriel Araujo ra20516507\Programas e Codificacao\Projeto Final Relatorio de Controle de Acesso\Log_Controle_Acesso.txt"

Open diretorio For Output As #1

For i = 0 To relatorio.ListCount - 1 log = relatorio.List(i) Print #1, log Next

86

Close #1

End Sub

' ----------------------------------------------------------------------------------------------------------------------' Sub para executar comandos Shell (via CMD) / Autor: MACORATTI, Jose Carlos Fonte: http://www.macoratti.net/d250901.htm ' -----------------------------------------------------------------------------------------------------------------------

Private Sub ExecCmd(cmdline$)

Dim proc As PROCESS_INFORMATION Dim start As STARTUPINFO

'Inicia a strutura STARTUPINFO start.cb = Len(start)

'Inicia a aplicao escolhida para ser executada ret& = CreateProcessA(0&, cmdline$, 0&, 0&, 1&, _ NORMAL_PRIORITY_CLASS, 0&, 0&, start, proc)

'Aguarda a aplicao iniciada terminar ret& = WaitForSingleObject(proc.hProcess, INFINITE) ret& = CloseHandle(proc.hProcess)

87

End Sub

' ----------------------------------------------------------------------------------------------------------------------' Chama a funo de gerar o relatrio e a funo para encerrar o programa ' -----------------------------------------------------------------------------------------------------------------------

Private Sub menuSair_Click()

Call SGerarRelatorioTXT 'Gera o relatrio gerencial

Call Form_Terminate

Call Unload(Me)

End Sub

88

Transcreve-se abaixo o cdigo da classe Java que envia a mensagem APDU para autenticao do PIN:

import javax.smartcardio.*;

import java.sql.*; import java.util.List; import java.util.ListIterator;

import com.sinergbrasil.jc.*;

//Classe responsavel por autenticar o PIN do usuario public class AutenticaSenha extends java.lang.Object {

// APDU de Select private static CommandAPDU SELECT_APDU = new CommandAPDU( 0x00, 0xa4, 0x04, 0x00, new byte[] {(byte)0xa0,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x62,(byte)0x03,(byte)0x01,(byte)0x0d,( byte)0x01,(byte)0x02} );

private static int id; private static String sqlSELECT; private static String pin_card; private static String sqlINSERT;

89

public AutenticaSenha() { }

public static void main(java.lang.String[] argv) {

try { // Leitores de Smart Card TerminalFactory factory = TerminalFactory.getDefault(); List terminalList = factory.terminals().list();

// Seleciona leitor de Smart Card CardTerminal terminal = (CardTerminal) terminalList.get(0);

// Aguarda o cartao ser inserido System.out.println("Por favor, insira o Smart Card na leitora..."); terminal.waitForCardPresent(10000);

// Faz a conexao com o cartao. "*" para automatico Card card = terminal.connect("*");

// Abertura do canal de comunicaco CardChannel ch = card.getBasicChannel();

// Envia o APDU de SELECT ResponseAPDU ra = ch.transmit(SELECT_APDU);

90

// Conexao com o Banco de Dados Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/db_projetofinal?user=root&password= pgrga13"); Statement stm = conexao.createStatement(); ResultSet rs = stm.executeQuery("select id_user from tb_user order by id_user desc limit 1;"); while (rs.next()) { id = rs.getInt("id_user"); }

sqlSELECT = "select pin_card from tb_user where id_user = " + id + ";";

ResultSet rs2 = stm.executeQuery(sqlSELECT); while (rs2.next()) { pin_card = rs2.getString("pin_card"); }

//Autenticar senha CommandAPDU MENSAGEM_APDU = new CommandAPDU( 0x33, 0x20, 0x00, 0x00, pin_card.getBytes()

); ra = ch.transmit(MENSAGEM_APDU);

91

sqlINSERT = "UPDATE tb_user SET sw_autentica = '" + arrayToHex(ra.getBytes()) + "' WHERE id_user =" + id + ";"; stm.executeUpdate(sqlINSERT);

conexao.close(); card.disconnect(false);

} catch (Exception e) { e.printStackTrace(); } }

// Converte array de bytes em uma string hexadecimal public static String arrayToHex(byte[] data) { StringBuffer sb = new StringBuffer(); for(int i = 0; i < data.length; i++) { String bs = Integer.toHexString(data[i] & 0xFF); if(bs.length() == 1) { sb.append(0); } sb.append(bs); } return sb.toString(); }

92

Transcreve-se abaixo o cdigo da classe Java que captura o ATR do Smart Card:

import javax.smartcardio.*;

import java.sql.*; import java.util.List; import java.util.ListIterator;

import com.sinergbrasil.jc.*;

//Classe reponsavel por capturar o ATR do Smart Card public class ClasseATR extends java.lang.Object {

private static String nroATR; private static String sqlINSERT; private static String ultimo_registro;

public ClasseATR() { }

public static void main(java.lang.String[] argv) {

93

try { // Leitores de Smart Card TerminalFactory factory = TerminalFactory.getDefault(); List terminalList = factory.terminals().list();

// Seleciona leitor de Smart Card CardTerminal terminal = (CardTerminal) terminalList.get(0);

// Aguarda o cartao ser inserido System.out.println("Por favor, insira o Smart Card na leitora..."); terminal.waitForCardPresent(10000);

// Faz a conexao com o cartao. "*" para automatico Card card = terminal.connect("*");

// Abertura do canal de comunicaco CardChannel ch = card.getBasicChannel();

// Captura o ATR do cartao ATR atr = card.getATR(); nroATR = arrayToHex(atr.getBytes());

// Conexao com o Banco de Dados Class.forName("com.mysql.jdbc.Driver").newInstance();

94

Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/db_projetofinal?user=root&password= pgrga13"); Statement stm = conexao.createStatement();

ResultSet rs = stm.executeQuery("select id_user from tb_user order by id_user desc limit 1;"); while (rs.next()) { ultimo_registro = rs.getString("id_user"); }

sqlINSERT = "UPDATE tb_user SET atr_card = '" + nroATR + "' WHERE id_user =" + ultimo_registro + ";"; stm.executeUpdate(sqlINSERT);

System.out.println("ATR Capturado!");

conexao.close(); card.disconnect(false);

} catch (Exception e) { e.printStackTrace(); } }

// Converte array de bytes em uma string hexadecimal public static String arrayToHex(byte[] data) {

95

StringBuffer sb = new StringBuffer(); for(int i = 0; i < data.length; i++) { String bs = Integer.toHexString(data[i] & 0xFF); if(bs.length() == 1) { sb.append(0); } sb.append(bs); } return sb.toString(); }

Transcreve-se abaixo o cdigo da classe Java que envia a mensagem APDU para gravar o PIN no Smart Card:

import javax.smartcardio.*;

import java.sql.*; import java.util.List; import java.util.ListIterator;

import com.sinergbrasil.jc.*;

96

//Classe responsavel por gravar o PIN do usuario no Smart Card public class GravarSenha extends java.lang.Object {

// APDU de Select private static CommandAPDU SELECT_APDU = new CommandAPDU( 0x00, 0xa4, 0x04, 0x00, new byte[] {(byte)0xa0,(byte)0x00,(byte)0x00,(byte)0x00,(byte)0x62,(byte)0x03,(byte)0x01,(byte)0x0d,( byte)0x01,(byte)0x02} );

private static int id; private static String sqlSELECT; private static String pin_card; private static String sqlINSERT;

public GravarSenha() { }

public static void main(java.lang.String[] argv) {

try { // Leitores de Smart Card TerminalFactory factory = TerminalFactory.getDefault(); List terminalList = factory.terminals().list();

// Seleciona leitor de Smart Card

97

CardTerminal terminal = (CardTerminal) terminalList.get(0);

// Faz a conexao com o cartao. "*" para automatico Card card = terminal.connect("*");

// Abertura do canal de comunicaco CardChannel ch = card.getBasicChannel();

// Envia o APDU de SELECT ResponseAPDU ra = ch.transmit(SELECT_APDU);

// Conexao com o Banco de Dados Class.forName("com.mysql.jdbc.Driver").newInstance();

Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost/db_projetofinal?user=root&password= pgrga13"); Statement stm = conexao.createStatement(); ResultSet rs = stm.executeQuery("select id_user from tb_user order by id_user desc limit 1;"); while (rs.next()) { id = rs.getInt("id_user"); }

sqlSELECT = "select pin_card from tb_user where id_user = " + id + ";";

ResultSet rs2 = stm.executeQuery(sqlSELECT);

98

while (rs2.next()) { pin_card = rs2.getString("pin_card"); }

//Gravar Senha CommandAPDU MENSAGEM_APDU = new CommandAPDU( 0x33, 0x60, 0x00, 0x00, pin_card.getBytes() );

ra = ch.transmit(MENSAGEM_APDU);

sqlINSERT = "UPDATE tb_user arrayToHex(ra.getBytes()) + "' WHERE id_user =" + id + ";"; stm.executeUpdate(sqlINSERT);

SET

sw_grava

'"

conexao.close(); card.disconnect(false);

} catch (Exception e) { e.printStackTrace(); } }

// Converte array de bytes em uma string hexadecimal

99

public static String arrayToHex(byte[] data) { StringBuffer sb = new StringBuffer(); for(int i = 0; i < data.length; i++) { String bs = Integer.toHexString(data[i] & 0xFF); if(bs.length() == 1) { sb.append(0); } sb.append(bs); } return sb.toString(); }

Transcreve-se abaixo o cdigo da Applet Java inserida no Smart Card:

package cartao;

import javacard.framework.APDU; import javacard.framework.Applet; import javacard.framework.ISO7816; import javacard.framework.ISOException; import javacard.framework.JCSystem; import javacard.framework.OwnerPIN; import javacard.framework.Util;

100

public class GravaValidaSenha extends Applet {

// Constantes APDU private final static byte CLA = (byte)0x33; private final static byte AUTENTICAR_PIN = (byte)0x20; private final static byte ALTERAR_PIN = (byte) 0x60; private final static byte TENTATIVAS_PIN = (byte) 0x03; private final static byte TAMANHO_MAX_PIN = (byte) 99; private final static byte TAMANHO_MIN_PIN = (byte) 1; private final static short SW_PIN_INCORRETO = (short) 0x6300; private final static short SW_PIN_NECESSARIO = (short) 0x6301; private final static short SW_PIN_MUITO_GRANDE = (short) 0x6E86; private final static short SW_PIN_MUITO_PEQUENO = (short) 0x6E87; private final static short SW_PIN_BLOQUEADO = (short) 0x6E89; private final static short SW_PIN_EM_BRANCO = (short) 0x6E88;

// Variaveis de escopo private byte[] dados = null; private OwnerPIN ownerPin; private boolean iniciouPIN = false;

// Metodo construtor da Classe public GravaValidaSenha() {

101

ownerPin TAMANHO_MAX_PIN);

new

OwnerPIN(TENTATIVAS_PIN,

register(); // Registra a instancia da applet }

// Metodo que instala a Applet no Smart Card public static void install(byte[] bArray, short bOffset, byte bLength) { new GravaValidaSenha(); }

// Metodo Autenticar PIN private void autenticarPin(APDU apdu) { if(!iniciouPIN) { ISOException.throwIt(SW_PIN_EM_BRANCO); return; } if(ownerPin.getTriesRemaining()==0){ ISOException.throwIt(SW_PIN_BLOQUEADO); return; } byte[] buffer = apdu.getBuffer(); //valor do PIN byte byteRead = (byte)(apdu.setIncomingAndReceive()); //tamanho do PIN

102

if (ownerPin.check(buffer, ISO7816.OFFSET_CDATA,byteRead) == false){ ISOException.throwIt(SW_PIN_INCORRETO); } }

// Metodo Alterar PIN private void alterarPin(APDU apdu) { if (iniciouPIN && !ownerPin.isValidated()){ ISOException.throwIt(SW_PIN_NECESSARIO); } byte[] buffer = apdu.getBuffer(); //valor do PIN byte numBytes = buffer[ISO7816.OFFSET_LC]; //tamanho do PIN

if ( numBytes > TAMANHO_MAX_PIN ){ ISOException.throwIt(SW_PIN_MUITO_GRANDE); } if ( numBytes < TAMANHO_MIN_PIN ){ ISOException.throwIt(SW_PIN_MUITO_PEQUENO); } short offset_cdata = 05; ownerPin.update(buffer, offset_cdata, numBytes); ownerPin.resetAndUnblock(); iniciouPIN = true; }

103

// Processa a mensagem APDU public void process(APDU apdu) throws ISOException { // Captura o conteudo da mensagem APDU byte[] buffer = apdu.getBuffer();

// Processa a mensagem APDU de acordo com o INS switch (buffer[ISO7816.OFFSET_INS]) { case AUTENTICAR_PIN: autenticarPin(apdu);break; case ALTERAR_PIN: alterarPin(apdu); break; } } }

Transcreve-se abaixo o script do banco de dados:

SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0; SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0; SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';

CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ; CREATE SCHEMA IF NOT EXISTS `db_projetofinal` DEFAULT CHARACTER SET latin1 ; USE `mydb` ;

104

USE `db_projetofinal` ;

-- ------------------------------------------------------ Table `db_projetofinal`.`tb_user` -- ----------------------------------------------------CREATE TABLE IF NOT EXISTS `db_projetofinal`.`tb_user` ( `id_user` INT(4) UNSIGNED NOT NULL AUTO_INCREMENT , `atr_card` VARCHAR(50) NULL DEFAULT NULL , `name_user` VARCHAR(20) NULL DEFAULT NULL , `company_user` VARCHAR(20) NULL DEFAULT NULL , `email_user` VARCHAR(25) NULL DEFAULT NULL , `digital` LONGTEXT NULL DEFAULT NULL , `pin_card` VARCHAR(100) NULL DEFAULT NULL , `sw_grava` VARCHAR(4) NULL DEFAULT NULL , `sw_autentica` VARCHAR(4) NULL DEFAULT '0000' , `event_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP , PRIMARY KEY (`id_user`) ) ENGINE = InnoDB AUTO_INCREMENT = 510 DEFAULT CHARACTER SET = latin1 COMMENT = 'Tabela de usuarios cadastrados';

SET SQL_MODE=@OLD_SQL_MODE; SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS; SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

105

ANEXOS

Transcreve-se abaixo o cdigo de apoio para gerao do arquivo CAP: -out EXP JCA CAP -verbose -exportpath . -applet 0xa0:0x00:0x00:0x00:0x62:0x03:0x01:0x0d:0x01:0x02 cartao.GravaValidaSenha cartao 0xa0:0x00:0x00:0x00:0x62:0x03:0x01:0x0d:0x01 1.0

Transcreve-se abaixo o cdigo para instalao da Applet no smart card: mode_211 enable_trace establish_context card_connect select -AID a000000003000000 open_sc -security 1 -keyind 0 -keyver 0 -mac_key 404142434445464748494a4b4c4d4e4f enc_key 404142434445464748494a4b4c4d4e4f // Open secure channel delete -AID a00000006203010d01 install -file c:\javacard\projetoFinal\cartao\javacard\cartao.cap -nvDataLimit 2000 -instParam 00 -priv 2 getdata close_sc // Close secure channel # putkey // Put key // options: // // // -keyind Key index -keyver Key version -key Key value in hex

card_disconnect release_context

Você também pode gostar