Assignment 7 sgximpl: uncomplete project description
All checks were successful
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (push) Successful in 1m6s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (push) Successful in 1m3s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (push) Successful in 1m0s
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (pull_request) Successful in 33s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (pull_request) Successful in 8s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (pull_request) Successful in 8s
All checks were successful
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (push) Successful in 1m6s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (push) Successful in 1m3s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (push) Successful in 1m0s
Latex Build / build-latex (Assignment 4 - Protokollsicherheit (Praxis)) (pull_request) Successful in 33s
Latex Build / build-latex (Assignment 5 - Software Security - Teil 1) (pull_request) Successful in 8s
Latex Build / build-latex (Assignment 6 - Software Security - Teil 2) (pull_request) Successful in 8s
This commit is contained in:
parent
4c9de6da37
commit
d768d965d5
2 changed files with 111 additions and 0 deletions
BIN
7-SGX_Hands-on/doc/abgabe.pdf
Normal file
BIN
7-SGX_Hands-on/doc/abgabe.pdf
Normal file
Binary file not shown.
111
7-SGX_Hands-on/doc/abgabe.typ
Normal file
111
7-SGX_Hands-on/doc/abgabe.typ
Normal file
|
@ -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
|
Loading…
Reference in a new issue