Wir alle nutzen Steemit - doch sind unsere Accounts auch sicher gegenüber Angriffen ?
Im Folgenden sollen grundlegende Sicherheitsaspekte von Steemit durchleuchtet und eine Empfehlung zur sicheren Nutzung gegeben werden.
Unter "Wallet"->"Permissions" stehen vier verschiedene Schlüssel zur Nutzung des Steemit Accounts zur Verfügung. (Witnesse haben zusätzlich einen Signing Key, welcher in diesem Beitrag bewusst nicht erwähnt wird)
Diese werden dort knapp erläutert, allerdings möchte ich an dieser Stelle etwas genauer auf deren Funktionalität sowie optimaler Nutzung eingehen.
Der Posting Key kann zum Posten von Beiträgen / Kommentaren, Folgen sowie zum Upvoten genutzt werden.
Nutzung: Der Posting Key ist der Schlüssel, mit dem man sich zur normalen alltäglichen Nutzung anmelden sollte. Hierfür kann dieser in einem Passwortmanager gehalten werden.
Der Active Key besitzt die selben Rechte wie der Posting Key. Zusätzlich ist es mit diesem möglich Transaktionen in der Wallet durchzuführen
Nutzung: Diesen Schlüssel sollte man nur dann nutzen, wenn man eine Transaktion in der Wallet vornehmen möchte.
Der Memo Key kann genutzt werden, um Nachrichten verschlüsselt zu Übertragen.
Nutzung: Diesbezüglich hat einen Beitrag geschrieben.
Der Owner Key ist der Schlüssel mit den höchsten Privilegien. Mit diesem kann auch der Account unter Umständen wiederhergestellt werden (wie später erklärt wird)
Nutzung: Der Owner Key sollte mit Ausnahme der Wiederherstellung nie (!) genutzt werden. Dieser Schlüssel sollte unbedingt Offline gehalten werden.
Notiz am Rande:
Im Allgemeinen sollte man sich in IT-Systemen immer nur mit den Berechtigungen anmelden, die man für die aktuelle Aufgabe benötigt, auch wenn dies oft nicht sehr bequem ist.
Unter "Wallet"->"Password" kann ein neues Password gesetzt werden. Dort stehen sieben Regeln,die ich lustig und zutreffend finde. Daher seien diese hier kurz Zitiert:
The first rule of Steemit is: Do not lose your password.
The second rule of Steemit is: Do not lose your password.
The third rule of Steemit is: We cannot recover your password.
The fourth rule: If you can remember the password, it's not secure.
The fifth rule: Use only randomly-generated passwords.
The sixth rule: Do not tell anyone your password.
The seventh rule: Always back up your password.
In einem Artikel über die sichere Aufbewahung von Seeds habe ich ein Verfahren vorgestellt, welches ich in diesem Kontext erneut aufgreifen möchte:
Der Schlüssel sollte:
Gegenüber den äußeren Faktoren ist es eine Möglichkeit den Schlüssel an mehreren Orten aufzubewahren. Hierbei steigt jedoch die Gefahr, dass jemand anderes Zugang zu diesem Schlüssel hat.
Eine weitere Möglichkeit besteht darin den Schlüssel elektronisch zu speichern, zu verschlüsseln und zu vervielfältigen.
Dies würde ich allerdings nur empfehlen, wenn man sich wirklich auskennt und weiß was man tut. Prinzipiell rate ich davon allerdings ab.
Meine persönliche Empfehlung ist die Folgende:
Der Owner Key wird in 3 Teile aufgeteilt: je 17 (bzw. einmal 18) Zeichen.
Anschließend notieren wir die Teile auf 3 verschiedene Blätter mit Bleistift (diese können anschließend noch eingeschweißt werden)
Diese Blätter werden nun an 3 verschiedenen Orten hinterlegt.
Beispielsweise:
Somit kann einer der Blätter gestohlen, verloren oder kaputt gehen. Man benötigt nur einen (egal welchen) der Blätter um den Schlüssel zusammenzusetzen.
Steemconnect ist ein ein Interface, welches Drittanbieter nutzen können um auf den Account eines Nutzers zuzugreifen. Aktuell gibt es Version 2 von Steemconnect, bei dem die privaten Schlüssel nicht mehr verschlüsselt in einem Cookie gehalten werden müssen.
Der bedeutende Vorteil ist, dass sich nicht jeder Entwickler Gedanken darüber machen muss, wie er den Authentifikationsprozess und das halten der sensiblen Daten sicher gestalten kann. In der Informatik insbesondere der Kryptographie ist üblich bereits bewährte Verfahren und Funktionen zu nutzen anstatt das "Rad" immer neu zu erfinden. Somit minimiert sich die Wahrscheinlichkeit, dass Entwickler Fehler bei der Implementierung dieser Funktionen machen.
Der Quellcode ist offen und kann hier eingesehen werden.
Auf den ersten Blick macht Steemconnect einen guten Eindruck auf mich. Ich möchte jedoch darauf hinweisen, dass ich kein vollständiges Code Review durchgeführt habe.
Auch möchte ich in diesem Beitrag nicht tiefer in technische Details eingehen, um technisch nicht so versierte Leser nicht zu verwirren. Bei weiterem Interesse kann ich gerne einen gesonderten Beitrag hierzu schreiben. Anderenfalls werden die wichtigen Schritte hier beschrieben.
Sollte aus irgendeinem Grund der Owner Key gestohlen und anschließend geändert werden, so ist es möglich innerhalb von 30 Tagen eine Wiederherstellung zu starten. Hierfür muss allerdings der vorherige Owner Key bekannt sein. Sollte der Owner Key verloren gegangen sein, ist auch eine Wiederherstellung nicht möglich.
Ferner ist zu beachten, dass die Wiederherstellung nur dann möglich ist, wenn "Steemit" der Recovery Account ist (Bei einer „normalen“ Anmeldung sollte dies der Fall sein).
Der Recovery Account kann beispielsweise unter https://steemd.com/@deinName eingesehen werden.
Zum weiteren Ablauf der Recovery (Bsp. Zeitliche Aspekte) kann ich nichts sagen (und möchte es nicht probieren wollen :P)
Scheinbar werden diese Fälle „händisch“ vom Support abgewickelt. Vermutlich ist auch der Zugang zum bei der Anmeldung genutzten E-Mail Konto notwendig.
Vielleicht hat jemand Erfahrungen oder weitere Kenntnisse diesbezüglich und kann diese in den Kommentaren teilen.
In jedem Fall sollte man sich nicht auf diese Wiederherstellung verlassen. Wer seinen Owner Key wie oben beschrieben sichert, sollte niemals in diese Situation kommen :)
Neben der Sicherheit spezifisch für Steemit sollten allgemeine Praktiken zum sicheren Umgang mit Webdiensten beachtet werden. Da es in diesem Beitrag um die Sicherheit von Steemit geht, werde ich hierbei nicht ins Detail gehen. Dennoch sind sie erwähnenswert, da die Sicherheit auch von diesen Abhängt.
In diesem Sinne: Nehmt euch die Zeit um euren Zugang zu sichern, damit dieser auch euch bleibt :)