112 lines
4 KiB
Text
112 lines
4 KiB
Text
|
#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
|