Heim >Web-Frontend >js-Tutorial >Erstellen Sie Ihren eigenen sicheren Seed-Phrase-Generator

Erstellen Sie Ihren eigenen sicheren Seed-Phrase-Generator

WBOY
WBOYOriginal
2024-07-30 11:50:51938Durchsuche

Der erwähnte Code ist in meinem Github verfügbar
Im vorherigen Beitrag habe ich die NodeJs-Version des Seed Phrase Generators erstellt. Hier erstellen wir die Browserversion davon.

Als Entwickler stehen wir oft vor Herausforderungen, die von uns verlangen, über grundlegende Programmierkonzepte hinauszudenken. Heute möchte ich meine Erfahrungen beim Aufbau eines sicheren Seed-Phrase-Generators teilen – ein entscheidendes Werkzeug in der Welt der Kryptowährungen und der Blockchain-Technologie. Durch dieses Projekt habe ich wertvolle Erkenntnisse über Kryptografie, Benutzerinteraktion und die Bedeutung der Zufälligkeit in Sicherheitsanwendungen gewonnen.

Die Bedeutung echter Zufälligkeit

Bei der Generierung von Seed-Phrasen ist die Qualität der Zufälligkeit von größter Bedeutung. Vor langer Zeit habe ich Math.random() von JavaScript verwendet, aber mir wurde schnell klar, dass dies für kryptografische Zwecke nicht sicher genug war. Hier bin ich gelandet:

function generateCustomRandomBytes(byteLength, mouseMoves) {
    const customBytes = new Uint8Array(byteLength);
    window.crypto.getRandomValues(customBytes);

    const mouseHash = new Uint32Array(mouseMoves);
    for (let i = 0; i < byteLength; i++) {
        customBytes[i] ^= mouseHash[i % mouseHash.length] & 0xFF;
    }

    return customBytes;
}

Diese Funktion kombiniert kryptografisch sichere Zufallswerte aus window.crypto.getRandomValues() mit benutzergenerierter Entropie aus Mausbewegungen. Die XOR-Operation stellt sicher, dass beide Quellen zur endgültigen Zufälligkeit beitragen.

Einbindende Benutzerinteraktion für zusätzliche Sicherheit

Ich habe beschlossen, den Benutzer in den Prozess der Zufallsgenerierung einzubeziehen. Durch die Verfolgung von Mausbewegungen erhöhen wir nicht nur die Entropie, sondern binden den Benutzer auch ein und machen ihn zu einem aktiven Teilnehmer am Sicherheitsprozess.

Visuelles Feedback geben

Building your own Secure Seed Phrase Generator

Um die Benutzer auf dem Laufenden zu halten und zu motivieren, habe ich einen Fortschrittsbalken implementiert, der die tatsächliche Mausbewegung und nicht nur die verstrichene Zeit widerspiegelt:

function updateProgressBar() {
    const progress = Math.min((mouseMoves.length / 3) / requiredMoves * 100, 100);
    document.getElementById('progressBar').style.width = progress + '%';

    if (progress >= 100 && collecting) {
        stopRandomCollection();
    } else if (collecting) {
        requestAnimationFrame(updateProgressBar);
    }
}

Dieser Ansatz bietet Echtzeit-Feedback und ermutigt Benutzer, ihre Maus zu bewegen, bis ausreichend Entropie gesammelt ist.

Schutz sensibler Daten

Eine entscheidende Lektion war die Bedeutung des Schutzes sensibler Daten. Zunächst habe ich die Mausbewegungsdaten in einer globalen Variablen gespeichert, auf die möglicherweise böswillige Skripte zugreifen könnten. Ich habe das Problem gelöst, indem ich „closure:
“ verwendet habe

(function() {
    let mouseMoves = [];
    // ... other variables and functions ...

    function stopRandomCollection() {
        // ... other code ...
        generateSeedPhrase(mouseMoves);
        mouseMoves = []; // Clear sensitive data after use
    }
    // ... rest of the code ...
})();

Dieser Ansatz hält die sensiblen Daten gekapselt und für den globalen Bereich unzugänglich.

Sicheres Ausführen des Seed-Phrase-Generators

Einer der wichtigsten Aspekte bei der Verwendung eines Seed-Phrase-Generators besteht darin, sicherzustellen, dass der Prozess vollständig offline und sicher ist. Hier finden Sie eine Schritt-für-Schritt-Anleitung zur sicheren Ausführung dieses Codes:

  1. Erstellen Sie eine neue Textdatei: Öffnen Sie Ihren bevorzugten Texteditor (z. B. Notepad unter Windows oder TextEdit auf dem Mac).
  2. Kopieren Sie den Code und fügen Sie ihn ein: Kopieren Sie den gesamten HTML-Code für den Seed-Phrase-Generator und fügen Sie ihn in diese neue Textdatei ein.
  3. Speichern Sie die Datei mit der Erweiterung .html: Speichern Sie die Datei unter einem Namen wie „seed_phrase_generator.html“. Stellen Sie sicher, dass Sie die Dateierweiterung von .txt in .html ändern. In den meisten Texteditoren können Sie dies tun, indem Sie im Dropdown-Menü „Dateityp“ die Option „Alle Dateien“ auswählen und dann .html am Ende des Dateinamens hinzufügen.

Trennen Sie die Verbindung zum Internet:

Bevor Sie fortfahren, trennen Sie Ihren Computer vom Internet. Dadurch wird sichergestellt, dass während des Seed-Phrase-Generierungsprozesses keine Daten übertragen werden können.
Führen Sie die Datei in Ihrem Browser aus:
Doppelklicken Sie auf die gespeicherte HTML-Datei, um sie in Ihrem Standard-Webbrowser zu öffnen. Der Seed-Phrasen-Generator sollte jetzt lokal auf Ihrem Computer ausgeführt werden.
Generieren Sie Ihre Startphrase:
Befolgen Sie die Anweisungen auf dem Bildschirm, um Ihre Startphrase zu generieren.
Bewahren Sie Ihre Seed-Phrase sicher auf:
Schreiben Sie nach der Generierung Ihre Startphrase auf Papier auf. Speichern Sie es niemals digital.

Image description

Schließen Sie den Browser und löschen Sie die Datei:

Nachdem Sie Ihre Seed-Phrase sicher aufgezeichnet haben, schließen Sie den Browser und löschen Sie die .html-Datei.

Warum offline laufen?

Das Offline-Ausführen dieses Codes ist aus mehreren Gründen von entscheidender Bedeutung:

Sicherheit: Es verhindert jede mögliche Übertragung Ihrer Seed-Phrase über das Internet.
Datenschutz: Es stellt sicher, dass keine Skripte oder Tracker von Drittanbietern den Prozess stören können.
Integrität: Es garantiert, dass der Code ohne externe Änderungen genau wie vorgesehen ausgeführt wird.

Denken Sie daran: Ihre Seed-Phrase ist der Schlüssel zu Ihren digitalen Assets. Geben Sie bei der Generierung und Speicherung immer der Sicherheit Vorrang. Der Offline-Betrieb dieses Generators ist ein entscheidender Schritt zum Schutz Ihrer Vermögenswerte.

Sicherheit und Benutzererfahrung in Einklang bringen

Der Aufbau eines sicheren Seed-Phrase-Generators ist mehr als nur das Schreiben von Code. Es geht darum, kryptografische Prinzipien zu verstehen, die Benutzerinteraktion wertzuschätzen und der Sicherheit stets Priorität einzuräumen. Als Entwickler zwingen uns Projekte wie diese dazu, kritisch über jede Codezeile, die wir schreiben, und ihre möglichen Auswirkungen nachzudenken.

Hier ist der Link zu Github – kostenlos zum Klonen ausfüllen

Das obige ist der detaillierte Inhalt vonErstellen Sie Ihren eigenen sicheren Seed-Phrase-Generator. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn