diff --git a/7-SGX_Hands-on/doc/abgabe.pdf b/7-SGX_Hands-on/doc/abgabe.pdf new file mode 100644 index 0000000..1b14bb1 Binary files /dev/null and b/7-SGX_Hands-on/doc/abgabe.pdf differ diff --git a/7-SGX_Hands-on/doc/abgabe.typ b/7-SGX_Hands-on/doc/abgabe.typ new file mode 100644 index 0000000..0f3e23f --- /dev/null +++ b/7-SGX_Hands-on/doc/abgabe.typ @@ -0,0 +1,111 @@ +#let conf( + title: none, + assignmentno: none, + authors: (), + doc +) = { + set page( + paper: "a4", + header: [ + #set text(size: 9pt) + #grid( + columns: 3, + gutter: 1fr, + rows: 1, + align(left + horizon, smallcaps(title)), + align(center + horizon, "Assignment-" + assignmentno), + grid( + align: right, + columns: 1, + rows: authors.len(), + row-gutter: 3pt, + ..authors.map(author => [ + #author + ]) + ) + ) + #line(length: 100%) + ], + footer: context [ + #line(length: 100%) + #set align(center) + #counter(page).display( + "1 / 1", + both: true + ) + ], + ) + set text( + size: 11pt, + font: "DejaVu Serif" + ) + doc +} + +#show: doc => conf( + title: "System Security", + assignmentno: "7", + authors: ( + "Benjamin Haschka", + "Sascha Tommasone", + "Paul Zinselmeyer" + ), + doc +) + += Firmware Signatur-Relay in einer TEE + +Das Program hat den Zweck, Signaturen die von einzelnen Nutzern über eine Firmware gemacht werden, mit einem permanenten Produktions-Key zu maskieren, ohne, dass der Nutzer diesen kennt. +Dabei wird eine Encalve als Signatur-Relay verwendet. +Die Enclave kann Signaturen über Daten mit einem festen Satz an öffentlichen Schlüsseln, die vertrauenswürdig sind, verifizieren. +Wenn die Signatur gültig ist, entfernt die Enclave die Signatur und erzeugt eine eigene Signatur mit dem Produktions-Key. + +Diese Signatur kann dann mit dem öffentlichen Schlüssel der Enclave, der von außen angefragt werden kann, überprüft werden. +Damit kann der Nutzer seine eigene Signatur mit der Signatur der Enclave maskieren. + +Der Schlüssel ist dabei den Nutzern nie bekannt. +Sie haben den Schlüssel nur versiegelt und können ihn der Enclave geben, die den Schlüssel dann entsiegeln und in der vertrauenswürdigen Umgebung verwenden kann. + + +// Image here: + + + +== Szenario + +In diesem Szenario wird ein Unternehmen betrachtet, das Embedded Geräte produziert. +Für die Geräte sollen regelmäßig Updates für die Firmware veröffentlicht werden. +Diese Firmware muss mit einem permanenten Key signiert werden, der in der Produktion fest gesetzt wird. +Ist die Signatur nicht vorhanden, lädt keines der Geräte das Update. + +Mitarbeitende, die die Firmware hochladen wollen, müssen also die implementierte Firmware mit dem Produktions-Key signieren. +Wenn sie den Produktions-Key besitzen, bringt das gewissen risiken, z.B.: + +- Mitarbeitende können (absichtilich oder nicht) den Schlüssel veröffentlichen +- Mitarbeitende, die nicht mehr in dem Unternehmen arbeiten, können den Key für schlechte Zwecke missbrauchen + +Es ist also sinnvoll, wenn die Mitarbeitende den Key nicht kennen. Dazu kann das beschriebene Signatur-Relay verwendet werden. +Die Mitarbeitenden signieren die Firmware vorerst mit ihrem eigenen Key. +Diese Keys sind in das Relay als trusted Keys eingebunden. +Anschließend kann der Mitarbeitende die selbst-signierte Firmware an das Signatur-Relay senden. +Das Relay prüft dann die Gültigkeit der Signatur und schickt, falls gültig, eine eigene Signatur über die Firmware zurück. +Damit kann dann der Mitarbeitende die Firmware an die Embedded Geräte senden, bei Gültigkeit die neue Firmware laden können. + +Falls ein Mitarbeitender den eigenen Schlüssel verlieren oder veröffentlichen sollte, besteht in dem Fall auch nicht das Problem, dass der Produktionsschlüssel ungültig wird. +Es kann einfach der Schlüssel des Mitarbeitenden von der Liste der trusted Keys zurückgezogen werden. + +Zudem ist es wichtig, dass keine bösartigen Programme auf den Systemen der Mitarbeitenden den Signaturprozess mitbekommen oder gar verändern können. + +Aus diesen Gründen ist es in diesem Szenario wichtig, dass das Relay mit all seinen Funktionen besonders geschützt ist. +Dementsprechend sollte es in einer Enclave laufen. + +== Details + + +== Vorteile + +Dieses Programm bietet einige Vorteile, unter anderem: + +- Nutzern unbekannter Hauptschlüssel +- Vereinfacht das Zurückziehen der Schlüssel +- Sicherheit der Gültigkeit der Firmware