Upload
internet
View
105
Download
1
Embed Size (px)
Citation preview
Smart CardJonas Cella,
Vinicius Dal Bó Abella
Programação de Periféricos – PUCRS/FACIN 2008-1
História dos Smart Cards
• Teve inicio com o surgimento da tecnologia de fabricação de chips, nos últimos 40 anos.
• Os cartões evoluíram dos cartões de códigos de barras, tarja magnética, até chegar nos ICCs (integrated circuit cards).
• Em 1974 os ICCs foram patenteados, e generalizadamente intitulados Smart Cards.
Tipos de Smart Cards
• Embora possam ser classificados de diversas formas quanto a forma ou tamanho, existem duas classes principais de Smart Cards.
– Por contato físico.
– Sem contato físico.
Smart Card – Por contato físico
• O cartão é inserido em uma leitora, onde os contados dos terminais do cartão com os da leitora permitem a troca de dados entre ambos.
• Na figura ao lado um cartão de contato físico.
Smart Card – Por contato físico
• Por serem mais baratos, os cartões por contato são ainda os mais utilizados.
• Oferecem um nível razoável de segurança e uma vasta gama de aplicações.
• Podem ser chamados também de Memory Cards ou Cartões de Memória.
Smart Card – Sem contato físico
• Não necessitam de contato físico com a leitora. A transferência de dados é feita por ondas eletromagnéticas.
• A ausência de contado prolonga a vida útil do cartão e aumenta a velocidade de transferência.
Smart Card – Sem contato físico
• Também podem ser chamados de Microprocessor Card ou Cartões Microprocessados.
• Apesar de ser microprocessado, pode ser usado apenas como o portador de um chip de identificação em pulseiras, relógios, anéis, etc. Mas não por isso perdendo o conceito de Smart Card.
Características – Custo
• Faixa de preço vária entre US$ 2,00 e US$ 10,00.
• O custo aumenta a medida que a capacidade de armazenamento e processamento aumentam, porém diminuem conforme maior for o volume de produção.
Características - Fabricação
• Os cartões podem ser feitos de PVC (PolyVinyl Choride) ou em ABS (Acrylonitrile Butadiene Styrene).
• Em PVC é possível criar formas em alto relevo, porem não é reciclável.
• O ABS não é modelável em alto relevo, mas é um composto reciclável.
Características - Confiabilidade
• Para cartões por contato são garantidos 10.000 ciclos de leitura/escrita.
• Os cartões devem atender as especificações da ISO (International Standards Organization).
• Passam por testes como: torção, flexibilidade, desgaste, eletricidade estática, campo magnético entre outros.
Características - Armazenamento
• A grande maioria dos Smart Cards utiliza memórias EEPROM (Electrically Erasable Programmable Read-Only Memory).
• Possuem 8K – 128Kbit de memória, porém pode ser expandida significativamente devidos as modernas técnicas de compressão.
• 1Kbit armazena em torno de 128 caracteres.
Características - Processamento
• Cartões antigos usavam um micro-controlador de 8-bits com clock de 16MHz.
• Cartões modernos usam um micro-controlados RISC de 32-bits rodando com clock de 25 a 32MHz.
• Cartões modernos podem possuir ainda um co-processador dedicado para criptografia.
Características - Segurança
• As informações armazenadas no chip são difíceis de serem copiadas ou alteradas, ao contrário do que acontece com cartões de tarja magnética que podem ser facilmente clonados.
• O micro-processador e o co-processador do chip suportam criptografia, autenticação e assinatura digital a fim de impedir a cópia ou alteração de dados.
Smart Cards Microprocessados
• Possui os elementos principais de um computador, CPU, memórias, e IO.
• Possuem um sistema operacional gravado no cartão, que permite a comunicação com a leitora.
• Smart Cards Microprocessados podem conter máquinas virtuais embarcadas.
Smart Cards Microprocessados
• Possui um sistema com 3 memórias. ROM, EEPROM e RAM.
– Na ROM é armazenado o sistema operacional.
– Na EEPROM é armazenado os dados dos aplicativos, ou seja, ela pode ser lida ou escrita.
– A RAM por ser escassa, é usada tanto pela aplicação quanto por rotinas do sistema operacional.
Smart Cards Microprocessados
• Antigamente era usado um processador de 8-bits, tipicamente utilizando um conjunto de instruções dos chips Motorola 6805 ou Intel 8051.
• Atualmente isso é feito com um processador RISC de 32 bits.
• Alguns fabricantes implementam instruções próprias para uso específico.
Smart Cards Microprocessados
Smart Cards Microprocessados
• O processo de criptografia exige cada vez mais processamento da CPU.
• Um processo de decriptação RSA 1024 bits, por exemplo, pode demorar até 10 segundos.
• Alguns fabricantes adicionam co-processadores afim de agilizar essa tarefa.
Smart Cards Microprocessados
• O canal de entrada e saída do Smart Card é serial e unidirecional, ou seja, os bits são mandados/recebidos um a um em um único sentido.
• Esta comunicação pode ser feita via protocolo I2C.
• O Hardware do Smart Card permite velocidades de até 115.200 bps.
Aplicações
• Serviços financeiros: impede a clonagem.
• Telefonia celular: chips de celulares.
• Serviços de TV a cabo: evitar fraudes disponibilizando uma identificação à cada usuário.
• Controle de acesso (segurança): assinatura digital para acesso à recursos.
Smart Cards - I2C• O protocolo I2C, desenvolvido pela Philips, tem
como objetivo interfacear a comunicação entre unidades micro-controladoras e circuitos integrados que desempenham as mais diversas funções.
• É um protocolo a dois fios (clock e dados), e é bidirecional.
• A taxa de transmissão pode chegar a até 100Kbits/s.
I2C
• Ao lado pode ser vista a pinagem de um circuito de I2C.– A0...A1 – bits de
endereço.– A2 – 0 p/write 1 p/read.– Vss – Gnd.– Vcc – 5V– WP – write protect.– SCL – clock I2C.– SDA – Dados I2C.
I2C
I2C
I2C
I2C
• Função em C para a escrita em uma posição definida.
char smart_write(unsigned char pos, unsigned char conteudo){
I2CSTART(); //inicialiaza o barramentowr_i2c(0xa0); //coloca slave e bit de escrita no buswr_i2c(pos); //posicao da memoria a ser escritawr_i2c(conteudo);//conteudo a ser escritoI2CSTOP(); //encerra o busespera(10); //tempo para digestao
}
I2C
I2C
• Função em C para a leitura em uma posição definida.
char smart_read(char pos){
unsigned char num=0;I2CSTART(); //inicializa o buswr_i2c(0xA0); //escreve slave com escritawr_i2c(pos); //posicao a ser escritaI2CSTART(); //re-startwr_i2c(0xa1); //slave e bit leituranum=rd_i2c(1); //le o dadoI2CSTOP(); //para o busreturn num;
}
I2C