SMART CARDS – JAVA CARD

Embed Size (px)

Citation preview

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.

1

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 cardFonte: 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 cartoFonte: 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 magnticaFonte: 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 fsicasFonte: 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 cardFonte: 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 MBFonte: RANKL E EFFING (2003, p.25).

2

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 cardsFonte: 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 memriaFonte: 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 microprocessadoFonte: 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 fioFonte: 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 cardsFonte: 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 cardsFonte: 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 USBFonte: 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 biomtricosFonte: 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 biomtricoFonte: 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 biometriaFonte: 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

3

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

43Fonte: 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 systemFonte: 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 CardFonte: 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 MultosFonte: 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 cardsFonte: 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).

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