www.mikrocontroller.net

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


Autor: Rolf F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Don (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im Internet.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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. :-)

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Christoph __ (chris)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: Unbekannter (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Rolf F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.