Tach zusammen,
ich frage mich welche Möglichkeiten es gibt Zertifikate und ähnliche
geheime Schlüssel in einem uC oder externem Speicher abzulegen.
Speziell geht es um die Renesas Synergy Familie und um über QSPI
angebundene Speicher.
Ich bin bei meiner Recherche auf TPM HW Bausteine und Intrinsic ID, also
allgemeinen uncloneable functions gestoßen.
Was sind die Vor- und Nachteile beider Varianten und was gibt es noch
für Verfahren dafür?
Was eignet sich besser bei kleinen und großen Stückzahlen?
Ich würde mich freuen, wenn mir jemand einen groben Überblick
verschaffen könnte, dass ich einen Einstieg finde.
Ich freue mich auf einen konstruktiven Austausch.
LG
Marcel
Nur den Secret Key irgendwo sicher zu verwahren reicht nicht. Sobald der
ausgelesen wird (um an die "Verwendungstelle" zu kommen) liest ein LA am
SPI den einfach mit.
=> Das ist der Windows-Festplattenverschlüsselung mit TPM 1 - Chips zum
Verhängnis geworden.
Den Key symmetrisch verschlüsselt zu speichern hilft nur, solange der
Schlüssel dazu nicht irgendwo nebenan im ebenso einfach auszulesendem
Flash-Chip ist.
Dagegen hilft: Key nur dort speichern, wo er auch verwendet wird, also
Smart-Card, TPM2, Crypto-Coprozessor mit integriertem, auslesesicherem
Flash, ...
Die Zertifikate selber musst du nicht sicher speichern, die rückt eine
TLS-Verbindung eh freiwillig heraus.
Da hast du einige wichtige Punkte angesprochen, dadurch wird das für
mich nur noch komplexer.
Hättes du ein Beispiel wie man die nicht öffentlichen Secrets sicher
verwahrt und wie man darauf am besten zugreift?
Marcel schrieb:> Hättes du ein Beispiel wie man die nicht öffentlichen Secrets sicher> verwahrt und wie man darauf am besten zugreift?
Schau dir an, wie das bei den Smartcards/Signaturkarten gelöst ist.
Grob: Sowohl der Schlüssel als auch eine CPU, die mit dem Schlüssel
arbeitet, sind auf der Karte. Der Host kann die Karte anweisen, mit dem
Schlüssel Operationen auszuführen, Ver-/Entschlüsseln, Signieren, etc.
Aber: Der Host kann den Schlüssel nicht auslesen, der verbleibt immer
auf der Karte.
Abgesehen von Seitenkanalangriffen oder Bugs in der Karten-Firmware ist
der Schlüssel damit sicher.
> wenn nicht zur sicheren Verwahrung?
Vermutlich bringt es dich weiter, wenn du dir z.B. die
"challenge–response authentication" anschaust.
Gibt trickreiche Verfahren, wie diese Chips beweisen, sie kennen den
geheimen Schlüssel, ohne den Schlüssel herauszugeben.
Hallo, ich hatte den Thread leider nicht mehr gefunden, bis jetzt.
Ich möchte die Frage noch einmal anders stellen:
Diverse Smart-Home oder IoT Geräte nutzen ausschließlich einen ESP32 mit
ansonsten passiven Bauteilen. Trotzdem sind diese an eine Cloud
infrastruktur anbindbar und besitzen somit Zertifikate und Keys.
Wie kommen diese Keys in den ESP32 und wie, bzw mit welchen Keys werden
die dort verschlüsselt aufbewahrt? Und wie werden diese Keys geschützt?
Meine antwort wäre unclonable function, aber das hat der ESP32 ja nicht.
Marcel schrieb:> Diverse Smart-Home oder IoT Geräte nutzen ausschließlich einen ESP32 mit> ansonsten passiven Bauteilen. Trotzdem sind diese an eine Cloud> infrastruktur anbindbar und besitzen somit Zertifikate und Keys.>> Wie kommen diese Keys in den ESP32 und wie, bzw mit welchen Keys werden> die dort verschlüsselt aufbewahrt? Und wie werden diese Keys geschützt?
Es muss ja alles im Flash liegen.
Also: Security by Obscurity. Verschleierung. Verstecken. Hoffen, dass
niemand das findet.
Sicher geht anders.
fchk
Marcel schrieb:> Diverse Smart-Home oder IoT Geräte nutzen ausschließlich einen ESP32 mit> ansonsten passiven Bauteilen.
Ja.
> Trotzdem sind diese an eine Cloud> infrastruktur anbindbar
Ja.
> und besitzen somit Zertifikate und Keys.
Nein.
Für eine Verbindung zu einem https-Server braucht der Client keinen Key.
Er könnte einen haben um sich gegenüber dem Server auszuweisen, aber
dank "Internet Insecurity Suiten", transparenten Proxies in der Firewall
u.Ä. ist das unüblich.
Der Server hat üblicherweise ein Zertifikat. Das kann der Client
prüfen, muss es aber nicht. d.H. nichtmal dafür müsste ein CA-Storage am
ESP vorhanden sein.
Eine eigene Frage?
Dieser Thread ist über 4 Jahre alt.
Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.