Nachrichten-Signaturen leicht gemacht
Es gibt eine Menge Missverständnisse über Signaturen. In diesem Artikel möchte ich vier Arten von Nachrichten-Signaturen erläutern. Er soll Euch dabei helfen, die Risiken zu verstehen, die mit dem Signieren von Nachrichten (manchmal auch als gaslose Signaturen bezeichnet) verbunden sind – egal ob auf Ethereum oder anderen EVM-kompatiblen Blockchains.
Vier Arten von Signaturen
Diese Signaturtypen sind für alle Ethereaner im Web3 Umfeld essentiell und wichtig:
Typ #1 - Der Identitätsnachweis (Safe)
Hierfür werden Signaturen im Web3 Kontext hauptsächlich verwendet. Obwohl es keinen einheitlichen Standard dafür gibt, wie diese aussehen, beinhalten sie einige gängige Dinge wie Nutzungsbedingungen, Eure Wallet-Adresse und manchmal eine Nonce, um Replay-Attacken zu verhindern. Darüber hinaus möglicherweise noch eine kurze Zeichenkette, um sicherzustellen, dass die Nachricht, die auf der Software-Wallet signiert wurde, die gleiche ist wie auf der Hardware-Wallet. Hierzu noch ein paar Beispiele:


Typ #2 - Die maschinelle Signatur [Smart Contract Interaktion] (Vorsicht)
Oftmals verlassen sich Teile von Smart Contracts auf off-chain Signaturen. Diese Arten von Signaturen werden alle Eingaben, die Teil der Vertragsinteraktion sind, aufschlüsseln. Das ist zwar praktisch, aber wenn ihr offene Genehmigungen habt, müsst ihr an dieser Stelle vorsichtig sein. An diesem Beispiel kann man genau sehen was die Signatur bewirkt.
Trotzdem müsst ihr immer sicherstellen, dass die Quelle, aus der diese Art von Signaturanfragen stammt, seriös ist (siehe unser Artikel "Alles über Approvals oder Genehmigungen bringen Schwung in die Kiste!“).

Typ #3 - Die verdeckte Hex-Signatur (Äußerste Vorsicht!)
Nur weil etwas nicht mit einer schönen maschinellen Signatur nach dem oben genannten EIP-712-Standard versehen ist, heißt das noch lange nicht, dass es sich um einen Betrug handelt. Es bedeutet jedoch, dass ihr bei jeder Art von Nachricht, die ihr unterschreibt, der Gegenseite vertraut, da ihr im Grunde eine Nachricht “Blind Signiert”. Auch wenn dieser Fall bei Opensea aufgrund der Verbesserungen des Seaport-Vertrags heutzutage nicht mehr der Fall ist, würde ich dennoch vorsichtig sein, bevor ich diese Art von Nachrichten unterschreibe, vor allem, wenn es sich um eine Wallet-Adresse mit offenen Genehmigungen handelt. Unsicher? Lesen hierzu unseren Artikel über den Widerruf von Genehmigungen und schaut gleich nach, welche Genehmigungen ihr für diese!

Typ #4 - ETH_Sign - Veraltet und ein bisschen unheimlich (gefährlich!)
Dies ist ein sehr gefährlicher Signaturtyp, im Grunde der "Blankoscheck" von Ethereum. Der Antragsteller kann damit jede Transaktion mit eurem privaten Schlüssel signieren. Die gute Nachricht ist, dass Metamask eine große rote Warnung anzeigt, wenn sie jemals angefordert wird. Sie ermöglicht es jemandem, eine Transaktion zu seinem eigenen Vorteil "nachzuspielen", z. B. sich selbst ETH zu schicken, wenn er die Signatur-Payloads richtig konstruiert. Dies beruht nicht auf Genehmigungen, wie es bei gestohlenen wETH, NFTs und anderen Tokens der Fall ist. Das ist der einzige Signaturtyp, der diese Art von Risiko mit sich bringt. Da es selten vorkommt, dass ein Dienst diesen rechtmäßig nutzt, sollte er daher generell um jeden Preis vermieden werden.

UPDATE: Basierend auf unserem Feedback und dem anderer Community-Mitglieder ist ETH_SIGN nun standardmäßig in Metamask deaktiviert (ihr könnt es aber in den erweiterten Einstellungen aktivieren, daher lassen wir es hier der Vollständigkeit halber stehen!) Wir betrachten dies als einen großen UI/UX-Gewinn in diesem Bereich, der unsere Kommunikation bezüglich Signaturen vereinfacht.
Weitere Quellen
Wir sind uns bewusst, dass wir einige der technischen Begriffe vereinfacht haben. Bevor ihr also ruft: "Ihr benutzt die falschen Bezeichnungen dafür", solltet ihr wissen, dass wir versuchen, das Ganze zu vereinfachen, um es für alle verständlicher zu machen! Nachfolgend finden sich weitere Quellen und technische Erklärungen zu Signaturen, Signaturtypen und deren Implementierungen!
Weitere Informationen zu den technischen Details gibt es hier:
Can your wallet be drained simply by signing a message in Metamask?
Let's talk about it.
🧵👇— IOE (@CT_IOE) June 8, 2022
Einige weitere hilfreiche Artikel über Signaturen:
- Einführung in die Kryptographie und Signaturen in Ethereum - von Immunefi
- Signieren von Daten | Metamask - von Metamask
Ihr habt weitere Fragen? Möchtet mehr über Web3 Security erfahren? Wollt über die aktuellen Sicherheitsinformationen, Betrügereien und Taktiken auf dem Laufenden bleiben? Dann besucht unseren Discord Channel unter: https://discord.gg/boringsecurity. ![]()


