Friday, October 30, 2020

CrypTool-Website rundum erneuert

CrypTool PortalAllgemeine Neuigkeiten

Im Laufe des Jahres 2020 wurde das CrypTool-Portal erneut umfassend erneuert. Die Website unter www.cryptool.org war ursprĂŒnglich 2003 fĂŒr CrypTool 1 erstellt worden und wurde mit dem Dazukommen von CrypTool 2 und JCrypTool 2008 zum "CrypTool-Portal" umgebaut. 2009 wurde es um CrypTool-Online erweitert.

Das bisherige System

Die letzte umfassende Erneuerung fand 2016 statt. Seitdem wurde die Website mit dem Content Management System (CMS) Joomla betrieben. FĂŒr das Frontend der Website wurden die Bibliotheken Bootstrap 3 und jQuery verwendet.

Ein CMS ist eine Software, die in einem Webserver eingerichtet wird, um die Inhalte einer Website zu verwalten. Danach werden alle Verwaltungsaufgaben vom System ĂŒbernommen.

Die Benutzung von Joomla war fĂŒr die Autoren der Inhalte sehr simpel, da sie diese einfach in einem grafischen WYSIWYG-Editor bearbeiten und direkt auf der Website betrachten konnten. FĂŒr Administratoren bedeutete sie aber einen gewissen Pflege-Aufwand, da regelmĂ€ĂŸig Updates installiert werden mĂŒssen (z.B. bei Sicherheitspatches oder neuen bzw. verbesserten Features).

Die Inhalte der Website wurden von Joomla in einer Datenbank verwaltet und die Seiten daraus auf Anfrage erzeugt: Wenn Sie eine Seite des CrypTool-Portals aufgerufen haben, wurde diese im Hintergrund von Joomla auf dem Webserver live fĂŒr Sie erzeugt* und dann an Ihren Browser ausgeliefert. Das brauchte etwas Zeit und verlangsamte die Ladezeit der Website somit. Joomla selbst benötigte einen Datenbankserver, was die KomplexitĂ€t des Systems erhöht hat.

Daher wurde ein System mit geringerer Total-Cost-of-Ownership und Ladezeit gesucht ...

 

Neues Backend-System

Eine Möglichkeit dazu ist, die Website im Vorfeld zu generieren und bereits fertige HTML-Dateien auszuliefern. Solche Technologien werden "Static-Site-Generatoren" genannt. Das geht allerdings nur, wenn die ausgelieferten Inhalte der Seiten "statisch" sind (sich also nicht zur Laufzeit Ă€ndern). Dynamische CodeausfĂŒhrung im Client bleibt mit JavaScript aber möglich. Beim CrypTool-Portal ist diese Voraussetzung gegeben.

Static-Site-Generatoren gibt es viele. FĂŒr das CrypTool-Portal wurde Jekyll ausgewĂ€hlt. Jekyll ist simpel (ohne viel Schnick-Schnack) und auf Websites mit Blog-Artikeln ausgelegt, so wie das CrypTool-Portal. Jekyll ist ĂŒbrigens (wie Joomla auch) vollstĂ€ndig Open Source.

Workflow des neuen Systems

Die Daten des vorherigen CrypTool-Portals wurden aus der Joomla-Datenbank extrahiert und im Rahmen der Erneuerung ebenfalls ĂŒberarbeitet. Sie werden nun in einem Git-Repository gehalten, zusammen mit den Projekt-Dateien zur Generierung. Bei Änderungen im Repository wird die Website vom Server automatisch neu daraus erzeugt und im Webserver-Verzeichnis gespeichert. Wenn Sie nun eine Seite des CrypTool-Portals aufrufen, zeigen Sie einfach eine unverĂ€nderte HTML-Datei von der Festplatte des Servers an.

Die Aktualisierung auf dieses Vorgehen bietet einige Vorteile: Da nur noch vorerzeugte (statische) Dateien bereitgestellt werden (statt sie durch dynamische Code-AusfĂŒhrung live zu erzeugen), wurde die Sicherheit der Website erhöht und die Ladegeschwindigkeit verbessert. Da es keine CMS-Software mehr gibt, die aktuell gehalten werden muss, wurde der Administrationsaufwand verringert. Da die Daten direkt im Repository gehalten werden, wird kein Datenbankserver mehr benötigt, was die KomplexitĂ€t des Systems verringert.

Neue Frontend-OberflÀche

ZusÀtzlich zum Hintergrund-System wurde auch die Frontend-OberflÀche der Website erneuert: Bootstrap 3 wurde auf Bootstrap 4 aktualisiert und das Layout der Seite mit dessen erneuerten Komponenten redesigned. Dadurch ist die Website auch responsive (mobil, Tablet, Desktop, TV).

Neu hinzugekommen ist ein Darkmode, der durch ein Symbol im Header getoggelt werden kann. Die Suchfunktion wurde erweitert, sie ist ebenfalls im Header verfĂŒgbar.

FĂŒr Logos, Icons und Banner werden nun (wo immer möglich) SVGs verwendet. Diese können ohne QualitĂ€tsverlust skaliert werden und bleiben dadurch auch bei hohen Auflösungen immernoch scharf. Zudem haben sie oftmals eine kleinere DateigrĂ¶ĂŸe als die vorigen Pixelgrafiken.

Aktualisierte CTO-Plugins

Im Rahmen der Rundum-Erneuerung wurden auch die OberflÀchen der CTO-Plugins auf Bootstrap 4 aktualisiert. Manche Plugins zur Kryptoanalyse wurden sogar komplett neu entwickelt: Autokorrelation, HÀufigkeitsanalyse, VigenÚre-Analyse und der Zahlenkonverter.

Einige CTO-Plugins wurden dabei auch so aktualisiert, dass sie sich neueste Web-Technologien wie WebAssembly zunutze machen: Die Caesar-Chiffre und die Monoalphabetische Substitution verwenden zur Berechnung Python live im Browser. Ihr Code kann dabei dynamisch angepasst werden und ohne Download direkt auf der Website ausgefĂŒhrt werden. Das ist convenient, schneller und offen gesagt ziemlich cool.

Die Msieve-Faktorisierung nutzt ebenfalls WebAssembly, um Berechnungen prozessornĂ€her auszufĂŒhren. Die rechenaufwĂ€ndige Faktorisierung war im Browser (vor allem bei großen Zahlen) mit "normalem" JavaScript sehr langsam. Nun kann die C-Bibliothek -- als WebAssembly kompiliert -- direkt im Browser ausgefĂŒhrt werden. Dadurch ist sie dort fast genauso schnell wie ein in C geschriebenes Standalone-Programm.

ZukĂŒnftig werden noch weitere CTO-Plugins mit solchen Technologien hinzukommen. Die nĂ€chsten sind bereits in Arbeit ... aber dazu mehr in einem eigenen Artikel.

Haben Sie VorschlÀge?

Haben Sie Anmerkungen oder Feedback zur neuen Website? Wenn ja, freuen wir uns ĂŒber eine Nachricht von Ihnen. Vielen Dank!