É assim que os cartões inteligentes funcionam. Se você quer um pendrive, sabe onde encontrá-lo.
Os cartões inteligentes são projetados para segurança. Eles são projetados para serem resistentes a violações . Eles são projetados para armazenar segredos e cometer suicídio, em vez de desistir de seus segredos. Você não pode (com esforço razoável, exceto falhas de implementação) extrair os dados ou cloná-los.
Os cartões inteligentes são (deveriam ser) projetados para que, se você tentar ignorar a interface do software e ler a memória diretamente, não possa. As únicas interfaces externas são as linhas de energia e serial. Todo o resto está dentro de uma gaiola de Faraday (para combater as medições de emissões) que é protegida por uma camada de produtos químicos corrosivos (ácidos, acho) para que, se você tentar fazer um buraco na camada de proteção, o chip (especialmente a memória) danificado além da recuperação.
O chip é projetado para consumir energia constante, para evitar vazamento de informações através do consumo de energia . Também foi projetado para permitir que as operações levem tempo constante. Portanto, os chips de cartão inteligente não têm otimizações de hardware, como pipelines de instruções ou gerenciamento de energia para reduzir a dissipação de calor. Os chips de cartão inteligente geralmente contêm peças que não servem a nenhum propósito, para tornar as emissões e a energia mais constantes ou mais difíceis de analisar, além de dificultar a engenharia reversa.
Várias coisas tornam os cartões inteligentes mais lentos que os chips não sensíveis à segurança. Como os cartões inteligentes não têm sua própria fonte de alimentação, eles precisam gravar na memória flash com bastante frequência - eles não podem se dar ao luxo de armazenar em cache coisas na RAM. Caso contrário, o adversário poderia cortar o poder em momentos vantajosos (para ele). O software precisa usar algoritmos de tempo constante (para evitar ataques de tempo ), não o algoritmo mais rápido possível. O software deve ser escrito com redundâncias, caso o adversário mostre um laser no cartão para inverter alguns bits da memória e colocar o software em um estado que não deveria ser alcançável (sim, isso é um ataque real).
Medidas de segurança como essas têm um custo. Além disso, como os ataques continuam melhorando, o design dos chips precisa acompanhar. A maioria dos tipos de chips se torna cada vez mais poderosa de acordo com a lei de Moore, mas com os cartões inteligentes, as melhorias de engenharia são absorvidas principalmente pela necessidade de combater novos ataques.
Não são cartões que suportam 4k chaves RSA. Mas eles são incomuns. Alguns anos atrás, o Java Card 3 foi introduzido para suportar quase todos os recursos da linguagem Java; Eu acho que um cartão capaz de fazer isso seria capaz de assinar com 4k RSA. Mas eles realmente não aceitaram, em parte porque as melhorias de engenharia são retomadas pelo aumento das proteções de segurança e em parte porque muitas melhorias de engenharia foram inseridas em cartões sem contato, que exigem menos consumo de energia e tempos de resposta mais rápidos.
Mas não há muito mercado para RSA 4k. À medida que os cartões inteligentes chegavam a esse ponto, o ECC tornou-se amplamente disponível. Você pode obter o mesmo nível de segurança que o RSA de 4k com chaves ECC muito menores. A única desvantagem da mudança do RSA para o ECC é o suporte ao algoritmo em toda a sua infraestrutura, mas dispositivos incorporados, como cartões inteligentes, são a parte mais difícil: praticamente qualquer coisa que o servidor suporte ao ECC atualmente.
Se você realmente precisa de algo mais poderoso, existem dongles USB com poder de computação "real", que podem armazenar chaves criptográficas e executar operações criptográficas com uma interface PKCS # 11. Esses dongles não têm quase a mesma resistência física à violação de um PKCS típico nº 11. É um compromisso entre segurança e desempenho.
Leitura adicional: