Skip to content

realAscot/cryptocard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

✏️ Cryptocard

Logo

Sichere Passwörter – ganz ohne Passwortmanager

Cryptocard ist ein browserbasiertes Tool zur deterministischen Passworterzeugung – offline, ohne Passwortmanager und ohne Cloud.

🔐 Deterministische Passworterzeugung
🌐 Läuft komplett offline im Browser
📄 Einfache Ausgabe als Tabelle / CSV / Print

Offline No Tracking


Sicherheitshinweis

Cryptocard speichert keine Passwörter, keine Master-Passwörter und sendet keine Daten über das Netzwerk. Die Generierung erfolgt vollständig lokal im Browser.

⚠️ Die Sicherheit hängt maßgeblich von:

  • der Geheimhaltung der gewählten Parameter
  • der Qualität des verwendeten Drucks
  • der sicheren Aufbewahrung der Karte

Cryptocard ersetzt kein vollwertiges Passwortmanagement für hochsensible Anwendungen.


Cryptocard ist inspiriert durch dieses Video von @rolfsnbahn auf YouTube.

Im Video wird die grundlegende Idee sowie die Verwendung der Cryptocard erläutert. Das Video und die Idee stammt nicht von mir!

⚠️ Kleiner Tipp:
In der Druckvorschau kann vor dem Druck die Größe der Tabelle nochmals skaliert werden.

Die Grundidee fand ich sehr interessant, allerdings empfand ich das ursprüngliche Vorgehen mit Python als umständlich: Es erforderte eine Python-Laufzeitumgebung und die Konfiguration erfolgte direkt im Quellcode.

Daher habe ich Cryptocard in JavaScript portiert und alle benötigten Assets in eine einzelne HTML-Datei integriert. Vorteile:

  • Läuft direkt im Browser, keine zusätzliche Software nötig
  • Konfiguration erfolgt benutzerfreundlich ohne Änderungen am Quellcode
  • Kein Export und Import in Tabellenkalkulationen erforderlich

Optional ist weiterhin ein Export in eine .csv-Datei möglich, falls dies benötigt wird.

Damit dieser Version hier weitestgehend mit dem Video kompatibel bleibt, habe ich alle Bezeichner im Quellcode namentlich belassen wie in seinem Video.

Eine weitere Portierung als reines Stand-Alone-CLI-Tool ist geplant und erfolgt in RUST


Funktionsweise

Cryptocard erstellt eine individuelle Zeichen-Tabelle, die als Grundlage für reproduzierbare Passwörter dient.

  • Zu Beginn stehen vier Eingabefelder zur Verfügung, in die Zeichen eingegeben werden, aus denen die Tabelle erzeugt wird.
  • Die Felder sind bereits mit sinnvollen Standardwerten vorbelegt und können optional angepasst werden.
  • Mit einem Klick auf „Neue CryptoCard“ wird die Tabelle generiert.

Die erzeugte Tabelle kann anschließend ausgedruckt oder digital gespeichert werden und dient als persönliche Cryptocard.

Passwort-Erzeugung

Für die spätere Nutzung merkt man sich ein festes Muster, ähnlich dem Wischmuster eines Smartphones.

  • Ein Passwort entsteht, indem man an einer Startkoordinate (z. B. D4) beginnt
  • und dem gewählten Muster über die Tabelle folgt.
  • Die Zeichen entlang dieses Musters ergeben das Passwort.

Passwortbuch (optional)

Statt Passwörter direkt zu speichern, kann ein Passwortbuch verwendet werden, in dem lediglich die jeweilige Startkoordinate notiert wird.

Das eigentliche Passwort ergibt sich ausschließlich durch:

  • die persönliche Cryptocard und
  • das geheime Muster

Sicherheitsprinzip

Selbst wenn jemand sowohl die Tabelle als auch das Passwortbuch in die Hände bekommt, ist ohne Kenntnis des Musters keine Rekonstruktion der Passwörter möglich.


Vorschau

✈️ Eine Vorschau und die aktuelle Version Online gibt es hier.

QR-Code
Der QR-Code führt Dich sofort zur Online-Version.


Versionen

JavaScript-Version

JavaScript

Zum eigentlichen Programm geht es hier, ist aber auch rechts unter Releases zum herunterladen verfügbar und funktioniert standalone offline.


Build und Installation

Grundsätzlich sei zu sagen dass ein build im klassischen Sinne nicht nötigt ist. Da ich allerdings esbuild als Bundler verwende, muss man aus den verschiedenen Scriptdateien, dem getrennten HTML und CSS eine monolithische HTML-Datei erstellen. Dies macht man mit folgenden schritten falls du eine der Dateien selbst bearbeitet hast.

Build

Ich gehe davon aus, das Du node.js installiert hast. Wechsel in das Projektverzeichnis dieses Projekt und installiere die Dependencies mit:

npm ci

oder

npm install

Anschliessend die HTML Datei bauen mit:

npm run dev

Es wird die Datei ./dist/cryptocard.html erstellt. Um Dir diese Schritte zu ersparen, habe ich die aktuelle Datei unter ./dist belassen. So lange Du also keine Änderungen durchführen musst, kannst Du diese verwenden.

Installation (für Anwender)

Keine Installation nötig. Lade die Datei cryptocard.html aus dem dist-Ordner herunter und öffne sie lokal im Browser.


ToDo

  • .csv Import implementieren
  • PDF-Generierung Clientseitig im Browser
  • Version besser für Smartphones überarbeiten

Changelog

  • 1.2.2
    • Readme ergänzt und überarbeitet.
  • 1.2.1
    • Tippfehler im Frontend korrigiert.
  • 1.2.0
    • .csvExport integriert
    • Einige Dateien aus Version 1.1.0 entfernt und Projekt bereinigt. Der Ordnung halber, habe ich die Dateien im Repo belassen.
  • 1.1.0
    • ⚠️ Breaking Changes
      Komplett auf Modulversion (ESM) mit esbuild umgebaut.
  • 1.0.0
    • Erste Version, händisch mit commonJS erstellt.

MIT