Medienbildung und Informatik

Folgende Aufgaben haben Programmieranfänger von mir nach ca. vier Einheiten Python bekommen. Das Beispiel zeigt – finde ich – ganz gut, dass Medienkompetenz und Informatik sich sehr gut ergänzen können, teilweise vielleicht sogar einander bedingen. Das Problem der Passwortlänge und dem Passwortaufbau wird hier bewusst nicht angesprochen, weil das programmiertechnisch etwas anspruchsvoller ist. Das kommt dann in der Folgestunde.
Weiterhin ist natürlich auch das sha-2-Verschlüsselungsverfahren moderneren Entwicklungen wie z.B. pbkdf2 weit unterlegen, aber auch programmiertechnisch wesentlich beherrschbarer. sha512 ist schon ganz ok, auch wenn heutige Grafikkarten ca. 200 Millionen Schlüssel pro Sekunde berechnen.

Kryptografie

Immer wieder hörst du davon, dass bei großen Anbietern Datenbankinhalte gestohlen werden. In dem Artikel steht allerdings nichts davon, dass Passwörter gestohlen werden, sondern Hashes. Heute wirst du lernen, dass du jetzt schon ganz einfach viel besser sein kannst als LinkedIn und das mit nur ganz wenigen Codezeilen in Python.

Um alles möglichst gut zu verstehen, musst du auf jeden Fall die beiden oben verlinkten Artikel lesen oder wenigstens überfliegen.

Aufgabe 1:

Nimm eines deiner Passwörter und lasse folgendes Programm laufen (z.B. auf https://try.jupyter.org ).

1
2
3
4
5
6
7
# wir weisen Python an, Kryptografiefunktionen zu laden
import hashlib
# wir fragen nach einem Passwort
crypted_phrase = input()
# Und geben den Hash des Passworts als MD5-Hash aus
print("Hash is:")
print(hashlib.md5(crypted_phrase.encode('utf-8')).hexdigest())

Nimm jetzt den Hash und kopiere ihn auf diese Seite. Nach Eingabe der Sicherheitsabfrage (reCaptcha) kannst du schauen, ob der Hash deines Passworts bereits bekannt ist (Wenn du das Verfahren mit dem Passwort „12345678“ durchführst, wirst du sehen, dass das „geknackt“ wird.

Wiederhole das Verfahren mit einem deiner Passwörter und folgendem Programm (mit „12345678“ klappt es! – auch mit deinem Passwort?):

1
2
3
4
5
6
7
# wir weisen Python an, Kryptografiefunktionen zu laden
import hashlib
# wir fragen nach einem Passwort
crypted_phrase = input()
# Und geben den Hash des Passworts als MD5-Hash aus
print("Hash is:")
print(hashlib.sha512(crypted_phrase.encode('utf-8')).hexdigest())

Wenn dein Passwort auch im zweiten Fall „geknackt“ wurde, hast du ein Problem, wenn du Opfer eines Datenbankdiebstahls wirst. Auch dein Anbieter wird nur Hashes in einer Datenbank speichern.

Informiere dich jetzt über den Unterschied zwischen dem md5- und dem sha512-Verschlüsselungsverfahren. Python kann folgende Verfahren „von Natur aus“: md5, sha1, sha224, sha256, sha384, sha512.

Aufgabe 2:

Das Problem ist schon lange gelöst – mit nur wenigen Codezeilen mehr. Informiere dich über den Begriff „Salt“ in Verbindung mit Hashes.

1
2
3
4
5
6
import hashlib
# Statt "somestring" kannst bzw. solltest du möglichst wirres Zeug hier reinschreiben
salt = "somestring"
crypted_phrase = input()
salted_password = crypted_phrase + salt
print(hashlib.md5(salted_password.encode('utf-8')).hexdigest())

Wenn du jetzt versuchst, den Hash cracken zu lassen, klappt das nicht mehr, weil ein sogenanntest „salt“ (Salz) zum Passwort hinzugefügt wird. Bei unserem Programm verwendet jedes Passwort jedoch den gleichen Salt.

Auch dafür gibt es eine Lösung:

1
2
3
4
5
6
import hashlib, uuid
# Python schreibt nun für dich wirres Zeug hier hinein
salt = uuid.uuid4().hex
crypted_phrase = input()
salted_password = crypted_phrase + salt
print(hashlib.md5(salted_password.encode('utf-8')).hexdigest())

Hätten LinkedIn und andere die Benutzerpasswörter mit einem sicheren Algorithmus (z.B. sha512) gehasht und mit einem Salt versehen, wäre der Diebstahl der Datenbanken nicht so ein großes Problem, da es sehr lange dauern würde, die Passwörter aus den Hashes zu errechnen.

In der Praxis speichert man die Salts im Klartext zusammen mit den Hashes, meist durch ein Trennzeichen abgesetzt. Du kannst ja einmal überlegen, warum das kein Problem darstellt.

Aufgabe 3:

Schreibe folgende Programme

  1. Es wird zweimal ein Passwort abgefragt und dazu ein Hash berechnet. Stimmen beide Hashes (und damit die Passwörter) überein, soll das Programm die Ausgabe „Access granted!“ machen, ansonsten „Access denied!“ ausgeben.
  2. Ein Programm fragt nach einem „Masterpasswort“ (password) und einem Domainnamen (salt). Es berechnet daraus einen Hash, den man als Passwort für die betreffende Webseite benutzen kann – wenn man immer das richtige Masterpasswort und den gleichen Domainnamen eingibt – quasi ein ganz einfacher Passwortmanager!

Ich habe den PC einfach nur genutzt

Um Dinge zu nutzen, brauchen wir nur ein begrenztes Verständnis von ihrer technischen Funktionsweise. Mit einem Auto etwa wollen wir fahren. Wir wollen nicht wissen, wie ein Motor funktioniert, wir wollen es einfach benutzen. Deshalb soll im Bereich der Mediendidaktik nicht primär technisches Wissen vermittelt werden, sondern Wissen um die Herausforderungen und Potentiale der Nutzung der Medien.

So in etwa ließen sich in meinen Augen Teile der vor längerer Zeit stattfindenden Diskussion zum Spiegelartikel „Generation Null Blog“ zusammenfassen. Diese Argumentation besitzt für mich einen wahren Kern, jedoch ein absolut falsches Analogbeispiel mit den Autos, weil die Konsequenzen von Inkompetenz beim Autofahren oder bei Bedienung eines Computers auf völlig verschiedenen Ebenen liegen. Beim ersteren sind sie physikalisch erfahrbar, physisch unmittelbar erlebbar, beim zweiten sind die Konsequenzen eher diffus – allenfalls für Serverbetreiber wie auch mich ergeben sich echte Erlebnisse, wenn man sich des üblichen Grundrauschens virenverseuchter Anwenderclients erwehrt oder dank mitgesendeter Informationen theoretisch einen Client einer natürlichen Person zuordnen kann.

Das Auto

… ist ja des Deutschen liebstes Kind. Selbst aufgeschlossene Pädagogen in meinem Umfeld nutzen diesen Haufen Blech als fahrendes Wohnzimmer oder Repräsentationsgegenstand – oder was auch immer. Für mich bleibt es ein Haufen Blech, der technisch in Stand gehalten wird und so lange die dicke Beule in der Seitentür nicht gammelt, bleibt sie halt: Die Kiste ist bezahlt und nur der Schrotter wird uns irgendwann scheiden und der Kasten Getränke fliegt vor dem Einsteigen auch schon mal auf’s Dach.

Neue Autos sind so konstruiert, dass ein simpler Glühlampenwechsel oftmals einen Werkstattbesuch erfordert. Ich brauche bei meinem Auto dafür in etwa 45 Sekunden – einzig die H4-Lampe im Hauptscheinwerfer ist mit 2-3 Minuten etwas fimmliger. Es sei jedem gegönnt, ein modernes Auto zu fahren: Wirtschaftlich und vom Umweltgedanken her (ein Golf II kommt erst nach ca. 150.000km in die negative Ökobilanz gegenüber einem modernen Golf – Stichwort: Schadstoffausstoß bei der Herstellung) ist sowas oft absoluter Blödsinn. Ob die Versorgung mit elektronischen Ersatzteilen auch über Jahrzehnte hinweg gewährleistet bleibt, ist zusätzlich zu fragen. Allein die gestiegene Sicherheit ist da ein gültiges Sachargument. Die Leute benutzen halt ihre Autos – zu welchem Zweck auch immer – und das sollen sie auch. Wenn an einem Auto ein Defekt auftritt, den man nicht selbst beheben kann, muss man jemanden dafür bezahlen, der den Defekt beseitigt. Das kostet Geld und Zeit – nichts weiter. Ich fahre zur Werkstatt x, mache einen Reparaturvertrag und bekomme mein Auto zurück. Das war’s. Mein Nichtwissen um die Technik bezahle ich mit Geld. Vielleicht denkt mein Mechaniker noch: „Wieder so’n klugscheißender Lehrer“ und damit hat es sich auch schon mit dem sozialen Risiko.

Weiterlesen

Aktive Medienkompetenz

Vor ungefähr einem Jahr habe ich einen Moodlekurs für unsere Schule zum, Thema Medienkompetenz entwickelt, der im Wesentlichen diesem Modell folgt:

Tenor:

Man muss überlegen, welche Daten man von sich öffentlich preisgibt und welche nicht. Dazu gilt es, Filtermechanismen zu entwickeln. Ich halte dieses Filtermodell nicht für überholt, jedoch bedarf es einer nicht ganz unwesentlichen Modifikation, weil es von der Annahme ausgeht, dass allein ich Informationen über mich im Netz einstelle – das ist jedoch falsch: Tatsächlich ergibt sich eher ein „Haufenmodell„:

Über mich sind Informationen im Netz zu finden, ohne dass ich aktiv etwas dazu beitrage – das merkt jeder, der sich z.B. bei Facebook neu registriert und faszinierend sinnvolle Freundschaftsvorschläge erhält. Unser Kaufverhalten ist durch Bonuskartensysteme und EC-Kartenmkäufe wahrscheinlich gut gescored usw.

Das Filtermodell wirkt allein auf die rechte Seite des Haufenmodells. Entscheidend ist das Verhältnis von Fremd- und Eigeninformationen über mich. Ich kann die linke Seite in ihrem Inhalt nicht kontrollieren. Ich kann jedoch zu ihr eine Relation aufbauen, wenn ich mich aktiv um die rechte Seite kümmere, das von mir einspeise, was mir wahrscheinlich nützen wird.

Modelle, die nur warnen, sensibilisieren, vielleicht gar verteufeln, greifen für mich daher im Bereich der Medienerziehung mittlerweile viel zu kurz.

Heranwachsende und neue Medien – denn sie wissen nicht, was sie tun

Ein paar – natürlich völlig fiktive Beispiele – aus YouTube (Videos):

(1) Drei offensichtlich besoffene Mädchen gratulieren einer vierten Person zum Geburtstag. Namen, Stimmen und Gestik lassen Rückschlüsse auf natürliche Personen zu.

Kommentar:

So lange nicht irgendwann eine Personalabteilung die Namen der drei Schätzchen googelt und noch auf mehr Videos dieser Art stößt, geht das mit einem Lächeln ab. Ich frage mich nur, wie die drei Damen in fünfzehn Jahren zu diesem Ereignis stehen werden. Schön fände ich auch, wenn der spätere fünfzehnjährige Sohn seiner Mami so etwas unter die Nase hält – die Suchalgorithmen werden sich ja eher nicht verschlechtern…

Weiterlesen