Cartões inteligentes
Esta página oferece dicas sobre como usar Smartcard (cartões inteligentes, também conhecidos como chip card ou integrated circuit card (ICC - cartões de circuito integrado)) no Debian.
Cartões inteligentes são usados com chaves criptográficas para garantir que seu conteúdo privado nunca está em qualquer disco rígido ou outro dispositivo de armazenamento geral, e, portanto, que não possa ser roubado (porque há apenas uma possível cópia do mesmo). A maioria das chaves físicas "dongles" também implementa um dispositivo de interface de cartão de chip (CCID) e assim pode ser usado como cartão inteligente mesmo que você nunca possa remover o smartcard do "leitor".
Contents
Visão geral
- Uma arquitetura de cartão inteligente é bastante complicada e atualmente não é possível misturar qualquer combinação aleatória de cartões e leitores de maneira plug-and-play. Todos os cartões, leitores e softwares não são intercambiáveis.
- Ao selecionar cuidadosamente a combinação certa de cartões inteligentes e leitores de cartões, um sistema totalmente funcional pode ser implementado no Debian.
Existem dois tipos principais de soluções no Debian, os cartões baseados em OpenPGP ou nas placas de estilo PKCS#11. Esta página descreve os cartões de estilo PKCS#11.
Cartões OpenPGP são um tipo especial de cartão projetados para uso com GnuPG. Para o caso de uso do GnuPG (assinanatura de e-mails), são fáceis de usar e, portanto, bastante populares - no entanto, para usar o cartão para fins gerais, como autenticação web, VPN e criptografia de disco, podem não ser satisfatórios.
No entanto, GnuPG também pode usar cartões PKCS#11 regulares com a ajuda do OpenSC e do Projeto GnuPG PKCS#11.
Os cartões inteligentes têm seu próprio software interno e sistemas operacionais. Este software raramente é software livre dentro dos princípios da Definição Debian de Software Livre - no entanto, o software no sistema Debian é completamente livre. Por definição, um smartcard é um dispositivo seguro e o software não pode ser alterado livremente. Alguns(mas) fornecedores(as) fornecem drivers binários (de código fechado) para Linux, mas nem sempre é necessário usar esses drivers. Na melhor das hipóteses, é possível construir soluções funcionais sem usar quaisquer artefatos não livres ou binários de fornecedores(as), exceto aqueles no próprio cartão.
Escolhendo algoritmos e tamanhos de chave
- RSA é o algoritmo tradicional
- Chaves menores do que 2048 bits são consideradas inseguras
- A maioria dos cartões suporta um máximo de 2048 bits
- Algumas pessoas sentem que isso não é suficiente
- A criptografia de curva elíptica (ECC - "Elliptic Curve Cryptography") é um algoritmo mais moderno
- Tamanhos de chave são mais curtos (por exemplo, ECC de 256 bits é semelhante em força à RSA de 3072 bits)
- Usa menos CPU do que RSA
- No entanto, alguns clientes antigos (por exemplo, Windows XP) não suportam
- Até mesmo aplicações modernas estão lutando para oferecer suporte; por exemplo, não está nas versões estáveis do GnuPG ou GnuPG v2.0 no Debian.
- Fornecedores(as) de cartões inteligentes estão mostrando preferências pelo suporte ao ECC em projetos futuros:
- Devido ao comprimento mais curto da chave (usa menos memória)
- Insiro mais de cima da CPU / operação mais rápida no chip no cartão
- Considerado mais seguro
- EUA NIST endossa ECC
- Consequentemente, para quem deseja RSA 4096 em cartões inteligentes, recomenda-se também considerar o uso de ECC
Para quem prefere RSA, Alguns comentários sobre o debate sobre o uso de 2048 ou 4096 bits]
Alguns cartões comuns
- Aqui estão alguns cartões comuns que estão disponíveis em lojas on-line.
Cada um tem suas particularidades - veja o OpenSC wiki (lista de hardwares suportados) para mais detalhes.
- Encontrar fornecedores(as) de cartões inteligentes em uma pesquisa na web, palavras-chave típicas para se usar são: "7816" "4096" "rsa" "smartcard"
Fornecedor(a) |
Cartão |
Bits (RSA) |
Sistema operacional do cartão |
Inicializável com OpenSC |
Compras/loja on-line |
ACS |
ACOS5-64 |
4096 |
|
|
|
Aladdin |
eToken PRO |
2048 |
JavaCard |
? |
|
Aventra |
2048 |
JavaCard |
Yes |
||
Crypto Stick |
4096 |
Yes |
|||
Feitian |
ePass2003 |
2048 |
Feitian proprietary |
||
Feitian |
FTCOS / PK-01C |
2048 |
|
Yes |
http://www.gooze.eu/feitian-pki-free-software-developer-card Free card offer |
g10 Code |
OpenPGP SmartCard V2 |
4096 |
Yes |
Floss Shop OpenPGP Card v2.1 |
|
Gemalto (formerly Schlumberger/Axalto) |
Cryptoflex (and eGate) |
|
|
|
|
Gemalto |
PIV card |
2048 |
|
|
|
Gemalto |
IDcore |
2048 |
JavaCard |
|
|
Yubico |
YubiKey NEO |
2048 |
JavaCard |
|
|
Yubico |
4096 |
JavaCard |
|
||
ZeitControl |
BasicCard |
4096 |
BasicCard |
|
Aplicações
- Autenticação
- Criptografia de dados
- Assinatura
Consulte esta lista para amostra de aplicações para Linux.
Hardware suportado
Esta lista não é exaustiva. Está aqui essencialmente para que as pessoas possam encontrá-la: não há módulos para esses dispositivos... apenas espaço de usuário(a) puro.
Interface |
ID |
Descrição |
Driver |
USB |
03F0:0824 |
HP USB Smartcard Reader |
|
USB |
03F0:1024 |
HP USB Smart Card Keyboard |
|
USB |
0416:3815 |
Winbond |
|
USB |
046a:0005 |
Cherry XX33 |
|
USB |
046a:0010 |
Cherry XX44 |
|
USB |
046a:002D |
Cherry ST1044U |
|
USB |
046a:003E |
Cherry SmartTerminal ST-2XXX |
|
USB |
046A:005B |
Cherry SmartBoard XX1X |
|
USB |
0471:040F |
Philips JCOP41V221 |
|
USB |
047B:020B |
Silitek SK-3105 |
|
USB |
04B9:1206 |
SafeNet IKey4000 |
|
USB |
04B9:1400 |
SafeNet IKey4000 |
|
USB |
04E6:5111 |
SCM SCR 331-DI |
|
USB |
04E6:5113 |
SCM SCR 333 |
|
USB |
04E6:5115 |
SCM SCR 335 |
|
USB |
04E6:5116 |
SCM SCR 3310 |
|
USB |
04E6:5117 |
SCM SCR 3320 |
|
USB |
04E6:5119 |
SCM SCR 3340 ExpressCard54 |
|
USB |
04E6:511A |
SCM SCR 3310 NTTCom |
|
USB |
04E6:511C |
Axalto Reflex USB v3 |
|
USB |
04E6:511D |
SCM SCR 3311 |
|
USB |
04E6:5120 |
SCM SCR 331-DI NTTCom |
|
USB |
04E6:5121 |
SCM SDI 010 |
|
USB |
04E6:5410 |
SCM SCR 355 |
|
USB |
04E6:E001 |
SCM SCR 331 |
|
USB |
04E6:E003 |
SCM SPR 532 |
|
USB |
0529:030b |
Aladdin Pro, eToken R1 v3.1.3.x |
|
USB |
0529:050c |
Aladdin Pro, eToken Pro v4.1.5.x |
|
USB |
0529:0514 |
Aladdin Pro, eToken Pro v4.2.5.4 |
|
USB |
058F:9520 |
Alcor Micro AU9520 |
|
USB |
067b:2303 |
Towitoko Chipdrive USB |
#libtowitoko2 broken in Debian and Ubuntu |
USB |
072F:9000 |
ACS ACR38U or ACR38T |
|
USB |
072f:90cc |
ACS ACR 38U-CCID |
|
USB |
073D:0007 |
Eutron CryptoIdentity |
|
USB |
073D:0008 |
Eutron CryptoIdentity |
|
USB |
073D:0B00 |
Eutron Digipass 860 |
|
USB |
073D:0C00 |
Eutron SIM Pocket Combo |
|
USB |
073D:0C01 |
Eutron Smart Pocket |
|
USB |
076B:1021 |
OmniKey CardMan 1021 |
|
USB |
076B:3021 |
OmniKey CardMan 3121 |
|
USB |
076B:3621 |
OmniKey CardMan 3621 |
|
USB |
076B:3821 |
OmniKey CardMan 3821 |
|
USB |
076B:4321 |
OmniKey CardMan 4321 |
|
USB |
076B:5121 |
OmniKey CardMan 5121 |
|
USB |
076B:5125 |
OmniKey CardMan 5125 |
|
USB |
076B:5321 |
OmniKey CardMan 5321 |
|
USB |
076B:6622 |
OmniKey CardMan 6121 |
|
USB |
076B:A022 |
Teo by Xiring |
|
USB |
0783:0003 |
C3PO LTC31 |
|
USB |
0783:0006 |
C3PO LTC31 |
|
USB |
0783:0007 |
C3PO TLTC2USB |
|
USB |
0783:0008 |
C3PO LTC32 USBv2 with keyboard support |
|
USB |
0783:0009 |
C3PO KBR36 |
|
USB |
0783:0010 |
C3PO LTC32 |
|
USB |
0783:9002 |
C3PO TLTC2USB |
|
USB |
08E6:0430 |
GemPC430 |
|
USB |
08E6:0432 |
GemPC432 |
|
USB |
08E6:0435 |
GemPC435 |
|
USB |
08E6:1359 |
VeriSign Secure Storage Token |
|
USB |
08E6:2202 |
Gemplus Gem e-Seal Pro |
|
USB |
08E6:3437 |
Gemplus GemPC Twin |
|
USB |
08E6:3438 |
Gemplus GemPC Key |
|
USB |
08E6:3478 |
Gemplus GemPC Pinpad |
|
USB |
08E6:3479 |
Gemplus GemCore POS Pro |
|
USB |
08E6:3480 |
Gemplus GemCore SIM Pro |
|
USB |
08E6:34EC |
Gemplus GemPC Express |
|
USB |
08E6:4433 |
Gemplus GemPC433 SL |
|
USB |
08E6:8000 |
Smart Enterprise Guardian |
|
USB |
08E6:ACE0 |
Verisign Secure Token |
|
USB |
0973:0003 |
SchlumbergerSema Cyberflex Access |
|
USB |
0982:0007 |
Covadis Alya |
|
USB |
0982:0008 |
Covadis Vega |
|
USB |
09BE:0002 |
SmartEpad |
|
USB |
09C3:0008 |
ActivCard USB Reader 2.0 |
|
USB |
09C3:0013 |
ActivCard USB Reader 3.0 |
|
USB |
09C3:0014 |
Activkey Sim |
|
USB |
0B81:0200 |
id3 CL1356D |
|
USB |
0B81:0220 |
id3 CL1356A HID |
|
USB |
0b97:7762 |
O2 Micro Oz776 |
|
USB |
0b97:7772 |
O2 Micro Oz776 |
|
USB |
0BDA:0169 |
Generic USB2.0-CRW |
|
USB |
0BDA:0161 |
MSI StarReader SMART |
|
USB |
0BDA:0165 |
Generic Smart Card Reader Interface |
|
USB |
0BDA:0169 |
Generic USB2.0-CRW |
|
USB |
0BDA:0161 |
MSI StarReader SMART |
|
USB |
0BDA:0165 |
Generic Smart Card Reader Interface |
|
USB |
0BF8:1005 |
Fujitsu Siemens SmartCard Keyboard USB 2A |
|
USB |
0BF8:1006 |
Fujitsu Siemens SmartCard USB 2A |
|
USB |
0C4B:0300 |
Reiner-SCT cyberJack pinpad(a) |
|
USB |
0D46:3001 |
KOBIL KAAN Base |
|
USB |
0D46:3002 |
KOBIL KAAN Advanced |
|
USB |
0d46:3003 |
KOBIL KAAN SIM III |
|
USB |
0d46:3010 |
KOBIL EMV CAP - SecOVID Reader III |
|
USB |
0d46:4000 |
KOBIL mIDentity |
|
USB |
0d46:4001 |
KOBIL mIDentity |
|
USB |
0DC3:1004 |
Athena ASE IIIe |
|
USB |
0DC3:1102 |
Athena ASEDrive IIIe KB |
|
USB |
0DF6:800A |
Sitecom USB simcard reader MD-010 |
|
USB |
1059:000C |
GnD CardToken 350 |
|
USB |
1059:000D |
GnD CardToken 550 |
|
USB |
15E1:2007 |
RSA SecurID |
|
USB |
17EF:1003 |
Lenovo Integrated Smart Card Reader |
|
USB |
19E7:0002 |
Charismathics token |
|
USB |
1A44:0001 |
Vasco DP905 |
|
USB |
1A74:6354 |
OCS ID-One Cosmo Card |
|
USB |
1B0E:1078 |
Blutronics Bludrive II CCID |
|
USB |
1C34:7124 |
Pro-Active CSB6 Ultimate |
|
USB |
1CF0:0001 |
Validy TokenA sl vt |
|
USB |
413c:2100 |
Dell keyboard SK-3106 |
|
USB |
413c:2101 |
Dell smart card reader keyboard |
Drivers
libccid
Um driver generico para CCID USB (Chip/Smart Card Interface Devices) driver e ICCD (Integrated Circuit(s) Card Devices). Consulte as especificações do CCID USB e ICCD no grupo de trabalho USB.
Pacote: libccid
gnupg-ccid
GnuPG tem seu próprio driver CCID que comunica diretamente o leitor por libusb. Suporta apenas leitores que têm capacidade de configuração automática.
Consulte GnuPG/CCID_Driver para obter detalhes.
Observe que o GnuPG também suporta leitores através do PC/SC-lite.
Advanced Card Systems
Pacote: libacr38u
Leitores de cartão inteligente ACS USB CCID
Pacote: libacsccid1
Athena SCS (Smartcard Solutions)
Pacote: libasedrive-usb
AKS - Aladdin Knowledge Systems
Pacote: libetoken
Gemplus SA
Pacote: libgempc430
Towitoko GMBH
Pacote: libtowitoko2
Extensão MuscleCard Applet
Aladdin eToken PRO
Dispositivos não suportados
Apenas os dispositivos suportados estão listados acima (porque o status de tais dispositivos pode mudar rapidamente).
Exceção: alguns fornecedores(as) estão vendendo vários dispositivos de hardware diferentes sob o mesmo nome do produto (!). Nesse caso, nós tentamos listar essas versões não suportadas com a tag #not-supported.
