Das ultimative Hardware Wallet? – Übersicht Specter Shield DIY

In diesen Artikel wollen wir euch das Hardware Wallet Specter Shield der Crypto Advance GmbH aus München vorstellen. Wir werden die verbaute Hardware erläutern, detailliert auf die Softwarefunktionalitäten eingehen und MultiSig-Anwendungfälle im Zusammenspiel mit der Specter Desktop App aufzeigen.

Inhaltsverzeichnis

Das Specter Shield ist ein open-source Hardware Wallet mit großem Touchscreen, einem QR-Code Scanner und einem Smartcard-Reader.

… and Cypherpunks do build their own Bitcoin Hardware Wallets.

@stepansnigirev

Was macht das Specter DIY Hardware Wallet so besonders?

Die Hardware-Komponenten können alle einzeln erworben und mit Hilfe der DIY Tutorials selbst zusammen gebaut werden. Der “Do It Yourself”-Ansatz kommt hier der Cypherpunk Ideologie sehr nahe. Die Beschaffung der einzelnen Komponenten (wie Discovery Board, Scanner, ein paar Kabel) bei unterschiedlichen Händlern lässt nicht darauf schließen, dass sich ein Bitcoiner ein eigenes Hardware Wallet zusammen bauen will. Der Supply Chain Risk wird damit stark entgegen gewirkt. Der Austausch der verschiedenen Keys mittels QR Codes macht einen vollständigen air-gapped Modus möglich.

Des Weiteren bietet die von @stepansnigirev entwickelte Embit Library, eine minimale auf Python3 und MicroPython basierende Bitcoin Bibliothek mit Fokus auf eingebettete Systeme, eine Flexibilität die es auch ermöglicht, dass sie von anderen Systemen verwendet werden kann. Der Seedsigner der Hardware Wallet von OrangePill verwendet die Library mittlerweile ebenfalls.

Ein dritter und nicht unerheblicher Vorteil der Wallet ist das zusätzlich nutzbare Secure Element. Dieses kann neben einer SD Card auch in Form einer Smartcard verwendet werden. Die Zugriffsstandards solcher Smartcards basieren oft auf der Programmiersprache Java und sind normalerweise unternehmensbezogenenn closed-source. Crypto Advanced hat dafür ein Java-Applet geschrieben, welches open-source ist. Damit bietet sich das Specter DIY insbesondere für Enterprise Lösungen an.

Hardware

Die folgenden Hardware und Softwarefunktionalitäten werden anhand der fertig montierten limitierten “Orange Pioneer Edition” gezeigt. Diese unterscheiden sich jedoch nicht grundlegend von der normalen DIY Version.

Die Hardware besteht aus folgenden Komponenten:

  • einem Smartcard-Reader
  • einer Batterie
  • einem GROW GM65-S QR-Code Scanner
  • einem F469-Discovery Board der Firma STMicroelectronics mit großem Display
  • einem 3D gedruckten Case von @CryptoCloaks
Hardware Wallet - Specter DIY
Explosionsgrafik des Specter Shield

An der linken Seite befindet sich der Slot für die SD-Karte. An der Unterseite befinden sich zwei Micro-USB-Eingänge zum Laden der Batterie und zum Anschluss an einen PC. Der Einschub für die mitgelieferten Smartcards als zusätzliches Secure Element befindet sich auf der Rückseite.

Im Git-Repository des DIY sind sämtlichen Platinen-Layouts zu finden.

Wer es detaillierter mag kann sich sämtliche Layouts, Schaltkreise und Strukturdiagramme im Git-Repository genauer anschauen und nachvollziehen.

Software

Der Großteil der Software ist in MicroPython geschrieben, wodurch der Code einfach überprüft und geändert werden kann. Wie zuvor erwähnt kommt unter anderem die Embit Library zum Einsatz. Für die Berechnung von elliptischen Kurven werden die secp256k1 Bibliotheken aus Bitcoin Core und LittlevGL Bibliotheken für die GUI verwendet. Specter Solutions weist darauf hin, dass sich die Entwicklung des Specter DIY noch in der Entwicklung befindet und das Wallet als Prototyp eingestuft werden sollte. Dies sollte jedem User klar sein. Es ist ausdrücklich erwünscht auftretende Probleme oder Bugs in der Specter Telegram Gruppe zu diskutieren.

Anwendung

Wenn wir das Shield am Knopf oben rechts an der Seite einschalten, werden wir, begleitet von einen kurzen Signalton, als erstes dazu aufgefordert, einen 8 stelligen Pin Code zu vergeben, um das Gerät gegen unbefugten Zugriff zu sichern. (Bild 01)

Bild 01 – Pineingabe
Bild 02 – Hauptmenü
Bild 03 – Developer und USB

Nach zweimaliger Eingabe des Pins wird das Gerät für die erste Verwendung initialisiert. Im Hauptscreen haben wir nun folgende Optionen zur Auswahl:

Lock device: Der Screen wechselt in den PIN-Eingabe-Modus. Die Anordnung der Ziffern wird nach dem Zufallsprinzip jedes mal anders angezeigt.

Change PIN code: Hier lässt sich der PIN-Code ändern.

Device settings: In diesem Bereich lässt sich zum einen das Gerät komplett resetten. Alle Daten werden gelöscht und zurückgesetzt. Zum anderen lässt sich hier die Funktion zur USB Kommunikation mit dem PC aktivieren. Das kann einen potentiellen Angriffsvektor darstellen, macht die Benutzung jedoch sehr viel bequemer. (Bild 03)

Enter recovery phrase: Hier können wir über eine QWERTY Tastatur auf dem Touchscreen einen schon vorhandenen Seed eingeben und mit dem Hardware-Wallet nutzen.

Generate new key: Wie bei der Einrichtung anderer Wallets auch, wird hier die Möglichkeit gegeben, sich einen neuen Seed generieren zu lassen. Dabei lässt sich zum einen auswählen ob 12 oder 24 Wörter als Seed benutzt werden sollen. Zusätzlich lässt sich jedes Wort einzeln ändern. Hierbei werden die Vorschläge aus der zugrunde liegenden Wortliste angeboten.

Bild 04 – 12 Wortliste
Bild 05 – 24 Wortliste
Bild 06 – Eigene Recovery Phrase

Nachdem der Button “Next” bestätigt wurde, wird das Wallet erstellt und es erscheint ein neuer Screen mit mehreren Optionen zur Auswahl.

Walletfunktionen

Bild 07 – Auswahl der Walletfunktionen
Bild 08 – Default Wallet auswählen

In diesem Screen haben wir die Möglichkeit mit der Wallet zu arbeiten. Hinter dem Button “Wallets” befinden sich alle unsere konfigurierten Wallets. In unserem Fall eines mit dem Namen Default.

Wählen wir dieses Wallet aus, wird uns im nächsten Screen ein QR Code mit der ersten Adresse des Derivation Path angezeigt (Bild 09). An diese Adresse können wir nun Bitcoin von einer anderen Wallet versenden. Zusätzlich lässt sich hier eine weitere Empfangsadresse generieren. Dazu drücken wir auf den Pfeil rechts am Bildschirm. Die Empfangsadressen werden als native Segwit single Key Adressen generiert. In diesem Menüpunkt lässt sich die Wallet auch komplett löschen.

Bild 09 – Erste Empfangsadresse des generierten Wallets
Bild 10 – Einen QR einscannen

Im Wallet-Hauptmenu (Bild 07) lässt über den Button “Scan QR Code” mittels der eingebauten Kamera ein QR-Code mit Empfängeradresse oder PSBT einscannen (Bild 10).

Über den Button “Master public keys” im vorherigen Menü (Bild 07) lassen sich die verschiedene Signature-Modi aufrufen. Diese werden unter Anderem dazu verwendet um das Specter Shield in ein Multisig-Setup mit Specter Desktop mit einzubinden. Folgende Funktionen verstecken sich hinter den Buttons:

Bild 11 – Select the Key

Single key: Es wird ein QR-Code mit einem Single Masterkey (Private Key) angezeigt. Dieser lässt sich mit einer anderen Wallet einlesen. Über die Toggle Buttons lässt sich der Master Key anpassen. Es kann jeweils der Derivation Path und die Funktion SLIP-132 aktiviert bleiben oder deaktiviert werden. Mit Tippen auf den QR Code wird dieser im Vollbild angezeigt. (Bild 12)

Multisig: Hier wird ein Masterkey für ein Multisigsetup generiert. Es sind die gleichen Optionen verfügbar wie im Single Key Modus.

Show more keys: Folgende Key-Ableitungen sind ebenfalls möglich (siehe Bild 13).

Change account number: Hier lässt sich die Anzahl der Accounts einstellen, welche dieses Wallet gleichzeitig verwalten kann.

Enter custom derivation: Hier kann der Derivation Path angepasst werden (Bild 14).

Bild 12 – Single/Multisig-Key
Bild 13 – Show more Keys
Bild 14 – Custom Derivation

Unter dem Button Settings aus Bild 07 finden wir weitere nützliche Funktionen. Zum einen kann hier von der Mainchain auf Testnetzwerke gewechselt werden, um beim Handling mit dem Wallet nicht gleich auf dem Mainnet seine echten Bitcoin durch Fehler zu verlieren. Zusätzlich kann hier der PIN des Wallets geändert und, wenn nötig, ein BIP-39 Passwort eingegeben werden.

Key Management

Das flexible Security Model für das Key Management ermöglicht es die Entropie entweder auf dem internen Flashspeicher, der SD Card oder auf der Smartcard zu speichern. Angeboten werden auch Optionen zum Laden und Löschen der Keys. Abhängig davon, ob man das Wallet mit der Smartcard oder mit der SD Card gestartet hat, kann hier der Speicherort ausgewählt werden. Auch kann hier der Recovery Seed nochmals angezeigt werden lassen.

Bild 15 – Smartcard und Rückseite

Beim Speichern auf das Secure Element kann entschieden werden ob der Key verschlüsselt abgespeichert wird oder nicht. Wenn er nicht verschlüsselt abgespeichert ist kann man den Key mit jedem anderen Gerät auslesen, wenn man den PIN Code besitzt. Wenn der Key verschlüsselt abgespeichert wird, kann nur das Gerät den Key wieder auslesen mit dem er abgespeichert wurde.

Bild 16 – Settings
Bild 17 – Testnet
Bild 18 – Key Management

Das Specter Shield lässt sich hervorragend in MultiSig-Lösungen integrieren. Ebenfalls ist die Benutzung in Verbindung mit der Specter Wallet Desktop-App sehr komfortabel, da beide Produkte der selben Firma entstammen. Insgesamt dürfte das Hardware Wallet durch seine Integration verschiedenster Sicherheitsmechanismen besonders für institutionelle Kunden interessant sein. Specter Solutions selbst bietet einen Enterprise-Service für solche Kunden an.

Enterprise Solution auf specter.solutions

Wie genau die Interaktion des Specter Shield DIY mit der Desktop Wallet funktioniert und wie es in ein MultiSig-Setup eingebunden werden kann, zeigen wir euch in einem zukünftigen Artikel. Wer nicht warten will, kann schonmal unserern anderen MultiSig-Guide mit BlueWallet lesen.

Weiterführende Links:

In diesem Video zeigt Stefan in 5 Minuten wie die Einzelkomponenten des Specter DIY zusammengebaut werden.

Specter Solutions Website
Github Repository Specter-diy
Specter Telegram Community
Gründer: @MWietersheim und @StepanSnigirev

Schreibe einen Kommentar