OpenSSL

Mit WebAssembly für den Webbrowser portiert

Hintergrund

Die Basis dieser Anwendung ist die Open-Source-Software OpenSSL. OpenSSL ist ein weit verbreitetes Toolkit und dient unter anderem dazu, eine sichere Datenübertragung im Internet durch die Implementierungen der Verschlüsselungsprotokolle SSL/TLS zu gewährleisten.

Zusätzlich verfügt OpenSSL über ein Kommandozeilenprogramm (CLI), das verschiedene kryptographische Werkzeuge bereitstellt, darunter [1]:

  • Ver- und Entschlüsselung
  • Berechnung von Hash-Werten
  • Erzeugung kryptographischer Schlüssel
  • Erstellung und Verwaltung von digitalen Zertifkaten
  • SSL/TLS Client- und Server-Tests

OpenSSL bedienen

Das Programm OpenSSL kann über seine CLI bedient werden. Das steht für "Command Line Interface" und meint das Terminal. Man schreibt also einen "Befehl" ins Terminal, zum Beispiel openssl genrsa 1024 (das erzeugt einen 1024 Bit langen RSA Schlüssel). Man schreibt immer zuerst openssl und dann welche Funktion aus OpenSSL man möchte und dann meistens noch Parameter, die sind immer unterschiedlich.

Allgemein sehen "Befehle" immer so aus:

openssl <funktion> [parameter]

Die spitzen Klammern bedeuten, dass der Name der funktion variabel ist. Man kann also unterschiedliche Werte einsetzen. Die eckigen Klammern bedeuten, dass die parameter optional sind, das kommt immer auf die Funktion an.

Eine Übersicht aller Funktionen bietet der help Befehl:

openssl help

Man kann für jede Funktion eine Liste möglicher Parameter angezeigt bekommen, wenn man -help dahinter schreibt:

openssl <funktion> -help

Pro Tipp: In der Dokumentation von OpenSSL stehen auch noch Erklärungen und Beispiele zu allen Funktionen und ihren Parametern.

Man kann auch die Ausgaben mehrerer Befehle miteinander verbinden, indem man sogenannte "Pipes" benutzt (gerader Strich nach oben: "|"). Dabei wird die Ausgabe des linken Befehls als Eingabe an den rechten Befehl übertragen. Um die Ausgaben einzufärben, kann man zum Beispiel lolcat dahinter schreiben:

openssl genrsa 1024 | lolcat

Allgemein sähe das dann so aus, also man kann beliebige Befehle einsetzen:

<befehl1> | <befehl2>


Über diese Anwendung

Diese Anwendung ermöglicht, OpenSSL direkt im Browser zu benutzen. Mit Hilfe der grafischen Oberfläche lassen sich die teils komplexen OpenSSL Befehle leicht zusammen klicken. Sie wird auch "GUI" genannt, das ist Englisch für "Graphical User Interface".

Dazu wurde OpenSSL (Version 3.0 geschrieben in C) mit Emscripten zu WebAssembly kompiliert. WebAssembly ist Assembler Code, der im Browser ausgeführt werden kann. Weitere Informationen finden Sie im GitHub Repository oder der zugrunde liegenden Bachelorarbeit.


Dateien Tab

Im Tab "Dateien" werden nach jedem Befehl die aktuell im virtuellen WebAssembly Dateisystem vorhandenen Dateien angezeigt. Sie können auch Dateien von Ihrem Device auswählen und sie in Befehlen verwenden.


Referenzen

[1] OpenSSL (GitHub): https://github.com/openssl/openssl