Forum: Mikrocontroller und Digitale Elektronik Public Key Cryptography mit Mikrocontroller?


von Rolf F. (Gast)


Lesenswert?

Zum Flashen, in's EEPROM schreiben und zum Testen brauche ich einige
Befehle die ich einem MC über eine serielle Verbindung mitteile, die
aber für Anwender nicht verfügbar sein sollen und auch mit Packet
Sniffing nicht nachvollziebar sein sollen. Deshalb suche ich Public Key
Cryptography für MCs, also sowas wie SSH, aber für maximal 10 kB Flash
und maximal 512 Byte RAM.
Wo kann man sowas downloaden?

von Don (Gast)


Lesenswert?

Im Internet.

von Unbekannter (Gast)


Lesenswert?

Dafür brauchst Du kein PK-System. Ein einfaches symmetrisches reicht. Du
musst nur den Key geheim halten. Und der ist ja im Controller-Flash
gespeichert. Das Flash ist doch Lock-Bits etc. geschützt.

Algorithmen gibt es viele...

von Christoph _. (chris)


Lesenswert?

Und in der Software liegt der gleiche Key, wodurch dieser Schutz mit
genügend krimineller Energie vermutlich verhältnismäßig schnell
ausgehebelt wäre. Eine asymmetrische Verschlüsselung dürfte aber
dagegen auch nur bedingt helfen, da der public-Key eben (wie der Name
schon sagt) öffentlich sein muss. Effektiv wäre eine asymmetrische
Verschlüsselung evtl. gegen reverse engineering der zu flashenden
Daten, wenn sie nur mit dem private-Key des Controllers entschlüsselbar
sind.

Wir hatten vor einigen Wochen einen Thread über asymmetrische
Verschlüsselung auf Mikrocontrollern, wenn ich mich nicht irre.
Vielleicht ging es da aber auch nur um symmetrische. Ich meine auf
jeden Fall, dass eine Verschlüsselung, besonders eine asymmetrische (wo
ja mit Zahlen mit >1000 Binärstellen gerechnet werden muss), hohe
Anforderungen an nicht spezialisierte µC stellt und auf langsameren
Modellen kaum möglich ist. 512 Bytes RAM sind IMHO zu wenig für eine
einigermaßen sichere asymmetrische Verschlüsselung.

Ich gehe mal davon aus, dass du dir schon genau überlegt hast, wieso du
überhaupt eine Verschlüsselung brauchst. Ich möchte hier nur mal am
Rande erwähnen, dass man z.B. ohne weiteres ein selbsterstelltes oder
verändertes (solange Prüfsummen u.ä. stimmen) BIOS auf normale
PC-Mainboards flashen und das aktuelle auslesen kann.

Es geht dennoch nichts über gut dokumentierte und standardisierte
Schnittstellen. :-)

von A.K. (Gast)


Lesenswert?

Public Key hat einen klaren Vorteil aufgrund der asymmetrischen
Verschlüsselung. Zwar muss das PC-Programm den öffentlichen Schlüssel
vom µC kennen, aber den kannst Du offen an die Wand hängen. Erst der
private Schlüssel im µC hilft bei der Entschlüsselung von Daten vom PC
an den µC, und da ranzukommen ist entschieden schwieriger.

Etwas schwieriger ist es, die Daten vom µC an den PC narrensicher zu
verschlüsseln.

von Unbekannter (Gast)


Lesenswert?

Wenn das PC-Programm die Daten erst erzeugt und dann verschlüsselt,
bringt ein PK-System gar nichts. Dann kann man die Daten mit einem
Debugger kurz vor der Verschlüsselung abfangen und auch eigene Daten
zum Verschlüsseln übergeben.

Also nichts gewonnen. Ergo kann man auch ein einfacheres, symmetrisches
Verfahren verwenden.

Es ist wie mit dem Kopierschutz. Du kannst Dich verrenken wie Du
willst, einen effektiven Kopierschutz gibt's nicht.

von Rolf F. (Gast)


Lesenswert?

@Unbekannter:
Die Lock-Bits kann man ja remote setzen/löschen; deshalb brauche ich
PCC. Sonst spielen da die Anwender im Flash rum und das wäre nicht
gut.

@A.K.:
Beispielsweise bei SSH ist die Verbindung in beide Richtungen gleich
sicher; da gibt's keine Richtungs-Abhängigkeit.

von A.K. (Gast)


Lesenswert?

@Rolf: Bei SSH werden aber beide Endpunkte als gleichwertig und sicher
betrachtet, nur die Strecke dazwischen ist relevant. Das ist hier
anders, der µC ist sicher, der PC evtl. nicht.

von Christoph _. (chris)


Lesenswert?

> Die Lock-Bits kann man ja remote setzen/löschen

Normal ist es der Sinn der Lockbits, dass man sie eben nicht einfach so
zurücksetzen kann (höchstens indem gleichzeitig alle Daten gelöscht
werden).

von Unbekannter (Gast)


Lesenswert?

Rolf, wenn die "geheimen" Daten auf einem PC erzeugt werden, über den
Du keine Kontrolle hast, kannst Du mit Verschlüsselung gar nichts
verhindern.

Die Verschlüsselung nützt Dir nur etwas, wenn Du z.B. per Bootloader
das Flash updaten willst, der Bootloader eine Entschlüsselungsroutine
inkl. geheimen Schlüssel besitzt, und Du das verschlüsselte Flash-Image
auf Deinem PC, der nur unter Deiner Kontrolle steht, erzeugst.

Und in genau diesem einem Fall, in dem Du mit Verschlüsselung
wirklichen Schutz aufbauen kannst, nützt Dir auch eine symmetrische
Verschlüsselung vollkommen.

Immer daran denken: Das Problem das PK-Systeme im Gegensatz zur
symmetrischen Verschlüsselung lösen, ist die einfachere Verteilung der
Schlüssel, und sonst nichts. Der Schutz eine PK-Systems ist ansonsten
vollkommen gleich.

von Rolf F. (Gast)


Lesenswert?

@Christoph:
Beim MSP430 und so ziemlich jeden anderen MC sind die Lock-Bits für das
JTAG; über den UART kann man aber ALLES ausgeben oder eingeben. Und das
soll nur authorisierten Personen möglich sein. Die Möglichkeit
beliebige Bytes und Words von jeder Adresse zu lesen/Schreiben ist
nötig, damit nicht jede Abfrage neu in den MC programmiert werden muß
sondern am PC generiert werden kann; außerdem soll die Software
möglichst orthogonal sein.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.