Speicherisolation
Erweiterungen:
Auf Browsererweiterungen basierende Wallets wie MetaMask verwenden isolierten lokalen Speicher, auf den nur die Erweiterung zugreifen kann, ohne dass eine Website darauf zugreifen kann. Die Erweiterung kann Daten an die Website senden, oder die Website kann Daten anfordern, indem Nachrichtenübermittlungsanforderungen ausgeführt werden. Private Schlüssel werden im lokalen Sandbox-Speicher gespeichert, und von der Website werden Anforderungen an die Nebenstelle zum Signieren von Nachrichten gestellt. Die Erweiterung gibt die signierte Nachricht an die Website zurück.
Webbasiert:
Browser-basierte Krypto-Wallets wie Authereum , Portis , Torus und FortmaticVerwenden Sie den lokalen Sandbox-Speicher auch über einen Iframe. Im Gegensatz zu Cookies ist der lokale Speicher durch die Domain streng eingeschränkt. Wenn also eine Website einen Wert im lokalen Speicher festlegt, kann nur diese Website den Wert lesen. Daher kann alice.com den lokalen Speicher von bob.com nicht lesen. Um sensible Speicherwerte für den lokalen Speicher zu speichern, werden sie unter einer kontrollierten Unterdomäne festgelegt, z. B. x.wallet.com, da keine andere Website den lokalen Speicher lesen kann. Diese Subdomain enthält keine Benutzeroberfläche und ist nur für die iframed-Kommunikation gedacht. Die Web3-Anbieter dieser Brieftaschen laden einen versteckten Iframe auf die Website, der zur Kommunikation mit der Subdomain verwendet wird, die den Sandbox-Speicher enthält. So stellt beispielsweise das Authereum-SDK unter Verwendung von Authereum auf Alice auf dapp.com eine Verbindung zu x.authereum.org über einen Iframe her und sendet postMessageAnfragen an den Iframe von der Website, Nachrichten zu signieren. Dies verhindert, dass die Website vertrauliche Daten wie private Schlüssel liest, und ermöglicht der Website nur das Senden von Zeichenanforderungen, ähnlich wie bei Wallet-Erweiterungen.
Nicht alle webbasierten Brieftaschen verfügen über einen lokalen Sandbox-Speicher. Sie sollten diese daher vermeiden, da jede Website die gespeicherten vertraulichen Daten lesen kann. Die hier genannten Brieftaschen sind jedoch in dieser Hinsicht sicher.
Schutz vor Phishing-Angriffen
Phishing-Angriffe treten auf, wenn ein Benutzer zu der Annahme verleitet wird, dass er eine bekannte Website verwendet, stattdessen jedoch eine schädliche Website verwendet, die der legitimen Website ähnelt. Authereum, Portis und Torus sind auf Benutzernamen und Kennwort basierende Anmeldelösungen, sodass sie das Anmeldeauthentifizierungsfenster in einem neuen Popup oder einer neuen Umleitung öffnen. Auf diese Weise kann der Benutzer die Domain der Website auf ihre Legitimität überprüfen. Google Auth führt dieses Muster ebenfalls aus. Neben dem Öffnen eines neuen Fensters bei der Anmeldung, das der Benutzer überprüfen kann, öffnen einige webbasierte Wallet-Anbieter auch ein neues Fenster, wenn sie Nachrichten und Transaktionen signieren, um die Anforderung zu überprüfen.
Click Jacking tritt auf, wenn eine Website über einen Iframe auf der Website geladen wird und die Website eine andere Benutzeroberfläche über der iframed-Website mit Zeigerereignissen überlagert und den Benutzer dazu verleitet, Informationen einzugeben oder auf eine Schaltfläche auf der überlagerten Benutzeroberfläche zu klicken aber sie klicken tatsächlich auf eine Schaltfläche auf der iframed-Website. Dies ist gefährlich, da die Aktion auf der iframed-Website so etwas wie das Senden von Geldern an die Brieftasche des Angreifers sein kann.
Um zu verhindern, dass die Wallet-Site überhaupt in einen Iframe geladen wird, muss die Wallet-Site X-Frame-Options: DENY
lediglich den HTTP-Header festlegen. Dies tun Authereum und Portis, damit sie vor diesen Angriffen geschützt sind.
Vertrauenswürdige Inhaltsskripte
Es ist einfach, den Quellcode der Browsererweiterung mithilfe von Quell-Viewer-Plugins zu überprüfen. Um jedoch zu verhindern, dass eine Erweiterung automatisch mit schädlichem Code aktualisiert wird, kann ein Benutzer die Erweiterung manuell installieren, um sie auf eine Version zu sperren, indem er den Quellcode von github abruft, falls dies der Fall ist Open Source oder vom Herunterladen der Quellenskripte.
Da bei webbasierten Wallets der Eigentümer der Wallet-Site die Inhaltsskripte steuert, müssen Sie darauf vertrauen, dass die Content-Skripte, die die vertraulichen Schlüsseldaten verwalten, nicht böswillig sind, da der Eigentümer der Wallet-Site oder ein Angreifer, der Zugriff auf die Wallet-Site erhalten hat, dies tun kann Aktualisieren Sie den Quellcode der Website jederzeit mit fehlerhaftem Code.
Um Inhaltsskripten zu vertrauen, kann die Wallet-Site auf IPFS gehostet werden, da die Webadresse der Inhalts-Hash ist. Sie können also darauf vertrauen, dass sie sich nicht ändert. Authereum ist eine Brieftasche, die dies bereits bietet, indem sie authereum.eth besucht oder die contenthash
Eigenschaft ihres ENS-Namens auflöst .
Bequemlichkeit
Webbasierte Brieftaschen sind portabel, da Sie dieselbe Brieftasche auf jedem Betriebssystem, Browser, Desktop oder Handy verwenden können, während Sie mit der Browsererweiterung an der Umgebung festhalten, aus der Sie die Erweiterung verwenden. Erweiterungen sind äußerst unpraktisch, bieten jedoch mehr Garantien für die Speicherisolation. Bei vertragsbasierten Konten können jedoch mehr Sicherheitsfunktionen auf der Brieftaschenseite angeboten werden.
Vertragsbasierte Konten
MetaMask, Portis, Torus und Fortmatic basieren alle auf externen Konten (EOA). Dies bedeutet, dass Gelder mit einem einzigen Schlüssel gespeichert und verwaltet werden. Wenn ein Angreifer Zugriff auf den Signaturschlüssel erhält, hat er auch Zugriff auf die unter diesem Schlüssel gespeicherten Gelder.
Vertragsbasierte Konten (CBA) wie Authereum bieten mehr Sicherheitsgarantien, da jeder Kontovertrag über mehrere Schlüssel zur Verwaltung verfügen kann und jeder Schlüssel möglicherweise nur über begrenzte Berechtigungen für die von ihm ausgeführten Aktionen verfügt.
Vorteile vertraglicher Konten:
- Gelder werden nicht auf einem einzigen Schlüssel gespeichert
- Sie können die Verwaltungsschlüssel durchlaufen
- Kontowiederherstellung, falls Ihre Verwaltungsschlüssel gestohlen werden oder verloren gehen
- Limits übertragen und zurückziehen
- Zugriffssteuerungen für Schlüssel, dh Sie können einschränken, welche Methoden ein Schlüssel aufrufen kann