
Address Poisoning: der Angriff, der nur will, dass du das Falsche kopierst
Die meisten Angriffe auf Krypto-Nutzer brauchen einen Fehler von dir — einen Klick auf einen Link, eine Seed-Phrase in ein Formular getippt, eine Freigabe für etwas, das du nicht gelesen hast. Address Poisoning braucht weniger als das. Es braucht, dass du eine Adresse aus deinem eigenen Transaktionsverlauf kopierst.
Keine Malware, keine Phishing-Seite, keine Signatur, die dir abgeluchst werden muss. Der gesamte Beitrag des Angreifers besteht darin, eine plausibel aussehende Zeichenkette dort abzulegen, wo du später danach greifen wirst.
Wie es funktioniert
Beginnen wir bei dem, was es überhaupt möglich macht: Niemand liest Adressen. Eine Bitcoin- oder Ethereum-Adresse ist gut dreißig Zeichen Base58 oder Hex ohne Bedeutung, ohne Prüfsumme, die man mit bloßem Auge beurteilen könnte, und ohne jeden Grund, sie sich zu merken. Also kürzen alle Wallets, Block-Explorer und Börsen sie für die Anzeige — 0x8f3C…9A063 — und alle Nutzer lernen, die sichtbaren Enden zu prüfen und die Mitte zu überspringen.
Diese Gewohnheit ist die ganze Angriffsfläche.
Der Angreifer erzeugt per Brute Force Adressen, bis eine die ersten und letzten Zeichen mit einer Adresse teilt, die du tatsächlich benutzt — meist einer, an die du kürzlich Geld geschickt hast. Das ist billig. Schlüsselpaare zu erzeugen geht schnell, und etwa vier führende und vier abschließende Zeichen zu treffen dauert auf gewöhnlicher Hardware Sekunden. Niemand knackt hier etwas; man würfelt einfach, bis eine Zahl vertraut aussieht.
Dann bringen sie diese Adresse in deinen Verlauf. Die gängigen Methoden:
Dusting. Sie schicken dir einen winzigen Betrag — ein paar Satoshi, den Bruchteil eines Cents irgendeines Tokens — von der ähnlich aussehenden Adresse. Das ist eine gewöhnliche eingehende Transaktion und landet in deinem Verlauf wie jede andere. Auf UTXO-Chains wird der Staub außerdem zu einer ausgabefähigen Münze in deiner Wallet, was später wichtig wird.
Null-Transfers. Auf EVM-Chains ist ein ERC-20-transfer über null Token eine gültige Transaktion. Der Angreifer sendet 0 Token von deiner Adresse an seine Fälschung, was manche Oberflächen als von dir getätigte ausgehende Zahlung darstellen. Dein Verlauf zeigt nun, dass du offenbar an eine Adresse gesendet hast, die du nie gewählt hast.
Gefälschte Events. Ein bösartiger Token-Contract kann ein Transfer-Event auslösen, das nie stattgefunden hat. Explorer und Wallets, die Event-Logs vertrauen, zeigen es an. Nichts hat sich bewegt; der Eintrag ist schlicht gelogen.
Dann warten sie. Tage, manchmal Monate. Der Angriff zahlt sich aus, wenn du das nächste Mal dieselbe Gegenpartei bezahlen willst, deinen Verlauf nach „der Adresse von letztem Mal" durchscrollst und die falsche Zeile kopierst. Beide sehen aus wie 0x8f3C…9A063. Du prüfst die Enden. Die Enden stimmen.
Warum der übliche Rat nicht trägt
„Prüfe die Adresse immer doppelt" ist die Standardempfehlung, und für sich genommen versagt sie, denn genau das Prüfen setzt der Angriff voraus. Du hast geprüft. Du hast die sechs Zeichen, die deine Wallet zeigte, mit den sechs Zeichen in deiner Erinnerung verglichen, und sie waren identisch — weil der Angreifer sie identisch gemacht hat.
Überprüfung wirkt nur, wenn das Verglichene teuer zu fälschen ist. Vier oder sechs passende Zeichen kosten Sekunden. Sechzehn passende Zeichen würden mehr kosten, als der Diebstahl wert ist. Das ganze Spiel ist, an welchem Ende dieser Kurve deine Gewohnheiten sitzen.
Auf UTXO-Chains gibt es eine zweite Falle. Diese Staubzahlung ist jetzt eine Münze in deiner Wallet, und wenn deine Wallet Eingänge automatisch zusammenlegt, kann sie in eine spätere Transaktion eingesammelt werden — was die bestäubte Adresse mit dem Rest deiner Münzen verknüpft. Das ist eher ein Privatsphäre- als ein Diebstahlproblem, aber es ist der Grund, Staub zu ignorieren statt aufzuräumen.
Was tatsächlich schützt
Beziehe niemals eine Adresse aus einem Transaktionsverlauf. Das ist die eine Änderung, auf die es ankommt. Dein Verlauf ist eine Aufzeichnung dessen, was passiert ist, keine Liste derer, denen du vertraust — und jeder auf der Welt kann hineinschreiben. Hol dir Adressen von der Gegenpartei, über einen Kanal, auf dem dir ein Betrüger auffiele, oder aus einem Adressbuch, das du selbst gefüllt hast.
Vergleiche ganze Adressen — oder etwas, das die ganze Adresse zusammenfasst. Alle zweiundvierzig Zeichen zu lesen ist unrealistisch. Ein Identicon zu vergleichen — ein kleines Bild, das deterministisch aus der gesamten Zeichenkette erzeugt wird — ist es nicht, denn eine Fälschung, die irgendwo in der Mitte abweicht, ergibt ein sichtbar anderes Bild. Dein Auge erledigt die Arbeit, die deine Geduld nicht leistet.
Nutze einen gespeicherten Kontakt. Eine Adresse, die du einmal gespeichert hast, aus einer Quelle, die du einmal geprüft hast, kann später nicht vergiftet werden. Dafür sind Adressbücher da, und deshalb bewahrt SSP Kontakte auf deinem Gerät auf statt auf einem Server: Eine Kontaktliste ist nur vertrauenswürdig, wenn niemand sonst sie bearbeiten kann.
Schicke bei großen oder erstmaligen Überweisungen eine Testzahlung. Kleiner Betrag, Empfang auf einem anderen Weg bestätigen, dann den Rest senden. Gebühren machen das lästig, und für eine Zahlung, deren Verlust wehtäte, ist es trotzdem richtig.
Ignoriere Staub. Gib ihn nicht aus, „räum ihn nicht auf", und sei vorsichtig mit automatischer Zusammenlegung, wenn dir Privatsphäre wichtig ist.
Was SSP dagegen tut
Address Poisoning ist ebenso ein Darstellungs- wie ein Sicherheitsproblem, also liegt ein Teil der Antwort darin, wie Adressen gezeichnet werden.
SSP kürzt Adressen mit sechs führenden und sechs abschließenden Zeichen — 0x8f3C4b…9A0631 — statt der drei oder vier, die viele Oberflächen verwenden. Das ist keine kosmetische Entscheidung. Jedes zusätzliche Zeichen vervielfacht die Brute-Force-Kosten für einen Treffer, und zwölf sichtbare Zeichen rücken eine überzeugende Fälschung weit außer Reichweite beiläufiger Erzeugung.
Die Mitte wird abgeschwächt, nicht gelöscht. In der ausgeklappten Form zeigt die Wallet die vollständige Zeichenkette mit fett gesetzten Enden und heller gefärbter Mitte, sodass genau der Teil, dessen Überspringen Angreifer einkalkulieren, physisch auf dem Bildschirm bleibt, statt durch drei Punkte ersetzt zu werden, hinter denen alles stecken könnte.
Derselbe Code läuft in beiden Apps. splitAddressForDisplay in SSP Wallet ist eine direkte Portierung aus SSP Key, absichtlich identisch gehalten, damit eine Adresse im Browser und auf dem Telefon gleich aussieht. Das zählt, weil SSP dir die Transaktion zweimal zeigt, auf zwei Geräten — und ein zweiter Blick ist nur dann eine echte Prüfung, wenn beide Oberflächen dasselbe auf dieselbe Weise darstellen. Zwei verschiedene Kürzungen ließen eine Abweichung im Unterschied verschwinden.
Auf dem Freigabebildschirm von SSP Key wird der Empfänger mit einem Identicon dargestellt, das aus der vollständigen Adresse erzeugt wird, neben dem gekürzten Text; ein Tippen klappt die komplette Adresse als markierbaren Text auf. Das Identicon ist der Teil, der einen Tausch in der Mitte auffliegen lässt: Ein Angreifer kann deine ersten und letzten Zeichen treffen, aber kein Bild, das aus jedem Zeichen abgeleitet ist — nicht ohne ein sehr viel härteres Problem zu lösen.
Nichts davon ist eine Garantie. Wenn du eine vergiftete Adresse einfügst und auf beiden Geräten freigibst, wird SSP sie signieren — das heißt es, eine Wallet zu sein, die du kontrollierst, und kein Verwahrer, der deine Entscheidungen hinterfragt. Zwei-von-zwei-Multisig hindert andere daran, deine Münzen auszugeben; es kann dich nicht daran hindern, absichtlich die falsche Person zu bezahlen. Wie bei jedem Angriff, der davon lebt, dass du handelst, muss die Verteidigung vor dem Signieren greifen, nicht währenddessen.
Die Kurzfassung
Address Poisoning funktioniert, weil du sechs Zeichen statt zweiundvierzig vergleichst, und der Angreifer weiß, welche sechs. Die Verteidigung ist nicht mehr Sorgfalt — sie besteht darin, nie eine Adresse von einem Ort zu nehmen, an den ein Angreifer schreiben kann, und Werkzeuge zu benutzen, die dir die überschlagenen Teile wieder vor Augen führen.


