Criptografia e Segurança das Comunicações Cartões inteligentes Curiosidade, não faz parte da avaliação Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 1/31 DST (1) • O DST-Digital Signal Transponder é um sistema de autenticação da Texas Instruments, acedido por RFID – “Radio Frequency Identification”, com vista ao controlo de acesso a automóveis e pagamento automático de combustíveis. • Pode ser inserido numa folha ou na chave de um veículo. Prof RG Crespo Chip Criptografia e Segurança das Comunicações Antena SmartCards : 2/31 DST (2) • RFID, ou “transponder” é uma etiqueta (“tag”) passiva formado por um chip e uma antena. Criado nos anos 70, actualmente usado em – Cartões de acesso. – Identificação de animais (cães, gado). – Despacho de produtos em centros de distribuição (WalMart, o maior retalhista dos EUA, exige aos fornecedores que todos os produtos contenham etiquetas RFID). • Custo das etiquetas reduzido (menos de $1, os mais simples a 5¢), mas o leitor portátil custa $100-$1000. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 3/31 DST (3) • Dimensões reduzidas (até 0.4mm*0.4mm) • Frequências definidas por norma ISO 14443 – baixas/125 KHz – altas/13.56 MHz (a mais usada) – UHF/ 850-900MHz. • Capacidade do chip: tipicamente 2KB RAM, 1KB EPROM/EEPROM, CPU a 3MHz. Usualmente, o chip possui até 1000 gates. • Reduzida capacidade de cifra, estuda-se a possibilidade de incorporar AES (exige entre 20k a 30K gates). Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 4/31 DST (4) • Leitor deve estar situado a cm até alguns metros da etiqueta (depende da frequência usada). • Tipicamente, interação entre o leitor e a etiqueta segue os seguintes passos 1. Leitor fornece energia por impulso electromagnético de 15 a 50 ms, à frequência de 134.2 KHz 2. Leitor envia comando com bits modelados em amplitude. Nalguns casos, no fim é enviada nova carga energética 3. CPU da etiqueta efectua os cálculos. 4. Etiqueta envia, em modelação de frequência, bit de sincronização (07Eh), seguido pelos bits de resposta. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 5/31 DST (5) • Cada DST possui numero de série único, não secreto. • A unidade de processamento da DST possui arquitectura baseada – Registo por LFSR a 40 bits (Nota: atacável por “força bruta”), de polinómio conectivo x40+x21+x15+x6+1. – Imprecisões na especificação pública detectadas através da análise de respostas após carregamento do registo de chaves a 0 [ver artigo SC Bono et al., Security Analysis of a CrypographicallyEnabled RFID Device, 14th Usenix Security Symposium] – IV do LFSR programado pela empresa, conhecido apenas pela empresa e pelo DST. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 6/31 DST (6) desafio/resposta f1 f2 … f16 matrizes encaminhamento f17 f18 f19 f20 f21 LFSR Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 7/31 DST (7) • Identificação/autenticação efectuada nos seguintes passos: 1. Leitor envia desafio (“nounce”-valor aleatório, diferente dos anteriores, para evitar ataques de repetição) 2. Etiqueta insere desafio no registo superior, e executa 200 ciclos. 3. Etiqueta envia para o leitor mensagem contendo • Numero de série (24 bits) • 24 bits menos significativos do registo desafio/resposta • CRC-16, para integridade (alterações podem ser introtiduzidos devido a de erros na transmissão) Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 8/31 DST (8) • Ataque por força bruta: basta ler 2 pares desafio/resposta. – O desafio é inserido no registo superior de um simulador, que explora todas as combinações do IV do LFSR, verificando no fim de 200 ciclos coincidência com a resposta. – Necessários dois pares, uma vez que na resposta apenas contam os 24 bits inferiores. • Simulador, implementado com 16 FPGAs em paralelo (custo $1500) a 100 MHz, detecta IV em 40 minutos. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 9/31 Mifare (1) • MIFARE Classic, sistema de cartões de acesso por RFID, da empresa holandesa NXP (subsidiária da Philips). – Desenvolvidos vários modelos, os mais recentes com processador. – Muito baratos, adoptado por sistemas de transportes publico (ex:Oyster em Londres/UK e Charlie Card em Boston/MA) e parques de estacionamento (ex: IST). • Autenticação por desafio/resposta. • Sistema criptográfico Crypto-1 é baseado no registo de deslocamento – Chave de 48 bits. – Opera como LFSR e como NLFSR, dependendo dos parâmentros – Função de realimentação mantida secreta, mas equipa de U Virginia+U College London+Vest conseguiram descobri-la. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 10/31 Mifare (2) • Debilidades levaram NXP a colaborar com a equipa que quebrou para desenvolver o MIFARE Plus. – Baseado no AES – Menos inseguro Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 11/31 Smart card - introdução (1) • O “smart card” é uma alternativa mais poderosa. – Preço entre $2 e $40. – Informação trocada por pontos de contacto. – Informação por ser cifrada por RSA (ex: Cryptoflex da Schlumberger). – Vários métodos de autenticação (só cartão ou ambos os lados): • Resposta cifrada a desafio {0,1}64. • Protocolos de conhecimento nulo – Dimensões e interface eléctricas especificadas, respectivamente, pelas normas ISO 7816-2 e ISO-7816-3. Nota: Versão de menores dimensões, especificada pela ETSI, é usada para telemóveis GSM. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 12/31 Smart card - introdução (2) • Os cartões inteligentes são divididos em – Memory cards (apenas armazenam dados). – Microprocessor cards (pode processar e actualizar dados). • Adoptado pela ICAO para cartões de identidade (incluem impressão digital e fotografia). Ex: Gemalto (http://www.gemalto.com), criada em 2006 por junção da Axalto (divisão da Schlumberger) e Gemplus, é líder mundial de sistemas de cartões inteligentes com produção na F,S, BR,US,SG e CN. É responsável pelo sistema de identificação Cartão do Cidadão. • Uma das aplicações mais usada é acesso a transportes. Ex: consórcio Calypso criado pelos franceses com adesão posterior de empresas de transporte da BE,F,GE,I e PT– consultar http://www.askrfid.com –seleccionado para passes Lisboa Viva, Andante (metro Porto) e Metro de Lisboa. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 13/31 Smart card – arquitectura (1) • Os cartões com microprocessador possuem – – – – CPU 8 bits a 1 MIPS (pode haver co-processador dedicado para aritmética modular e operações em inteiros de grande dimensão para cifras AES, RSA,...). ROM 8-24 KB (para sistema operativo e algorimos de cifra) RAM 256B-1KB. EEPROM 1-24 KB, pode ser lido/escrito até 105 vezes (armazém de applets e chaves de cifra). Um dos motivos ROM RST CLK IO VCC VPP Prof RG Crespo I/O CPU para necessidade de renovação ao fim de 5 anos! RAM EEPROM Criptografia e Segurança das Comunicações SmartCards : 14/31 Smart card – arquitectura (2) • Objectivos dos 8 contactos – VCC, GND@C1,C5 : alimentação – RST@C2 : reiniciar a comunicação entre cartão e o CAD – VPP@C6 : usado nos cartões mais antigos para gravação da EEPROM – CLK@C3 : relógio, fixado pelo CAD – I/O@C7 : canal de comunicação “half-duplex” – RFU@C4,C8 : RFU-reservado para uso futuro Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 15/31 Smart card - ficheiros (1) • • • • • Estrutura de ficheiro semelhante à do Unix Nomes de 2 Bytes Raíz MF-ficheiro mestre é 3f.00 Directório designados por DF-ficheiros dedicados. Folhas contêm dados, designadas por EF-ficheiros elementares. Ficheiro mestre (único) 3f.00 00.02 00.11 01.00 02.01 Prof RG Crespo Ficheiro dedicado 02.00 02.02 02.03 Criptografia e Segurança das Comunicações 02.04 SmartCards : 16/31 Smart card - ficheiros (2) • Os ficheiros MF e DF podem ser considerados como directórios (mas o DF pode conter dados). • Os EF’s e DF’s contêm atributos de segurança com 5 níveis de segurança. Por ordem crescente, – ALW (“always”): acesso livre – CHV1 (“Card Holder Verification 1”): acessível apenas se tiver sido introduzido PIN1 válido. – CHV2 (“Card Holder Verification 2”) – ADM (“administrative”) – NEV (“never”): acesso interdito • Os PIN são armazenados em ficheiros elementares. O sistema operativo bloqueia acesso ao cartão depois de várias tentativas erradas de PIN. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 17/31 Smart card - ficheiros (3) • O espaço de ficheiro é um bloco contínuo, de dimensão fixa. • Os ficheiros elementares armazem informação de determinado tipo. Tipo Operações Exemplos de utilização Linear Posicionamento (“seek”) Saldo cartão crédito Cíclico leitura anterior, leitura seguinte Listagem transacções (“log”) Transparente Leitura e escrita binária imagem SIM Cifra, decifra Bilhete identidade Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 18/31 Smart card–comunicação (1) • O cartão inteligente é inserido num CAD - Card Acceptance Device, de 2 tipos: – – Reader, comunica com um Computador por interface USB, sem inteligência (embora possa detectar erros na ligação com o cartão). Terminal, com capacidades de processamento de dados (ex: terminal ATM). Nota: os CAD também podem escrever nos cartões inteligentes. • As mensagens trocadas entre o cartão e o CAD são designadas por APDU-Application Protocol Data Unit. O formato é determinado pela norma ISO 7816-4. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 19/31 Smart card–comunicação (2) • Os comandos são classificados em 3 categorias: – – – Administrativos : CREATE FILE,... Financeiros : READ BALANCE,... Criptográficos : RSA/DSA signature and verification, key generation,.. 1. Protocolo de transporte 1. T=0, orientado ao Byte (adoptado pela maioria dos cartões) 2. T=1, orientado ao bloco Funções específicas APDU APDU Cartão T=0 T=1 resposta Hospedeiro Prof RG Crespo APDU resposta resposta Processador APDU Leitor Criptografia e Segurança das Comunicações SmartCards : 20/31 Smart card–comunicação (3) 1. Comando – Cabeçalho normalizado, de 5 B • CLA – classe de instrução: indica se (i) o código é específico a fabricantes (ex: GemPlus, ...) ou organismos de normalização (ISO 7816, GlobalPlatform, ...) e (ii) se a mensagem é cifrada • INS – código de instrução (ex: leitura memória) • P1,P2 – modos endereçamento usados pela instrução • Lc – dimensão dos dados enviados ao cartão – Os dados seguem em reboque – Le – dimensão expectável dos dados a receber do cartão CLA INS P1 P2 Lc Dados Le obrigatórios Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 21/31 Smart card–comunicação (4) 2. Resposta – Cabeçalho normalizado, de 2 B • ACK – igual ao código do comando INS • NULL – Corpo opcional de dados – Reboque, de 2B • SW1,SW2 – estado do cartão depois de ter executado o comando APDU ACK NULL obrigatórios Dados SW1 SW2 obrigatórios Mais informação acessível em http://www.smartcard.co.uk/tutorials/sct-itsc.pdf Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 22/31 Smart card–comunicação (5) Exemplos para todos os cartões de memória: • Escrita de 8B no endereço 0x20 CLA INS P1 00 D6 00 P2 20 Lc Dados 08 0102030405060708 • Envio do PIN ao cartão CLA INS P1 C0 20 00 P2 01 Lc Dados 08 3030303030303030 • Resposta APDU ACK NULL 90 00 Nota: endereços indicados em “big-endian” Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 23/31 Smart card–inicialização A. O fabricante (Gemalto,Oberthur,...) entrega o cartão à empresa que contrata serviço de uso de cartões B. Conhecendo a chave mestra (“Master Set Key”), a empresa inicializa o cartão: – – – – Define políticas do PIN (dimensões mínima/máxima, caracteres permitidos, número máximo de tentativas) Liberta acesso à API criptográfica Dimensão das chaves e Geração das chaves Carregamento de applets. C. Antes de entregar ao utilizador, personaliza o cartão – Identificador do utilizador, geração de certificados. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 24/31 Smart card – estados (1) • O leitor e o cartão parte do estado Idle. Após inserção do cartão são executados os seguintes passos: 1. O leitor liga os 5Vcc, inicia o relógio (CLK) e mantém a linha RST a low. 2. Após 40 000 ciclos de relógio, o leitor passa a linha RST a high. 3. O cartão responde com ATR – “Answer To Reset”, com dados a identificar o tipo de cartão. Exemplo de identificador de cartões: Schlumberger Multiflex 3K : 3B 02 14 50 Lisboa Viva : 3B 6F 00 00 80 5A 08 06 08 20 02 00 92 37 89 73 82 90 00 Cartão de cidadão: 3B 7D 95 00 00 80 31 80 65 B0 83 11 C0 A9 83 00 90 00 Caracter inicial (3B ou 3F) Prof RG Crespo Indicador dos campos seguintes Criptografia e Segurança das Comunicações SmartCards : 25/31 Smart card – estados (2) Cartão removido Inserção cartão Power off RST Idle Prepara ATR Power Remover cartão Prepara comando Resposta Espera APDU Envia APDU Espera resposta Leitor Prof RG Crespo Envia resposta ao leitor Transfere APDU para processador Processa APDU Cartão Criptografia e Segurança das Comunicações SmartCards : 26/31 Java Card (1) • Cartões inteligentes, criados em 1996 pela Schlumberger e especificados pela Sun. – – Contêm o sistema operativo JCRE-Java Card Runtime Environment, instalado na ROM. Correm applets, carregados na EEPROM, na máquina virtual JCVM. JCVM (JC2.0) Só em JVM Tipos primitivos de dados byte, short (16 bits), boolean double, float, char Arrays Unidimensionais Multidimensionais Recuperação mem. --- Garbage collection Prog. concorrente --- Threads Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 27/31 Java Card (2) • Arquitectura Applet 1 ... Java Card API Java Card Virtual Machine • Gestão recursos • Comunicações (APDU, inter-aplicação) • Execução applets Java Card Runtime Environment SO nativo Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 28/31 Java Card (3) • A programação de um applet segue os seguintes passos: 1. 2. 3. Compilar programas .java num ambiente apropriado (ex: JDK) e testar funcionalidade num simulador Converter ficheiros .class para formato .cap Carregar os applet através do Java Card reader. Compilador JAVA Conversor JCRE JCVM Ficheiros .class Simulador JC installer Ficheiro CAP Emulador JC Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 29/31 Java Card (4) • ADPUs de instalação de uma applet – INSTALL (80 E6 xx 00 xx Manual, da GlobalPlatfrom) : inicializa e finaliza processo de instalação da applet. – LOAD (BE 24 xx xx xx Code, da Multos MDRM): carrega, byte a byte, o arquivo CAP. Nota: cada applet pode possuir um ID único, designado AID. • ADPUs de execução de uma applet – INITIALIZE UPDATE (80 50 xx xx 08 desafio, da GlobalPlatfrom) : abre canal seguro entre a applet instalada e o cliente. – EXTERNAL AUTHENTICATE (xx 82 xx xx xx dados, da ISO 7816) : autentica cliente e define modo de segurança do canal. – SELECT (00 A4 04 00 xx AID, da ISO GlobalPlatfrom) : selecciona applet. Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 30/31 Java Card (5) • Foram criadas classes em Java de implementação de serviços criptográficos – Esquemas de cifra simétrica AES e DES, assimétrica RSA. – Funções de dispersão MD5, SHA. – Gerador de números aleatórios e cifras de chaves públicas. • Para carregar os applets, a partir do Linux 1. 2. Instalar controlador de dispositivo para o leitor, ex: openSC. Instalar ambiente para carregamento dos applets, ex: gpshell. • Fabricantes de cartões JC – Gemalto – Oberthur Card Systems Prof RG Crespo Criptografia e Segurança das Comunicações SmartCards : 31/31