SIM/Smart Cards no Linux

Há algumas semanas, no IV Natal Java Day, assisti a excelente palestra “Java e a próxima geração de smart cards” do Igor Medeiros e me impressionei. Já tinha ouvido falar que os smartcards eram computadores completos mas nem dei muita bola, até que, com ele falando isso, me toquei do quão impressionante era. Sabe aquela parte metálica dourada de um chip GSM, ou no cartão do banco? Pois é, AQUILO é um computador, com CPU, memória e tudo mais.

Fiquei encucado e resolvi comprar um leitor para brincar um pouco. Procurando pelo São Google, encontrei um na loja da Brando que me interessou:

iMONO 43 in 1 + Sim + Smart Card Reader

iMONO 43 in 1 + Sim + Smart Card Reader

43 cartões, além de ler SIM e Smart Card (que eu saiba, a única diferença é no formato (um SIM acho que todo mundo conhece (o chip de celular), e o Smart Card é um cartão como de banco)) por US$ 19 com frete grátis. O dólar subiu bastante nos últimos meses mas, mesmo assim, é tentador. Comprei. Umas 3 semanas depois, chega o pacote vindo de Hong Kong, sem imposto, custando pouco mais de R$ 42, ótimo!

Conectei ele no notebook e coloquei o chip do meu celular para testar (esqueci do pequeno detalhe que teria que comprar um smart card), nada… procurando no Google, encontrei diversos sites ensinando mas nenhum falando do meu leitor. Então entrei na lista do MUSCLE (Movement for the Use of Smart Cards in a Linux Environment) e enviei um e-mail perguntando. Poucas horas depois, o próprio cara que fez a maioria dos softwares/drivers de smart cards pra linux, Ludovic Rousseau, me respondeu.

A solução foi extremamente simples. Pelos logs que passei, ele chutou (e acertou) que meu leitor era compatível com o USB CCID (Chip/Smart Card Interface Devices) e me pediu que fosse nesse site e seguisse as instruções para pegar mais informações dele. Fui e, no final, eu só precisaria compilar o driver libccid que baixei neste site e modificar o arquivo ccid/readers/supported_readers.txt adicionando a linha 0x0BDA:0×0169:iMONO no final. Resolvido.

Para testar, segui as instruções desta página para instalar o MonoSIM, um leitor simples da agenda de SIM cards, e tudo ocorreu sem problemas. No final, o Ludovic adicionou o meu leitor na página dele como “Should work but untested by me”, uma pequena contribuição para quem comprar o mesmo leitor :-)

Agora, comprar um smart card em branco e ver o que consigo fazer.

Posts relacionados:

  1. Fazendo um benchmark do HD no GNU/Linux (ou ext3 VS ext4)
  2. Blog de cara nova
  3. Instalando extensões para a SDL – Linux
  4. Configurando a SDL – Linux
  5. Comprimindo o diretório /usr (Ou como instalar o Ubuntu 10.04 em menos de 1.5 GB)

12 comments ↓

#1 Rodrigo on 01.02.09 at 10:49 pm

O que vc quer fazer?

#2 Vagner Fonseca on 01.03.09 at 6:52 am

Só uma correção a o endereço da loja é usb.brando.com.hk e não .uk como está no link.
Já encomendei o meu e estou ansioso para começar a testar.
ótimo artigo.

#3 jean on 01.03.09 at 12:04 pm

Eu tenho um dell precision M4400 e ele vem com 2 leitores de cartões smart card (um para cartões tradicionais e outro para cartões sem contato). Será que é possível configurar esses leitores para funcionarem no linux?

No windows, eles funcionam integrados ao WAVE Trusted Platform, e servem para conceder acesso ao computador ou não.

#4 Dorival on 01.03.09 at 12:55 pm

Excelente dica; as aplicações em segurança são ilimitadas.
Ah, o link p/ a loja está apontando p/ .uk e deveria ser p/ .hk…

#5 Vítor Baptista on 01.03.09 at 5:02 pm

@Vagner, @Dorival
Obrigado, corrigido o link.

@Jean
Cara, eu acho bem provável que funcione, ao menos o que não é contactless. Tenta usar os drivers que tão lá no site do MUSCLE (existem pacotes já pro Ubuntu, o pcsc-tools, pcscd e, no caso do meu leitor, o driver libccid), depois executa o pcsc_scan, que vai dizer se encontrou ou não um leitor. Se não funcionar, entra na lista da MUSCLE e pergunta por lá, o Ludovic é extremamente prestativo.

Abraços.

#6 Vítor Baptista on 01.03.09 at 5:05 pm

@Rodrigo
Ainda não sei ao certo, estou só brincando com uma tecnologia nova (para mim).

#7 Eduardo Franco on 01.05.09 at 12:32 am

Amigo, uma pergunta:

Esse site Brando é de confiança? Achei vários itens bem interessantes!!!!

Abração e gostei do blog!

#8 Vítor Baptista on 01.05.09 at 11:00 am

Eduardo,

Eu conheço o site há tempos, é uma empresa antiga, e comprei o leitor que chegou sem problema algum. Eu compraria sem medo, mas não tive muitas experiências com ela para dizer que é de confiança total.

Abraços.

#9 Juliano on 03.31.09 at 11:36 pm

Olá Vitor,
tenho interesse de trabalhar com Java Card na minha monografia.
Pode me enviar um email para me dar umas dicas sobre o Reader e possívelmente sobre um Writer?
:)

#10 Vítor Baptista on 04.01.09 at 3:53 pm

Juliano,

Não tive experiências com Java Cards com esse leitor, por isso não posso nem te dizer se ele suporta. Eu recomendaria que você falasse com o Igor Medeiros que é bem mais experiente que eu.

Abraços,

#11 Ivani on 06.22.09 at 10:11 pm

Vitor, em primeiro lugar, parabens pelo artigo!
Estou buscando uma solucao de conexao ssh usando smart card. Voce ja usou ou viu alguem usar essa solucao?

Abracos e obrigada!

#12 Rafael on 06.04.10 at 9:12 pm

Poxa a primeira coisa que pensei na hora que li o artigo foi em ssh com smart card…
Uma area de TI que nao basta o login e sim o smart card para dar o acesso completo para manutenção ao servidor.

Leave a Comment