Medienbildung und Informatik

Fol­gen­de Auf­ga­ben haben Pro­gram­mier­an­fän­ger von mir nach ca. vier Ein­hei­ten Python bekom­men. Das Bei­spiel zeigt — fin­de ich — ganz gut, dass Medi­en­kom­pe­tenz und Infor­ma­tik sich sehr gut ergän­zen kön­nen, teil­wei­se viel­leicht sogar ein­an­der bedin­gen. Das Pro­blem der Pass­wort­län­ge und dem Pass­wort­auf­bau wird hier bewusst nicht ange­spro­chen, weil das pro­gram­mier­tech­nisch etwas anspruchs­vol­ler ist. Das kommt dann in der Fol­ge­stun­de.
Wei­ter­hin ist natür­lich auch das sha-2-Ver­schlüs­se­lungs­ver­fah­ren moder­ne­ren Ent­wick­lun­gen wie z.B. pbkdf2 weit unter­le­gen, aber auch pro­gram­mier­tech­nisch wesent­lich beherrsch­ba­rer. sha512 ist schon ganz ok, auch wenn heu­ti­ge Gra­fik­kar­ten ca. 200 Mil­lio­nen Schlüs­sel pro Sekun­de berech­nen.

Kryptografie

Immer wie­der hörst du davon, dass bei gro­ßen Anbie­tern Daten­bank­in­hal­te gestoh­len wer­den. In dem Arti­kel steht aller­dings nichts davon, dass Pass­wör­ter gestoh­len wer­den, son­dern Hash­es. Heu­te wirst du ler­nen, dass du jetzt schon ganz ein­fach viel bes­ser sein kannst als Lin­kedIn und das mit nur ganz weni­gen Code­zei­len in Python.

Um alles mög­lichst gut zu ver­ste­hen, musst du auf jeden Fall die bei­den oben ver­link­ten Arti­kel lesen oder wenigs­tens über­flie­gen.

Aufgabe 1:

Nimm eines dei­ner Pass­wör­ter und las­se fol­gen­des Pro­gramm lau­fen (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 kopie­re ihn auf die­se Sei­te. Nach Ein­ga­be der Sicher­heits­ab­fra­ge (reCap­t­cha) kannst du schau­en, ob der Hash dei­nes Pass­worts bereits bekannt ist (Wenn du das Ver­fah­ren mit dem Pass­wort „12345678“ durch­führst, wirst du sehen, dass das „geknackt“ wird.

Wie­der­ho­le das Ver­fah­ren mit einem dei­ner Pass­wör­ter und fol­gen­dem Pro­gramm (mit „12345678“ klappt es! — auch mit dei­nem Pass­wort?):

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 Pass­wort auch im zwei­ten Fall „geknackt“ wur­de, hast du ein Pro­blem, wenn du Opfer eines Daten­bank­dieb­stahls wirst. Auch dein Anbie­ter wird nur Hash­es in einer Daten­bank spei­chern.

Infor­mie­re dich jetzt über den Unter­schied zwi­schen dem md5- und dem sha512-Ver­schlüs­se­lungs­ver­fah­ren. Python kann fol­gen­de Ver­fah­ren „von Natur aus“: md5, sha1, sha224, sha256, sha384, sha512.

Aufgabe 2:

Das Pro­blem ist schon lan­ge gelöst — mit nur weni­gen Code­zei­len mehr. Infor­mie­re dich über den Begriff „Salt“ in Ver­bin­dung mit Hash­es.

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 ver­suchst, den Hash cra­cken zu las­sen, klappt das nicht mehr, weil ein soge­nann­test „salt“ (Salz) zum Pass­wort hin­zu­ge­fügt wird. Bei unse­rem Pro­gramm ver­wen­det jedes Pass­wort jedoch den glei­chen 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ät­ten Lin­kedIn und ande­re die Benut­zer­pass­wör­ter mit einem siche­ren Algo­rith­mus (z.B. sha512) gehasht und mit einem Salt ver­se­hen, wäre der Dieb­stahl der Daten­ban­ken nicht so ein gro­ßes Pro­blem, da es sehr lan­ge dau­ern wür­de, die Pass­wör­ter aus den Hash­es zu errech­nen.

In der Pra­xis spei­chert man die Salts im Klar­text zusam­men mit den Hash­es, meist durch ein Trenn­zei­chen abge­setzt. Du kannst ja ein­mal über­le­gen, war­um das kein Pro­blem dar­stellt.

Aufgabe 3:

Schrei­be fol­gen­de Pro­gram­me

  1. Es wird zwei­mal ein Pass­wort abge­fragt und dazu ein Hash berech­net. Stim­men bei­de Hash­es (und damit die Pass­wör­ter) über­ein, soll das Pro­gramm die Aus­ga­be „Access gran­ted!“ machen, ansons­ten „Access denied!“ aus­ge­ben.
  2. Ein Pro­gramm fragt nach einem „Mas­ter­pass­wort“ (pass­word) und einem Domain­na­men (salt). Es berech­net dar­aus einen Hash, den man als Pass­wort für die betref­fen­de Web­sei­te benut­zen kann — wenn man immer das rich­ti­ge Mas­ter­pass­wort und den glei­chen Domain­na­men ein­gibt — qua­si ein ganz ein­fa­cher Pass­wort­ma­na­ger!

Ich habe den PC einfach nur genutzt

Um Din­ge zu nut­zen, brau­chen wir nur ein begrenz­tes Ver­ständ­nis von ihrer tech­ni­schen Funk­ti­ons­wei­se. Mit einem Auto etwa wol­len wir fah­ren. Wir wol­len nicht wis­sen, wie ein Motor funk­tio­niert, wir wol­len es ein­fach benut­zen. Des­halb soll im Bereich der Medi­en­di­dak­tik nicht pri­mär tech­ni­sches Wis­sen ver­mit­telt wer­den, son­dern Wis­sen um die Her­aus­for­de­run­gen und Poten­tia­le der Nut­zung der Medi­en.

So in etwa lie­ßen sich in mei­nen Augen Tei­le der vor län­ge­rer Zeit statt­fin­den­den Dis­kus­si­on zum Spie­gel­ar­ti­kel „Gene­ra­ti­on Null Blog” zusam­men­fas­sen. Die­se Argu­men­ta­ti­on besitzt für mich einen wah­ren Kern, jedoch ein abso­lut fal­sches Ana­log­bei­spiel mit den Autos, weil die Kon­se­quen­zen von Inkom­pe­tenz beim Auto­fah­ren oder bei Bedie­nung eines Com­pu­ters auf völ­lig ver­schie­de­nen Ebe­nen lie­gen. Beim ers­te­ren sind sie phy­si­ka­lisch erfahr­bar, phy­sisch unmit­tel­bar erleb­bar, beim zwei­ten sind die Kon­se­quen­zen eher dif­fus — allen­falls für Ser­ver­be­trei­ber wie auch mich erge­ben sich ech­te Erleb­nis­se, wenn man sich des übli­chen Grund­rau­schens viren­ver­seuch­ter Anwen­der­cli­ents erwehrt oder dank mit­ge­sen­de­ter Infor­ma­tio­nen theo­re­tisch einen Cli­ent einer natür­li­chen Per­son zuord­nen kann.

Das Auto

… ist ja des Deut­schen liebs­tes Kind. Selbst auf­ge­schlos­se­ne Päd­ago­gen in mei­nem Umfeld nut­zen die­sen Hau­fen Blech als fah­ren­des Wohn­zim­mer oder Reprä­sen­ta­ti­ons­ge­gen­stand — oder was auch immer. Für mich bleibt es ein Hau­fen Blech, der tech­nisch in Stand gehal­ten wird und so lan­ge die dicke Beu­le in der Sei­ten­tür nicht gam­melt, bleibt sie halt: Die Kis­te ist bezahlt und nur der Schrot­ter wird uns irgend­wann schei­den und der Kas­ten Geträn­ke fliegt vor dem Ein­stei­gen auch schon mal auf’s Dach.

Neue Autos sind so kon­stru­iert, dass ein simp­ler Glüh­lam­pen­wech­sel oft­mals einen Werk­statt­be­such erfor­dert. Ich brau­che bei mei­nem Auto dafür in etwa 45 Sekun­den — ein­zig die H4-Lam­pe im Haupt­schein­wer­fer ist mit 2–3 Minu­ten etwas fimm­li­ger. Es sei jedem gegönnt, ein moder­nes Auto zu fah­ren: Wirt­schaft­lich und vom Umwelt­ge­dan­ken her (ein Golf II kommt erst nach ca. 150.000km in die nega­ti­ve Öko­bi­lanz gegen­über einem moder­nen Golf — Stich­wort: Schad­stoff­aus­stoß bei der Her­stel­lung) ist sowas oft abso­lu­ter Blöd­sinn. Ob die Ver­sor­gung mit elek­tro­ni­schen Ersatz­tei­len auch über Jahr­zehn­te hin­weg gewähr­leis­tet bleibt, ist zusätz­lich zu fra­gen. Allein die gestie­ge­ne Sicher­heit ist da ein gül­ti­ges Sach­ar­gu­ment. Die Leu­te benut­zen halt ihre Autos — zu wel­chem Zweck auch immer — und das sol­len sie auch. Wenn an einem Auto ein Defekt auf­tritt, den man nicht selbst behe­ben kann, muss man jeman­den dafür bezah­len, der den Defekt besei­tigt. Das kos­tet Geld und Zeit — nichts wei­ter. Ich fah­re zur Werk­statt x, mache einen Repa­ra­tur­ver­trag und bekom­me mein Auto zurück. Das war’s. Mein Nicht­wis­sen um die Tech­nik bezah­le ich mit Geld. Viel­leicht denkt mein Mecha­ni­ker noch: „Wie­der so’n klug­schei­ßen­der Leh­rer” und damit hat es sich auch schon mit dem sozia­len Risi­ko.

Wei­ter­le­sen

Aktive Medienkompetenz

Vor unge­fähr einem Jahr habe ich einen Mood­le­kurs für unse­re Schu­le zum, The­ma Medi­en­kom­pe­tenz ent­wi­ckelt, der im Wesent­li­chen die­sem Modell folgt:

Tenor:

Man muss über­le­gen, wel­che Daten man von sich öffent­lich preis­gibt und wel­che nicht. Dazu gilt es, Fil­ter­me­cha­nis­men zu ent­wi­ckeln. Ich hal­te die­ses Fil­ter­mo­dell nicht für über­holt, jedoch bedarf es einer nicht ganz unwe­sent­li­chen Modi­fi­ka­ti­on, weil es von der Annah­me aus­geht, dass allein ich Infor­ma­tio­nen über mich im Netz ein­stel­le — das ist jedoch falsch: Tat­säch­lich ergibt sich eher ein „Hau­fen­mo­dell”:

Über mich sind Infor­ma­tio­nen im Netz zu fin­den, ohne dass ich aktiv etwas dazu bei­tra­ge — das merkt jeder, der sich z.B. bei Face­book neu regis­triert und fas­zi­nie­rend sinn­vol­le Freund­schafts­vor­schlä­ge erhält. Unser Kauf­ver­hal­ten ist durch Bonus­kar­ten­sys­te­me und EC-Kar­tenmkäu­fe wahr­schein­lich gut gescored usw.

Das Fil­ter­mo­dell wirkt allein auf die rech­te Sei­te des Hau­fen­mo­dells. Ent­schei­dend ist das Ver­hält­nis von Fremd- und Eigen­in­for­ma­tio­nen über mich. Ich kann die lin­ke Sei­te in ihrem Inhalt nicht kon­trol­lie­ren. Ich kann jedoch zu ihr eine Rela­ti­on auf­bau­en, wenn ich mich aktiv um die rech­te Sei­te küm­me­re, das von mir ein­spei­se, was mir wahr­schein­lich nüt­zen wird.

Model­le, die nur war­nen, sen­si­bi­li­sie­ren, viel­leicht gar ver­teu­feln, grei­fen für mich daher im Bereich der Medi­en­er­zie­hung mitt­ler­wei­le viel zu kurz.

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

Ein paar — natür­lich völ­lig fik­ti­ve Bei­spie­le — aus You­Tube (Vide­os):

(1) Drei offen­sicht­lich besof­fe­ne Mäd­chen gra­tu­lie­ren einer vier­ten Per­son zum Geburts­tag. Namen, Stim­men und Ges­tik las­sen Rück­schlüs­se auf natür­li­che Per­so­nen zu.

Kom­men­tar:

So lan­ge nicht irgend­wann eine Per­so­nal­ab­tei­lung die Namen der drei Schätz­chen googelt und noch auf mehr Vide­os die­ser Art stößt, geht das mit einem Lächeln ab. Ich fra­ge mich nur, wie die drei Damen in fünf­zehn Jah­ren zu die­sem Ereig­nis ste­hen wer­den. Schön fän­de ich auch, wenn der spä­te­re fünf­zehn­jäh­ri­ge Sohn sei­ner Mami so etwas unter die Nase hält — die Such­al­go­rith­men wer­den sich ja eher nicht ver­schlech­tern…

Wei­ter­le­sen