Anleitungen
Inhaltsverzeichnis
- Youtube Ratsnest Kurs
- Programme
- Kryptologie
- Lua Programmiersprache
- Android Apps
- HTML
- Mako Webserver
- Raspberry Pi
- Nicht mehr in Kansas
- Musik
YouTube Ratsnest Kurs
Kurze ca. 15 Minuten Clips von mir, wo ich das aus dem Unterricht wiederhole und nochmals ergänze, damit ihr den Server für eure Projekte nutzen könnt.
- Informatik 101: Zahlensysteme Dezimal, Binär (Dual), Hexadezimal, Oktal
- Informatik 102: Netzwerk mit Filus Wir bauen ein ausfallsicheres Netzwerk mit Hilfe von Filius auf, das sich auch über alle Rechner in unserer Klasse erstreckt
- Linux 101: Dateiverwaltung ssh, exit, ls, pwd, chmod, chown, newgrp, members, rm, tree, man hilfe, help, mkdir, rmdir, cp, mv, nano, vim, luajit, geoiplookup
- Linux 102: Prozess- und Userstatus top, ps, ps aux, grep, who, tty, lscpu, uptime, free, geoiplookup, whois, ctrl-c, d und z, fg, bg, jobs "&", nice, sowie kurz tmux
- Linux 103: Zugang mit SSH von Android Zugang mit Termux und ssh aus dem Paket openssh, und Zugang mit ConnectBot. In beiden Fällen probieren wir, wie wir ein Keypair erzeugen für SSH, die moderne Version von Public-Key-Kryptographie und wie ihr euren Public-Key auf den Server kopiert, so dass wir uns zukünftig ohne Passwort einloggen können.
Das Key erzeugen unter Linux mit ssh-keygen.
Wer genau aufpasst, kann übrigens sehen, wie ich beim Posten des Pubkeys in die Shell einen Fehler mache und ihn aus Versehen zwei mal einfüge. Mein Handy hat bei Drücken von "Einfügen" gewackelt und so ging das zweimal raus, so schnell, dass ich's nicht bemerkt habe. Achtet darauf, wenn ihr's selbst macht. Falls das passiert, könnt ihr das natürlich mit einem Editor im Nachhinein korrigieren. - Linux 104: Zugang mit Putty und WinSCP von Windows Wir installlieren die Programme, um mit dem Server zu interagieren. Während Putty unser SSH Client ist, ist WinSCP unser SCP client. Mit SCP kann man grundsätzlich Dateien über SSH verschlüsselte Verbindungen kopieren, SCP ist ein Datei-Transfer Protokoll. Das geht natürlich auch von Linux und Android.
Das Key Erzeugen unter Putty und WinSCP ist leider sehr viel komplizierter und ist nicht Teil dieser Anleitung, man kann aber das Passwort zum Login speichern. - Linux 105: Webseiten mit Lua programmieren Wir können auf unserem Ratsnest Server nicht nur statische Seiten mit HTML darstellen, sondern wir können sie sogar dynamisch erzeugen mit Hilfe von Lua. Wo die Dateien liegen und wie ihr eine eigene Seite macht, um das auszuprobieren, stelle ich in diesem Clip kurz vor.
Solche dynamischen Seiten haben die Endung lsp (Lua Server Page), aber ihr könnt auch mit statischen Seiten arbeiten, wir ihr das gelernt habt letztes Halbjahr.
Mehr Anleitung zu LSP Programmierung findet ihr unten beim Mako Teil, aber die beiden Befehle response:write() und response:include(), die ich erkläre, reichen erst einmal. - Linux 106: Pipelining und textorientierte Befehle grep, pv, cat, column, xxd, codegroup, base64, sort, ppt, morse, caesar und mehr
Kurzer Exkurs zu Buchstabenhäufigkeit, Zipf'sches Gesetz, Paretoverteilung, Knacken von Cäsar - Linux 107: Baudot Kodierung, Papertape und Pipelining in Lua Kleine Lektion über ASCII vs Baudot, wie man das Programm "baudot" benutzt, was Papertape ist (Lochstreifen), wie wir damit arbeiten, Morsecode und wie wir in Lua Pipelining programmieren, einen netten Cäsar selbst machen und einen Block-Satz.
- Linux 108: Vernam Verschlüsselung in Lua Wir probieren, wie man eine Vernam-Verschlüsselung in Lua umsetzen würde und wie man eine Pseudo-Zufallsgenerator einsetzt (erstmal den in Lua eingebauten), außerdem gehe ich auf den Befehl "tee" ein, der ein T-Stück in die Pipeline einfügt, so dass man beobachten kann, wie der Datenfluss in der Pipeline aussieht, wie mit einer Wanze.
Die Vernam-Verschlüsselung wird in der Lorenz-Maschine benutzt, wir brauchen dafür nur die unteren fünf Bit (0-31) mit einem Pseudo-Zufalls-Strom kodieren.
TEE-Beispiel mit
…PIPE-Eingang|tee >(xxd >/dev/stderr)|PIPE-Ausgang…
Man kann mit "tee" auch in untergeordnete Pipes "spritzen", wie in diesem Fall einfach nach xxd, um Hexadezimal den Inhalt anzuzeigen. So eine Unterpipe wird mit runden Klammern umschlossen. - Linux 109: "local" Computer gegen "remote" Server Wann bin ich auf meinem Rechner, wann und wie verlasse ich ihn, wieso geht das überhaupt (Dank WarGames und SSH) und warum geht das nicht auf Windows und ich hab' noch nie was davon gehört und WIESO? Heißt: was kann ich mir dafür kaufen, wieso ist das geil? Als Bonus schreiben wir ein kleines Lua Programm lokal auf unserem Handy und remote auf dem Ratsnest Server.
- Linux 110: Zufallszahlen in Lua Ganz kurz nur ein Ausflug, wie wir Zufallszahlen in Lua erzeugen. Besonders nützlich für das Vernam/SZ42 Team. Und natürlich für jeden, der in Lua mal ein Spiel schreiben will. Würfelwürfe sag ich nur.
Links für Programme
- ConnectBot Android: SSH Connector
- Hackers Keyboard Android: geeignete Tastatur, auf "Volle Tastatur" schalten, um die ctrl-Taste zu kriegen
- Putty Windows: SSH Client oder mal Bitvise auf der selben Seite probieren, wenn das nicht reicht. Wenn ihr keine Administrationsrechte habt, müsst ihr etwas runter scrollen und direkt die Putty.exe runter laden. Die braucht man nur zu starten.
Links zur Kryptologie
Die Lua Programmiersprache
Android Apps
- QLua Lua mit Grafik- und Android-Unterstützung
- Lua Lua 5.2 App
- Löve2D Löve2D Game Engine, Spiele programmieren auf Android/LuaJIT
- Spiel als APK auf Android/iOS herstellen Start Gamedev einfach ein Spiel mit Love2D/Lua auf's Mobile
- RealCalc Sehr guter Taschenrechner mit DEC-HEX-BIN Umrechnung.
- GeoGebra Taschenrechner mit Grafikfunktionen
- Maxima on Android Bestes freies Formellösungs-Programm (Plattformunabhängig), kostenlose mehr als gleichwertige Alternative zu Mathematica, Mathehausaufgaben per Computer lösen lassen
- Termux Linux Shell auf Android mit SSH, Terminal, C-Compiler, Lua, SSH Server, Webserver und vielem mehr
- ConnectBot SSH Client, um sich einfach mit dem Ratsnest Server zu verbinden
Links für HTML
- SelfHTML HTML: eine umfassende Anleitung
- HTML-Kurs HTML eine kurze Einführung
- HTML Tutorialspoint HTML einführender interaktiver Kurs
- W3Schools Anleitungen zu allen HTML5 Techniken
- CSS Zengarden Wie man eine Seite mit CSS auf viele Arten verändern kann, obwohl der Inhalt der selbe bleibt. Das Konzept ist, Form und Inhalt zu trennen, das ist CSS. Einfach ausprobieren, was das heißt.
Der Mako Webserver
Der Raspberry Pi
Wir sind nicht mehr in Kansas, Dorothy
Wer diese Pop-Kultur-Referenz nicht erkennt: Wizard of Oz sehen. Heißt so viel wie "nicht direkt unterrichtsrelevant", aber interessant, "über dem Regenbogen" eben, ein gutes Stück jenseits von dem, was der Lehrplan für euch vorsieht. Naja, mich hat das nie aufgehalten, euch geht's vielleicht auch so. Und dann ist das was. Ansonsten gibt's weiter unten noch Musik.
- Analogrechnen Hier mal einen der wenigen Deutschen Genies unseres Faches beim Vortrag auf dem CCC: Bernd Ulmann. Heute früh stolpere ich über diesen Vortrag, aber das ist der Mann, der mir vor ein paar Jahren, glaube ich, auf Anschreiben freundlicherweise den Zugang zu einem der wenigen verbliebenen VAX Rechner auf dieser Welt in seinem Keller (sein Heizungssystem, Abwärme) gegeben hat und von dem das Buch AN-FSQ-7, der eigentliche Original-Rechner aus "WarGames", nicht der Kintopp. Das ist nicht unterrichtsrelevant, aber wie gesagt, wir orientieren uns nicht nach unten.
- Vortrag zu De-Mail was sich klein Hänschen unter "Gesicherter Email" vorstellt und warum es wichtig ist, selbst Kryptographie zu verstehen und anzuwenden und es nicht andere für einen machen lassen darf.
- LiveOverflow Dieser junge Deutsche Hacker erklärt, dass es keinen leichten Weg in die Technologie gibt. Aber ich fand seinen Beitrag vom 6.4.2018 sehr gut. Er hat einige Links, die euch helfen werden. Der Weg ist das Ziel. Toller Kanal übrigens, ich empfehle ihn sehr, für alle die mehr wissen wollen. Ihr könnt da aber nicht aufhören, sagt er selbst. Machen! Und nicht aufhören, sobald man irgend eine Technologie anwenden kann, sondern nachhacken warum etwas funktioniert und es verstehen. Knöpfchen drücken können gut dressierte Affen, aber das Verstehen der Technologie dahinter ist der Schlüssel zu allem, der Schlüssel zu neuem, der Schlüssel zu eurer eigenen Zukunft.
Er verweist auch auf die Crypto Challenges Diese Seite bietet einige Real-World Herausforderungen zum Thema Kryptologie. Von einfachen Fingerübungen bis zum harten Codebrechen. Ebenfalls eine Empfehlung von mir, ebenfalls eine Empfehlung von LiveOverflow im übrigen. - Quora ist ein Forum wo Studenten fragen, Experten antworten. Ihr findet viele Antworten von mir im Bereich Assembler und C, aber auch Lua Programmierung und etwas Hacking. Adrian Lamo, den ich hier verlinke, hat eine Weile aktiv beigetragen und hatte einen deutlichen Ruhm auf der Seite, bis zu seinem frühen und überraschenden Tod. Er hatte einen ähnlichen Entwicklungsgang wie ich selbst und ich halte sehr viel von seinen Beiträgen. Der Zugang zur Technologie ist nicht linear. Mein Weg dahin war, Dinge auseinander zu nehmen und zu verstehen, dann erst war ich fähig selbt etwas damit zu machen und damit weiter zu gehen, euer mag anders sein, aber ich kann euch nur sagen, was bei mir funktioniert hat.
Wir stehen auf den Schultern von Riesen. - Ende-Zu-Ende Verschlüsselung (WhatsApp) Ich habe auf Torbens Frage nochmal nachgecheckt, wie genau die Verschlüsselung bei WhatsApp jetzt funktioniert und ob sie Ende-zu-Ende ist oder nicht. Meine erste Aussage dazu war misstrauisch, aber es sieht so aus, als wenn WhatsApp inzwischen an der Sicherheit gearbeitet hat. Also auch ein Update für mich, danke für die Frage, Torben. Sobald ihr Gruppenchats macht, habt ihr aber BigBrother Facebook mit im Kanal.
Zudem ist die Frage, wie die Implementation aussieht. Das Problem an allen Nicht-OpenSource Produkten ist, dass sie nicht einsehbar sind, nicht überprüfbar. Und es ist damit schwer überprüfbar, ob sie Hintertüren eingebaut haben, um die Ende-zu-Ende Verschlüsselung zu kompromittieren. Meiner Meinung nach (und die überwältigende Mehrheit der Krypto-Experten) kann echte Sicherheit nur durch OpenSource gewährleistet werden, also Programme, deren Ablauf und Algorithmus einsehbar ist und die man am Ende auch selbst compilieren kann und vom Source in Maschinencode übersetzen und so sicher stellen, dass das Compilat auch mit dem Source übereinstimmt.
Und selbst wenn keine absichtliche Hintertür in solche Produkte eingebaut wurde, gibt es keine unabhängige Qualitätskontrolle der Software. Ein fahrlässiger Bug hat schon häufig eine scheinbare Sicherheit völlig ausgehebelt.
Als Beispiel führe ich hier mal den bekannten TeamViewer an, der so mieserabel programmiert ist, dass man mit einem geschickt modifizierten Client den Server öffnen kann und den Kanal sozusagen umdrehen. Wer mehr dazu wissen will, schaut sich ein paar der Live-Clips an, bei denen Microsoft-Service-Scammer aus Indien durch solche modifizierten Clients ihre gesamten Netzwerke verlieren, weil sie zerschossen und abgeschaltet werden von Leuten, die die Schnauze davon voll haben und die Indische Polizei völlig tatenlos bleibt (Quelle YouTube, also mit "Grain of Salt" nehmen). - Passwortsicherheit Und weil wir schon dabei sind noch etwas nachgeschoben für Passwortsicherheit und wie ihr die wählt. Und wie nicht.
- Der Krieg der Buchstaben (1) Eine N3 Folge aus dem Jahr 1995, die so nie wiederholt wurde. Insbesondere spannend für die Teams Enigma und SZ42/Lorenz! Besser als der Spielfilm, allerdings ohne Sherlock Holmes. Sorry, Mädels. Dafür gibt es David Kahn im Original, sein Buch ist legendär und wie das von Bauer Standardwerk.
- Der Krieg der Buchstaben (2) Teil 2/5, Schiffriermachine Enigma, Grundlagenklärung
- Der Krieg der Buchstaben (3) Teil 3/5, USA gegen Japan: Purple Code, Friedmans statistische Kryptoanalyse
- Der Krieg der Buchstaben (4) Teil 4/5, USA gegen Japan: JN45 Code, Schlacht um Midway
- Der Krieg der Buchstaben (5) Teil 5/5, Schlacht um den Atlantik: Enigma Entschlüsselung
- Numberphile - Enigma Folge von Numberphile, wo die Funktion der Enigma erklärt wird.
- Numberphile - Der Fehler der Engigma Numberphile zeigt, wie die Enigma geknackt werden konnte.
- SZ42: Tiltman Break Wer die SZ42/Lorenz Maschine gebaut hat, wird sich für diesen Artikel interessieren: "Warum genau haben die Engländer den Colossus eigentlich gebraucht?"
- Virtual Lorenz SZ Die Lorenz Schlüsselmaschine im Web.
Musik zum Koden
- Cyberpunk und Lua Als ich die Testprogramme geschrieben hab', war draußen Lärm und damit hab' ich das ausgeblendet und eine Playlist draus gemacht. Aber jeder hat da seinen eigenen Stil. Macht Vorschläge.