Criptografia e Segurança das
Comunicações
Comunicações
Cartões inteligentes
SmartCards : 1/31 Prof RG Crespo Criptografia e Segurança das Comunicações
Curiosidade, não faz parte da avaliação
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
Antena Chip
automóveis e pagamento automático
de combustíveis.
• Pode ser inserido numa folha ou na
chave de um veículo.
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). – 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.
SmartCards : 3/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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.
– 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).
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 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.
SmartCards : 5/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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.
polinómio conectivo x +x +x +x +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 Crypographically-Enabled RFID Device, 14thUsenix Security Symposium]
– IV do LFSR programado pela empresa, conhecido apenas pela empresa e pelo DST.
DST (6)
desafio/resposta
…
SmartCards : 7/31 Prof RG Crespo Criptografia e Segurança das Comunicações
LFSR
f1 f2…
f16 f17 f18 f19 f20 f21 matrizes encaminhamentoDST (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)
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.
24 bits inferiores.
• Simulador, implementado com 16 FPGAs em paralelo
(custo $1500) a 100 MHz, detecta IV em 40 minutos.
SmartCards : 9/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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).
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
Mifare (2)
• Debilidades levaram
NXP a colaborar
com a equipa que
quebrou para
SmartCards : 11/31 Prof RG Crespo Criptografia e Segurança das Comunicações
quebrou para
desenvolver o
MIFARE Plus.
– Baseado no AES – Menos inseguro
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). (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.
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).
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.ask-rfid.com –seleccionado para passes Lisboa Viva, Andante
(metro Porto) e Metro de Lisboa.
SmartCards : 13/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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.
– RAM 256B-1KB.
– EEPROM 1-24 KB, pode ser lido/escrito até 105vezes (armazém de
applets e chaves de cifra).
I/O
CLK IOCPU
RST VCCROM
RAM
EEPROM
VPP Um dos motivos para necessidade de renovação ao fim de 5 anos!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
SmartCards : 15/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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. • Folhas contêm dados, designadas por EF-ficheiros elementares.
00.02 00.11 01.00
02.01 02.02 02.03 02.04
Ficheiro mestre (único)
3f.00
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.
SmartCards : 17/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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
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, 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.
SmartCards : 19/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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. Protocolo de transporte
1. T=0, orientado ao Byte (adoptado pela maioria dos cartões) 2. T=1, orientado ao bloco Hospedeiro Leitor APDU resposta
Cartão
APDU resposta T=0 T=1 APDU resposta Processador APDU Funções específicasSmart 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) • 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
SmartCards : 21/31 Prof RG Crespo Criptografia e Segurança das Comunicações
obrigatórios
CLA INS P1 P2 Lc Dados Le
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 – Corpo opcional de dados – Reboque, de 2B
• SW1,SW2– estado do cartão depois de ter executado o comando APDU
Mais informação acessível em
http://www.smartcard.co.uk/tutorials/sct-itsc.pdf
ACK NULL Dados
obrigatórios
SW1 SW2
Smart card–comunicação (5)
Exemplos para todos os cartões de memória:
• Escrita de 8B no endereço 0x20
CLA INS P1 P2 Lc Dados
00 D6 00 20 08 0102030405060708
SmartCards : 23/31 Prof RG Crespo Criptografia e Segurança das Comunicações
00 D6 00 20 08 0102030405060708
Nota
: endereços indicados em “big-endian”
• Envio do PIN ao cartão
CLA INS P1 P2 Lc Dados
C0 20 00 01 08 3030303030303030
• Resposta APDU
ACK NULL
90 00
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
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
SmartCards : 25/31 Prof RG Crespo Criptografia e Segurança das Comunicações
Caracter inicial (3B ou 3F)
Indicador dos campos seguintes
Smart card – estados (2)
Idle Cartão removido Power Inserção cartão Power off Prepara ATR RST Power Prepara comando Remover cartão Espera resposta Envia APDU Resposta
Leitor
Espera APDU Processa APDU Transfere APDU para processador Envia resposta ao leitorCartão
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 – Correm applets, carregados na EEPROM, na máquina virtual
JCVM.
SmartCards : 27/31 Prof RG Crespo Criptografia e Segurança das Comunicações
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
Java Card (2)
• Arquitectura
Applet
1
...
•Gestão recursosSO nativo
Java Card Virtual Machine
Java Card API
1
•Gestão recursos•Comunicações (APDU, inter-aplicação) •Execução applets
Java Card (3)
• A programação de um applet segue os seguintes passos:
1. Compilar programas .java num ambiente apropriado (ex: JDK) e testar funcionalidade num simulador
2. Converter ficheiros .class para formato .cap 3. Carregar os applet através do Java Card reader. 3. Carregar os applet através do Java Card reader.
SmartCards : 29/31 Prof RG Crespo Criptografia e Segurança das Comunicações
Ficheiros .class
JCRE
JCVM Ficheiro CAP Compilador JAVA Conversor installer Simulador JC Emulador JCJava 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) :
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. – Gerador de números aleatórios e cifras de chaves públicas.
• Para carregar os applets, a partir do Linux
1. Instalar controlador de dispositivo para o leitor, ex: openSC. 2. Instalar ambiente para carregamento dos applets, ex: gpshell.
• Fabricantes de cartões JC
– Gemalto
– Oberthur Card Systems
SmartCards : 31/31 Prof RG Crespo Criptografia e Segurança das Comunicações