Hashfunktionen - Digitale Signatur Denkbar https://www.youtube.com/watch?v=_prc688s2eE Transkript (automatisch erstellt) 0:00 Ich begrüße euch herzlich zu einem neuen Themenvideo. Heute machen wir weiter im Themengebiet Kryptografie und wir besprechen Hashfunktionen und als 0:09 Anwendungsbeispiel gibt es die digitale Signatur. Zunächst klären wir aber mal welche Superkräfte euch dieses Video verleihen wird. Zum 0:19 einen werdet ihr ein paar Kennzeichen einer sicheren Kommunikation kennenlernen. Außerdem solltet ihr hoffentlich nach diesem Video die 0:27 Funktionsweise von Hashfunktionen verstanden haben und diese auch anderen erklären können. Und dann schauen wir uns das Ganze auch noch in einem 0:35 Anwendungsbeispiel an, nämlich bei der digitalen Signatur. Das steht auf dem Programm und damit wünsche ich euch viel Spaß bei diesem Video. 0:44 Kennzeichen einer sicheren Kommunikation. Wenn wir von sicherer Kommunikation sprechen, dann müssen wir uns mit einer 0:53 Sache oder müssen wir uns bei einer Sache wirklich erstmal klar sein, nämlich eine hundertprozentig sichere Kommunikation, die gibt es einfach 1:01 nicht. Also das ist erstmal vorne weg und deshalb ist auch eine Definition einer sicheren Kommunikation nicht möglich, wenn die gibt's nicht. Es gibt 1:10 aber ein paar Kennzeichen, die eine sichere Kommunikation beschreiben und davon möchte ich euch hier mal drei Stück vorstellen. Zum einen ist es die 1:18 Vertraulichkeit, die Integrität und die Authentizität. Ich werde diese drei Begriffe gleich noch mit Leben füllen, denn diese sind sehr abstrakt gehalten 1:27 und das ist auch bewusst so, also wenn man sich jetzt mit sicherer Kommunikation beschäftigt, sind diese drei Begriffe, 1:34 die drei Begriffe, die einem immer wieder entgegenspringen. Und vielleicht so eine kleine Anekdote noch, die Vertraulichkeit, wenn man das 1:42 ins Englisch übersetzt, ist confidentially, also mit C am Anfang. Die beiden anderen im Englischen ändern nicht ihre Anfangsbuchstaben und wenn 1:50 wir hier ein C hinschreiben, dann steht hier CIA und ein Schell, wer böses dabei denkt. Nee, also in der Tat sind wirklich nur Begriffe, die CIA hat damit 2:00 diesmal ausnahmsweise nichts zu tun. So kümmer uns um die Vertraulichkeit und damit ist gemeint vertraulich bezüglich von Inhalt und Kommunikation an sich. 2:10 Das heißt, also die Kommunikation und der Inhalt, das muss auf jeden Fall sicher sein. Ja, und die Integrität, das ist das der zentrale Aspekt, mit dem wir 2:22 uns heute beschäftigen werden. Die Integrität soll nämlich sicherstellen, dass eine Nachricht, die abgesendet wurde, von Anfang bis 2:32 Ende nicht manipuliert wurde. Das heißt, also die Nachricht, die ankommt, muss auch genau die Nachricht sein, die losgeschickt wurde. Oder muss ja nicht 2:40 unbedingt eine Nachricht sein, kann ja auch ein Passwort, ein Foto, ein irgendwas sein. Ja, dann die Authentität. Authentizität. Aha, ein 2:50 schwieriges Wort für mich heute. Dabei geht es darum, dass man, wenn man mit jemandem oder eine Person oder eine Maschine kommuniziert, dann möchte man 3:00 sich ja sicher sein, dass die Person auch die ist, für die sie sich ausgibt und dafür muss sie sich erst authentifizieren. Da gibt's verschiedene 3:06 Verfahren. Beispielsweise eine ID könnte man vergeben. Im Realall Life bei uns wäre das unsere unser Name. Der ist übrigens das häufigste 3:15 Authentifizierungsmittel, das wir verwenden. Wenn wir uns vorstellen und unseren Namen sagen, dann verwenden wir genau das. Der Besitz ist 3:24 eine weitere Authentifizierungsmethode, wenn wir einen Haustürschlüssel haben zu einer speziellen Wohnung und niemand anderes, dann können nur wir da hinein 3:32 und damit können wir uns authentifizieren. Unser Fingerabdruck ist eine biometrische Möglichkeit. 3:39 Natürlich ist unser Fingerabdruck auch nicht hundertprozentig eindeutig, aber doch schon sehr gut. Maschinen können sich 3:48 gegenseitig nicht biometrisch authentifizieren, denn sie haben keine biometrischen Merkmale. Vielleicht kommt das aber noch in naher Zukunft. Und eine 3:57 Fähigkeit ist eine weiteres eine weitere Methode beispielsweise, wenn eine Autofahren kann, eine andere Person nicht. oder 4:05 wenn man eine gewisse Körpergröße hat, dann kommt man vielleicht ans oberste Regal zu den Süßigkeiten, wä in ein kleines Kind nicht dahinommt und somit 4:12 sind die Süßigkeiten vor dem kleinen Kind beschützt, was irgendwie traurig ist. Ja, dann wissen, wenn wir ein Passwort haben, dann können wir uns 4:20 vielleicht einloggen und jemand, den wir kennen, kann es nicht, weil er das Passwort nicht hat oder auch jemand fremdes. Und die letzte Möglichkeit, die 4:28 ich euch noch vorstellen möchte, ist die Authentifizierung durch Dritte. Wenn ein Freund zu euch sagst, ja, der da hinten steht, das ist der Hermanns Müller, weiß 4:35 ich nicht wie weiter. Dann sagt ihr, ah ja, gut, dich kenne ich und deswegen glaube ich dir, dass das drüben der Hans Müller, wer auch immer ist. Ja, damit 4:45 werden wir auch erstmal mit der sicheren Kommunikation soweit fertig. Und nun können wir uns dem spannenden Teil widmen, nämlich der Funktionsweise von 4:54 Hashfunktion. Klären wir erstmal, was machen denn Hashfunktionen? Hashfunktion können irgendwelchen Daten 5:02 und damit sind Nachrichten gemeint, Passwörter oder ganze Videofilme, Spiele und sogar nee, Dinos nicht, aber alle möglichen Dinge, die wir digitalisieren 5:14 können. Diesen können wir einen Hashwert zuordnen, mittels einer Hashfunktion. Und das schauen wir uns jetzt an. Ja, und wir nehmen uns mal eine Nachricht 5:26 und verarbeiten die mit einer Hashfunktion. Eine Hashfunktion ist nichts anderes als eine mathematische Funktion. Da gibt's beispielsweise die 5:33 Division Restmethode, die unsere unseren Datensatz und dabei ist es egal, wie groß der ist, den können wir da reinschieben. Der wird 5:43 dann verarbeitet und am Ende wird ein Wert ausgespuckt. Der sogenannte Hashwert, wie wir hier schon sehen, das ist ein Hexer 5:51 Dezimalwert. Der ist meistens länger. Man verwendet häufig Schar 256. Das bedeutet dann, dass unser Hashwert 256 Bit lang ist. Ja, also Hashfunktion 6:04 machen nichts anderes als Daten in einen Wert umzuwandeln. Das ist die Aufgabe von Hashfunktion und dabei gibt's jetzt auch ein paar 6:14 Bedingungen, die wir an diese Hashfunktion haben. Das soll natürlich auch uns irgendetwas bringen, weil bis jetzt haben wir nur ein Datenpaket in 6:22 einen Wert umgewandelt. Zum einen ist eine Bedingung, dass das Ganze eindeutig sein soll. Das soll nicht rückrechenbar sein. Dafür verwendet man sogenannte 6:31 Einwegfunktion. Dann ist es so, dass eine zweiter Datensatz, der vielleicht so ähnlich ist wie der erste Datensatz, der soll 6:41 natürlich nicht den gleichen Hashwert liefern. Dann gibt es eine sogenannte Kollision. Wir stellen also als Bedingung an unsere 6:48 Hashfunktion, dass die Kollissionsresistent ist. Da soll bei sollte man auch beachten. Es soll auch sogar so sein, dass wenn dieser 6:56 Datensatz nur leicht geändert wird, soll der Hashwert nicht auch nur leicht geändert werden, sondern sehr stark sich ändern, damit man nicht vielleicht bei 7:04 einer leichten Änderung auf etwas schließen kann. kennt man beispielsweise die Nachricht und einen Hashwert und hätte einen leicht geänderten Hashwert 7:13 dazu und er würde einer leicht geänderten Nachricht entsprechen, könnten wir vielleicht auf irgendwelche 7:18 Nachrichteninhalte schließen und das soll natürlich nicht so sein. Weiter ist wichtig, dass die Hashfunktion effizient ist. Das heißt, die soll schnell 7:26 berechenbar sein. Ist extrem wichtig heutzutage, denn wenn wir ein Passwort irgendwo eingeben, wenn wir uns irgendwo registrieren, dann wird das Passwort 7:35 nicht im Klartext gespeichert. Zumindest sollte das nicht so sein. Es wird immer nur der Hashwert gespeichert und jedes Mal, wenn wir uns einloggen, wird wieder 7:44 die Hashfunktion angewendet und dann wird dieser Hashwert, der rauskommt, verglichen mit dem, der gespeichert wurde, stimmen dies, dann sind wir 7:53 eingeloggt. Und da ist es jetzt auch so, dass wenn es immer in den Medien heißt, dass Millionen von Passwörtern gestohlen 8:00 wurde, dann sind es wirklich meistens nur die Hashwerte. Aber das ist auch schlimm genug, wie wir gleich sehen werden. Des weiteren sollten die 8:08 Hashfunktionen eine feste definierte Länge haben. Wir sollten also definieren können, wie lang soll der Hashwert sein, der rauskommt, habe ja schon erwähnt, 8:15 meistens 256 Bit, zumindest bei 256 ist das halt immer so. Und jetzt schauen wir uns erstmal noch ein paar Beispiele an. Schart 2 z.B. den gibt's dann in 8:26 verschiedenen Varianten mit verschiedenen Längen. Hab schon erwähnt 256 gibt auch 512. Dann ein relativ neuer ist Blake 2 8:36 und MD5. MD5 habe ich jetzt dazu genommen, weil MD5 sollte man nicht mehr verwenden. Bei dieser Hashfunktion ist es sogar so, diese ist zurückrechenbar 8:46 und das ist das Schlimmste, was eigentlich hashfunktion passieren kann. Ich habe ja gesagt, wir brauchen eine Einwegfunktion, dass es nur in eine 8:53 Richtung geht, weil wenn wir von dem Hashwert auf die Nachricht schließen können, dann ist unsere Hashfunktion einfach sinnlos und das ist halt bei MD5 9:03 MD5, Entschuldigung, das ist genau da passiert. So, damit hätten wir noch ein paar Beispiele geklärt. Schar 1 übrigens ist auch äh nicht mehr sicher, den 9:12 sollte man auch nicht mehr verwenden. Mittlerweile gibt es sogar schon Schar 3. Also immer drauf achten, dass man einen aktuellen Hash oder eine aktuelle 9:20 Hashfunktion verwendet. Jetzt schauen wir uns noch eine Angriffsmöglichkeit an und da gibt's die sogenannten Rainbow Tables. Da kann man 9:28 sich aus dem Internet gigabyte weise Tabellen herunterladen und was steht da drin? Tja, nichts anderes als Passwörter und Hashwerte. 9:39 Eine Hashfunktion, wenn wir die anwenden, ist die immer gleich. Wenn ich egal was für ich eingebe, ich die gleiche Hashfunktion verwende, kommt 9:47 immer auch der gleiche Hashwert raus. Das ist natürlich auch noch eine Bedingung, die die Hashfunktion erfüllen muss, sonst bringt es natürlich auch 9:53 nichts. Das hat aber dann die Gefahr, dass wenn ich jetzt eine Liste habe mit den häufigsten Passwörtern, habe ich auch eine Liste mit den häufigsten 10:02 Hashwerten. Wenn ich jetzt an so ein eine geklaute Liste von Hashwerten komme, dann kann ich natürlich schauen, sind die Hashwerte dabei, die ich in 10:11 meiner Liste stehen habe. Wenn ja, dann habe ich natürlich auch automatisch das Passwort und das ist natürlich dann die Gefahr und deshalb ist es fast genauso 10:18 schlimm, ob die Passwörter dann im Klartext oder nicht drin stehen. Wenn es einfaches Passwort ist, ist das natürlich dann ja fast das gleiche. 10:28 Deshalb immer schön lange und komplizierte und nicht leicht zu erratende Passwörter verwenden, zumindest keine Begriffe oder so, die 10:36 man irgendwie in solchen Tabellen finden kann. Wir können das Ganze aber auch etwas sicherer gestalten, indem wir Salt and Pepper verwenden. 10:44 Da wird bevor die Hashfunktion auf die Daten angewendet wird, einfach eine Zeichenfolge mit an die Daten angehängt und somit ergibt sich ein vollkommen 10:54 anderer Hashwert. Denn wie schon zu Beginn erwähnt, wenn wir die Nachricht oder das Passwort leicht verändern, sollte ein komplett anderer Hashwert 11:02 herauskommen. Und so ein bisschen sollte ein Pepper verhindert dann, dass man vom Hashwert dann auf dieses Passwort schließen kann, selbst mit so einem 11:10 Rainbow Table. Soweit zu den Hashfunktionen und kommen wir nun zu einem Anwendungsbeispiel, die digitale Signatur. Um was geht's hier? 11:20 Wir haben hier zwei Maschinchen. Links Maschine A, rechts Maschine B und die beiden möchten miteinander kommunizieren. Zumindest möchte Maschine 11:30 A eine Nachricht an Maschine B schicken und Maschine B möchte sich sicher sein, dass diese Nachricht von Maschine A stammt. Also das ist die Integrität. Die 11:40 Nachricht soll sicher von oder unverändert von dieser Maschine hier zu dieser Maschine auch geschickt werden und deshalb digitale Signatur. Wie läuft 11:52 das Ganze ab? Ja, Maschine A schmeißt erstmal den Hashfunktionenrechner an und berechnet einen Hashwert für die Nachricht. So, das zweite, was dann 12:02 passieren wird, die Maschine A wird diesen Hashwert verschlüsseln. Und wer sich nicht mehr ganz an Verschlüsselungsverfahren erinnert, ich 12:10 werde das Video, das ich dazu gemacht habe, auch noch mal in die Beschreibung verlinken. Prinzipiell geht's darum, es gibt einen Private Key und einen public 12:19 Key. Mit dem Private Key kann man verschlüsseln, mit dem Public Key entschlüsseln und diesen Private Key, der ist private nur oder für Computer A. 12:31 Das heißt also nur Computer A hat diesen Private Key und den Public Key, den kann sich eigentlich jeder organisieren, der Zugang zum Internet hat. Also 12:40 verschlüssen wir jetzt erstmal unseren Hashwert, schicken beides an Computer B. Was macht Computer B? Na ja, das was jeder gute Computer B machen würde. Er 12:51 schaut sich das Ganze erstmal an, holt seinen Hashwertrechner aus der Tasche und berechnet auch den Hashwert. Und wie bereits erwähnt, die Hashfunktionen sind 12:59 ja immer gleich. Also, wenn es die gleiche Nachricht ist, müsst ihr auch den gleichen Hashwert erhalten. Jetzt muss er natürlich noch überprüfen, 13:06 welchen Hashwert hat denn eigentlich die ursprüngliche Nachricht gehabt? Damit muss er diesen Hashwert erstmal entschlüsseln. Dafür geht er zu einer 13:16 Zertifizierungsstelle und holt sich einen zertifizierten Schlüssel. Und da sind wir auch an einem ganz wichtigen Punkt. 13:23 Diese Zertifizierungsstelle versichert, dass dieser Schlüssel von Computer A stammt. Und nur so gut wie dieses Zertifizierungsverfahren ist, nur so 13:33 sicher ist da natürlich auch unsere ganze digitale Signaturgeschichte. Wir gehen jetzt mal davon aus, dass das alles wunderbar und perfekt ist. Also, 13:41 dieser Schlüssel stammt auf jeden Fall von Computer A. Den schicken wir dann an Computer B. Meistens sind diese Zertifizierungen 13:52 auch schon mit in dem Browser integriert. Also die wirklich bekannten und großen Zertifizierungsstellen haben dann alle schon die Schlüssel hier 13:59 hinterlegt. Damit können wir dann auch den Hashwert entschlüsseln. Wir können die beiden Werte vergleichen und wir sehen stimmt überein und deshalb muss 14:09 diese Nachricht genauso wie sie hier jetzt vorliegt auch von Computer A versendet worden sein. Ja, damit sind wir jetzt erstmal soweit durch. 14:19 Machen wir uns noch mal so ein kurzen Überblick, was wir heute alles gelernt haben. Wir haben über Kennzeichen der sicheren Kommunikation gesprochen, 14:26 Vertraulichkeit, Integrität, Authentizität und die Begriffe so ein bisschen mit Leben gefüllt. Wir haben uns angeschaut, wie Hashfunktionen 14:35 funktionieren. Dabei war wichtig, sie sind eindeutig, sind Einwegfunktionen, sie sind kollisionsresistent, sie sind müssen schnell in der Berechnung sein 14:44 und sie sollen auf jeden Fall einen eindeutigen Wert liefern. Wir haben uns dann noch angeschaut die digitale Signatur, wie das ganze funktioniert und 14:52 dabei werden einfach nur zwei Hashwerte miteinander verglichen und wenn die übereinstimmen, dann können wir uns sicher sein, dass unser 14:59 Kommunikationspartner die Nachricht genauso losgeschickt hat, wie wir sie bekommen haben. Damit sind wir auch schon am Ende. Falls euch das 15:08 Video gefallen hat und ihr vielleicht noch mehr über Kryptografie erfahren wollt, dann ein #hashiashi in die Kommentare. Ansonsten schreibt 15:17 mir, was für Themen euch sonst noch interessieren und ich würde mich freuen, wenn ihr auch am Mittwoch wieder einschaltet zum nächsten Rätselvideo und 15:24 natürlich auch am Sonntag. Daher gibt's wieder ein spannendes Themenvideo. Falls euch sonst noch langweilig ist, schaut euch einfach mal bei mir auf dem Kanal 15:32 um. Da gibt's immer wieder mal interessante Videos auch für Alltagswissen. Und ansonsten wünsche ich euch einen fantastischen Tag. Macht's 15:40 gut, bis bald und ciao.