Smart Cards Requisitos da Aplicação por Carlos Arthur Lang Lisbôa CMP502 - Tópicos Especiais em Computação II Sistemas Embarcados Professores Flávio Wagner e Luigi Carro UFRGS/PPGC - 27/março/2003 Roteiro da Apresentação • • • • • • • • • o que são Smart Cards tipos de Smart Cards características técnicas aplicações típicas requisitos de segurança padrões oportunidades para pesquisa referências na Web referências bibliográficas O que são “Smart Cards” ? (aka chip cards or IC cards) Primeiro smart card: 1974 Produção em 2002: quase 1 bilhão Tipos de Smart Cards • Recursos disponíveis – Somente memória (not that smart ...) • convencional • memória óptica – Processador • monoaplicação • multiaplicação • Comunicação com leitora (terminal) – Com contato – Sem contato (usando RF) • Formato físico – Padrão “cartão de crédito” (plástico) – SIM - para aplicações GSM, 3G, etc. Características Técnicas - Hardware • Processador – microcontrolador de 8 bits (Motorola 6805, Intel 8051 instruction sets) – 400 kIPS a 1 MIPS – co-processador para criptografia • Memória (nem toda “executável”) – ROM para sistema operacional (8-96kB) – NVM para dados do usuário (mais lenta, vida útil limitada) – RAM para dados de E/S (< 2kB) • Entrada/Saída: 1 canal serial, halfduplex, até 112,5 kbps (normalmente 7800 a 9600 bps) - já existem c/USB Características Técnicas - Comparação Características Técnicas - Software • Sistemas operacionais – monoaplicação – multiaplicação • Algoritmos de criptografia – DES – RSA – A3, A8, TSA7 ... • Sistemas de de arquivos • Protocolos de comunicação Características Técnicas - Contatos Vcc GND RST VPP CLK I/O RFU RFU Características Técnicas - Contatos (USB) Vcc GND RST VPP CLK I/O D- D+ Características Técnicas Princípio Básico de Funcionamento L e i t o r a Pedido (APDUs*) Resposta (*)Application Protocol Data Units C a r t ã o Principais áreas de aplicação • • • • • • • Telefonia móvel (ex: TIM “chip”) Telefonia fixa (cartões telefônicos) Sistema financeiro (cartões bancários) Carteiras eletrônicas Cartões de crédito (mais seguros) Saúde Cartões de fidelidade (ex: Smart Club) Principais Requisitos • Segurança (rem: fingerprint) – segurança dos dados (só autorizados) – integridade dos dados (transações não completadas) – criptografia e resistência a fraudes • Capacidade de processamento – cálculos em ponto flutuante – co-processador • • • • Capacidade de armazenamento Baixo consumo de energia Vida útil, confiabilidade, resistência Grande volume de produção Padrões: ISO 7816 • Parte 1: características físicas • Parte 2: dimensões e localização dos contatos (8 contatos) • Parte 3: Sinais elétricos e protocolos de transmissão • Parte 4: Comandos para intercâmbio entre empresas • Parte 5: sistema de numeração e procedimento de registro de identificadores de aplicações • outros ISO 7816-n • outras organizações: ETSI (padrões GSM), ANSI, IEC, etc. SIM: Subscriber Identification Module • • • • • • • é um Smart Card “sem plástico” usado em dispositivos de comunicação telefones GSM e 3G (90% em 2001) set-top boxes (10% em 2001) migrando para celulares TDMA e CDMA migrando para Palm Pilot objetivos: habilitar o acesso ao dispositivo no qual está inserido (autorização) e associar o uso deste dispositivo com uma conta para cobrança (autenticação, não repúdio e contabilização) Multiapplication Smart Cards • Multos – – – – máquina virtual com 31 bytecodes 24 serviços (primitivas) do sistema operacional padrão mínimo para implementação não suporta sistema de arquivos • Java Card (Schlumberger, 1996) – suporta subset (108 na versão 2.1.2, maio de 2001) dos bytecodes de Java – JVM de 4kB (instruções do M6805) – “proibido” programar direto em bytecodes ! – não suporta sistema de arquivos – 119 serviços disponíveis na API – ainda não tem garbage collection ... – Sun assumiu a especificação e desenvolvimento Multiapplication Smart Cards • MS Windows Card (1998) – máquina virtual mínima executa 27 bytecodes (Intel 8048 subset) – Windows API (“reduzida enormemente”) – separação entre código e dados da aplicação – sistema de arquivos com FAT (nomes em Unicode) – seleciona uma aplicação e executa até o fim • ZeitControl Basic Card (1996) – – – – IDE para aplicação do cartão e fora do cartão sistema de arquivos baseado em FAT (DOS-like) única VM que suporta aritmética em ponto flutuante máquina virtual executa 116 byte codes Oportunidades para Pesquisa • Ferramentas e ambientes para desenvolvimento de aplicações • Segurança e criptografia • Aplicações • Conferências sempre com forte participação das indústrias Obs: projetar SC, só na indústria :-( Projeto Perto Teclado seguro para ATMs • Grupo: Raul Weber, João Netto, Vinicius Serafim, Ricardo Lichtler • a senha digitada pelo usuário da ATM é criptografada por um Smart Card instalado no teclado e que se comunica com o microcontrolador de teclado, ambos encapsulados em epoxi para evitar violação durante a comunicação entre eles, e somente depois é transferida para a ATM • consultoria em criptografia e programação do microcontrolador Perspectivas Futuras “Information about smart cards and the technical detail needed to harness the technology has historically been very hard to come by. This, more than any other factor, has been the barrier to the use of smart cards. Belatedly, the smart card industry has realized that either applications carry cards into the mainstream of everyday use or they will join eight-track tapes, monorail trains, cold fusion, magnetic bubbles, and Betamax video in the dustbin of technical curiosities.” Timothy Jurgensen [4] Referências na Web www.gemplus.com (líder do mercado de Smart Cards e soluções; “fornecedor” da figura à esquerda ...) http://www.gemplus.com/products/dig_si gn_cards_range/ (cartão de assinatura digital) http://java.sun.com/products/javacard (especificações, kit de desenvolvimento, ferramentas, downloads) www.javaworld.com (tutoriais e artigos sobre Java Card) Referências na Web (continuação) www.schlumberger.com (Criador do Java Card; recentemente: Simera - 512K flash memory SIM card) www.hitachi.com (chips, sistemas operacionais, aplicações e soluções completas e consultoria) www.infineon.com (circuitos integrados para Smart Cards: controladores, memórias, etc.) www.gdburti.com.br (produção e personalização de Smart Cards, consultoria e desenvolvimento de aplicações) Referências Bibliográficas [1] Chaum, D. e Schaumüller, I. Smart Card 2000: The Future of IC Cards. Proceedings of the IFIP WG 11.6 Conference on Smart Card 2000. NorthHolland, 1989 [2] Hendry, M. Smart Card Security and Applications. Artech House, Boston, 1997 [3] Dreifus, H. e Monk, J. T. SmartCards: A guide to building and managing smart card applications. Wiley, New York, 1998 [4] Jurgensen, T. e Guthery, S. Smart Cards: The Developer’s Toolkit. Pearson Education, julho de 2002