Programação Java em Cartões de Crédito Com o avanço da tecnologia, as associações bancárias começaram a levar os cartões inteligentes mais a sério, já que os mesmos elevavam o nível de segurança. Até outras áreas, como a saúde, o transporte e telecomunicações por exemplo, começaram a utilizar o mesmo artifício com a certeza de ser uma solução total, e acertaram. Hoje, o cartão inteligente tem um papel predominante nos negócios eletrônicos. Foi criada a tecnologia Java Card. A mesma permite que pequenos aplicativos que estejam na plataforma Java sejam executados com segurança em cartões inteligentes e dispositivos similares. Quase todo tipo de smart card pode ser adaptado com a tecnologia Java Card. há dois tipos de Smart Card: o smart card inteligente, composto de um microprocessador que lê, escreve e calcula como um pequeno computador e o Memory Card que somente guarda os dados. Todos os smart cards contêm três tipos de memória: ROM, EEPROM e RAM. Podem ser utilizados ainda na telefonia móvel, em cartões de crédito ou qualquer outro de serviços financeiros, cartões de identificação para acesso ou como uma identidade/CPF. Outro exemplo é em aparelhos eletrônicos que são conectados a internet tais como celulares e equipamentos de TV por assinatura. Já existem hoje 300 milhões de Java Cards em produção, mais diversos tipos de cartões inteligentes. Se incluírem os SIMM cards, que são nada menos que Java Cards embutidos em telefones GSM, como os novos celulares TIM ou OI aqui no Brasil, já são cerca de 1,2 bilhões de máquinas virtuais Java espalhadas pelo mundo. Seus componentes são: CVM (Java Card Virtual Machine): define um subconjunto da linguagem Java e a adapta as aplicações no smart card. JCRE (Java Card Runtime Environment): define como se comporta o ambiente de execução, incluindo gerenciamento de memória, de aplicações, reforço de segurança e outras características da execução. A tecnologia Java Card oferece todas as vantagens de desenvolver aplicações na linguagem de programação Java: programação orientada a objeto com maior modularidade e reusabilidade de código, alta produtividade do programador, proteção da linguagem Java aplicada aos applets Java Cards, reforçando tipagem e proteção dos atributos, disponibilidade de ferramentas de desenvolvimento poderosas. Descritas abaixo: Interoperabilidade - os applets desenvolvidos com a tecnologia Java Card funcionarão em qualquer cartão baseado na tecnologia Java card. Segurança - a tecnologia Java Card confia na segurança inerente da linguagem de programação de Java para fornecer um ambiente seguro de execução. Foi projetada através de um processo aberto, e as plataformas garantem que a tecnologia é a mais capaz e segura disponível hoje. Capacidade de múltiplas aplicações - a tecnologia Java Card permite que os pequenos aplicativos compartilhem espaço e sejam executados seguramente em um simples Smart Sard com 16 KB ou 32 KB. Dinâmicas - As novas aplicações podem ser instaladas seguramente depois que um cartão foi emitido, com a habilidade de responder dinamicamente às necessidades de mudança do cliente. Abertura - os desenvolvedores de aplicação Java card beneficiam-se de 86 programações e design orientado a objeto, e têm acesso às ferramentas de desenvolvimento Java. Compatibilidade com padrões existentes - A API Java Card é compatível com padrões internacionais para smart cards tais como ISO7816, ou EMV. É referenciada por padrões industriais específicos tais como a plataforma global e ETSI. Smart Cards com contato Os tipos de cartões com contato, possuem na parte posterior um pequeno chip dourado de aproximadamente 1,27cm de diâmetro. Quando inseridos em um leitor, o chip encosta nos conectores elétricos, que podem ler e escrever informações do chip. Existem algumas exigências para a fabricação deste tipo de cartão. As normas ISO/IEC 7816 e ISO/IEC 7810 definem para esta categoria de smart cards, os seguintes requisitos: Formato físico; A posição e o formato dos conectores elétricos; As características elétricas; Os protocolos de comunicação; O formato dos comandos enviados ao cartão e as respostas retornadas por ele; A robustez do cartão; A funcionalidade; Smart Cards sem contato Smart cards sem contato possuem um chip que comunica-se com o leitor através de RFID (RFID é um acrônimo do nome Radio-Frequency Identification em inglês que, em português, significa Identificação por Rádio Freqüência), com taxas de transmissão de 106 à 848 Kb/s. Estes cartões exigem somente uma proximidade à uma antena para a transação de dados. Geralmente são utilizados quando a transação deve ser feita rapidamente e com as mãos livres, como em sistemas de trânsito. A norma ISO para tal tecnologia é a ISO/IEC 14443 (2001). Ela define dois tipos de smart cards sem contato (categoria A e B), permitindo comunicação a distâncias de até 10cm. Existem propostas para as categorias C, D, E e F, que foram rejeitadas pelo comitê de padronização.Uma alternativa é a ISO 15693, que permite comunicações a até 50cm. Desenvolvimento de ferramentas para Smart Card Codificar aplicações para um cartão inteligente requer muita “ginástica”. O programador não só tem que saber a linguagem de programação e a plataforma onde o código é desenvolvido, mas também o sistema operativo do cartão inteligente, o leitor de cartão inteligente, o protocolo de comunicação entre o cartão inteligente e o leitor, a estrutura de arquivo do cartão inteligente, etc. Esta situação foi reconhecida pela indústria e a maioria dos vendedores de smart cards fornecem ferramentas de desenvolvimento para os seus clientes O ToolKit da IBM para o Cartão Inteligente é dos mais completos e uma das ferramentas mais importantes para desenvolvimento de aplicações para cartão inteligente. Usando o ToolKit da IBM, um colaborador de aplicações não precisa de saber em detalhe o sistema operativo interno do cartão inteligente. Futuro dos Smart Cards Os analistas da indústria e a imprensa especializada previram um futuro sorridente para os smart cards. Em apenas alguns anos bilhões de cartões estão previstos circularem entre nós. Os analistas da indústria concordam também que os cartões inteligentes têm muita flexibilidade para se adaptar aos mercados mais interessantes do mundo, os EUA. Há varias razões para esse acontecimento: Nenhumas aplicações de grande escala usadas pelo governo, para uso dos cidadãos, como por exemplo, os serviços de saúde; Nenhuma infra-estrutura para cartões inteligentes: muitas lojas na Europa têm algum tipo de leitores de cartão; Os clientes e os comerciantes dos EUA estão mais dispostos a aceitar o custo de cartões de crédito do que os seus colegas europeus; Poucas infra-estruturas com smart cards: poucas lojas na Europa têm poucos leitores de cartões. Conclusões Com a necessidade crescente que se tem cada vez mais de migrar de meios físicos para meios digitais e eletrônicos, torna-se imperativa a implementação de serviços de ambientes seguros, pois, indo para setores mais sensíveis cuja informação é de caráter pessoal – (que é o caso dos cartões que utilizam Java Card), onde a privacidade ou confidencialidade das pessoas podem ser postas em causa, cresceu a necessidade de informações momentâneas; ao mesmo tempo crescem com isto o perigo e a insegurança, uma vez que os dados acabam espalhados nas mãos de estranhos e com os mais diversos pensamentos (duvidosos, ou não) sobre a sua utilização. Não se pode esquecer que quem tem informação tem poder. Por este problema de dispersão de informações é que se desenvolveu uma estrutura para partilhar os dados de uma forma mais segura, com o intuito de inibir atos fraudulentos e até criminosos que envolvem a segurança da informação. Com a elaboração deste trabalho conseguiu-se, mostrar que a segurança da informação é um dos fatores primordiais do Java Card proporcionando um elevado grau de controle e confidencialidade dos dados provendo a liberdade individual, interesses públicos e padrões legais; a Java Card inclui também mecanismos de credenciais digitais (certificados digitais e chaves privadas). Esses cartões inteligentes proporcionam um certo nível de portabilidade para a movimentação segura de informação privada entre sistemas de trabalho, domésticos ou em redes corporativas. Tais fatos combinam a adequada tecnologia de fabricação do cartão com um grande número de aplicações para o público em geral que geralmente são desenvolvidas sobre a Tecnologia Java Card. Permitem a utilização em diversas áreas como cartões de créditos, chips para celulares e outros dispositivos que possuem um nível de processamento e memória restrita para quais é utilizado o cartão inteligente (Java Card).