So funktionieren Smartcards. Wenn Sie einen USB-Stick möchten, wissen Sie, wo Sie ihn finden.
Smartcards sind auf Sicherheit ausgelegt. Sie sind manipulationssicher . Sie sollen Geheimnisse speichern und Selbstmord begehen, anstatt ihre Geheimnisse preiszugeben. Sie können die Daten nicht (mit angemessenem Aufwand, außer bei Implementierungsfehlern) daraus extrahieren oder klonen.
Smartcards sind (sollen) so konzipiert, dass Sie dies nicht können, wenn Sie versuchen, die Softwareschnittstelle zu umgehen und ihren Speicher direkt zu lesen. Die einzigen externen Schnittstellen sind Strom- und serielle Leitungen. Alles andere befindet sich in einem Faradayschen Käfig (um Emissionsmessungen entgegenzuwirken), der durch eine Schicht ätzender Chemikalien (Säuren, glaube ich) geschützt ist. Wenn Sie also versuchen, ein Loch in die Schutzschicht zu bohren, wird der Chip (insbesondere der Speicher) bis zur Wiederherstellung beschädigt werden.
Der Chip ist so konstruiert, dass er konstante Leistung verbraucht , um zu vermeiden , dass Informationen durch den Stromverbrauch verloren gehen . Es wurde auch so entwickelt, dass der Betrieb eine konstante Zeit in Anspruch nimmt. Smartcard-Chips verfügen also nicht über Hardwareoptimierungen wie Anweisungspipelines oder Energieverwaltung, um die Wärmeableitung zu reduzieren. Smartcard-Chips enthalten häufig Teile, die eigentlich keinen Zweck erfüllen, um die Analyse von Emissionen und Stromverbrauch konstanter oder schwieriger zu machen und das Reverse Engineering zu erschweren.
Eine Reihe von Dingen macht Smartcards langsamer als nicht sicherheitsrelevante Chips. Da Smartcards kein eigenes Netzteil haben, müssen sie ziemlich oft in den Flash-Speicher schreiben - sie können es sich nicht leisten, Dinge im RAM zwischenzuspeichern. Andernfalls könnte der Gegner die Stromversorgung zu für ihn vorteilhaften Zeiten unterbrechen. Software muss zeitkonstante Algorithmen verwenden (um Timing-Angriffe zu vermeiden ), nicht den schnellstmöglichen Algorithmus. Software muss mit Redundanzen geschrieben werden, falls der Gegner einen Laser auf die Karte richtet, um einige Bits im Speicher umzudrehen und die Software in einen Zustand zu versetzen, der nicht erreichbar sein sollte (ja, das ist ein echter Angriff).
Sicherheitsmaßnahmen wie diese sind kostenpflichtig. Da sich die Angriffe weiter verbessern, muss das Design der Chips mithalten. Die meisten Arten von Chips werden nach dem Gesetz von Moore immer leistungsfähiger, aber bei Smartcards werden die technischen Verbesserungen hauptsächlich durch die Notwendigkeit absorbiert, neuen Angriffen entgegenzuwirken.
Es gibt Karten, die 4k RSA-Schlüssel unterstützen. Aber sie sind ungewöhnlich. Vor einigen Jahren wurde Java Card 3 eingeführt, um fast alle Funktionen der Java-Sprache zu unterstützen. Ich denke, eine Karte, die dazu in der Lage ist, kann mit 4k RSA signieren. Aber sie haben es nicht wirklich geschafft, teils weil technische Verbesserungen durch zunehmenden Sicherheitsschutz aufgegriffen werden, und teils weil viele technische Verbesserungen in kontaktlose Karten gesteckt wurden, die weniger Stromverbrauch und schnellere Reaktionszeiten erfordern.
Aber es gibt nicht viel Markt für 4k RSA. Als Smartcards diesen Punkt erreichten, wurde ECC allgemein verfügbar. Sie können dieselbe Sicherheitsstufe wie 4k RSA mit viel kleineren ECC-Schlüsseln erhalten. Der einzige Nachteil beim Wechsel von RSA zu ECC ist die Unterstützung des Algorithmus in Ihrer gesamten Infrastruktur, aber eingebettete Geräte wie Smartcards sind der schwierigste Teil: Heutzutage unterstützt so ziemlich alles, was serverseitig ist, ECC.
Wenn Sie wirklich etwas Stärkeres benötigen, gibt es USB-Dongles mit „echter“ Rechenleistung, die kryptografische Schlüssel speichern und kryptografische Operationen mit einer PKCS # 11-Schnittstelle ausführen können. Diese Dongles haben nicht annähernd die gleiche physische Manipulationsbeständigkeit wie ein typisches PKCS # 11. Es ist ein Kompromiss zwischen Sicherheit und Leistung.
Weiterführende Literatur: