29
Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008- 1

Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

Embed Size (px)

Citation preview

Page 1: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

Smart CardJonas Cella,

Vinicius Dal Bó Abella

Programação de Periféricos – PUCRS/FACIN 2008-1

Page 2: Smart Card Jonas 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.

Page 3: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 4: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 5: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 6: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 7: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 8: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 9: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 10: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 11: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 12: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 13: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 14: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 15: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 16: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 17: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

Smart Cards Microprocessados

Page 18: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 19: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 20: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 21: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 22: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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.

Page 23: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

I2C

Page 24: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

I2C

Page 25: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

I2C

Page 26: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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

}

Page 27: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

I2C

Page 28: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

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;

}

Page 29: Smart Card Jonas Cella, Vinicius Dal Bó Abella Programação de Periféricos – PUCRS/FACIN 2008-1

I2C