SIM-Karte als sicherer Speicher mit AVR verwendet

Ich möchte eine normale SIM-Karte verwenden, um einen AES-Schlüssel zu speichern, der von einem AVR-Mikrocontroller verwendet werden soll. Ich denke, dass eine SIM-Karte sicher genug ist (oder?).

Mein Problem ist, dass ich nichts über die Verbindung einer SIM-Karte mit Arduino (für das Prototyping) als sicheren Speicher und nicht als GSM finden kann. Muss ich ein benutzerdefiniertes Betriebssystem auf die SIM-Karte flashen? Oder sollte ich einfach eine gewöhnliche Smartcard kaufen und sie einfach auf SIM-Kartenmaße zuschneiden?

Was ist falsch an den Sicherheitslösungen von Atmel ?
Ich habe mir das AES CryptoAuthentication-Modul angesehen und es ist nicht für mich bestimmt. Es handelt sich um eine reguläre AES-Implementierung. Um sicher genug zu sein, ist ein zufälliger Schlüssel erforderlich, und ich möchte den zufälligen Schlüssel, der in meiner AES-Anwendung verwendet wird, irgendwo speichern
Warum nicht den Schlüssel im AVR speichern? Es ist wahrscheinlich nicht 100 % sicher, aber es ist nicht weniger sicher als das Lesen eines Schlüssels von etwas anderem über Kabel, die ausspioniert werden können. Selbst wenn Sie den Schlüssel verschlüsseln, während er die Leitung durchquert, muss sich der zu entschlüsselnde Schlüssel auf dem AVR befinden und hängt daher von seinem Sicherheitsmechanismus ab.
Es muss eine Möglichkeit der Authentifizierung geben. Wenn ich eine PIN benötige, ist diese sicher. Auch das EEPROM ist sehr gut lesbar, oder?
Interessantes Projekt; Ich würde damit beginnen, die 3GPP-Dokumente zu lesen, die die SIM-Kartenschnittstelle spezifizieren.
3gpp ist Kommunikationsstandard, nicht das, wonach ich suche ... danke
@ChrisStratton: Ich denke, alle sind sich einig, dass das Senden eines Schlüssels über ein Kabel weniger sicher ist als das Aufbewahren eines Schlüssels in einem Chip. Ich denke, Sie übersehen, dass SIM-Karten so konzipiert sind, dass sie einen eindeutigen Schlüssel speichern, der die SIM-Karte nie verlässt - das Telefon übergibt Daten an die SIM-Karte, die SIM-Karte verwendet ihren internen Schlüssel zum Signieren der Daten und die SIM-Karte wird weitergegeben die signierten Daten zurück zum Telefon.
@ChrisStratton: Während das Speichern eines Schlüssels im AVR eine gute Idee ist und möglicherweise besser ist als eine SIM-Karte für die Anwendung von ttouch, scheint es mir wahrscheinlich, dass eine typische Person, die AVR-Firmware schreibt, mehr Sicherheitsfehler in ihrem Code hat als eine typische Person, die schreibt SIM-Firmware und daher Key-in-AVR sind wahrscheinlich weniger sicher als Key-in-SIM.
@Davidcary - Die Verwendung der SIM-Karte als Verschlüsselungs-Engine ist eine interessante Idee, die sich jedoch etwas vom Wortlaut der Frage unterscheidet. Ich denke, meine Sorge wäre, dass der Schlüssel zwar möglicherweise sicherer sein könnte, aber jeder Klartext oder jede Nachricht, die zur Verschlüsselung oder Signierung an die SIM-Karte übertragen wird, wahrscheinlich während der Übertragung mit einem 20-Dollar-Logikanalysator wiederhergestellt oder durch einen 5-Dollar-Mikrocontroller ersetzt werden kann. Die Tatsache, dass der Schlüssel möglicherweise unwiederbringlich ist, ist daher kein großer Vorteil, es sei denn, Sie befürchten einen Angreifer, der nur die Anmeldeinformationen eines Geräts kopieren möchte, das er dann zurückgibt.

Antworten (1)

wörtliche Antwort

Der "SIM Reader" und ein paar Drähte scheinen die gesamte Hardware zu sein, die benötigt wird, um eine SIM-Karte mit einem Arduino zu verbinden. Es scheint einige Python-Skripte zu geben, die dafür ausgelegt sind, über eine serielle Schnittstelle mit ihm zu kommunizieren. Vielleicht finden Sie es nicht allzu schwierig, etwas (C++) zu übersetzen, das auf einem Arduino läuft.

Oder soll ich einfach eine gewöhnliche Chipkarte kaufen ...?

"Eine SIM-Karte ist eine Smartcard." --Thomas Pornin. "Gibt es kryptografisches Material auf der SIM-Karte eines Telefons, das mit RSA-Verschlüsselung verwendet werden kann?"

Die meisten SIM-Karten haben heute "Anwendungen", die auf der kleinen CPU in der SIM-Karte laufen, die im Flash der SIM-Karte gespeichert ist. -- "Eine kurze Einführung in die SIM-Karten"

allgemeinere Antwort

Unabhängig davon, auf welchem ​​​​Chip die Krypto-Software läuft, scheint es besser zu sein, den Schlüssel auf demselben Chip zu generieren und aufzubewahren.

Es scheint einfacher zu sein, Software zu schreiben, die eine Public-Key-Verschlüsselung implementiert, um auf einem AVR zu laufen, als auf einer Smartcard. Wenn Sie die Krypto auf dem AVR-Chip ausführen, ist es besser, den sicheren Schlüssel im AVR-Chip aufzubewahren, anstatt zu versuchen, ihn extern zu speichern.

Die Verschlüsselung mit öffentlichem Schlüssel (kombiniert mit symmetrischer Verschlüsselung wie AES) scheint allgemein nützlicher zu sein als jedes symmetrische Verschlüsselungssystem allein. Es hört sich so an, als ob Sie an „Pico: Keine Passwörter mehr!“ interessiert sein könnten. System; siehe auch das frühe "Pico: No More Passwords!" Video.