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
Download

Acetatos