BtcFrankenstein

Sicherheit auch für Paranoide

Das Specter DIY Hardware Wallet gibt es seit 2020, es wurde größtenteils von Stepan Snigirev programmiert. Zu dieser Zeit konnten die Hardware Wallets auf dem Markt seinen Sicherheitsansprüchen nicht genügen. Mit Specter wurde dann das Bitcoin-only Hardware Wallet vollständig Opensource veröffentlicht, so dass es sich jeder selbst bauen konnte und den Code selbst verifizieren konnte. Seitdem wird ein großer Teil des Codes ebenfalls im SeedSigner und Krux Projekt verwendet, ohne das signifikante Sicherheitslücken auftraten.

Sicherheit von Firmware und Software

Opensource

Die Firmware des Specter DIYs ist vollständig Opensource und frei für andere auch kommerzielle Projekte verwendbar. Ein großer Teil des Codes wird deswegen vom SeedSigner und Krux Projekt verwendet, was die Sicherheit und Robustheit des Codes unterstreicht.

Hier ist der gesamte Code

Anti-Phishing-Wörter

Beim ersten Start des Geräts wird auf dem Haupt-Mikrocontroller ein einzigartiges Geheimnis generiert. Dieses Geheimnis ermöglicht es dir zu überprüfen, ob das Gerät durch ein manipuliertes ersetzt wurde – wenn du deinen PIN-Code eingibst, wird dir eine Liste von Wörtern angezeigt, die immer gleich bleibt. Solange diese Wortliste gleich bleibt kannst du dir sicher sein, dass das Gerät in dieser Zeit nicht manipuliert wurde.

Reproduzierbare Builds

Don’t trust, verify! Die Firmware von Specter DIY ist vollständig reproduzierbar. Das bedeutet, dass jeder den Opensource-Code eigenständig kompilieren und sicherstellen kann, dass die erzeugte Software mit der offiziellen Version übereinstimmt. Detaillierte Anleitungen und zusätzliche Informationen zu den reproduzierbaren Builds sind auf dem offiziellen GitHub verfügbar.
 

Du kannst außerdem die Software selbst signieren und so sicherstellen, dass du die offizielle Version von Specter verwendest. Dies ist deutlich unkomplizierter, hier findest du eine Anleitung

Seedphrase Verwaltung

Seed Verwahrung

Seedphrase auf dem Gerät speichern (nicht empfohlen)

Dein PIN-Code und das einzigartige Geheimnis (vgl. Anti-Fishing Wörter) werden verwendet, um einen Entschlüsselungsschlüssel für deine Bitcoin Seedphrase zu generieren (falls du sie speicherst). Selbst wenn ein Angreifer den PIN-Bildschirm umgehen könnte, würde die Entschlüsselung trotzdem fehlschlagen.

Wenn du die Firmware gesperrt hast (eine Anleitung dazu folgt), wird auch das geheime Schlüsselmaterial effektiv gesperrt. Sollte ein Angreifer versuchen, eine andere Firmware auf das Gerät zu spielen, wird dieses Geheimnis gelöscht. Du erkennst dies daran, dass die Wortsequenz beim Eingeben des PIN-Codes abweicht. Diese Methode wird dennoch nicht empfohlen, da es theoretisch möglich ist, die Seedphrase mithilfe von Techniken wie Lasern oder Säure zu extrahieren.

Seedphrase außerhalb des Gerätes speichern: Agnostic Mode

Deshalb wird die Bitcoin-Seedphrase normalerweise nur während der aktiven Nutzung im Arbeitsspeicher (RAM) gespeichert und beim Ausschalten des Geräts gelöscht. Die Seedphrase wird somit außerhalb des Specter DIY aufbewahrt. Üblicherweise werden die 12 bzw. 24 Seed-Wörter auf Papier notiert und bei der Verwendung des Geräts über den großen Touchscreen eingegeben, bequem als Seed-QR-Code eingescannt oder von einer SD-Karte importiert.

Empfehlung: Es sollten mehrere Kopien der Seedphrase erstellt und an verschiedenen sicheren Orten aufbewahrt werden. Es wird empfohlen, diese in manipulationssicheren Beuteln (Tamper Evident Bags) bzw. im Backup Stack zu lagern. Zusätzlich sollte eine Passphrase oder ein Multi-Signatur-Setup verwendet werden. Auf diese Weise lässt sich ein möglicher Diebstahl der Seedphrase erkennen und der Zugriff auf die Bitcoin durch die weiteren Backups und/oder die Passphrase verhindern.

Seed Verwahrung Specter Shield

Derf Specter Shield bietet alle Funktionen des Specter DIY und zusätzlich eine Smartcard-Option. Damit kannst du die Bitcoin Seedphrase verschlüsselt auf dem Secure Element der austauschbaren Smartcard speichern. Damit ein potenzieller Dieb, auf die Bitcoin Seedphrase zugreifen kann, würde er drei verschiedene Geheimnisse benötigen: ein zufälliges Geheimnis auf dem Secure Element (Smartcard), ein zufälliges Geheimnis auf dem Mikrocontroller (Specter Shield) und ein von dir gewähltes Geheimnis, den Gerät-PIN. Hierbei wird wenn 10 falsche Gerät-PINs eingegeben werden, die Smartcard mit dem Secure Element unbrauchbar und diese Seedphrase kann nicht mehr vom Secure Element hergestellt werden. So wird das Brute-Forcing (mehrfaches raten) des PINS auf 10 Versuche limitiert. 

Wallet-Seed Erzeugung

Ein entscheidender Teil der Sicherheit eines Wallets liegt in der sicheren Generierung der privaten Seedphrase. Dafür werden mehrere Entropiequellen genutzt:

 

1. Ein Zufallsgenerator für echte Zufallszahlen auf dem Mikrocontroller

 

2. Eine Messung der Zeit und Bildschirmposition jeder Berührung des Touchscreens

Diese Informationen werden zusammen gehashed und in die Seedphrase konvertiert. Der entstehende Zufall ist immer besser als einer der beiden Zufälle alleine.

 

Optional lässt sich auch noch spielerisch einfach und transparent Real Life Zufall in Form von Münzwürfen in die Seedphrase Generierung einmischen, wobei für jeden einzigen Bit eine Münze geworfen werden kann. 

Weitere Sicherheitsfunktionen

Nur Bitcoin und Liquid Unterstützung

Der Specter DIY lässt sich neben dem Bitcoin Mainnet, auch auf das Liquid Mainnet (Bitcoin Second Layer Lösung) umschalten, außerdem werden folgende Testnetzwerke unterstützt: Testnet, Signet, Regtest, Liquid Testnet, Liquid Regtest. Dadurch das keine Altcoins supportet werden bleibt die Codebase schmal und bietet weniger Angriffsfläche. Zudem werden die Netzwerke klar voneinander getrennt so gehört jedes Wallet zu einem bestimmten Netzwerk. Das bedeutet, dass ein auf Testnet importiertes Wallet nicht auf Mainnet oder Regtest verfügbar ist. Um das Wallet auf einem anderen Netzwerk zu nutzen, musst du zu diesem Netzwerk wechseln und das Wallet dort separat importieren.

Sicheres Display

Der Specter DIY ist für den Fall gebaut, dass dein Computer kompromittiert sein kann und du man ihm nicht trauen kann. Du kannst Transaktionen, Empfangsadressen, Transakationsgebühr und weitere Daten sicher über das große Touch-Display im Detail verifizieren.

Warnung bei ungewöhnlicher Change Adresse

Wenn bei einer Bitcoin Transkation gemischte Inputs aus verschiedenen Wallets entdeckt werden, wird der Benutzer auf dem Display gewarnt. So dass ein Angreifer diese nicht manipulieren kann.

Kommunikations-Möglichkeiten

Der Specter DIY unterstützt drei verschiedene Möglichkeiten, um mit der Companion App, des Gerätes, welches mit dem Internet verbunden ist zu kommunizieren. 

Air-Gapped

Zwei dieser Kommunikationsmöglichkeiten sind vollständig Airgapped. Das bedeutet, dass bedeutet das keine physische Verbindung zum anderen Gerät besteht. Zudem ist diese Kommunikationsweise extrem transparent, da der Benutzer zu jeder Zeit genau einsehen kann welche Informationen ausgetauscht werden. 

per QR-Code (empfohlen)

Das ist die sicherste Kommunikationsmethode. Hier werden die Informationen mit der Compnion App transparent Air-Gapped über QR-Codes angezeigt. Beim Scannen von QR-Codes läuft noch ein separaten Mikrocontroller, sodass die Bildverarbeitung außerhalb des sicherheitskritischen Mikrocontrollers stattfindet.

per SD-Karte (nicht empfohlen)

Auch die Kommunikation über die SD-Karte ist Air-Gapped. Hier wird die SD-Karte von Specter DIY zum Internetfähigen Gerät hin und her gesteckt. Um Angriffsfläche zu reduzieren sollte diese Möglichkeit, nicht verwendet werden, da die Kommunikation direkt mit dem sicherheitskritischen Mikrocontrollers stattfindet.

nicht Air-Gapped (nicht empfohlen)

Diese Kommunikationsweise ist nicht ganz so sicher, da die Kommunikation intransparenter ist. 

per Kabel (nicht empfohlen)

Eine Kommunikation über ein Mini USB Kabel ist, ebenfalls möglich. Diese mag zwar praktisch sein, ist aber nicht optimal. Auch weil hier noch die Schnittstelle des Haupt-Mikrocontollers, anstatt eines seperaten, wie es bei der QR-Code Methode der Fall ist. Auch aus diesem Grund haben wir, diese Kommunikationsweise, bei den Geräten die wir im BtcFrankenstein Shop verkaufen deaktiviert. Um diese zu trotzdem zu verwenden, müsste sie manuell reaktiviert werden

Privatsphäre-Funktionen

X-Pub Speicherung

Der Specter DIY speichert den Diskriptor, also folglich den X-Pub des Wallets, da dies die Benutzererfahrung erheblich verbessert. Dieser X-Pub wird ähnlich sicher gespeichert, wie wenn man die Seedphrase sichern würde (vgl. Seedphrase auf dem Gerät speichern). Ein Dieb des Gerätes würde also nur mit enormen Aufwand an diese rein Privatsphäre relevanten Daten kommen. 

mehrere Wallets

Beim ersten Start des Specter DIYs generiert der Haupt-Mikrocontroller ein einzigartiges Geheimnis. Dieses Geheimnis ermöglicht es dir zu überprüfen, ob das Gerät manipuliert wurde. Gibst du deinen PIN-Code ein, wird dir eine Liste von Wörtern angezeigt. Solange diese Liste gleich bleibt, kannst du sicher sein, dass das Gerät nicht verändert wurde.

Coin Control

Mit dem Specter DIY kannst du problemlos für jede Transaktion genau auswählen, welche UTXOs du verwenden möchtest.

Hinweis

Der Specter DIY ist für selbstsouveräne Bitcoiner gebaut, die wissen oder lernen möchten, wie sie ihre Bitcoin sicher selbst verwahren können. Der Specter DIY bietet eine maximale Freiheit bei deiner Bitcoin Aufbewahrung und besitzt keine eingebaute “Kindersicherung”, deswegen unterstützt er auch manche Features, die unter der falschen Verwendung, keine maximale Sicherheit gewährleisten. Diese optionalen Features werden auf dieser Seite mit “nicht empfohlen” gekennzeichnet.

Der Vollständigkeit halber findest du hier die Sicherheitsseite des Specter DIY GitHub. Auch wenn sich dort vieles wiederholt.