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