Hochsicherer portabler Speicher - Teil 1: Einführung und Installation von Armory

Hochsicherer portabler Speicher - Teil 1

Einführung und Installation von Armory

Andrea Covello
von Andrea Covello
Lesezeit: 14 Minuten

In meiner Arbeit als Security Consultant werden ich oft mit dem Problem von sicherer Datenübertragung und sicherem Datenspeicher konfrontiert. Es gibt immerwieder Situationen, in denen vertrauliche Daten mitgenommen und unterwegs zugegriffen werden müssen. Die einfachste Möglichkeit besteht im Erstellen einer verschlüsselten Partition oder eines entsprechenden Containers auf einem USB-Gerät. Es gibt USB-Geräte, die kommen mit mehr oder weniger obskuren Controller für Hardware-Verschlüsselung daher; einige von diesen benötigen gar die physische Eingabe eines PIN, was von Vorteil sein kann.

Abgesehen von der Tatsache, dass die Hardware-Details nicht öffentlich zugänglich sind, stehen ebenso keine Details zur Entwicklung und Umsetzung zur Verfügung. Für den Endkunden bedeutet dies, dass ein Master-PIN-Code implementiert hätte sein können. Was nun? Auf der Basis anerkannter Mechanismen kann eine eigene Lösung angestrebt werden:

Durch das Befolgen dieser Grundsätze wird eine solide Grundlage geschaffen. Dennoch existiert das Risiko, dass der Datenträger schlussendlich in einer nicht-vertrauenswürdigen Umgebung genutzt wird. Und mal ehrlich: Wie viele Umgebungen können wirklich als vertrauenswürdig eingestuft werden? Denn sobald die Daten entschlüsselt sind, können die Dateien durch das zugrundeliegende Betriebssystem gelesen oder manipuliert werden. Und zwar ohne, dass dies nachträglich eingeschränkt oder dokumentiert werden könnte. Die Möglichkeit den Datenträger nur bei Bedarf zu mounten und dann jedes Mal mühsam die komplexe Passphrase eingeben zu müssen, ist nicht attraktiv. Selbstverständlich ist dies von verschiedenen Faktoren, wie zum Beispiel der Benutzerfreundlichkeit der Lösung, abhängig. Gibt es nicht dennoch eine bessere Möglichkeit?

Ich nehme an, dass genau dies die Frage ist, die sich Andrea Barisani von Inverse Path gestellt hat, als er das Projekt USB Armory ins Leben gerufen hat. Die zugrundeliegende Idee ist, auf dem Datenträger ein ganzes Betriebssystem laufen zu lassen und dessen Sicherheitsfunktionalität zum Schutz der Daten einzusetzen. Dieser Ansatz lässt sich für eine ganze Reihe von Möglichkeiten einsetzen. Wir werden uns in diesem Artikel aber auf die Nutzung im Rahmen von Secure Storage fokussieren. Andrea hat zusätzlich eine quelloffene Lösung namens INTERLOCK entwickelt, mit der sich ein hochsicherer portabler Speicher realisieren lässt. Wir werden nun die einzelnen Schritte anschauen, wie INTERLOCK zum Schutz der Daten auf dem Armory eingerichtet werden kann.

PC auf dem Stick: USB Armory

Als erstes muss ein USB Armory über die Webseite bestellt werden. So sieht das Board aus:

Die Hardware-Spezifikationen gestalten sich wie folgt:

NXP i.MX53 SoC (System on Chip) FeaturesHardware Security Features
ARM ® Cortex ™ A8 800-1200 MHz High Assurance Boot (HABv4)
USB host powered (<500 mA) mit kompakter Form (65x19x6 mm) Authentisierung des initialen Boot-Loader (Secure Boot)
MicroSD Karten Slot Security Controller (SCCv2)
5-pin Breakout Header mit GPIOs und UART Security Assurance Hardware Module mit gerätespezifischen versteckten Keys für AES-256 und Secure RAM
USB Geräteemulation (CDC Ethernet, Mass Storage, HID, etc.) Kryptografischer Accelerator (SAHARAv4 Lite) AES, DES, 3DES, RC4, C2, RSA, ECC, MD5, SHA-1, SHA-224, SHA-256 und TRNG
Offene Hardware & Software ARM ® TrustZone ®

Es ist zu sehen, dass die Spezifikationen alles andere als schlecht sind. Weitere Informationen über das Projekt finden sich in der USB Präsentation von Andrea Barisani.

Um Armory nutzen zu können, muss ein System-Image auf der MicroSD-Karte erstellt werden. Dieses wird gebootet und wird den INTERLOCK Application Server starten.

Voraussetzungen

Nachfolgend die Komponenten, die über Inverse Path bezogen werden können:

Komponente Link EUR
USB Armory Board https://inversepath.com/getusbarmory 100.-
USB Armory Enclosure https://inversepath.com/getusbarmory 10.-
USB Host Adapter https://inversepath.com/getusbarmory 10.-
32GB MicroSD mit Debian-Installation https://inversepath.com/getusbarmory 30.-

Minimale Voraussetzung sind das Board und die MicroSD-Karte.

Installation

Schritt Beschreibung Abbildung
Vorbereiten der MicroSD-Karte Als erstes muss das Image mit dem Betriebssystem und der vorinstallierten Interlock-Software heruntergeladen werden. Zum Zeitpunkt der Veröffentlichung dieses Artikels steht Release 2016.06.09 zur Verfügung. Stellen Sie sicher, dass die Signatur der heruntergeladenen Datei übereinstimmt, um die Integrität der Übertragung gewährleisten zu können:
shasum -a 256 interlock-usbarmory-v2016.06.09.tgz<br>5ff99b3cc1543b22b0caae531472a4258bf43a90ee16df0c8f8e0e0906c69c69<br>interlock-usbarmory-v2016.06.09.tgz
Falls die Informationen übereinstimmen, können die Dateien aus dem Archiv extrahiert werden:
tar zxf interlock-usbarmory-v2016.06.09.tgz
Gehen Sie in den erstellten Ordner und führen Sie auf MacOS folgendes Kommando aus:
sudo dd if=interlock-usbarmory-v2016.06.09.raw of=/dev/diskX bs=1024
Und auf Linux:
sudo dd if=interlock-usbarmory-v2016.06.09.raw of=/dev/sdX bs=1M conv=fsync
Ändern Sie __ zum Namen Ihres Systems.

In Windows-Umgebungen ist die Nutzung von 7zip sowie Rufus empfohlen, wobei andere ZIP- und Image-Tools auch funktionieren.
Vorbereiten der Hardware Entweder verwenden Sie das Enclosure (empfohlen) oder Sie benutzen ein Isolationsband.
Einfügen der zuvor vorbereiteten MicroSD-Karte Achten Sie darauf, dass Sie den Schacht zur Einführung der MicroSD-Karte nicht abdecken und fügen Sie die Karte ein.
Einfügen von USB Armory in den USB-Slot Das System auf dem Chip wird den Boot-Sektor der MicroSD-Karte laden und den Linux Kernel aufstarten. Denken Sie jetzt daran, dass Sie auf das System nicht wie bei einem normalen USB-Stick zugreifen, sondern nur noch via Netzwerk.
USB Ethernet Emulation Mode (EEM) Als erstes wird sich Armory als Network Adapter Interface ausgeben, indem es Gebrauch vom USB CDC Ethernet Emulation Model macht. Dabei wird grundsätzlich ein Netzwerk über den USB-Bus emuliert. Das System protokolliert dies wie folgt in den Kernel-Logs:
Ethernet [AppleUSBCDCECMData]:
Link up on en8, 10-Megabit, Full-duplex, No flow-control, Port 1
Und so sieht dann die Konfiguration der Netzwerkschnittstelle aus:
en8: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
  ether 1e:39:4f:xx:xx:xx
  inet6 fe80::1c39:xxff:fexx:xxxx%en8 prefixlen 64 scopeid 0×14
  inet 10.0.0.2 netmask 0xffffff00 broadcast 10.0.0.255
  nd6 options=1<PERFORMNUD>
  media. autoselect (10baseT/UTP <full-duplex>)
  status. active
Netzwerkkonfiguration Armory wird einen DHCP-Server starten, welcher der Schnittstelle die IP-Adresse 10.0.0.2 zuweisen wird (andererseits ist eine manuelle Konfiguration erforderlich). Schematisch kann dies wie folgt dargestellt werden:
[server][Armory][10.0.0.1] <---USB-EEM---> [10.0.0.2][local-system][client]
System ist bereit Zu diesem Zeitpunkt besteht die Möglichkeit, auf Armory via das über USB EEM generierte Netzwerk (10.0.0.0/24) zuzugreifen. Dies kann mit einem Ping auf 10.0.0.1 geprüft werden:
john117$ ping 10.0.0.1
PING 10.0.0.1 (10.0.0.1): 56 data bytes
64 bytes from 10.0.0.1: icmp_seq=0 ttl=64 time=1.178 ms
64 bytes from 10.0.0.1: icmp_seq=1 ttl=64 time=0.728 ms
64 bytes from 10.0.0.1: icmp_seq=2 ttl=64 time=0.665 ms
^C
Das Armory-System ist also lauffähig und erreichbar.

Nächste Schritte

Bisher haben wir die interessante USB Armory Hardware kennengelernt und in den Linux-Modus gebootet. Im nächsten Teil dieser Artikelserie werden wir uns der Konfiguration und Nutzung von Interlock annehmen.

Über den Autor

Andrea Covello

Andrea Covello ist seit den 1990er Jahren im Bereich der Informationssicherheit tätig. Seine Schwerpunkte liegen traditionell im Engineering, wobei er als Spezialist im Bereich Windows-Sicherheit, Firewalling und Virtualisierung gilt.

Links

Sie wollen die Sicherheit Ihrer Firewall prüfen?

Unsere Spezialisten kontaktieren Sie gern!

×
Security Testing

Security Testing

Tomaso Vasella

Active Directory-Zertifikatsdienste

Active Directory-Zertifikatsdienste

Eric Maurer

Fremde Workloadidentitäten

Fremde Workloadidentitäten

Marius Elmiger

Active Directory-Zertifikatsdienste

Active Directory-Zertifikatsdienste

Eric Maurer

Sie wollen mehr?

Weitere Artikel im Archiv

Sie brauchen Unterstützung bei einem solchen Projekt?

Unsere Spezialisten kontaktieren Sie gern!

Sie wollen mehr?

Weitere Artikel im Archiv