RSA ist einer der bekanntesten asymmetrischen Verschlüsselungsalgorithmen: Der öffentliche Schlüssel kann zum Verschlüsseln und Prüfen von Signaturen veröffentlicht werden, während der private Schlüssel zum Entschlüsseln und Signieren geheim bleiben muss. Dieses Tool erzeugt das Schlüsselpaar lokal im Browser und vereint Verschlüsselung, Entschlüsselung, Signatur und Prüfung auf einer Seite.
Der Tab für Verschlüsselung und Entschlüsselung verwendet den öffentlichen Schlüssel zum Verschlüsseln und den privaten Schlüssel zum Entschlüsseln. Als Padding stehen RSA-OAEP (SHA-256) und PKCS#1 v1.5 zur Verfügung. RSA kann nur relativ kurze Daten verschlüsseln. Das Tool berechnet abhängig von Schlüssellänge und Padding die maximale Bytezahl: bei OAEP ungefähr Schlüsselbytes minus 66 und bei PKCS#1 v1.5 ungefähr minus 11. Bei zu langen Daten wird direkt gewarnt und eine hybride Verschlüsselung empfohlen: AES für die Daten und RSA für den AES-Schlüssel.
Der Tab für Signatur und Prüfung verwendet den privaten Schlüssel zum Signieren und den öffentlichen Schlüssel zum Prüfen. Als Verfahren stehen RSA-PSS (SHA-256) und PKCS#1 v1.5 zur Verfügung. Die Signatur wird als Base64 ausgegeben und kann mit einem Klick in das Prüfungsfeld übernommen werden. Das Ergebnis zeigt eindeutig, ob die Signatur gültig oder ungültig ist. Außerdem weist die Seite darauf hin, dass Verschlüsselung und Signatur unterschiedliche Zwecke haben und nicht verwechselt werden dürfen.
Schlüsselerzeugung und alle Berechnungen verwenden die WebCrypto-Schnittstelle des Browsers. Diese ist nur in einem sicheren Kontext verfügbar, daher ist HTTPS erforderlich. Bei der Erzeugung größerer Schlüssel zeigt die Seite einen Wartezustand an.
Das Schlüsselpaar wird lokal im Browser erzeugt. Private Schlüssel und Klartext werden weder an den Server übertragen noch gespeichert. Da Browser nicht zur sicheren Verwahrung von Produktionsschlüsseln geeignet sind, sollten die hier erzeugten Schlüssel nur für Tests und Lernzwecke verwendet werden. Für die reine Konvertierung eines vorhandenen Schlüsselformats sollte ein RSA-Schlüsselformat-Konverter verwendet werden.
Kommentare 0