You are on page 1of 87

CENTRO UNIVERSITRIO FEEVALE

ALVARO FERNANDES LORENZONI

SMART CARDS JAVA CARD

Novo Hamburgo, junho de 2006.

ALVARO FERNANDES LORENZONI

SMART CARDS JAVA CARD

Centro Universitrio Feevale Instituto de Cincias Exatas e Tecnolgicas Curso de Cincia da Computao Trabalho de Concluso de Curso

Orientador : Ms. Edvar Bergmann Araujo

Novo Hamburgo, junho de 2006.

RESUMO

Este trabalho apresenta um estudo da tecnologia dos Smart Cards, abordando caractersticas relativas sua estrutura tanto na parte de hardware quando na parte de software. Demonstra comparativos, relacionados principalmente segurana e uso dos smart card em relao as principais tecnologias de cartes em evidncia no mercado. Aborda as principais ferramentas para desenvolvimento de aplicaes baseadas na plataforma Java Card com nfase tanto no desenvolvimento das aplicaes do lado do host quanto nas aplicaes que executam nos smart cards. Sugere duas solues para um mesmo smart card sendo: a primeira soluo para armazenamento de valores no smart card (como dinheiro eletrnico) e a segunda para identificao de alunos, ambas usando autenticao segura em ambientes virtuais atravs do emprego da tecnologia Java card e das ferramentas de desenvolvimento JCOP Tools e Open Card Framework.

Palavras Chave: Smart Cards, Java Card, Open Card Framework, JCOP Tools

ABSTRACT

This work presents a study of the Smart Cards technology, approaching characteristics relative to its hardware and software structures. It demonstrates comparatives, related mainly, about the security and use of smart card to the main technologies of cards in evidence in the market. It approaches the main tools for development of applications based on the Java Card platform with emphasis in the development of applications to host side and applications that execute in smart cards. It suggests two solutions: Its suggests two solutions in same smart card: the first is destined to storage values in smart card (as electronic money) and the second for student identification, both using safe authentication system in virtual environments through Java card technology and the development tools as JCOP tools and Open Card Framework

Key words: Smart Cards, Java Card, Open Card Framework, JCOP Tools

LISTA DE ILUSTRAES

Figura 1.1 Carto com caracteres gravados em alto relevo, embossed card........................18 Figura 1.2 Dimenses e disposio das regies dos dados do carto...................................19 Figura 1.3 Carto de crdito com tarja magntica................................................................20 Figura 1.4 Composio da tarja magntica e especificaes fsicas.....................................20 Figura 1.5 Carto de crdito com tecnologia smart card......................................................22 Figura 1.6 Carto ptico com capacidade de armazenamento de 32 MB.............................23 Figura 2.1 classificao dos smart cards..............................................................................25 Figura 2.2 Diagrama de blocos bsico de um smart card somente de memria..................26 Figura 2.3 Diagrama de bloco bsico de um smart card microprocessado..........................28 Figura 2.4 Diagrama de blocos bsico smart card sem fio..................................................29 Figura 2.5 Padres ISO/IEC envolvidos na tecnologia dos smart cards..............................31 Figura 2.6 Formato definidos pela ISO 7810, utilizados por smart cards............................32 Figura 2.7 Token com interface USB....................................................................................33 Figura 2.8 Diviso da identificao atravs de mtodos biomtricos...................................34 Figura 2.9 Leitor de smart cards integrado com leitor biomtrico.......................................35 Figura 2.10 Nveis de segurana atingidos na combinao smart cards e biometria...........35 Figura 3.1 Sistemas operacionais monolticos e multicamadas............................................42 Figura 3.2 Estrutura e fluxo do processamento em um smart card operate system.............45 Figura 3.3 Estrutura bsica da plataforma Java Card...........................................................48 Figura 3.4 Estrutura bsica plataforma Multos.....................................................................49 Figura 3.5 Estrutura bsica da plataforma Windows para smart cards.................................51 Figura 4.1 Componentes de um dispositivo Java Card........................................................61 Figura 4.2 Estrutura de aplicao Java Card........................................................................62 Figura 4.3 Elementos envolvidos em uma aplicao Java Card..........................................63 Figura 4.4 Comunicao entre aplicao host e applets no carto.......................................64

Figura 4.5 Execuo e comunicao dos applets contidos no smart card............................65 Figura 4.6 Componentes da plataforma Java Card..............................................................67 Figura 4.7 IDE Eclipse utilizando plugin JCOP Tools.........................................................72 Figura 4.8 Estrutura dos cartes Cyberflex suportados pelo Cyberflex Access SDK..........73 Figura 4.9 Escopo das ferramentas de desenvolvimento de aplicaes no host...................75 Figura 4.10 Estrutura bsica do Open Card Framework e suas ligaes.............................76 Figura 4.11 Estrutura bsica do padro PC/SC.....................................................................77 Figura 5.1 Aplicao matrcula on-line e dinheiro eletrnico usando smart cards..............81

LISTA DE TABELAS

Tabela 1.1 especificaes das faixas de uma tarja magntica................................................21 Tabela 2.1 comparativo entre tecnologias de cartes............................................................40 Tabela 3.1 alguns fabricantes e sistemas operacionais para smart cards..............................43 Tabela 3.2 sistemas de compra mais comuns que utilizam smart cards................................54

LISTA DE ABREVIATURAS E SIGLAS

AAM AID APDU API CAD CEPS CNPJ COS CPF CPU DES DPA EDI EEPROM EMV EPROM GSM I/O IC ID IDE IEC ISO JCAPI JCDK

Application Abstract Machine Application ID Application protocol data unit Application Programming Interface card acceptance device Color Electronic Prepress System Cadastro Nacional da Pessoa Jurdica Card operate system Cadastro de Pessoas Fsicas Unidade Central de Processamento Data Encryption Standard Diferrential power analysis Electronic Data Interchange Electrically-Erasable Programmable Read-Only Memory Europay, MasterCard and Visa Erasable programmable read-only memory Global System for Mobile Input / output Circuito Integrado Identificao Ambiente integrado de desenvolvimento International Electronics Commission International Organization for Standardization Java Card API Java Card Development Kit

JCF JCRE JCVM NPU OCF PC RAM RF RG ROM RSA SDK SIM SPA ULA URL USB WSC

Java Card Forum Java Card Runtime Environment Java Card Virtual Machine Numeric Processing Unit Open Card Framework Computador Pessoal Random Acces Memory Rdio Freqncia Registro Geral Read Only Memory Algoritmo de Criptografia Software Development Kit Subscriber Identity Module Simple power analysis Unidade lgica aritmtica Universal Resource Locator Universal Serial Bus Windows Smart Card

SUMRIO

INTRODUO.......................................................................................................................12 1 CARTES.............................................................................................................................14 1.1 Evoluo dos Cartes......................................................................................................14 1.2 Tipos de cartes..............................................................................................................18 1.3 Cartes gravados em alto relevo (embossed cards)........................................................18 1.3.1 Cartes com tarja magntica (magnetic-stripe cards)..............................................19 1.3.2 Smart cards ..............................................................................................................21 1.3.3 Cartes pticos de memria (optical memory cards)...............................................22 2 SMART CARDS - HARDWARE.........................................................................................24 2.1 Tipos de smart cards.......................................................................................................25 2.1.1 Smart cards de memria (memory cards)................................................................25 2.1.2 Smart cards microprocessados (microprocessor cards)...........................................27 2.1.3 Smart cards sem fio (Contactless smart cards)........................................................29 2.2 Padres ISO/IEC.............................................................................................................31 2.3 Caractersticas fsicas......................................................................................................32 2.3.1 Formato do smart card.............................................................................................32 2.4 Segurana .......................................................................................................................33 2.4.1 Biometria..................................................................................................................34 2.4.2 Criptografia..............................................................................................................36 2.5 Explorao de vulnerabilidades......................................................................................37 2.6 Comparativo entre cartes com tarja magntica e smart cards......................................39 3 SMART CARDS - SOFTWARE...........................................................................................41 3.1 Sistema operacional smart cards (card operating system).............................................41 3.1.1 Evoluo dos sistemas operacionais para smart cards.............................................42 3.1.2 Fundamentos ...........................................................................................................44

3.1.3 APIs do sistema operacional....................................................................................45 3.2 Plataformas......................................................................................................................46 3.2.1 Java Card..................................................................................................................47 3.2.2 Multos......................................................................................................................48 3.2.3 Basic Card................................................................................................................50 3.2.4 Windows Smart Cards.............................................................................................51 3.2.5 Linux........................................................................................................................52 3.3 Aplicaes.......................................................................................................................52 3.3.1 Compras eletrnicas.................................................................................................53 3.3.2 Controle de acesso...................................................................................................55 3.3.3 Assinatura digital.....................................................................................................56 3.3.4 Telecomunicaes....................................................................................................57 3.3.5 Outras e futuras utilizaes .....................................................................................58 4 TECNOLOGIA JAVA CARD..............................................................................................60 4.1 Elementos envolvidos em uma soluo Java card..........................................................61 4.1.1 Aplicao host..........................................................................................................63 4.1.2 Comunicao host smart card...............................................................................64 4.1.3 Aplicao no carto (applets)..................................................................................65 4.2 Plataforma Java Card......................................................................................................66 4.2.1 Ambiente de execuo Java Card (Java Card Runtime Environment)....................67 4.2.2 Mquina virtual Java Card (Java Card Virtual Machine)........................................68 4.2.3 Java Card API e Framework....................................................................................69 4.3 Ferramentas de desenvolvimento Smart Card Applets................................................69 4.3.1 JCOP Tools..............................................................................................................70 4.3.2 Cyberflex Access SDK............................................................................................72 4.4 Ferramentas de desenvolvimento aplicao host.........................................................74 4.4.1 Open Card Framework.............................................................................................75 4.4.2 PC / SC (Personal computer Smart Cards)...........................................................76 5 APLICAO PROPOSTA...................................................................................................78 5.1 Problemtica Identificada ..............................................................................................78 5.2 Soluo proposta.............................................................................................................79 5.3 Definio das ferramentas utilizadas..............................................................................82 CONCLUSO.........................................................................................................................83 REFERNCIAS BIBLIOGRFICAS.....................................................................................84

INTRODUO

Um smart card um carto com o mesmo tamanho de um carto de crdito tradicional. Ele tem embutido um ou mais circuitos integrados (ICs), sendo seu interfaceamento com as leitoras atravs de contato ou sem fio. Esse chip embutido funciona basicamente como um computador (possui processador, memria e ULA). Dados so armazenados e podem ser acessados e processados atravs das mais variadas aplicaes, podendo alcanar nveis de segurana elevados devido aos sistemas nativos de criptografia do carto.

Nota-se, desde sua inveno em 1974, uma grande evoluo na rea dos cartes inteligentes, tanto da parte fsica e suas funcionalidades quanto dos ambientes de desenvolvimento e tecnologias usadas para sua programao. Devido as suas caractersticas, muitas aplicaes utilizam e utilizaro essa tecnologia, tais como: sistemas de identificao, sistemas de transaes bancrias, certificao digital entre outros tantas. A tendncia mundial para os prximos anos, o crescimento das mais variadas aplicaes com o uso dos smart cards.

A grande variedade de Smart Cards, tecnologias de programao, ambientes de desenvolvimento, entre outros aspectos, criam problemtica de qual soluo adotar. O presente trabalho tem como escopo principal o estudo dos smart cards com tecnologia Java Card com foco no desenvolvimento de aplicaes. Sero demonstradas algumas solues do uso dos smart cards bem como a proposta de desenvolvimento de uma aplicao utilizando essas tecnologias.

13 O captulo 1 aborda um breve histrico do emprego de cartes para mais variadas aplicaes, bem como os tipos mais comuns de cartes existentes e suas tecnologias. O captulo 2 apresenta a tecnologia dos smart cards com foco no hardware envolvendo diversas caractersticas como: tipos de smart cards, padres ISO/IEC, segurana, vulnerabilidades e comparativo com outra tecnologia.

O captulo 3 trata da estrutura de software envolvida na tecnologia dos smart cards, dando nfase ao sistema operacional, plataformas de software e aplicaes. O captulo 4 explora a tecnologia Java card com escopo nos elementos envolvidos em uma soluo Java Card, abordando as principais ferramentas de desenvolvimento tanto para aplicaes host quanto para aplicaes para os smart cards. Por fim o captulo 5 sugere uma a implementao de uma aplicao utilizando a tecnologia dos smart cards juntamente com a tecnologia Java Card e Open Card Framework.

CARTES

A proliferao dos cartes plsticos comeou nos Estados Unidos por volta de 1950. O baixo preo do material sinttico de PVC possibilitou produzir cartes plsticos robustos e durveis, muito mais funcionais para realizar transaes comercias do que a utilizao de papel, como cheques, dinheiro, etc. Ao longo dos anos, com a necessidade de novos mecanismos de segurana, os cartes evoluram tecnologicamente chegando ao estgio atual onde podem possuir at um chip contendo um microprocessador e memria. (RANKL E EFFING, 2003).

Este captulo apresenta a evoluo dos cartes, desde sua origem at os dias atuais. Alm disto, aborda os principais tipos de cartes existentes.

1.1

Evoluo dos Cartes

O primeiro carto de uso gera totalmente plstico para pagamento foi lanado pelo Diners Club em 1950. Era exclusividade de certos indivduos de classes econmicas com grande poder aquisitivo. Possuir um carto era considerado um smbolo status. Inicialmente esse carto era aceito apenas nos mais requintados restaurantes e hotis, sendo conhecido como um carto de viagem e entretenimento.

A entrada da Visa e Mastercard nesse ramo levou a uma rpida proliferao do dinheiro em forma de cartes de crdito. Isto ocorreu primeiramente nos Estados Unidos,

15 depois na Europa e no resto do mundo. Hoje se consegue comprar sem dinheiro em qualquer lugar do mundo. Esses cartes basicamente contm as informaes do proprietrio como seu nome impresso e um nmero em alto relevo, tendo muitos deles um espao para a assinatura na parte traseira.

Na primeira gerao de cartes a segurana era mantida exclusivamente pelos detalhes do carto e pelo grupo diferenciado de pessoas que os possuam. Com o crescimento e proliferao, o uso desses mecanismos rudimentares no foi suficiente para prover a segurana necessria e evitar fraudes.

O aumento dos custos de manipulao, o aumento de roubos de cartes, a demora na realizao das transaes, o grande nmero de fraudes e o grande volume de cartes em circulao fizeram com que o comrcio e os bancos buscassem solues para automatizar o processo de compra e prover melhorias na segurana.

Um melhoramento nos cartes surgia. Eles passaram a ter uma tarja magntica contendo dados digitais alm das caractersticas visuais. Como agora possuam dados digitais, para identificar seus proprietrios, mquinas foram desenvolvidas para leitura dos cartes, melhorando o processo de identificao e eliminando o uso de recibos em papel para efetuar as transaes. Alm destes aspectos, as transaes passaram a ser processadas eletronicamente.

Apesar dos cartes possurem uma tarja magntica, que continha os dados de identificao e outras informaes da conta, ainda poderia ser facilmente manipulado e clonado. Alm disto, sistemas que utilizam cartes com tarjas magnticas necessitam um acesso on-line a alguma base de dados, gerando altos custos na transmisso desses dados para proporcionar transaes seguras e ntegras (RANKL E EFFING, 2003).

Novas solues eram requeridas com o intuito de minimizar os custos e manter um padro aceitvel em relao manipulao dos cartes e sua segurana. O grande avano do processamento de dados e da microeletrnica criou novas possibilidades e solues, dentre as quais destacam-se os smart cards.

16 Por volta de 1970 surgiram pesquisas em diversos pases como: Alemanha, Frana e Japo, originando os primeiros smart cards. O primeiro progresso real no desenvolvimento dos smart cards se deu na Frana, em 1974, atravs da patente registrada por Roland Moreno. Uma nova gama de cartes com capacidade de integrar o processamento lgico e o armazenamento de dados em um nico chip de silcio, medindo alguns milmetros quadrados, foi produzida.

A utilizao dos smart cards era pouco difundida devido a ser uma tecnologia nova e que estava em constante evoluo e com muitos problemas a serem resolvidos. Isto sem contar com os custos elevados e com a maior complexidade de produo em relao aos cartes convencionais (CHUCK, 2001).

Um marco que alavancou a utilizao desses cartes foi em 1984 com a adoo da tecnologia pela French PPT (agncia postal e de telecomunicao da Frana) nos seus cartes telefnicos e telefones pblicos. O sucesso dessa tecnologia e as funcionalidades que agregava despertou um grande interesse no desenvolvimento e usos da tecnologia para novas aplicaes.

Em 1986, milhes de smart cards telefnicos estavam em circulao na Frana, chegando a quase 60 milhes em 1990 e 100 milhes em todo o mundo em 1997, sendo essa tecnologia empregada para telefonia em mais de 50 pases (RANKL E EFFING, 2003).

Paralelamente ao trabalho realizado na Frana, a Alemanha contava com um projeto piloto onde empregavam diversas tecnologias baseadas em diferentes tipos de cartes dentre eles: cartes com tarjas magnticas, cartes com armazenamento ptico e smart cards. A finalidade dessa diversificao foi realizao de comparativos entre as tecnologias para ver qual das tecnologias era a melhor.

Estudos comprovaram grandes vantagens e benefcios dos smart cards em relao aos outros tipos de cartes. Dentre estas vantagens e benefcios destaca-se o alto grau de confiabilidade e segurana que a tecnologia dos smart cards proporcionava, alm da uma surpreendente flexibilidade na construo e adaptao em novas aplicaes.

17 Os primeiros smart cards eram baseados em chips de memria, geralmente utilizando tecnologia EPROM e EEPROM. Posteriormente, comearam a surgir cartes mais elaborados, com circuitos mais complexos, dispondo at mesmo de um microprocessador e mecanismos criptogrficos. Em 1988, na Alemanha, os cartes microprocessados foram empregados como soluo em sistemas de autorizao para o uso da rede de telefonia mvel analgica. A razo para introduo de tais cartes foi o aumento de fraudes nas tecnologias existentes at ento.

A aplicao dos smart cards foi significantemente demorada nos sistemas de transaes bancrias devido a maior complexidade de controles em relao ao sistema de telefonia. Com o avano da tecnologia na rea dos semicondutores e tcnicas modernas de criptografia, a sua utilizao em sistemas bancrios logo foi possvel.

Pouco a pouco ganhavam mercado no mbito comercial, em relao aos tradicionais cartes com tarjas magnticas. Em 1993 todos os bancos franceses passaram a utilizar smart cards. Na Alemanha e ustria essa marca foi atingida em 1996 com a implantao de smart cards multifuncionais com a possibilidade de um nico carto ter a capacidade de ser utilizado para vrias aplicaes distintas.

Um importante avano para o futuro dos smart cards voltados para realizao de pagamentos foi especificao de um padro denominado EMV, sendo este, o produto da juno de companhias como a Europay, Mastercard e Visa. A primeira especificao foi publicada em 1994, contendo descries detalhadas da incorporao de microprocessadores em cartes de crditos.

Em 1999, diversos paises da Europa introduziam sistemas de assinaturas digitais utilizando smart cards para armazen-las e utiliz-las de forma segura. A partir dessas e outras utilizaes se notou que os smart cards proviam um alto grau funcional de flexibilidade e segurana se empregados corretamente. Outro ponto positivo e vital para a tecnologia a sua especificao por normas ISO/IEC as quais garantem um padro aberto e interopervel. (WIKIPEDIA, 2006a).

18 1.2 Tipos de cartes

Pode-se notar com a evoluo histrica dos cartes um grande avano a partir do uso dos cartes tradicionais at os smart cards nas diversas reas onde so empregados. Basicamente pode-se dividir os cartes, em quatro grupos, sendo eles: Cartes gravados em alto relevo (embossed cards); Cartes com tarja magntica; Smart cards; Cartes pticos (hologrficos).

Dentre esses grupos existem inmeras diferenas de acordo com sua aplicabilidade e tipo de tecnologia utilizada, alm do grau de confiabilidade, flexibilidade e segurana. As prximas sees apresentam estes quatro tipos de cartes (RANKL E EFFING, 2003).

1.3

Cartes gravados em alto relevo (embossed cards)

Os cartes gravados em alto relevo (embossed cards) fazem parte da primeira gerao de cartes para uso comercial em transaes sem o envolvimento de dinheiro. Os embossed cards, figura 1.1, so cartes plsticos que contem informaes em alto relevo, como o nmero do carto, o nome do proprietrio e endereo. Essas informaes eram lidas de forma manual atravs de um simples dispositivo mecnico, sendo transferidas para um papel como um recibo.

Figura 1.1 Carto com caracteres gravados em alto relevo, embossed card
Fonte: HOLOPHILE (2006, p.20).

19

Esse processo de identificao especificado pelas normas ISO 7810 e 7811, as quais tratam da identificao dos cartes no que diz respeito especificao de gravao desses cartes, que vai desde a disposio das letras nos cartes at as regies onde estas podem ser dispostas bem como suas dimenses (figura 1.2). Apesar de serem simples j possuam uma especificao.

Figura 1.2 Dimenses e disposio das regies dos dados do carto


Fonte: RANKL E EFFING (2003, p.16)

A tecnologia apesar de parecer muito primitiva foi muito difundida pela sua simplicidade e versatilidade como cartes de crdito. No utilizava nenhuma fonte de energia eltrica ou conexo a alguma rede dados para realizao de transaes (RANKL E EFFING, 2003).

1.3.1 Cartes com tarja magntica (magnetic-stripe cards)

O aumento e o emprego das solues baseadas na tecnologia dos embossed cards geraram diversos problemas. O grande volume de recibos gerados e a fcil falsificao dos cartes foraram a explorao de novas tcnicas na tentativa de diminuir as diversas fraudes. A soluo encontrada foi codificar dados de maneira digital e grav-los em uma tarja magntica, sendo esta localizada na parte traseira do carto (figura 1.3).

20 Surgia assim uma nova gerao de cartes e uma grande evoluo em relao aos embossed cards. Com essa nova tecnologia as informaes dos cartes poderiam ser lidas e armazenadas eletronicamente. Eliminou-se a necessidade de recibos em papis, alm do aumento significativo no quesito segurana, pela dificuldade de cpia dos mesmos (HALLIDAY, 2006).

Figura 1.3 Carto de crdito com tarja magntica


Fonte: GIESECKE e DEVRIENT (2006, p.01).

Como os embossed cards, esses cartes tambm seguem um padro regido pelas normas ISO 7810, ISO 7811, ISO 7812, ISO 7813 e ISO 4909, as quais especificam as sesses que descrevem as propriedades da tarja magntica, a tcnica de codificao e localizao fsica das linhas magnticas (WIKIPEDIA, 2006-b).

As tarjas magnticas contm, em sua grande maioria, trs faixas. Sendo as faixas um e dois especficas apenas para somente leitura e a faixa trs com possibilidade de escrita e leitura, conforme figura 1.4. A capacidade total da tarja magntica fica em torno de 1000 bits, o que no muito, mas o suficiente para armazenar informaes que anteriormente eram impressas em relevo no carto.

21 Figura 1.4 Composio da tarja magntica e especificaes fsicas


Fonte: RANKL E EFFING (2003 p.17).

A tabela 1.1 demonstra a especificao da capacidade, codificao e densidade das faixas que compem a tarja magntica, especificada pela norma ISO. Tabela 1.1 Especificaes das faixas de uma tarja magntica.

Fonte: RANKL E EFFING (2003, p. 18) O grande diferencial dessa soluo tecnologia da tarja magntica onde os dados poderiam ser armazenados e lidos facilmente. Em relao tecnologia dos embossed cards os cartes com tarja magntica se destacam, devido a segurana e facilidade de manipulao. Recibos gerados a partir dos embossed cards poderiam ser facilmente copiados para uma reproduo futura, pois sua segurana era somente visual. No processo digital de armazenamento dos dados j no ocorria esse tipo de fraude, ficando limitada a sua leitura somente por equipamento com a capacidade de entender as tarjas magnticas.

Crimes relacionados cpia dos cartes diminuram, mas a adoo das tarjas no foi suficiente para barrar a ao dos criminosos que dispunham de mquinas especialmente produzidas para duplicao desses cartes. Os fabricantes desenvolveram diversas tcnicas para evitar a cpia das informaes armazenadas bem como sua duplicao. Todas essas tcnicas encareciam a soluo das tarjas magnticas. (RANKL E EFFING, 2003).

1.3.2 Smart cards

22 Os smart cards so a mais nova gerao de cartes. Contam com um circuito eletrnico (chip) embutido no carto com possibilidade de armazenamento, processamento e transmisso dos dados, atravs de contatos ou at mesmo sem fio (RANKL E EFFING, 2003).

Os smart cards oferecem inmeras vantagens em relao s tecnologias anteriores tanto na capacidade de armazenamento bem como nas possibilidades de aplicao devido a sua grande flexibilidade e segurana. A mais significativa vantagem dos smart cards em relao s outras tecnologias a capacidade de gravao e proteo das informaes contra a manipulao e acesso no autorizado. Dispem de uma infinidade de mecanismos de segurana para proteo do carto, como algoritmos de criptografia (CHUCK, 2001).

Os smart cards so regulamentados por padres bem estabelecidos atravs dos conjuntos de normas contidos basicamente na ISO 7816. Pode-se divid-los em dois grupos com diferentes funcionalidades: smart cards apenas com memria e smart cards microprocessados (WIKIPEDIA, 2006-a). Na figura 1.5 demonstrado um exemplo real de um smart card de contato, empregado em uma soluo para cartes de crdito.

Figura 1.5 Carto de crdito com tecnologia smart card


Fonte: PHILIP ANDREARE & ASSOCIATES (2006, p.01)

Essa tecnologia de cartes inteligentes (smart cards) ser abordada e detalhada no captulo 2 deste trabalho.

1.3.3 Cartes pticos de memria (optical memory cards)

Devido capacidade limitada de dados, os quais so armazenados nos cartes com tarja magntica e smart cards, a tecnologia dos cartes pticos foi desenvolvida (figura 1.5). Essa tecnologia permite uma quantidade maior de armazenamento de dados, comparada aos

23 cartes com tarja magntica e aos smart cards. Apesar de ser esse seu diferencial, uma vez gravado os dados no podem mais ser apagados.

Esses cartes tambm so especificados por normas, sendo elas ISO/IEC 11 693 e 694. Esses padres especificam sua constituio fsica, a maneira de gravao de leitura dos dados armazenados.

Geralmente essa soluo aplicada em conjunto com outras tecnologias como a dos cartes com tarja magntica e a dos smart cards. Combina-se a grande capacidade de memria ptica com a inteligncia e segurana dos smart cards.

Esse tipo de carto tem um elevado custo de produo tanto em nvel do carto quanto em nvel dos equipamentos utilizados para sua leitura e escrita. Poucas aplicaes utilizam esse tipo de tecnologia dentre elas pode-se citar: aplicaes relacionadas identificao e hospitais. Nos hospitais so geralmente utilizados para gravar dados de pacientes, como imagens de raios-X entre outras informaes. O que viabilizado por sua maior capacidade de armazenamento (RANKL E EFFING, 2003).

Figura 1.6 - Carto ptico com capacidade de armazenamento de 32 MB


Fonte: RANKL E EFFING (2003, p.25).

SMART CARDS - HARDWARE

De acordo com Wikipedia (2006-a, p.01), um smart card ou chip card definido como qualquer carto que possua circuitos integrados incorporados. Para Sun Microsystems (2006-b, p.01), um smart card um carto que tem embutido um microprocessador e um chip de memria ou apenas um chip de memria com uma lgica no programvel. Um carto inteligente (smart card) conta com diversas funcionalidades e utilizaes proporcionadas pelos circuitos eletrnicos integrados que o compe.

O smart card possui internamente diversos circuitos eletrnicos, dispostos em um chip, capazes de armazenar e processar dados de maneira segura, ou seja, as informaes armazenadas no carto so protegidas contra acessos no autorizados. Podem utilizar diversas tcnicas para proteo desses dados, como a criptografia, entre outros mecanismos que garantem a segurana sem restringir funcionalidades e flexibilidade, isso tudo gerenciado por um sistema operacional ou no

Geralmente so utilizados em aplicaes onde se necessita de segurana, mas no restrito somente a estas. Pode-se encontrar smart cards sendo utilizados como carto de crdito, dinheiro eletrnico, utilizao em solues de identificao, armazenamento de certificados digitais entre tantos outros usos, triviais ou no (RANKL E EFFING, 2003).

25 2.1 Tipos de smart cards

Os smart cards podem ser divididos em duas categorias e diferenciados de acordo com a sua constituio, sendo: smart cards equipados somente com chips de memria (memory only smart cards) e smart cards equipados com microprocessadores (microprocessed smart cards) (U.S. OFFICE GSA, 2004).

Na figura 2.1 demonstrado um esboo bsico da diviso dos tipos de smart cards existentes, no que diz respeito ao tipo de chip utilizado e as formas de transmisso dos dados entre o carto e o leitor.

Figura 2.1 Classificao dos smart cards


Fonte: RANKL E EFFING (2003, p.18).

2.1.1 Smart cards de memria (memory cards)

Basicamente, um smart card de memria um carto que possui um chip, contendo bancos de memria para armazenamento de informaes relativas s aplicaes onde empregado.

26 Os primeiros smart cards utilizados em grande escala foram para aplicaes telefnicas. Estes cartes eram pr-carregados com um valor de crditos que era armazenado eletronicamente no chip de memria, sendo descontados medida que fossem realizadas ligaes telefnicas.

A vantagem desse tipo de carto est na sua simples tecnologia e alta funcionalidade, com custo baixo. Sua desvantagem est relacionada no que diz respeito a sua re-utilizao. Os dados depois de gravados no poderiam mais ser reescritos.

Em resumo, os smart cards de memria tem suas funcionalidades limitadas. Mas sua capacidade de prover a segurana lgica das informaes suficiente para proteg-las de acessos e manipulaes no autorizadas. Geralmente so adotados em sistemas de crdito prpago e sistemas de identificao, por terem um custo baixo de fabricao. uma soluo excelente em relao segurana e baixo custo (RANKL E EFFING, 2003). O diagrama bsico de funcionamento interno de um memory card demonstrado na figura 2.2.

Figura 2.2 Diagrama de blocos bsico de um smart card somente de memria


Fonte: RANKL E EFFING (2003, p.19).

Os dados necessrios para aplicao esto armazenados na memria, geralmente uma EEPROM. O acesso memria pode ser controlado atravs de um circuito de segurana lgica e a ROM armazena a maneira como o carto deve funcionar na execuo e monitoramento de suas tarefas. A comunicao com o mundo exterior feita atravs de contatos metlicos e externos ligados as portas de entrada e sada (HANSMANN ET AL, 2002).

27 As funcionalidades desses smart cards apenas de memria so geralmente personalizadas para certas aplicaes, o que restringe a sua flexibilidade, mas reduz significativamente os custos (RANKL E EFFING, 2003).

2.1.2 Smart cards microprocessados (microprocessor cards)

De acordo com Hansmann (2002, p.17) os verdadeiros smart cards microprocessados so cartes que dispem de uma estrutura mais complexa de hardware contendo componentes como um microprocessador. J para Dreifus (1997, p.20) smart cards microprocessados, conhecidos tambm como chip cards, so os que contm um microprocessador, RAM, ROM, armazenamento em massa (geralmente uma EEPROM), hardware de entrada/sada e um sistema operacional.

Eles possuem todos os componentes bsicos de uma estrutura de um computador pessoal s que em uma escala muito pequena e com um poder de processamento menor. Sua capacidade analogamente comparada aos primeiros PC IBM vendidos em 1981. (DREIFUS, 1997).

Foram inicialmente utilizados em cartes bancrios por terem a capacidade de armazenar seguramente as informaes, atravs do uso de algoritmos criptogrficos, alm da possibilidade de uso em solues para transaes offline altamente seguras.

Desde que o microprocessador foi agregado aos cartes o mesmo tornou-se totalmente programvel, deixando suas funcionalidades restritas apenas pelo espao de armazenamento e a capacidade do processador. Os nicos limites impostos aos desenvolvedores, na implementao de sistemas utilizando smart cards, so tecnolgicos (RANKL E EFFING, 2003). Dentre as diversas caractersticas e vantagens desses cartes microprocessados, destacam-se: Maior capacidade de armazenamento em relao a cartes magnticos; Habilidade de armazenar e processar seguramente dados; Utilizao de criptografia na proteo dos dados;

28

Totalmente programvel; Possibilidade de executar diversas aplicaes no mesmo carto.

Essas e outras vantagens geraram inmeras possibilidades de aplicao para esse tipo de smart card, potencializando a tecnologia dos smart cards microprocessados e proporcionando um constante crescimento e utilizao (HANSMANN ET ALL, 2002).

Diferentemente do smart cards de memria, esse tipo de carto conta com um conjunto mais complexo de componentes como: ROM, EEPROM, RAM, CPU e NPU. A figura 2.3 apresenta a arquitetura bsica em blocos de um smart card com microprocessador.

Figura 2.3 Diagrama de bloco bsico de um smart card microprocessado


Fonte: RANKL E EFFING (2003, p.20).

O funcionamento de cada componente ser resumidamente descrito a seguir: na ROM armazenado o sistema operacional do carto, que gravado quando o chip produzido, no sendo possvel troc-lo. Como a EEPROM um chip de memria no voltil, nela so gravados dados e programas, podendo ser alterados e apagados, sendo essas operaes controladas atravs do sistema operacional. A memria RAM utilizada pelo processador para efetuar as suas tarefas, sendo essa uma memria voltil. A CPU responsvel pelo processamento dos dados podendo contar com um co-processador (NPU).

Os primeiros smart cards microprocessados tinham capacidade de executar apenas uma nica aplicao. J os smart cards mais modernos contam com um sistema operacional

29 mais evoludo permitindo mltiplas aplicaes em um nico carto. Nesse caso, a ROM contm basicamente os componentes necessrios para o funcionamento do sistema operacional, existindo a possibilidade de carregamento de diversas aplicaes em sua memria EEPROM.

Pode-se comparar a estrutura de um smart card microprocessado com a estrutura lgica de funcionamento de um computador, devido aos componentes utilizados, mas com recursos muito limitados.

2.1.3 Smart cards sem fio (Contactless smart cards)

Os contactless smart cards, possuem internamente a mesma estrutura lgica de funcionamento de um smart card microprocessado ou de um smart card de memria. Fisicamente conta com uma interface, adicional em sua estrutura fsica, encarregada de prover a comunicao atravs de rdio freqncia (RF) (figura 2.4).

Nos cartes sem fio a energia bem como os dados so transferidos sem a necessidade de qualquer contato fsico entre o carto e a leitora (RANKL E EFFING, 2003).

Figura 2.4 Diagrama de blocos bsico smart card sem fio


Fonte: RANKL E EFFING (2003, p.23).

30 Os dois tipos de smart cards (memria e microprocessados) podem utilizar essa funcionalidade, mas com algumas particularidades. Smart cards microprocessados sem fio possuem um circuito mais complexo o qual demanda mais energia para seu funcionamento, ou seja, mais irradiao do sinal necessria para seu funcionamento. J os memory only smart cards operam a uma distncia da ordem de alguns metros, devido a menor complexidade do circuito e a baixa da intensidade do sinal necessria para sua operao. Entretanto aplicaes que acessam o smart card a uma longa distncia podem causar problemas, como o acesso indevido, que devem ser previstos e prevenidos.

Smart cards sem fio so particularmente empregados para aplicaes nas quais existe a necessidade de identificao (pessoas ou objetos) de forma rpida, segura e simples. Algumas aplicaes para esses tipos de cartes: Controle de acesso; Ticket de transporte pblico; Ticket de companhias areas; Identificao de Bagagem; Estacionamento; Identificao de pessoas.

Uma vantagem significativa em relao aos cartes de contato o fato desse tipo sofrer menos degradao e falhas na comunicao ocasionada por mau contato, uso excessivo ou exposio dos contatos ao ambiente. Outra vantagem considervel o aspecto visual, o que torna a utilizao de smart cards sem fio uma soluo muito elegante, pois nenhum componente visvel no carto, como os contatos eltricos.

A complexidade desse sistema sem fio est em sua padronizao devido existncia de diferentes sistemas e padres. Isto aumenta significativamente os custos dos leitores, pois os mesmos devem ser capazes de reconhecer esses diferentes padres. Esse panorama vem mudando a cada dia e com o avano da tecnologia j se consegue obter custos da tecnologia sem fio (cartes e leitores) similares aos cartes e leitores que utilizam contatos eltricos.

31 Cartes hbridos, capazes de utilizar em sua comunicao via contatos ou a tecnologia sem fio j existem no mercado, proporcionando uma maior flexibilidade conforme a aplicao. (RANKL E EFFING, 2003).

2.2

Padres ISO/IEC

A penetrao dos smart cards no mundo e no cotidiano deve-se a um fator de grande relevncia: a criao de padres internacionais que fortaleceu o desenvolvimento da tecnologia.
Um smart card normalmente um componente de um sistema complexo. O que significa que as interfaces entre o smart card e o resto do sistema (leitores, mtodos de comunicao, entre outros), precisam ser especificadas de maneira correta para que tudo funcione perfeitamente de modo interopervel, ou seja, ter um padro fundamental. (RANKL E EFFING, 2003)

Normas ISO/IEC (figura 2.5) especificam diversas caractersticas dos smart cards, as quais vo desde a sua constituio fsica como o material utilizado para produzi-los, disposio dos componentes at o seu funcionamento em si, como caractersticas eltricas, mtodos de comunicao, especificaes de leitores e demais componentes envolvidos.

Figura 2.5 Padres ISO/IEC envolvidos na tecnologia dos smart cards


Fonte: RANKL E EFFING (2003, p.12).

32 2.3 Caractersticas fsicas

Dentre as diversas caractersticas Fsicas relacionadas ao hardware e envolvidas na composio de um smart card, sero abordadas nesse trabalho apenas caractersticas relativas ao seu formato fsico. Processos de construo dos smart cards, componentes como tipo de hardware utilizado (microprocessadores, memrias), caractersticas eltricas, padro de leitoras, entre outras caractersticas no sero abordadas nesse trabalho por no ser o foco principal do mesmo. Para Obter mais detalhes sobre estes tpicos, sugere-se consultar obras como: Smart Cards Handbook (RANKL E EFFING, 2003), normas ISO/IEC e fichas tcnicas (datasheets) fornecidas pelos fabricantes.

2.3.1 Formato do smart card

Tipicamente um smart card tem o tamanho de 85,6mm por 54 mm. Este formato designado como ID-1 (identificao) especificado pelo padro ISO 7810. Esse padro simplesmente especifica as dimenses de padres para cartes plsticos com e sem fita magntica. Alm do formato ID-1 pode-se encontrar smart cards nos formatos ID-000 e ID00, ambos especificados pelo padro ISO.

O formato id-000 o menor deles, sendo geralmente utilizado para aplicaes como telefonia mvel em telefones GSM. A figura 2.6 demonstra os trs formatos especificados pela norma ISO (RANKL E EFFING, 2003).

Figura 2.6 Formato definidos pela ISO 7810, utilizados por smart cards
Fonte: RANKL E EFFING (2003, p.31)

33 possvel encontrar circuitos baseados em smart cards em outras aplicaes muito utilizadas como identificao e chave de segurana as quais no seguem um padro em relao a formatos. Dispositivos como tokens (figura 2.7), utilizados geralmente para autenticao usam a tecnologia dos smart cards.

Figura 2.7 Token com interface USB


Fonte: RANKL E EFFING (2003, p.32).

2.4

Segurana

A habilidade de proteger de diversas maneiras todo um sistema uma das vantagens dos cartes com chip (smart cards). Por essa razo, quantidades significativas de investimentos na rea de segurana e smart cards crescem gradativamente.

Para Chuck (2001, p.47) cada sistema baseado em smart cards necessita de segurana sendo, esta um componente vital. A segurana necessria para possibilitar a integridade dos dados e evitar acessos no autorizados e indevidos. Conforme RANKL E EFFING (2003, p.526), A segurana dos smart cards depende muito de microcontroladores especiais e algoritmos inclusos nos sistemas operacionais. A segurana de aplicaes para smart cards e os princpios utilizados em seu desenvolvimento so de fundamental importncia.

Com o intuito de prover a segurana para esses sistemas baseados em smart cards, muitas tcnicas e tecnologias so utilizadas, dentre as quais a biometria e criptografia so as fortemente pesquisadas e utilizadas. Sendo a segurana o principal diferencial dos smart cards em relao s outras tecnologias. Os smart cards tem a capacidade de oferecer inmeras vantagens de maneira portvel e distribuda (GUILLOU, 2001).

34 2.4.1 Biometria

A identificao, atravs da utilizao de um cdigo, por si s no uma maneira adequada e segura de proteo. At os mais complexos e seguros sistemas de criptografia podem ser comprometidos se algum cdigo confidencial de acesso for descoberto.

O mtodo de identificao biomtrica um mtodo que consegue identificar pessoas de forma nica atravs de suas caractersticas biolgicas. A distino, utilizada nesse mtodo, pode ser feita atravs de caractersticas fisiolgicas e comportamentais. Na figura 2.8 demonstra-se a diviso bsica das caractersticas fisiolgicas e comportamentais em relao identificao biomtrica.

Figura 2.8 Diviso da identificao atravs de mtodos biomtricos


Fonte: RANKL E EFFING (2003, p.500).

Essas caractersticas testadas atravs de um mtodo fisiolgico so diretamente relacionadas ao corpo das pessoas e so totalmente independentes de padres comportamentais, sendo denominadas como caractersticas biomtricas fisiolgicas. Mtodos baseados em caractersticas comportamentais, como a voz, a forma de escrita e assinatura, tambm consideradas caractersticas particulares de uma pessoa, so denominadas caractersticas biomtricas comportamentais.

A integrao desses mtodos biomtricos juntamente com a tecnologia dos smart cards formam uma soluo extremamente segura. Existe ainda a possibilidade de ser

35 utilizados para prover acesso aos dados contidos no smart card eliminando o uso do PIN (Nmero de identificao pessoal) ou senhas.

Os smart cards podem ser utilizados como forma de armazenamento para guardar chaves criptogrficas geradas a partir de desses mtodos biomtricos. Leitores especiais combinam o uso dos smart cards e biometria (figura 2.9).

Figura 2.9 Leitor de smart cards integrado com leitor biomtrico


Fonte: TX SYSTEMS (2006, p.01)

Conforme os fatores envolvidos e combinados se conseguem nveis de segurana mais altos. A biometria fundamental para elevar esses nveis de segurana. Mas como pode-se notar (figura 2.10) somente a utilizao do smart card combinado com o PIN j caracteriza uma soluo segura. A combinao: o que voc tem (smart card), o que voc sabe (PIN) e o que voc (mtodos biomtricos), caracteriza uma soluo extremamente segura.

Figura 2.10 Nveis de segurana atingidos na combinao smart cards e biometria


Fonte: ROOS (2004, p.18)

36 Uma tima abordagem do assunto biometria para identificao pode ser encontrada no livro Biometrics Personal identification in a Network Society por Jain, Bolle e Pankanti.

2.4.2 Criptografia

Criptografia geralmente demonstra a idia de confidencialidade. A tecnologia de encriptao e decriptao essencialmente altera o padro de como as informaes so distribudas. Historicamente a criptografia teve suas razes na rea militar. Mas atualmente a difuso e utilizao dessas tcnicas se tornaram comuns em diversas reas e aplicaes principalmente na rea dos smart cards.

Basicamente existem duas tcnicas principais de criptografia: criptografia simtrica e assimtrica, sendo cada empregada em reas diferentes em relao ao smart cards. A tcnica de criptografia simtrica denominada assim, pois a mesma chave utilizada para encriptar e decriptar as informaes.

O algoritmo simtrico mais conhecido o DES (Data Encryption Standard). Ele rpido, razoavelmente seguro e simples de implementar em solues por hardware. O DES foi desenvolvido pela IBM e padronizado em 1977. Pode usar diferentes comprimentos de chaves que variam at 56 bits. Geralmente todos os smart cards usam software de encriptao DES.

A desvantagem da encriptao simtrica gira em torno do fato de que ambas as partes precisam conhecer a chave. A transferncia da chave de uma parte para a outra pode comprometer a segurana fornecida pela encriptao. (RANKL E EFFING, 2003).

Em 1976, a proposta de dividir a chave de encriptao e decriptao foi proposta por um artigo denominado New Directions in Cryptograpy por W. Diffie e M.E. Hellman. Esta proposta ficou conhecida como Criptografia Assimtrica. Ela utiliza duas chaves: uma para encriptar e o outra para desencriptar, sendo as chaves matematicamente relacionadas. Basicamente, s as mensagens encriptadas com uma chave podem desencriptar com a outra.

37 Baseado no artigo de Diffie e Hellman, um dos algoritmos de criptografia assimtrica era criado, denominado de RSA sendo seus criadores Ronald L. Rivest, Adi Shamir e Leonard M. Adleman. A criptografia assimtrica utilizada tambm nos smart cards, mas raramente com a finalidade de proteger os dados dentro do smart card. Seu uso principal no smart cards ligado a tarefas relacionadas autenticao, como a gerao de assinaturas digitais baseadas nesse padro.

Na encriptao simtrica, as chaves podem ter comprimentos diferentes, geralmente utilizados comprimentos como 512, 768, 1024 bits. A desvantagem dos algoritmos RSA a velocidade, ou seja, o algoritmo lento se comparado com o DES, porm mais seguro. Devido velocidade limitada do processador dos smart cards, no muito comum executar operaes gerao de chaves nos mesmos. Existem smart cards especiais que possuem processadores especficos para executar esses algoritmos no prprio carto. (RANKL E EFFING, 2003).

Atravs das caractersticas e funcionalidades que os smart cards proporcionam podese verificar que juntamente com a criptografia apresentam timas solues para autenticao e armazenamento seguro. Devido ao foco do trabalho no estar voltado para o estudo da criptografia, um melhor entendimento desse campo de pesquisa pode ser encontrado em excelentes livros como Applied Cryptography por Bruce Schneier.

2.5

Explorao de vulnerabilidades

Sendo a segurana o elemento principal de um smart card, cria-se o incentivo na explorao de vulnerabilidades em relao a esta tecnologia. Esses estudos e pesquisas so bases para teses, artigos e at mesmo teses de doutorado.

Em 1996, Ross Anderson e Markus Kuhn mostraram que apenas com uma lmina afiada e com a vaporizao de acido ntrico e acetona era possvel expor a superfcie dos circuitos eletrnicos contidos em um smart card. Com isso seria possvel acessar, com equipamento adequado, diretamente os circuitos de memria e capturar as informaes bem

38 como estudar a estrutura do smart card. O nico problema seria o custo elevado do equipamento para acesso a esses dados. (ROOS e KUHN, 1998)

Tambm em 1997, trs pesquisadores da Bellcore, publicaram um mtodo terico para quebrar os algoritmos de criptografia implementados pelo hardware dos smart cards. O trabalho consistia na exposio dos smart cards a ambientes que gerassem modificaes comportamentais, fazendo com que o hardware realizasse clculos errneos e possveis brechas de segurana para o descobrimento da chave criptogrfica do sistema de arquivos conseqentemente o fcil acesso aos dados. Este ataque ficou conhecido Bellcore. Foi inicialmente aplicado a um sistema criptogrfico assimtrico usando operaes algbricas (BONEH ET AL, 1997)

Os ltimos mtodos de ataques mais conceituados foram publicados por Paul Kocher. Ele utilizou a anlise simples de fora (SPA) para medir a variao do consumo de energia durante a execuo dos algoritmos criptogrficos pelo smart card. A partir dessa anlise foram traados grficos, atravs diversos processos de clculo, possibilitavam o acesso a informaes secretas em alguns smart cards. Esse tipo de ataque ficou conhecido como SPAproof o qual foi logo corrigido pelos fabricantes. Uma verso avanada do SPA-proof foi elaborada por Paul Kocher. Denominada de analise diferencial de fora (DPA diferrential power analysis). Conseguia com sucesso ser aplicada em muitos smart cards. Com a evoluo dos smart cards o nvel de resistncia ao DPA cresceu muito tornando o ataque impraticvel. (KOCHER ET AL, 1999).

A importncia destes trabalhos so de grande valia, no intuito de corrigir eventuais falhas e vulnerabilidades que possam a ser descobertas. Como o foco do presente trabalho no a explorao dessas vulnerabilidades, pode-se encontrar trabalhos expressivos relacionado a esse assunto como: Timing Attacks on Implementations of Diffie-Hellman, RSA, DSS, and Other Systems por Paul Kocher, Breaking Up Is Hard To Do: Modeling Security Threats for Smart Cards por Bruce Schneier e Adam Shostack e Master's Thesis Fault Attacks on Java Card. An overview of the vulnerabilities of Java Card enabled Smart Cards against fault attacks por K.O. Gadellaa.

39 2.6 Comparativo entre cartes com tarja magntica e smart cards

A tecnologia dos cartes com fita magntica umas das mais utilizadas atualmente no mundo inteiro. A grande maioria dos indivduos dispe de algum tipo de carto com tarja magntica. Geralmente so utilizados para aplicaes financeiras. J a tecnologia dos smart cards vem crescendo de maneira rpida devido as suas caractersticas nicas. Chega, muitas vezes, substituir os cartes com tarja magntica, mas mantm uma coexistncia entre elas por questes de compatibilidade.

A presente seo tem por objetivo traar um comparativo entre solues as quais utilizam a tecnologia dos smart cards e solues que utilizam a tecnologia dos cartes com tarjas magnticas. Os principais pontos abordados sero relativos a aspectos como: segurana, capacidade de armazenamento, flexibilidade das aplicaes. Segurana: os dados dos smart cards so protegidos sem a possibilidade de acesso direto, ou seja, ficam armazenados em um sistema de arquivos acessvel somente pelo sistema operacional atravs de uma estrutura complexa de hardware. Utilizam mtodos criptogrficos para proteger esses dados. J os dados armazenados em cartes com tarja magntica, ficam dispostos em uma estrutura simples (tarja magntica) sem nenhum tipo de proteo quanto ao acesso. Apesar de necessitarem de leitores especiais para acess-los, so facilmente lidos e copiados. Esse aspecto de proteo j caracteriza e muito a forte segurana que se pode encontrar na tecnologia dos smart cards. Segurana a qual dificulta a sua clonagem. Capacidade do armazenamento: notavelmente devido a caractersticas inerentes ao hardware dos smart cards os mesmos se sobrepem quanto capacidade de armazenar informaes. Como visto nesse trabalho, os smart cards possuem uma estrutura de hardware a qual permite esse grande armazenamento de informaes em relao aos cartes com tarja magntica. Essa capacidade proporciona um uso mais nobre para os smart cards bem como muitas vezes elimina a necessidade de acesso a informaes em base de dados remotas como no caso dos cartes com tarja magntica.

40

Flexibilidade: devido capacidade de um smart card processar informaes e armazenar significantemente um volume considervel de dados para a aplicao o qual destinado. Ele pode conter diversas aplicaes para diferentes usos em um nico carto. Essa caracterstica considerada um grande diferencial. Outra caracterstica que o torna flexvel a capacidade de uso em sistema com transaes offline de modo seguro, o que j no acontece com solues que utilizam cartes com tarja magntica os quais necessitam de acesso a algum sistema on-line para efetuar a execuo das operaes.

Aps o levantamento de algumas caractersticas, pode-se montar um comparativo o qual as exemplificam. Algumas delas so consideradas como parmetros bsicos e fundamentais para escolha de uma ou de outra como soluo final. Tabela 2.1 Comparativo entre tecnologias de cartes.
Capacidade de armazenamento Possibilidade atualizao sem troca do carto Suporte Mltiplas aplicaes Processamento de dados no carto Custo do leitor e conexo Custo do carto

Carto com Tarja Magntica Smart Cards Memria Smart Cards Microprocessados Cartes pticos

140 bytes 1 KB 8 KB 4.9 MB

tpica

No Tem No tem Sim No

Baixo Mdio Alto Alto

Baixa Mdia Alta Mdia

Segurana

Alto Mdio Mdio Altssimo

No No Sim No

No No Sim No

SMART CARDS - SOFTWARE

Aps o detalhamento dos tipos de cartes, suas principais caractersticas de funcionamento, arquitetura fsica e padronizao, torna-se necessrio abordar os softwares / camadas de softwares que controlam o funcionamento dos cartes e as aplicaes em execuo dos mesmos. Este captulo apresenta os principais sistemas operacionais para smart cards, aplicaes que j utilizam smart cards e a sugesto de novas aplicaes utilizando smart cards.

3.1

Sistema operacional smart cards (card operating system)

De acordo com o padro alemo DIN44300, um sistema operacional "o programa de um sistema computacional que juntamente com suas propriedades principais formam a base para os possveis modos de operao, controle e execuo de um sistema de computador".

Nem todos smart cards dispe de um sistema operacional. Os smart cards baseados somente em chips de memria, no comportam um sistema operacional devido a sua arquitetura. J a maioria dos smart cards microprocessados, dispe de um sistema operacional geralmente encarregado de prover a interface entre o hardware e o software. (RANKL E EFFING, 2003).

42

3.1.1 Evoluo dos sistemas operacionais para smart cards

A evoluo dos sistemas operacionais para smart cards passou por diversos estgios, resultando na evoluo para um sistema operacional bem estruturado, de uso geral e de fcil utilizao.

No inicio do ano de 1990 comearam a surgir os sistemas operacionais para smart cards. Devido a restries, como a limitao de hardware, os primeiros sistemas operacionais para os smart cards no passavam de uma coleo bem estruturada de rotinas gravadas na ROM, as quais eram selecionadas e utilizadas para aplicaes em especfico. Uma vez definidas, eram gravadas no carto onde executavam tarefas relativas s aplicaes s quais eram destinadas. Tratava-se de um sistema monoltico (figura 3.1), ou seja, um sistema operacional onde todas as rotinas eram interdependentes, de difcil atualizao e modificao.

No demorou muito para o surgimento da prxima gerao de sistemas operacionais. Estes utilizavam uma tecnologia mais inteligente, trabalhando em camadas (layers) (figura 3.1), onde a aplicao que rodava no carto era desvinculada do hardware. Eram Muito semelhantes aos sistemas operacionais dos dias atuais, permitindo uma maior flexibilidade e a sua aplicao em sistemas totalmente distribudos.

Figura 3.1 Sistemas operacionais monolticos e multicamadas

43
Fonte: RANKL E EFFING (2003, p.235).

Em 1991 era lanado o primeiro sistema operacional para smart cards. Denominado de STARCOS (Star Card Operating System) foi desenvolvido pela empresa Gisecke & Devrient. Este sistema operacional permitia o armazenamento de diversas aplicaes em um nico carto, ou seja, um carto multiuso o qual permitia a execuo de aplicaes de uso geral. (RANKL E EFFING, 2003).

No decorrer do tempo o termo COS (Card Operating System) comeou a se difundir no mundo todo como a designao para sistema operacional de smart cards. Muitas empresas comearam a produzir sistemas operacionais especficos e de uso geral. Na tabela 3.1 a relao de alguns fabricantes e sistemas operacionais Tabela 3.1 Alguns fabricantes e sistemas operacionais para smart cards

Fonte: RANKL E EFFING (2003, p.234). Para RANKL E EFFING (2003, p.237) em um futuro prximo, certamente a possvel evoluo ser conduzida (atravs de severas etapas) para um padro de sistemas operacionais multiuso, o que j ocorre com muitos outros sistemas operacionais.

A evoluo dos sistemas operacionais constante. Muitas empresas e fabricantes de smart cards vem se unindo na busca e estabelecimento de um padro nico de sistema operacional para os smart cards. Apesar de existirem padres ISO/IEC ainda e possvel encontrar muitas aplicaes proprietrias e especficas, o que no chega a ser uma ameaa ao estgio atual da tecnologia.

44 3.1.2 Fundamentos

Os sistemas operacionais para smart cards no incluem uma interface direta com o usurio ou possibilidade de acesso a mdias externas de memria. Eles so otimizados para prover diversas funcionalidades, sendo a segurana durante a execuo do programa e o acesso protegido aos dados contidos no carto as de maior prioridade (JONG ET AL, 2005).

Os sistemas operacionais dos smart cards trabalham com limitaes de memria, devido a pouca capacidade do carto, a qual gira em torno 3kb a 250kb entre ROM e EEPROM. Quanto maior a capacidade de memria do carto, maior a quantidade de aplicaes, desenvolvidas por terceiros, que podem ser carregadas.

Os sistemas operacionais dos smart cards no tm capacidade de processar mltiplas tarefas, ou seja, so limitados a execuo de uma nica tarefa. As tarefas bsicas de um sistema operacional para smart cards so as seguintes: Transferncia de dados do smart cards; Controle da execuo dos comandos; Gerenciamento de arquivos; Gerenciamento e execuo de algoritmos criptogrficos; Gerenciamento e execuo do cdigo das aplicaes.

Na figura 3.2 demonstrada a estrutura e o fluxo do processamento de comandos relacionados a um sistema operacional para smart cards. O nvel de abstrao do hardware aumenta de baixo para cima. Sendo o interpretador de cdigo um componente opcional.

45

Figura 3.2 Estrutura e fluxo do processamento em um smart card operate system


Fonte: RANKL E EFFING (2003, p239).

3.1.3 APIs do sistema operacional

Os sistemas operacionais no possuem interfaces de programao publicadas para serem utilizadas por terceiros para o desenvolvimento e utilizao das funes do SO. Essa restrio impedia que softwares de terceiros fossem carregados e executados no carto.

Recentes desenvolvimentos dos sistemas operacionais para smart cards, como MULTOS e sistemas operacionais que suportam Java (Java Card), passaram a permitir que terceiros carregassem seus cdigos de aplicao nos smart cards. Com isso, eliminou-se a necessidade de reprogramao das rotinas j existentes nos sistemas operacionais. Adotou-se o uso das interfaces de programao de aplicativos (APIs) para prover acesso as funes do sistema operacional.

Cada sistema operacional tem sua prpria API. Essa situao, usual do mundo dos smart cards, ocasiona a inexistncia de um padro estabelecido para APIs de sistemas operacionais para smart cards. Entretanto, dois padres de APIs livres se destacam: Java

46 Card API e Multos API. Estas APIs sero abordadas adiante neste trabalho quando estas plataformas forem descritas.

As APIs so descritas, especificadas e organizadas de maneira a prover o acesso as funes do sistema operacional em que se encontram. Pode-se citar como exemplo: funes de acesso ao gerenciador de arquivos, chamadas a funes criptogrficas, funes de transmisso e recepo de dados entre outras. (HANSMANN ET AL, 2002).

3.2

Plataformas

O termo plataforma se refere base tanto de hardware quanto de software que os smart cards podem operar. Devido ao hardware seguir padres (ISO/IEC e outros) permite uma uniformidade desses dispositivos em relao as suas caractersticas. Existem plataformas de hardware proprietrias para solues atpicas que podem at no seguir padres, mantendo-se isoladas em relao s outras solues.

A plataforma de software atribuda ao tipo de sistema operacional que executa sobre o hardware desses cartes. Em outras palavras, sobre qual arquitetura de software os smart cards operam.

Existem diversas plataformas relacionadas aos cartes, tanto proprietrias quanto livres. Quando se menciona o termo livre, no quer dizer que a plataforma tem o seu cdigo totalmente liberado. Na maioria dos sistemas operacionais o que livre e publicado maneira de como so utilizadas as APIs dessas plataformas a fim de fazer a programao dos smart cards e no plataforma propriamente dita.

Atualmente existem vrias plataformas livres para smart cards. Dentre elas as mais significativas e comercialmente utilizadas so: Java Card; Multos;

47

Basic Card; Windows Smart Cards; Linux.

Cada plataforma possui maneiras especficas de funcionamento. Mas na maioria das vezes, consrcios entre fabricantes e desenvolvedores dessas plataformas garantem uma similaridade e at mesmo uma compatibilidade no suporte para aplicaes entre essas diferentes plataformas proporcionando uma grande flexibilidade.

Analogamente pode-se tomar como exemplo de plataforma de software um programa feito para plataforma Unix executando em uma plataforma Windows atravs de um emulador. Neste caso a plataforma de hardware seria a mesma e a de software totalmente diferente, mas com possibilidade de compatibilidade, atravs de algum meio, no caso o emulador.

Outra tecnologia, muito interessante e utilizada em ambientes relacionados ao smart cards, a desenvolvida pela Sun Microsystems. Basicamente consiste em criar, para cada plataforma de software / hardware, uma mquina virtual capaz de interpretar e executar instrues geradas a partir de uma linguagem nica e especfica (Java), independentemente de hardware e software. (HANSMANN ET AL, 2002).

Neste trabalho no sero abordadas todas as plataformas de software existentes, mas sim algumas das principais e amplamente utilizadas.

3.2.1 Java Card

Em 1996 eram desenvolvidos os primeiros smart cards capazes de rodar programas independentes da plataforma atravs da utilizao da linguagem Java. A idia era agregar as funcionalidades e estrutura da plataforma Java ao smart cards (CHEN, 2000).

Surgia a a publicao e especificao do Java Card 1.0. Uma API para integrao da plataforma Java com sistemas operacionais para smart cards. Essa API voltada a sistemas operacionais que seguem o padro especificado pela ISO/IEC 7816-4.

48 Muitos fabricantes de sistemas operacionais para smart cards tinham a idia de que uma linguagem como o Java, voltada para smart cards, necessitaria mais do que 1 mb de memria em um carto para poder utiliz-lo. Entretanto, em 1997, a Sun Microsystems em uma reunio com os principais fabricantes de smart cards desenvolveu e apresentou a proposta do Java voltado para smart cards.

Esta primeira conferncia originou o Java Card Forum (JCF), uma organizao responsvel em manter e divulgar a padronizao do Java para smart cards. Tendo como tarefas: a definio do subconjunto de classes de Java para uso em smart cards, a especificao do interpretador Java Card e do ambiente de execuo (Java Card Virtual Machine e Java Card Runtime Envirorment) e a definio das APIs de uso geral (figura 3.3) e das APIs para uso especfico (como em telecomunicaes, transaes financeiras por exemplo). (HANSMANN ET AL, 2002).

Figura 3.3 Estrutura bsica da plataforma Java Card


Fonte: HANSMANN e ET AL (2002, p.32).

No captulo 4 abordada a plataforma Java Card mais detalhadamente. Sero demonstradas suas APIs, ambientes de programao e ferramentas de desenvolvimento.

3.2.2 Multos

Multos um dos sistemas operacionais multi-aplicao desenvolvido para smart cards. Ele permite a carga e atualizao de aplicaes no carto, mesmo aps o seu lanamento. Encontra-se na verso 5 e sua prpria especificao. de propriedade de um consrcio de indstrias denominado Maosco.

49 Um Multos smart card prov um sistema operacional de acordo com padres da ISO e um ambiente para criao de aplicaes customizveis. Utiliza-se uma linguagem chamada MEL (Multos Executable Language). Existe ainda a possibilidade dos desenvolvedores usar C ou Java no desenvolvimento. As aplicaes, as quais seriam convertidas para MEL atravs da utilizao de um compilador. Atualmente esto estudando e planejando suporte para Visual Basic.

A plataforma especfica um sistema operacional ligado a uma API atravs de uma mquina abstrata de aplicao (Application Abstract Machine ou simplesmente AAM), embutida no sistema operacional (figura 3.4).

Figura 3.4 Estrutura bsica plataforma Multos


Fonte: HANSMANN e ET AL (2002, p.33)

A AAM roda sobre o sistema operacional Multos, sendo independente de hardware. No momento da execuo das aplicaes a AAM interpreta o cdigo da aplicao escrito em MEL e o converte em comandos especficos do seu sistema operacional o qual se encarrega do interfaceamento com o hardware.

Multos utilizado em diversas aplicaes devido as suas caractersticas, funcionalidades e flexibilidade dentre as quais pode-se citar como exemplos: o uso de diversas tcnicas de criptografia, a utilizao de diversas aplicaes totalmente independentes entre si e em um mesmo carto sem contar nas inmeras solues oferecidas. Um sistema conhecido mundialmente que utiliza o Multos como plataforma o sistema Mondex de compra eletrnica. (HANSMANN ET AL, 2002).

50 Como o foco do presente trabalho a tecnologia Java Card, no ser abordada detalhadamente esta plataforma. Para maiores informaes consultar a homepage do consrcio Maosco, disponvel em http://www.multos.com/.

3.2.3 Basic Card

A plataforma para smart cards denominada de Basic Card, consiste em um sistema operacional com um interpretador para a linguagem de programao Basic. Produzido pela empresa alem Zeitcontrol, este sistema operacional est disponvel em vrias verses, cada uma com suas funcionalidades e em vrios tamanhos de memria. Como Java Card e o Multos, o Basic Card um sistema operacional multi-aplicao, sendo assim, permite a carga de programas desenvolvidos por terceiros para o carto.

O procedimento para gerao de programas para o sistema operacional Basic card baseado na tradicional linguagem Basic. Um compilador traduz o cdigo fonte em P-code, o qual transferido para uma regio de memria do smart card. Aps o processo de carga do programa o mesmo interpretado e executado conforme necessrio.

Suporta protocolos de comunicao tanto para smart cards com contatos quanto smart cards sem fio alm de empregar uma variedade de algoritmos criptogrficos como, por exemplo: DES, triple DES, AES, RSA 1024 bits, Curvas Elpticas 160 bits e SHA-1.

Comparado com os outros sistemas operacionais com interpretadores, o cdigo dos programas feitos para Basic Card muito compacto e sua execuo relativamente rpida. Basic Card facilmente e rapidamente interpretado, por no contar com muitos mecanismos de segurana relacionados s aplicaes.

O sistema Operacional Basic Card indicado para determinadas aplicaes que requerem o desenvolvimento rpido e fcil de programas. Ele certamente representa uma alternativa em relao aos outros sistemas operacionais para smart cards. (HANSMANN ET AL, 2002).

51

3.2.4 Windows Smart Cards

Em outubro de 1998 a empresa Microsoft anunciou a sua entrada no mercado dos smart cards com uma nova plataforma chamada Windows Smart Cards (WSC). Uma verso mais elaborada (1.1) foi lanada em Junho de 2000.

O desenvolvimento dessa plataforma teve como objetivo a ampliao dos sistemas baseados na plataforma Windows com a inteno de ser uma alternativa ao Java Card e outros sistemas para smart cards.

O WSC era a combinao de um sistema operacional tradicional baseado no padro ISO 7816-4 juntamente com uma plataforma totalmente programvel. Dispunha de um sistema de arquivos, controle de acesso, entrada e sada (I/O), servios criptogrficos, uma API e um conjunto de comandos ISO. O seu ambiente execuo opcional permitia a adio de aplicaes customizadas e desenvolvidas por terceiros.

Na figura 3.5, demonstra-se a estrutura do sistema operacional oferecido pela Microsoft bem como seus componentes adicionais, como: ambiente de execuo (runtime environment), aplicaes customizadas (custom aplications) e sistema criptogrfico (cryptography system).

Figura 3.5 Estrutura bsica da plataforma Windows para smart cards


Fonte: HANSMANN e ET AL (2002, p.34).

52 A sua programao feita atravs de um conjunto de ferramentas (toolkit) para a linguagem de programao Visual Basic. Esse toolkit fornece a possibilidade de programao atravs de comandos baseados no padro ISO, GSM (sistema para telefonia mvel) e EMV (sistema para transaes financeiras).

Sua API interna neutra de linguagem. Sendo em sua primeira verso utilizado o Visual Basic como interpretador. O suporte de C++ estava sendo planejado. A utilizao de um ambiente runtime dava flexibilidade e muitas vantagens conhecidas como as difundidas atravs das tecnologias Java Card e Multos. (HANSMANN ET AL, 2002).

3.2.5 Linux

Desde o final de 1990, os sistemas operacionais de cdigo livre vm tomando grandes pores da indstria de software. At agora o foco do Linux foi principalmente rea de computadores pessoais e servidores. Entretanto, vem ocorrendo um aumento da utilizao do linux em microcontroladores para solues embedded.

Segundo RANKL E EFFING (2003, p.324), "com o aumento do desempenho e capacidade dos smart cards, solues em Linux estaro disponveis em um futuro no muito distante". A vantagem da adoo desta tecnologia seria a quebra das barreiras no que diz respeito ao cdigo livre dos sistemas operacionais para smart cards.

Solues proprietrias deixariam de monopolizar o mercado e o alto custo de licenciamento dos sistemas operacionais para esses dispositivos deixaria de ser uma barreira para adoo definitiva dos smart cards.

3.3

Aplicaes

Originalmente as aplicaes para a tecnologia dos smart cards microprocessados foram para sistemas de identificao e setores de telecomunicaes. A sua ampla utilizao e

53 as suas caractersticas chamaram a ateno do mercado, incentivando a adoo e o desenvolvimento da tecnologia e aplicaes para os mais variados segmentos.

O crescimento do comrcio eletrnico atravs da: realizao de transaes eletrnicas, de compras e servios atravs internet e outros meios digitais. Criaram a necessidade de utilizao de mecanismos de segurana para proteo da integridade e sigilo das informaes envolvidas, tanto dos consumidores quando das empresas. Os smart cards atendem de forma adequada demanda de solues por aplicaes seguras, de baixo custo e ao mesmo tempo flexveis (CHUCK, 2001).

O objetivo desta seo demonstrar algumas aplicaes atuais que utilizam tecnologia dos smart cards nas mais variadas reas, comprovando o seu alto grau de aceitabilidade em relao segurana e outras facilidades que o mesmo disponibiliza. Seria demasiadamente exaustivo listar e explicar nesse trabalho todas as possibilidades de uso para os smart cards. Por isso sero abordadas as principais aplicaes como: Compras eletrnicas; Autenticao e acesso seguro; Assinaturas digitais; Telecomunicaes.

3.3.1 Compras eletrnicas

A maioria dos mais promissores tipos de dinheiro eletrnico e sistemas de pagamento so baseados em smart cards. Por questes de segurana, os sistemas de pagamento com carto de crdito geralmente requerem transaes on-line. Por isso, necessitam de uma conexo permanente ou estabelecer uma conexo para cada transao realizada. Isso envolve o dispndio em solues onerosas se relacionadas muitas vezes com o baixo valor da transao a ser realizada alm da pouca segurana e confiabilidade.

Para essas aplicaes de compra eletrnica o uso dos smart cards se enquadra de maneira adequada. Esses sistemas de compra, baseados em smart cards, contam com

54 segurana, confiabilidade, e solues de baixo custo. Sem contar no modo atrativo com essas solues substituem o manejo de dinheiro em espcie.

Basicamente um sistema de compra eletrnica armazena no smart card um valor equivalente uma quantia em dinheiro. Esses valores so carregados de forma segura atravs de aplicaes bancrias. Dentre essas formas pode-se citar como exemplo o uso de uma chave criptogrfica armazenada de maneira segura dentro do carto a fim de permitir somente ao banco a movimentao desses valores para o carto evitando o acesso no autorizado e suas previa manipulao.

O mesmo ocorre nos terminais onde o dinheiro eletrnico debitado, em virtude da aquisio de um bem ou servio. Esses terminais contam com um mdulo de segurana denominado (SAM security access module), o qual contm a chave de segurana utilizada para acessar o valor agregado ao smart card e debitar de maneira autentica o valor envolvido na transao.

Atualmente existem mais de 40 sistemas de compra eletrnica diferentes em uso. Alguns desses sistemas mais conhecidos so apresentados na tabela 3.2. Cada sistema desses incompatvel entre si, mas podendo ser carregados mais de um sistema em um mesmo smart card. Tabela 3.2 Sistemas de compra mais comuns que utilizam smart cards. Sistema de compra Chipknip Danmont GeldKarte Mondex Moneo Proton Quick Visa Cash Pas Holanda Dinamarca Alemanha 49 pases Frana 25 pases ustria 19 pases Empresa Responsvel Dutch banks PBS Danmont ZKA Mondex French banks Transporte pblico Prton World ustria Card Visa Cartes emitidos (milhes) 14 0,6 52 1 / 10 35 4,8 8

Fonte: HANSMANN e ET AL (2002, p.38).

55 Uma nova iniciativa para uma especificao de um sistema comum de compra eletrnica (CEPS Commom Electronic Purse Specification), trabalha na fundao de um sistema global para compatibilizao entre os sistemas de compra eletrnica.

Podem-se encontrar diversos modelos de solues envolvendo smart cards e sistemas de compra eletrnica. No sendo o objetivo principal desse trabalho a explorao destes sistemas e sim a apresentao do seu funcionamento bsico a fim de proporcionar um entendimento de como o uso dos smart cards podem viabilizar esse tipo de operao. Para maiores detalhes dessas solues e seu funcionamento podem ser encontradas em (CHUCK 2001).

3.3.2 Controle de acesso

Os smart cards proporcionam a identidade eletrnica segura e pode ser usada para o controle de acesso e outras facilidades, relacionadas identificao e segurana. Tem a capacidade de carregar certificados digitais para verificar e controlar esses acessos.

Basicamente os dados so armazenados e criptografados atravs de uma chave armazenada no smart card e acessvel atravs de um nmero denominado PIN ou identificao biomtrica. Usando uma senha segura para identificao armazenada em um smart card, possvel fornecer o acesso a diversos servios como, por exemplo: acesso a uma rede corporativa, acesso a bases de dados, acesso a servios e aplicaes entre outros. Alm de permitirem o acesso identificam usurios e definem permisses e nveis de acesso.

Diversas empresas e instituies adotam e iro adotar esses mtodos de para controle de servios para acesso e autenticao, sendo alguns deles: E-commerce; Bibliotecas e acesso a Internet; Redes Corporativas; Equipamentos Eletrnicos.

56 Muitas empresas relacionadas rea de e-commerce utilizam-no intensamente como um dispositivo seguro para identificao mtua na realizao de transaes, no s atravs da internet, mas tambm atravs de troca eletrnica de arquivos (EDI).

Bibliotecas em vrios lugares do mundo utilizam tecnologia dos smart cards para prover acesso e definies do que pode ser acessado na internet atravs de terminais pblicos. Geralmente os pais dos alunos definem os nveis de acesso, permisses e tempo que pode ser gasto na internet.

Como exemplo significativo do uso de smart cards em redes corporativas pode-se destacar o case da Agncia Nacional de Segurana dos Estados Unidos (U.S. National Security Agency - NSA). Na NSA o smart card utilizado para permitir acesso a rede de computadores, criptografar e-mails, acesso seguro em web browsers, acesso a reas restritas, entre outras aplicaes.

Em equipamentos eletrnicos como televiso por satlite, televiso por cabo muito comum encontrar um smart card para autenticar e liberar o acesso aos canais relativos ao tipo de assinatura vinculada aos usurios desse sistema. uma maneira altamente segura e integra relativa preveno de fraudes. (CHUCK, 2001).

3.3.3 Assinatura digital

Uma assinatura Digital o equivalente a uma assinatura convencional em um documento de papel. A nica diferena a necessidade de provar a autenticidade e concordncia de operaes que a utilizam em sistemas digitais. Os smart cards proporcionam esse uso a um sistema de assinatura digital garantindo segurana e confiabilidade.

Existem inmeros mtodos na utilizao de uma assinatura digital. O mais comum baseado em um par de chaves criptogrficas assimtricas. O detentor da assinatura possui uma chave privada a qual no pode ser acessada ou utilizada por outra pessoa. Publicamente conhecida a segunda chave, a qual associada chave privada, denominada de chave pblica.

57 Apenas o dono da chave privada pode us-la nos mais variados sistemas digitais. A sua autenticidade pode ser checada atravs da consulta a chave pblica correspondente.

A chave pblica distribuda em um certificado o qual contm o nome do proprietrio e uma data de expirao. A distribuio desses certificados realizada atravs de uma autoridade certificada a qual garante a validade do mesmo de modo a no permitir manipulaes, ou seja, somente um rgo certificador autorizado pode emitir e valid-los.

O smart card considerado um lugar seguro para armazenar uma chave privada devido as suas caractersticas de segurana. O sistema de arquivos onde essa chave fica armazenada totalmente criptografado e inacessvel por meios diretos. Devido a essas e outras caractersticas o uso desse tipo de assinatura cresce gradativamente tanto para uso comercial quanto para uso pessoal. (CHUCK, 2001).

No Brasil pode-se encontrar esses sistemas, de assinatura digital, tanto para utilizao de pessoas jurdicas quanto para pessoas fsicas. As principais solues oficiais e aceitas no Brasil como mtodo de assinatura digital so: o e-CPF e o e-CNPJ. Eles consistem em chaves privadas distribudas por meios de certificados, armazenados em smart cards. O uso desses certificados provem acesso a diversos servios federais, agilizando o processo de entrega de documentos entre outras aplicaes.

Os principais rgos certificadores no Brasil so: Serasa, Receita Federal, Caixa Econmica Federal, Cert Sign entre outros. Para maiores informaes sobre e-CPF e e-CNPJ consultar o site da Receita Federal (disponvel em http://www.receita.fazenda.gov.br).

3.3.4 Telecomunicaes

A primeira gerao de smart cards voltados para rea de telecomunicaes foram cartes pr-pagos os quais eram carregados com certo valor para utilizao em telefones pblicos. Posteriormente solues baseadas em smart cards comearam a serem empregadas na rea de telefonia mvel padro GSM (global system for mobile).

58 A soluo GSM consiste em um mdulo de identificao de identidade de assinantes (Subscriber Identity Module conhecido como SIM cards). Um SIM card nada mais que um smart card no formato id-000. Sua finalidade bsica, como seu prprio nome diz, identificar de diferenciar assinantes do sistema global mvel de telefonia celular. As informaes do assinante ficam armazenadas de forma segura no SIM card. (CHUCK, 2001).

Alm de identificar unicamente cada assinante os SIM cards, protegem as ligaes telefnicas atravs da criptografia e autenticao ativa, conseqentemente reduzem as fraudes. Agregam servios como compras eletrnicas seguras. Possibilitam a customizao atravs da carga de novas aplicaes para o SIM card. Segundo Chuck (2001, p.101) O SIM card est transformando os telefones mveis, ou seja, a partir de um telefone mvel se tem a convenincia de um computador.

3.3.5 Outras e futuras utilizaes

Inmeras so as utilizaes para os smart cards. Esta seo tem a finalidade de apresentar algumas aplicaes e at sugerir o emprego dos smart cards em algumas reas interessantes.

Uma sugesto de aplicao seria empregar a utilizao dos smart cards em passaportes. Para facilitar o uso seria adotada a tecnologia contactless juntamente com a biometria a fim de garantir a identidade do portador. Devido s caractersticas dos smart cards apresentadas, o emprego dessa tecnologia nessa rea preveniria fraudes e dificultaria e muito a falsificao de passaportes bem como a agilidade na checagem das informaes.

Outra aplicao como sugesto a unificao do sistema de documentao existente. Atualmente no Brasil dispomos de inmeros documentos para identificao como: carteira de habilitao de condutor, documento de identidade (conhecido como Registro Geral ou simplesmente RG), Ttulo eleitoral, Cadastro de pessoa fsica (conhecido como CPF. Este j conta com uma verso eletrnica, utilizando um certificado digital armazenado em um smart card denominada e-CPF).

59 Cada documento seria uma aplicao contida no carto, sendo selecionadas conforme sua utilizao. Alm de agilizar o processo no momento do uso, os documentos eletronicamente armazenado no smart card, garantiriam a autenticidade, a confiabilidade, a segurana e a privacidade do portador. Uma alternativa para evitar fraudes e falsificaes com um custo relativamente baixo.

Atualmente no Brasil e no mundo existem muitos problemas de vrus os quais depois de instalados, devido ingenuidade das pessoas e at mesmo furos de segurana em antivrus, ficam monitorando toda movimentao de acesso atravs de pginas de bancos. Esses vrus capturam tudo o que digitado alm de capturar imagens da tela desses sites. A utilizao de um smart card o qual conteria a senha ou chave de acesso aos servios do banco, ambas de forma criptografada, ajudaria a prevenir a captura dos dados atravs desses eventos como digitao e captura de imagens.

Informaes que antes seriam digitadas como: conta corrente, agncia, senha de operao, etc. Passam a estar armazenadas de forma segura dentro do smart card, bastando o titular do carto inserir ele em um leitor e acessar a aplicao bancria de forma segura. Isso no elimina a existncia desses programas maliciosos, mas coibi o rapto de informaes. Bancos como o Banrisul (http://www.banrisul.com.br), j esto estudando e utilizando essas tecnologias com a inteno de fornecer um ambiente seguro aos seus clientes.

Pode-se notar que possvel aplicar a tecnologia dos smart cards em diversas solues de forma confivel e segura, com ndices quase nulos de fraudes e falsificaes no que diz respeito identificao, transmisso de dados, integridade, confiabilidade.

Com a capacidade dos smart cards suportarem diversas aplicaes o mesmo se torna muito verstil, eliminando a necessidade do usurio dispor de vrios cartes uma para cada aplicao o qual deseja utilizar. claro que para essa flexibilidade ao ponto de se ter um carto nico para todas as aplicaes deve existir um padro. Muitas empresas reunidas vm lutando por essa padronizao o que o caso do Open Card Framework, do padro PS/SC e Muscle, o qual prope o interfaceamento de diversos padres de cartes, leitores e aplicaes de forma integrada e transparente (ver captulo 4).

TECNOLOGIA JAVA CARD

A tecnologia Java Card possibilita que smart cards e outros dispositivos com hardware muito limitado executem pequenas aplicaes, chamadas applets, empregando a tecnologia Java. Esta tecnologia prove aos fabricantes de smart cards uma plataforma segura e interopervel, a qual pode conter mltiplas aplicaes em um nico dispositivo. A tecnologia Java Card compatvel com a maioria dos smart cards existentes. (SUN MICROSYSTEMS, 2006-d)

Ela permite desenvolvedores construir, testar e distribuir aplicaes e servios de modo seguro e rpido. Este fator acelera o processo de desenvolvimento reduzindo custos, sem contar no aumento da produo de produtos diferenciados. Segundo Sun Microsystems (2006-d, p.01), A tecnologia Java Card possibilita uma integrao segura entre os elementos de uma soluo Java Card utilizando a linguagem Java".

Conforme diversos fornecedores e emissores de smart cards os benefcios da tecnologia Java Card so nicos, sendo alguns deles: Interopervel - applets desenvolvidos com a tecnologia Java Card iro rodar em qualquer dispositivo ou smart card que siga os padres dessa tecnologia. Independente de fornecedor e plataforma de hardware. Segura - a tecnologia Java Card conta com a segurana inerente da linguagem de programao Java que prov um ambiente de execuo seguro. Projetada atravs de um processo aberto, assegurado pela indstria como soluo capaz e segura.

61

Muli-aplicao - permite a coexistncia de mltiplas aplicaes de forma segura em um nico smart card. Dinmica - Novas aplicaes podem ser instaladas e atualizadas, de modo seguro, mesmo aps o lanamento do smart card. Evita-se a troca dos cartes a cada atualizao de software.

Compatvel - A API Java Card compatvel com padres internacionais para smart cards como ISO7816 e EMV. Sem contar na compatibilidade com padres especficos da indstria como Global Plataform e ETSI.

Durante anos a Sun Microsystems, baseada no grande potencial dos smart cards e dispositivos com recursos de hardware limitados, define um conjunto de especificaes, a partir de um subconjunto da tecnologia Java, para smart cards. Conforme a Ortiz (2003, p.01), um dispositivo que suporta estas especificaes, pode se dizer que um dispositivo Java Card. A figura 4.1 demonstra basicamente os componentes que formam o conceito de um dispositivo Java Card.

Figura 4.1 Componentes de um dispositivo Java Card


Fonte: HANSMANN e ET AL (2002, p.68).

Este captulo tem o objetivo de demonstrar a tecnologia Java Card atravs da apresentao dos elementos envolvidos em uma aplicao desde o smart card at o computador host, bem como suas ferramentas de desenvolvimento.

4.1

Elementos envolvidos em uma soluo Java card

O funcionamento do Java card um dos modelos mais complexos de programao, porque os programas se misturam com o sistema operacional do carto e pela baixa capacidade de hardware dos smart cards.

62 Uma soluo Java Card pode ser divida basicamente em duas partes, sendo: a parte relacionada ao computador host e a parte relacionada ao smart card. Existe uma grande confuso quando se fala em desenvolver aplicaes para smart cards utilizando Java Card. A maioria dos trabalhos ligados a essa rea tratam somente da aplicao no smart card (applets no smart card) (ORTIZ, 2003).

Ambas as partes utilizam diferentes ferramentas para o seu desenvolvimento com a convergncia para a integrao dessas aplicaes. A figura 4.2 demonstra a integrao da aplicao do lado do host (off-card application) e a aplicao do lado smart card (on-card application). Assim pode-se vislumbrar os elementos envolvidos, de um modo geral, de como composta basicamente uma a aplicao Java Card completa.

Figura 4.2 Estrutura de aplicao Java Card


Fonte: SELIGER e STEINMUELLER (1999, p08)

Uma aplicao Java Card completa consiste em: uma aplicao host (off-card), um dispositivo de interface (leitor smart cards) e uma aplicao no carto (applet). (ORTIZ, 2003). Para um melhor esclarecimento desses elementos que envolvem as aplicaes Java Card, fundamental detalhar: a aplicao host, a comunicao host smart card e a aplicao no smart card (figura 4.3).

63

Figura 4.3 Elementos envolvidos em uma aplicao Java Card


Fonte: ORTIZ (2003, p.20)

4.1.1 Aplicao host

A aplicao host um programa pode residir em um terminal como um PC, ou em um terminal de pagamento at mesmo em um telefone celular entre outros dispositivos. Ela a responsvel por realizar a comunicao do sistema final com o leitor onde o smart card ser inserido bem como a comunicao com os applets do carto.

Na maioria das vezes essas aplicaes hosts so fornecidas pelos fabricantes de smart cards atravs de kits de desenvolvimento contendo as APIs necessrias para os sistemas finais as acessarem. Como a aplicao host trata de toda comunicao do leitor at o smart card, ela permite uma abstrao ao desenvolvedor o qual no precisa se preocupar de como ser realizada estas tarefas. (ORTIZ, 2003).

Esses kits de desenvolvimentos geralmente so pagos. Entretanto, iniciativas e consrcios entre grandes fabricantes de software e hardware para smart cards vem surgindo com o intuito de fornecer gratuitamente formas para acesso s aplicaes contidas nos smart cards. Um exemplo significativo o Open Card Framework. O OCF possibilita, atravs de um conjuntos de APIs baseadas em Java, a comunicao da aplicao final com o Java Card. (HANSMANN e ET AL, 2002) Outros frameworks so o MUSCLE para ambientes Unix e o PC/SC para ambientes Windows

64 4.1.2 Comunicao host smart card

O leitor tambm conhecido como (CAD - card acceptance device) a interface entre a aplicao e o Java Card, podendo ser ligado em um computador atravs de uma porta serial ou usb bem como estar presente em um terminal de pagamento. necessria para a operao do smart card. Alm de servir de comunicao entre o smart card e aplicao host o CAD tambm prove a alimentao eltrica

A comunicao entre o a aplicao host e o smart card se d atravs de comandos e um protocolo de comunicao denominado de APDU (Application Protocol Data Unit). Basicamente a aplicao host negocia a comunicao com os applets contidos no carto, atravs de um CAD. Aps a comunicao estabelecida o CAD providencia a troca dos comandos APDU entre aplicao host e smart card. Sendo que para cada comando APDU executado uma resposta dada com o status da execuo do comando (figura 4.4) (ORTIZ, 2003).

Figura 4.4 Comunicao entre aplicao host e applets no carto


Fonte: ORTIZ (2003, p.06)

65 4.1.3 Aplicao no carto (applets)

A aplicao que reside dentro do carto denominada de applet tambm conhecida como cardlet (applet para smart cards). Um smart card que obedece a padres estabelecidos pela plataforma Java Card tem a capacidade de suportar multi-aplicaes, ou seja, capaz de ter mais de um applet.

Os applets so executados atravs de um ambiente execuo denominado Java Card Runtime Environment (JCRE). O JCRE consiste em: uma mquina virtual (Java Card Virtual Machine), um Java Card Framework, APIs e um sistema operacional padro ISO (figura 4.5). Estes applets Java Card so ativados no momento da insero do carto no dispositivo CAD, permanecendo nesse estado at a o carto ser retirado do mesmo.

Com o smart card inserido no CAD e alimentado eletricamente, cada applet fica esperando a sua seleo atravs da aplicao host. Quando o sistema back-end atravs da aplicao host deseja utilizar um desses applets ela manda comandos APDU (figura 4.5) contendo um identificador de seleo do applet bem como as operaes que deseja que o applet execute conforme seus mtodos. (ORTIZ, 2003).

Figura 4.5 Execuo e comunicao dos applets contidos no smart card


Fonte: ORTIZ (2003, p.04)

66 4.2 Plataforma Java Card

A plataforma Java Card a nica e interopervel camada situada em um sistema operacional. O sucesso das implementaes Java Card tem colocado a plataforma como a mais utilizada por diversos sistemas operacionais no mundo. Ela prov um ambiente atualizvel, extensvel o qual suporta mltiplas aplicaes (CHEN, 2000).

Esta plataforma possibilita aos desenvolvedores escrever aplicaes para smart card em uma linguagem de alto nvel do que a utilizada para programao de microcontroladores. Qualquer smart card que tenha um interpretador de bytecodes Java pode executar programas feitos com a linguagem Java. A aplicao precisa ser escrita uma nica vez, e rodar em diversos dispositivos os seguem as especificaes Java Card. (ORTIZ, 2003).

Segundo a Sun Microsystems (2006-d, p.01), milhes de smart cards adotam a plataforma Java Card. Tornando-a a plataforma mais amplamente utilizada para smart card multi-aplicao do mercado.

A Sun Microsystems publica a especificao da plataforma Java Card e o Kit de desenvolvimento Java Card (JCDK). Atualmente a especificao da plataforma Java Card encontra-se na verso 2.2.2 e aborda trs componentes da mesma, sendo eles (figura 4.6): especificao da mquina virtual Java Card (Java Card Virtual Machine), especificao do ambiente de execuo Java Card (Java Card Runtime Environment) e API para plataforma Java Card (API for the Java Card Platform) (SUN MICROSYSTEMS, 2006-e).

67

Figura 4.6 Componentes da plataforma Java Card


Fonte: ORTIZ (2003, p.05)

4.2.1 Ambiente de execuo Java Card (Java Card Runtime Environment)

O JCRE executado atravs de uma interface, independente da plataforma, que o liga a um sistema operacional padro. O JCRE consiste em uma mquina virtual Java Card (JCVM), uma API Java Card e extenses especficas. Ele tem a funo de definir o ciclo de vida de um applet na Java card VM. Desde como os applets so selecionados, como so feitas as transaes alm da persistncia e compartilhamento de objetos. (SUN MICROSYSTEMS, 2006-a)

Quando a fonte de energia alimenta o smart card a JCVM ativada. Ela inicializa o JCRE o qual por sua vez cria todos os objetos de seu framework, controlando o ciclo de vida

68 dos applets. Nesse momento todas as interaes com o carto so feitas pelos applets contidos no smart card. Quando a fonte de energia removida, qualquer dado contido na RAM perdido, os estados dos objetos que so armazenados na memria no voltil so retidos. Quando a alimentao restabelecida a JCVM volta a ficar ativa novamente restaurando os esses estados anteriormente armazenados.

Cada applet no smart card identificado unicamente, atravs de um ID da aplicao (Application ID ou AID) e controlado pelo JCRE. Eles devem estender a classe base abstrata Applet. Essa classe por sua vez define os mtodos utilizados pela JCRE. (ORTIZ, 2003)

4.2.2 Mquina virtual Java Card (Java Card Virtual Machine)

A especificao da Mquina Virtual (JCVM) define um subconjunto da linguagem de programao Java e uma mquina virtual Java compatvel com smart cards. Alm disto, inclui uma representao binria dos dados e formatos de arquivos e um conjunto de instrues para JCVM.

A mquina virtual para plataforma Java Card estruturada em duas partes. Uma parte externa ao carto e outra no smart card. A JCVM do smart card responsvel por interpretar bytecodes, gerenciar classes e objetos. J a parte externa consiste em uma ferramenta de desenvolvimento, tipicamente referenciada como Java Card Converter Tool (ORTIZ, 2003)

A ferramenta, Java Card Converter Tool, responsvel pela carga, verificao e preparao das classes Java, contidas em um applet, as quais sero executadas posteriormente no smart card. A sada dessa ferramenta de converso um applet convertido para execuo no smart card conhecido como (CAP - converted applet). O CAP contm as classes carregveis e executveis na forma de uma representao binria. O conversor verifica as classes conforme a especificao Java Card. (CHEN, 2000)

Como a JCVM suporta apenas um conjunto restrito de instrues da linguagem de programao Java, mesmo assim preserva muitas familiaridades como: objetos, pacotes, criao de objetos dinmicas, mtodos virtuais, interfaces e excees. A especificao da

69 JCVM no d suporte a diversos elementos da linguagem devido s restries de hardware (ORTIZ, 2003), como: Caractersticas da linguagem: Carga dinmica de classes, gerenciamento de segurana (java.lang.SecurityManager), threads, Clonagem de objetos e certos aspectos ao controle de acesso a pacotes no so suportados Palavras: native, synchronized, transient, volatile strictfp no so suportados Tipos: no existe suporte para char, double, float, long. Arrays multidimensionais tambm no so suportados. O suporte a int opcional. Classes e interfaces: As classes bsicas da API Java e interfaces (java.io, java.lang, java.util) no so suportadas exceto para poucos mtodos de Object e Throwable. Excees: Algumas subclasses como Error e Exception so omitidas devido ao seu encapsulamento no aparecendo na plataforma Java Card.

4.2.3 Java Card API e Framework

A Java Card API (JCAPI) muito diferente do que a Java API padro. Quase nenhuma classe dos padres Java so suportadas, incluindo o wrapper para o suporte a tipos primitivos como a classe string (SUN MICROSYSTEMS, 2006-c).

A JCAPI composta de um pacote bsico (java card.framework) e trs pacotes estendidos (java cardx.framework, java-cardx.crypto e java-cardx.crypto.enc). applet Java Card. (ORTIZ, 2003). O pacote bsico java card.framework define todas classes essenciais necessrias para a criao de um

4.3

Ferramentas de desenvolvimento Smart Card Applets

As aplicaes (applets) contidas nos cartes so desenvolvidas a partir de ferramentas especficas para essa finalidade. Geralmente cada fabricante disponibiliza uma IDE para a criao, manuteno e testes de tarefas relacionadas a seus smart cards. Atualmente no

70 mercado, existem vrias ferramentas para trabalhar com Java card como, por exemplo: Aspects Java Card IDE, Java Card Development Kit. Sendo as mais utilizadas e significativas: JCOP tools, Cyberflex Access SDK,

4.3.1 JCOP Tools

uma ferramenta desenvolvida pela IBM, a qual trabalha junto ao IDE Eclipse atravs de um plugin. JCOP o sistema operacional dos smart cards da IBM (fabricados pela Philips). JCOP segue os padres da especificao Java Card 2.1.1 (IBM, 2003).

JCOP composto por um conjunto de ferramentas totalmente integradas para gerenciamento, desenvolvimento, teste e distribuio de aplicaes, baseadas na plataforma Java Card e na plataforma IBM JCOP, atravs de um ambiente grfico. Atravs das suas ferramenta o JCOP simplifica a deteco de erros e problemas durante a compilao e converso dos applets dos smart cards. Pontos de destaques desse conjunto de ferramentas so: Portabilidade: JCOP Tools est disponvel para Windows, Linux e MAC OS provendo um desenvolvimento portvel para aplicaes da plataforma Java Card. Completo: JCOP Tools dispes de todos componentes necessrio para o desenvolvimento das aplicaes (applets) para smart cards como: Gerenciamento de projeto, editor de cdigo fonte, compilador, debugger, ambiente de simulao, Linha de comando interativa APDU. Grfico: totalmente integrado ao IDE Eclipse sendo todas suas ferramentas grficas para interao com os smart cards.

O ambiente de desenvolvimento totalmente integrado ao Eclipse. Alm de oferecer recursos especficos da ferramenta JCOP conta com todas as funcionalidades que o Eclipse oferece para o desenvolvimento de aplicaes (IBM, 2003), dentre as quais se destacam:

71

Desenvolvimento orientado a projeto: Eclipse fora um desenvolvimento voltado para projetos. Um projeto JCOP a partir do Eclipse encapsula todos cdigos os fontes da aplicao, scripts de teste, opes de compilao, controle de verses, etc. Todas as configuraes so facilmente alterveis atravs de um ambiente grfico, possibilitando usurios de outras IDEs se adaptarem rapidamente ao JCOP Tools.

Editor cdigo fonte: Utiliza o editor JDT do Eclipse para trabalhar com cdigos escritos para Java Card. Contando com recursos como: complemento de cdigo automtico, checagem de sintaxe, formatao automtica, numerao de linhas, refatorao de cdigo entre outros.

Ferramentas de construo: usa um compilador incremental Java do prprio Eclipse JDT para criar arquivos class e um conversor integrado para gerao de arquivos applet CAP e export files. Os erros de converso e compilao so mostrados em tempo de real.

Ambiente de simulao: Conta com um ambiente de simulao o qual cria a situao real de execuo de uma aplicao utilizando smart cards JCOP. Os applets podem ser totalmente simulados nesse ambientes de maneira que sigam at mesmo restries de hardware impostas pelos cartes.

Debug cdigo fonte: Oferece muitas funcionalidades de um debug como: breakpoints, execuo de linhas passo-a-passo, inspeo de objetos e variveis, etc. Fornece adicionalmente informaes sobre utilizao de memria durante as transaes e utilizao do buffer. Isto permite o desenvolvedor ter detalhes de performance para possveis otimizaes.

PC/SC, leitores e suporte a hardware: suporta todos tipos de leitores e terminais que seguem padres PC/SC. Adicionalmente suporta leitores Mifare sem fio alm dar suporte a terminais e leitores que seguem os padres ISO 7816 T=0, T=1 e ISO 14443 T=CL.

O JCOP Tools (IBM, 2003) (figura 4.7) considerado uma tima ferramenta para desenvolvimento de aplicaes para smart cards, devido a sua grande compatibilidade entre padres e tecnologias existentes de smart cards bem como as plataformas de software que as ferramentas podem ser utilizadas. Ele no uma ferramenta gratuita, mas o seu custo e

72 consideravelmente baixo se comparado ao nvel de recursos e qualidade da outras ferramentas utilizadas na produo de applets para Java Cards.

Figura 4.7 IDE Eclipse utilizando plugin JCOP Tools


Fonte: IBM (2003, p.09)

4.3.2 Cyberflex Access SDK

Ferramenta proprietria e paga desenvolvida pela AXALTO. Utilizada no desenvolvimento de aplicaes baseadas em smart cards Cyberflex com suporte ao Java Card (segue especificaes Java Card da Sun Microsystems) e outras tecnologias. Esse SDK executado somente em sistemas operacionais Windows, dando suporte e integrao a infraestrutura PC/SC . (CYBERFLEX, 2000)

73 O Cyberflex Access SDK implementa bibliotecas e disponibiliza um conjunto de ferramentas as quais fornecem suporte a: Configurao de cartes para servios criptogrficos; Desenvolvimento e carga dinmica de applets java; Integrao com aplicaes customizadas; Aplicaes de segurana como: gerao e verificao de assinatura digital, autenticao e encriptao e desencriptao. Por se tratar de uma ferramenta proprietria, como a maioria das ferramentas, funciona com cartes e leitores da Cyberflex. Na figura 4.8 demonstrado a arquitetura de smart cards Cyberflex com suporte as especificaes Java Card bem como suporte a APIs especficas Cyberflex.

Figura 4.8 Estrutura dos cartes Cyberflex suportados pelo Cyberflex Access SDK
Fonte: CYBERFLEX (2005, p.02)

O SDK fornece inmeras facilidades e ferramentas grficas para criao, gerenciamento e simulao de applets para os smart cards (CYBERFLEX, 2005) dentre elas se destacam: Converter: ferramenta para converso de Java bytecodes pra Java Card bytecodes. O Conversor basicamente converte applets Java em applets Java card

74 (Arquivo CAP). Conta com funcionalidade de verificao do arquivo CAP fora do carto antes de seu carregamento. Explorer/loader: ferramenta para gerenciamento, carga e controle do ciclo de desenvolvimento de applets de forma segura. APDU tracer: ferramenta que monitora e traa toda a comunicao feita entre o smart card e o leitor atravs do protocolo APDU. APDU Debugger: ferramenta para fazer debug das comunicaes utilizando APDUs. Com esse debug possvel enviar comandos e receber respostas do smart card. Card Simulator: ferramenta grfica que simula a operao completa do smart card. Faz a simulao dos applets diretamente a partir de um arquivo interpretado Java (arquivo .class), sem a necessidade de carreg-lo no smart card. No necessrio possuir o carto para realizar as simulaes. Applet Debugger: Debuger para Java Card applets, pode ser utilizado com o Card Simulator.

4.4

Ferramentas de desenvolvimento aplicao host

As ferramentas de desenvolvimento (tambm conhecido como frameworks de desenvolvimento) voltadas para interligao do sistema back-end, aplicao host e smart card so um componente chave na construo de solues baseadas na tecnologia Java Card. Existem inmeras ferramentas de desenvolvimento no mercado, dentre elas se destacam: Open Card Framework, PC / SC. Existem outras ferramentas alm do OCF e do PC/SC. Uma muito interessante o Muscle o qual prov as mesmas funcionalidades e compatibilidades com o PC/SC s que portado para o ambiente Linux. A figura 4.9 demonstra a relao da plataforma onde executado cada framework e a linguagem de programao que pode ser utilizada.

75

Figura 4.9 Escopo das ferramentas de desenvolvimento de aplicaes no host

4.4.1 Open Card Framework

O Open Card Framework uma infra-estrutura para o desenvolvimento de programas a qual permite aplicaes Java se comuniquem com o smart card (compatvel com OCF) atravs de um leitor (KAISERSWERTH, 1998). Ele oculta a complexidade da programao/comunicao com o smart card, ficando este tarefa em um alto nvel. Sendo seus objetivos principais: Compatibilizar diferentes tipos de hardware e software independente de fabricante, como: terminal leitor, sistema operacional, smart cards; Permitir a programao rpida com custo baixo atravs de uma API de alto nvel; Prover a portabilidade entre diferentes tipos de terminais e plataformas.

O OCF desenvolvido em Java. Juntamente com um Java card permite uma mesma aplicao ser executada em diversas plataformas, independentemente de computadores, leitores e smart cards. Para poder usar o OCF os leitores e smart cards tm que ser compatveis com OCF (OPENCARD, 1998). O OCF possui trs componentes principais, os quais correspondem s classes dentro de seu framework: Card Terminals: relativo aos leitores dos smart cards; Card Services: relativo ao sistema operacional para cada fabricante bem como as aplicaes contidas no mesmo;

76

Smart Card: relativo aos tipos de smart cards dos diversos fabricantes.

A Figura 4.10 demonstra basicamente como est estrutura a arquitetura do OCF. No topo da se tem as aplicaes (applications), no centro o pacote bsico do Open Card Framework (OCF Core) e abaixo o leitor de smart cards (Card reader). Com essa representao grfica pode-se demonstrar o papel de interligao e compatibilizao que a OCF desempenha entre as aplicaes e os smart cards.

Figura 4.10 Estrutura bsica do Open Card Framework e suas ligaes


Fonte: (KAISERSWERTH, 1998)

4.4.2 PC / SC (Personal computer Smart Cards)

O PC/SC uma infra-estrutura, como o OCF, desenvolvida para integrao entre smart cards e sistemas back-end os quais executam sobre a plataforma Windows. Esta tecnologia permite o desenvolvimento de aplicaes que se beneficiam da portabilidade dos smart cards e a segurana baseada em hardware, ambos sendo fatores crticos para o desenvolvimento de aplicaes seguras.

77 O padro PC/SC inclui: especificaes para funcionalidade criptogrfica e armazenamento seguro, interface de programao para comunicao entre o smart card e dispositivo leitor, interface de aplicao de alto nvel - para tornar mais fcil desenvolver aplicaes com smart cards. (SELIGER , 2000)

Na figura 4.11 demonstrada a estrutura bsica do PC/SC. No nvel superior esto as aplicaes as quais interligadas atravs do PC/SC com os leitores de smart cards (nvel inferior)

Figura 4.11 Estrutura bsica do padro PC/SC


Fonte: (KAISERSWERTH, 1998)

APLICAO PROPOSTA

Baseado nos conceitos abordados, o objetivo deste captulo propor uma soluo tecnolgica utilizando a plataforma Java Card para smart cards. Est proposta tem como escopo aplicar o processo de desenvolvimento de solues utilizando smart cards alm de demonstrar na prtica os benefcios que a tecnologia pode agregar como: segurana, flexibilidade entre outros j apresentados.

Para um melhor entendimento e organizao, a apresentao desta proposta ser dividida da seguinte maneira: problemtica identificada, soluo proposta e definio de ferramentas a serem utilizadas.

Cabe ressaltar que essa proposta de aplicao trata-se de um esboo do que se pretende desenvolver e alterar para a segunda parte ( TC II ) deste trabalho.

5.1

Problemtica Identificada

Atualmente o acesso a ambientes virtuais os quais disponibilizam servios aos usurios realizado atravs de redes internas e at mesmo atravs da internet. Esses ambientes geralmente possuem um canal de comunicao segura entre o usurio e o servidor onde est hospedado o servio. Esse canal seguro tem o objetivo de proteger o trfego das informaes entre a mquina host (cliente) e servidor da aplicao.

79 Para o acesso a uma aplicao de maneira segura os usurios, na maioria das vezes, necessitam informar uma senha ou chave de acesso para iniciar a comunicao. Depois da autenticao os servios so disponibilizados atravs de um canal seguro. Esse tipo de modelo de aplicao muito utilizado atualmente, mas no totalmente confivel no que diz respeito a maneira como utilizado. Por exemplo, se uma pessoa no autorizada dispor da senha ou chaves de acesso, ela ir conseguir se passar pelo usurio verdadeiro sem problemas. Fato o qual pode ser caracterizado como uma falha.

Existem diversas maneiras de obter essas senhas e chaves de acesso, explorando muitas vezes a ingenuidade e a falta de informao dos usurios. Por exemplo: casos de envio e-mails falsos a esses usurios contendo URLs que os induzem a instalao de programas maliciosos, tendo como funo o monitoramento e o registro de eventos no computador. Geralmente capturados e registrados eventos como: acesso a sites de bancos, digitao, click do mouse em teclados virtuais entre outros.

Nota-se que informaes confidenciais so expostas facilmente. Apesar da segurana implementada no ser totalmente suficiente. Prover mecanismos e mtodos mais seguros para acesso a esses ambientes fundamental no mundo digital o qual a sociedade est inserida.

5.2

Soluo proposta

A proposta de soluo consiste em uma aplicao para autenticao segura em ambientes virtuais utilizando a tecnologia dos smart cards. Para acessar determinados servios seria necessria a utilizao do smart card e no somente o uso de senhas de acesso. O smart card conteria uma aplicao responsvel pela identificao e autenticao dos usurios sem a necessidade de digitao das credenciais de acesso s quais estariam armazenadas de forma segura dentro do smart card. Com isso a possibilidade de cpia de informaes, atravs de eventos, para acesso a esses servios seria praticamente nula. A nica senha necessria seria o PIN do smart card com o objetivo de liberar o acesso a essas credenciais contidas nele.

80 Esse modelo de acesso, atravs da identificao e autenticao segura via smart cards, seria utilizado no ambiente virtual de matrculas do Centro Universitrio FEEVALE. Onde o smart card carregaria internamente uma aplicao e os dados necessrios para identificao do aluno (nmero matrcula, chave para acessar o ambiente de matrcula, senha da biblioteca, outros dados) para realizao da matrcula.

Basicamente o ambiente de matrcula no momento da autenticao comunicaria com a aplicao de identificao contida no smart card, liberando o acesso aos dados de identificao do aluno os quais tambm se encontram no smart card. O acesso a esses dados se d atravs da digitao de um cdigo (PIN) relacionado ao smart card e no a identificao do aluno em si.

Para demonstrar a flexibilidade de um smart card utilizando plataforma Java Card, ser proposta a coexistncia da aplicao de identificao (applet matrcula), juntamente com outra aplicao responsvel por armazenar um valor como se fosse dinheiro digital (applet dinheiro) o qual poderia ser utilizado em diversos pontos de consumo tanto de produtos como servios oferecidos pelo Centro Universitrio FEEVALE. Ser verificada a possibilidade do uso do carto (smart card) que os alunos possuem atualmente para essas aplicaes.

A figura 5.1 demonstra basicamente um esboo de funcional da soluo a ser desenvolvida para acesso ao ambiente de matrcula de forma segura atravs do uso de smart cards com plataforma Java Card e Open Card Framework para comunicao com o host smart card. Alm ilustrar a possibilidade de coexistncia de outras aplicaes no smart card .

81

Aplicaes no smart Card

Figura 5.1 Aplicao matrcula on-line e dinheiro eletrnico usando smart cards

82 5.3 Definio das ferramentas utilizadas

Atravs da anlise da soluo proposta e do hardware adquirido (smart card + leitor) optou-se pela escolha das ferramentas de desenvolvimento, buscando um nvel de integrao entre hardware e software. Os principais componentes tanto de hardware quando software utilizados nessa soluo sero: Eclipse como IDE de desenvolvimento Geral; Plugin JCOP Tools para Eclipse (desenvolvimento applets para Java Card); Open Card Framework (desenvolvimento de aplicaes no host com suporte a smart cards / leitores); Leitor de cartes Perto Smart USB; Smart Card JCOP 30 (compatvel com especificaes Java Card).

CONCLUSO

Conforme foi visto a tecnologia dos smart cards prov grandes vantagens e funcionalidades relacionadas a outras tecnologias no que diz respeito segurana e confiabilidade da soluo onde empregada. Fica evidente que a tecnologia Java empregada aos smart cards, proporciona grande flexibilidade atravs da possibilidade de execuo de mltiplas aplicaes em um nico carto.

O aumento do uso dessa tecnologia vem se tornando, de uma maneira notvel, cada vez mais expressivo devido a suas caractersticas, evoluo, custo baixo e a maneira como adere facilmente as mais variadas aplicaes. Devido a uma infinidade de solues disponveis no mercado para aplicaes que utilizam smart cards fica difcil escolher qual soluo adotar. Faz se necessrio, sempre que optar pelo uso dessa tecnologia, a realizao de uma abordagem critica e cautelosa com o objetivo de se ter uma soluo efetiva.

No Brasil existe ainda uma grande dificuldade em se obter material especializado tanto no que diz respeito a literatura quanto equipamentos e ferramentas de desenvolvimento. inevitvel, na maioria das vezes, importar esses recursos. Muitas vezes esses fatores so empecilhos para disseminao dessa tima tecnologia.

Smart cards juntamente com a tecnologia Java formam uma poderosa combinao. Proporcionando a criao e abertura para novos e promissores mercados os quais dentro de alguns anos estaro fortemente evidenciados atravs da utilizao em massa dessas tecnologias seguras e funcionais.

REFERNCIAS BIBLIOGRFICAS

CHEN, Zhiqun. Java Card (tm) Technology for Smart Cards: Architecture and Programmer's (The Java Series) (Paperback). Addison-Wesley Professional, 1st edition. 2000. 400p. CHUCK, Wilson. Get Smart The Emergence of Smart Cards in the United States and their Pivotal Role in Internet Commerce. Mullaney. 2001. 338p. CYBERFLEX, Junho. 2005. 2p. CYBERFLEX, Axalto. Cyberflex Access Programmers Guide. Schulumberger. Release 3C. 2000. 340p. DREIFUS, H. e MONK, J. T. SmartCards: A guide to building and managing smart card applications. Wiley 1st edition, New York, 1997. 352p. GADELLAA, K.O. Fault Attacks on Java Card (Masters Thesis). Universidade de Eindhoven. 2005. GIESECKE e DEVRIENT, Inc. Magnetic Stripe Cards. Disponvel em Axalto. Cyberflex Access Brocure. Disponvel em

<http://www.axalto.com/access/smartcards/pdf/Cyberflex_Access_en.pdf>. Acesso em 18 de

<http://www.gdjapan.com/gdkk-ub3New/magstripe.htm>. Acesso em 25 de abril. 2006. GUILLOU, L. C.; UGON, M. e QUISQUATER, J-J. Cryptographic authentication

protocols for smart cards. Computer Networks. 2001.

85 HALLIDAY, Steve. Card Technologies. Lowry Computer. 2006. Disponvel em

<http://www.lowrycomputer.com/technologies/card/>. Acesso em 28 maio. 2006. HANSMANN, Uwe; NICKLOUS, Martin; SCHACK, Thomas; SCHENEIDER, Achim e SELIGER, Frank. Smart Card Application Development Using Java. Springer, 2nd ED. 2002. 297p. HOLOPHILE, Inc. The History and Development of Holography. Disponvel em <http://www.holophile.com/history.htm>. Acesso em 5 de maio. 2006. IBM, BLUE Z. JCOP Tools 3.0 (Eclipse Plugin) Overview. Technical Brief. IBM Press. Rev. 1. 2003. 11P. JONG, Eduard; PIETER, Hartel; PEYRET, Patrice e CATTANEO, Peter. Java Card: An analysis of the most successful smart card operating system to date. University Twente. 2005. KAISERWERTH, Matthias. The OpenCard Framework an PC/SC. SchlumberResearch Report. IBM Research Labs. 1998. p.4-5 . KOCHER, Paul C.; JAFFE Joshua e JUN Benjamin. Introduction to Differential Power Analysis and Related Attacks. Proceedings of the 19th Annual International Cryptology Conference on Advances in Cryptology. 1999. p.388-397 OPENCARD, Consortium. Open Card Framework General Information Web Document. IBM. Second Edition. 1998. 26P ORTIZ, C. Henrique. An Introduction to Java Card Technology - Part 1,2 and 3. Articles. Sun Microsystems. 2003. 44p. PHILIP ANDREARE & ASSOCIATES. Sample Accomplishments. Disponvel em <http://www.andreae.com/images/Pictures_and_Logos/RBC_Chip_Card.jpg>. Acesso em 20 de Abril. 2006 PRODANOV, Cleber C. Manual de Metodologia Cientfica. 3.ed. Feevale, 2003. 64p. Novo Hamburgo:

86 RANKL, Wolfgang e EFFING, Wolfgang. Smart card handbook. John Wiley & Sons, 3rd edition. 2003. 1120p. ROOS, Alexis. Mobility With Security Using Java Card Technology and Biometrics. Java Sun Developer Conference. Sun Microsystems. 2004. 47p. ROOS, Anderson; KUHN, Markus. Low Cost Attacks on Tamper Resistant Devices. Computer Laboratory, Cambridge UK. 1998. 12P. SCOURIAS, John. Overview of the Global System for Mobile Communications. 1997. Disponvel em <https://styx.uwaterloo.ca/~jscouria/GSM/gsmreport.html>. Acesso em 10 Junho. 2006. SELIGER, Frank e STEINMUELLER, Uwe. Accessing Smart Cards Using Java. IBM Technical Developer Conference. 1999. 45P. SELIGER, Frank. OpenCard and PC/SC - Two New Industry Initiatives for Smart Cards. IBMs Global Smart Card Solutions. 2000. 13P SUN MICROSYSTEMS, Inc. Documentation about Smart Card Overview. Disponvel em <http://java.sun.com/products/javacard/smartcards.html>. Acesso em: 25 Fevereiro. 2006-b. SUN MICROSYSTEMS, Inc. Java Card Platform Specification 2.2.2. Disponvel em <http://java.sun.com/products/javacard/specs.html>. Acesso em: 25 Fevereiro. 2006-e. SUN MICROSYSTEMS, Inc. Java Card Platform, Runtime Environment Specification. Disponvel em <http://java.sun.com/products/javacard/specs.html>. Acesso em: 25 Fevereiro. 2006-a. SUN MICROSYSTEMS, Inc. Java Card Technology Overview. Disponvel em <http://java.sun.com/products/javacard/overview.html>. Acesso em: 25 Fevereiro. 2006-d. SUN MICROSYSTEMS, Inc. Java Card Tecnology Faqs. Disponvel em

<http://java.sun.com/products/javacard/faq.html>. Acesso em: 25 Fevereiro. 2006-c. TXSYSTEMS, 2006. MUSB-200 combo hardware specs. Dsponivel em

<http://www.txsystems.com/downloads/MUSB-200_Combo.pdf>. Acesso em 20 de Junho.

87 U.S. OFFICE GSA. Government Smart Card Handbook. General Services

Administration.. 2004. p.16. WIKIPEDIA, Digital Encyclopedia. Magnetic stripe card from Wikipedia. Disponvel em <http://en.wikipedia.org/wiki/Magnetic_stripe>. Acesso em 16 Junho. 2006-b WIKIPEDIA, Digital Encyclopedia. Smart Cards from Wikipedia. Disponvel em

<http://en.wikipedia.org/wiki/Smartcard >. Acesso em 15 Junho. 2006-a

You might also like