 Okay, hier für den nächsten Vortrag unser Redner arbeitet seit sechs Jahren mit Kryptografie an der Universität Karlsruhe. Hier ist für euch Odds. Okay, also vielen Dank für die Einführung und willkommen zu meinem Vortrag. Wie unser Harold gesagt hat, ich arbeite schon in Kryptografie innerhalb der letzten sechs Jahre und ich habe gemerkt, dass viele Leute ein mentales Bild haben, was Kryptografie ist und aber es stimmt halt häufig nicht, was die Leute denken und daher möchte ich euch ein Einführungsvortrag geben, dass sich an Leute richtet, die nicht wirklich ein tiefes Verständnis haben oder eine wesentliche, die sich noch nicht wesentlich mit Verschlüsselung, Informatik oder Mathematik auseinandergesetzt haben. Wie ich es barats sagte, dieser Vortrag ist für nicht technische Zuhörer, auch wenn hier auf dem Kongress natürlich sehr viele technisch visierte Leute sind und ich werde wirklich über Grundlagen sprechen, sondern wirklich nur über die Grundlagen. Ich habe nicht nur in Kryptografie gearbeitet, sondern ich habe mich auch mit angewendeter Kryptografie und Speicherfehler ausnutzen beschäftigt. Das ist die Katze meiner Eltern, weil jeder Vortrag ein Katzenbilder haben soll. Danke für den Applaus. Das ist meine Liste, die Dinge, die ich abarbeiten möchte. Okay, ja, die Katze haben wir gezeigt und für den Rest vom Vortrag möchte ich erklären, was Verschlüsselung ist, was es tut und was es nicht tut. Ich möchte Authentizierung erklären, welches ein Problem löst, das Verschlüsselung an sich nicht löst und ich möchte auch über Z-Vikate sprechen und ich möchte am Ende alles zusammenbringen und wie diese verschiedenen Sachen kombiniert werden können, um mehr nützliche Produkte zu schaffen. Also wir wollen Verschlüsselung erklären. Verschlüsselung ist die Lösung zu einem Problem. Also was ist das Problem? Das Problem ist, oder ein klassisches Problem ist, dass zwei Leute miteinander kommunizieren wollen. Normalerweise nennen wir die immer Alice und Bob, weil das mittlerweile Konvention ist. In diesem Fall ist es eine sehr einfache Nachricht. Also Alice möchte ein Hallo an Bob senden, aber Kryptografie wird natürlich auch ein kritischerer Bereich eingesetzt, wie Diplomatie oder anderen sensitiven Bereichen. Und das Problem, das wir lösen wollen, ist, dass es jemanden geben könnte, der versucht die Verbindung zwischen diesen beiden Menschen abzuhören und diese Abhöreinheit würde dann versuchen, die Nachricht abzuhören und dann eventuell gegen die Leute zu verwenden. Und viele Leute denken, dass Kryptografie so funktioniert, was aber nur eine sehr ungenaue Annäherung ist. Also Alice wendet eine Kryptografie-Signat-Methode an, um einen komischen Cypher-Text zu produzieren, der nicht weiter lesbar ist. Und weil Bob die Entschlüsselungs-Methode kennt, kann er halt die Ursprünglich-Nachricht empfangen. Und das, was viele Leute halt nicht verstehen, dass viele Leute glauben, dass die Methoden an sich, wie man fair und entschlüsselt, geheim sind. Aber das ist nicht, wie es wirklich funktioniert heutzutage. In 1883 formulierte Kerkow, dass eine Verschlüsselungs-Methode selber nicht geheim sein soll. Also eine Verschlüsselungs-Methode soll nicht erfordern, dass sie selber geheim ist. Es soll nicht ein Problem darstellen, wenn die Verschlüsselungs-Methode selbst in die Hand des Gegner fällt. Und anders gesagt, die Verschlüsselungs-Methode, die man verwendet, sollte so sicher sein, dass selbst wenn der Gegner die Verschlüsselungs-Methode kennt, dass er die Nachricht trotzdem nicht entschlüsseln kann. Oder anders gesagt, wenn die Verschlüsselungs-Methode so unsicher ist, dass niemand sonst wissen darf, wie sie funktioniert, dann ist sie natürlich nicht sicher genug. Also zurück zu diesem Bild. Also wenn der Angreifer weiß, wie man die Nachricht entschlüsseln kann, dann funktioniert dieses Schema natürlich nicht, so wie es funktionieren soll. Und daher haben Leute zusätzlich Schlüssel zu den Verschlüsselungs-Methoden hinzugefügt. Das heißt, die Verschlüsselungs-Methode verwendet diesen Schlüssel, um zu ermitteln, wie die ursprüngliche Nachricht verschlüsselt werden soll. Also verwendet Alice die ursprüngliche Nachricht und den Schlüssel und produziert ein Verschlüsselntext. Und Bob hat den gleichen Schlüssel und K. durch die ursprüngliche Nachricht wiederherstellen. Und solange nur Alice und Bob die Schlüssel haben, kann der Angreifer nicht die Nachricht entschlüsseln. Und ein Genere... Also ich werde jetzt hier nicht sehr ins Detail gehen, wie diese Kästen wirklich funktionieren. Also es gibt natürlich eine Menge Mathematik und Informatik, die hier innerhalb dieser Kästen funktion-... abläuft. Und das möchte ich jetzt in diesem Vortrag nicht weiter beleuchten, weil es nicht der richtige Vortrag dafür ist. Das Problem, das wir hier haben, ist, dass Alice und Bob im Voraus sich auf einen Schlüssel einigen müssen. Also kann Alice nicht einfach den Schlüssel zu Bob senden, weil wenn sie das tun würde, dann würde der Angreifer die Möglichkeit haben, dem Schlüssel abzugreifen. Und dann könnte der Angreifer jederzeit den Schlüssel nutzen, um die Nachrichten zu entschlüsseln. Okay, also das ist keine gute Idee, weil es nicht verliniert. Also für eine Jahre bis die 70er und 80er Jahre, im letzten Jahrhundert, haben Leute nur diese Schema verwendet. Und das ist etwas, was wir nennen symmetrische Verschlüsselung, weil man das Diagramm auch umdrehen könnte, weil Bob kann auch eine Nachricht an Alice schicken, um Verschlüsselung den gleichen Schlüssel zu verwenden. Und wenn es symmetrische Verschlüsselung gibt, dann gibt es natürlich auch einen Gegenteil, nämlich asymmetrische Verschlüsselung. Und bei asymmetrischen Verschlüsselung gibt es ein Schlüsselpaar. Einer wird für Verschlüsselung und einer für Entschlüsselung verwendet. Und wenn man ein asymmetrisches Verschlüsselungsschema verwendet, dann kann Bob beispielsweise den Entschlüsselungsschlüssel haben. Und deswegen nennt man auch den Entschlüsselungsschlüssel, den geheimen Schlüssel. Aber man kann den öffentlichen Schlüssel zum Verschlüsseln einfach öffentlich ins Internet stellen, so dass jeder darauf Zugriff hat. Und Bob kann seinen öffentlichen Schlüssel zu Alice senden. Und der Angreifer, der den öffentlichen Schlüssel dann auch erfährt, der kann mit diesem Schlüssel dann nicht wirklich viel anfangen. Und nachdem wir das getan haben. Und jetzt kann Alice ihre Nachricht verschlüsseln mit diesem Schlüssel und die Nachricht an Bob senden. Und Bob kann dann die Nachricht entschlüsseln mit seinem geheimen Schlüssel. Aber der Angreifer kann die Nachricht nicht einfach entschlüsseln, weil der Angreifer nur den Verschlüsselungsschlüssel hat, aber nicht den Entschlüsselungsschlüssel hat. Und diese Lösung ist halt immer noch etwas riskant. Wir müssen immer noch, wir müssen immer noch sicherstellen, dass die Schlüssel im Voraus verteilt werden. Wenn wir das einfache Schema verwenden, wo Bob sein Schlüssel an Alice sendet. Aber was ist, wenn jetzt der Angreifer versucht, die Verbindung selber zu manipulieren? Also wenn Bob sein Schlüssel in Richtung Alice schickt, aber der Angreifer den Schlüssel abfängt und dann Alice einen falschen Schlüssel zuschickt. Und wenn Alice dann ihre Nachricht verschlüsselt, dann kann der Angreifer die Nachricht entschlüsseln. Und an dieser Stelle lasst uns kurz zusammenfassen, was Verschlüsselung ist. Also Verschlüsselung verdeckt oder verfremdet den Inhalt von Daten. Aber es schützt nicht die Information, dass es Kommunikation gibt. Ein Angreifer, der die eine Leitung abhört, sieht, dass Alice eine Nachricht an Bob. Das sieht er, er kennt den Inhalt nicht. Aber er weiß, dass in Kommunikation passiert. Und das alleine kann bereits gefährlich für Alice und Bob sein. Also denkt es zum Beispiel, stellt euch vor, dass Alice für ein Geheimdienst arbeitet und Bob ein Journalist ist, dann sieht, dass Alice viele Nachrichten an Bob sendet, dann könnte das ein starker Hinweis darauf sein, dass Alice ein Whistleblower ist und das könnte bedeuten, dass sie dadurch aufliegt. Und etwas anderes, was noch nicht beschützt wird, also welche Information nicht beschützt wird, ist die Menge an Informationen, die gesendet wird. Also wenn es nur sehr kurze Nachrichten sind, die gesendet werden, dann kann der Angreifer die Schlüsselvölkerung ziehen, dass die Menge an Daten, die ursprünglich versendet wurde, halt nicht umfangreich ist. Und es gibt noch eine Reihe weiterer Probleme. Ein Angreifer kann die Nachricht auch vermanipulieren. Und eine Nachricht vor Veränderungen zu schützen ist nicht die Aufgabe von Verschlüsselung. Ein anderes Problem ist, dass Schlüssel im Voraus ausgewählt werden müssen. Und das Ding ist auch, ein Angreifer kann eine Nachricht aufnehmen oder später an Bob weiter senden oder der Angreifer kann die Nachricht blockieren, sodass sie ihr Ziel nicht erreicht und die Nachricht dann komplett löschen, sodass Bob die Nachricht nie kriegt. Und das erste Problem hier ist, dass ein Angreifer die Nachricht manipulieren könnte, was mich zu dem zweiten Teil meines Vortrags bringt, dass uns Auto-Authentifizierung. Aber lass uns erstmal hier gucken. Verschlüsselung haben wir jetzt erledigt. Authentifizierung, was bedeutet das? Authentifizierung möglich ist, die Veränderung von Daten zu erkennen. Es hilft nicht, dass Veränderungen nicht passieren, aber der Empfänger kann dann erkennen, dass es Veränderungen gab, nachdem sie passiert sind. Okay, also zum Beispiel, ein Beispiel, wo was wie Authentifizierung benötigt wurde, ist, als Bob seinen öffentlichen Schlüssel an Alice geschickt hat. Aber das ist nicht die einzige Situation, wo das nützlich ist. Stellt euch vor, Alice betreibt eine Gruppe zum Beispiel, ein Seenotretter, und Bob möchte da helfen und alles möchte also dafür seinen Bank-Account an Bob schicken, damit Bob eine Spende machen kann. In diesem Szenario ist die Nachricht, die Alice an Bob schickt, ihre Bankdetail. Das ist nichts Geheimes, das muss man nicht mal verschlüsseln. Diese Information ist sogar schon öffentlich bekannt. Aber wir wollen sicherstellen, dass die Nachricht, die bei Bob ankommt, in der Tat genau die richtige Bank-Account-Nummer ist, die richtige Kontonummer ist. Man möchte also etwas wie dieses hier unmöglich machen, wenn ein Krimineller die Nachricht abfängt und die Kontonummer austauscht, so dass Bob sein Geld vielleicht an ein Konto des Kriminellen anstatt an das Konto von Alice sendet. Eine Möglichkeit, das zu Authentifizierung zu realisieren ist, wieder ein Schlüsselpaar zu verwenden. Einen dafür für Authentifizierung und einen für Überprüfen, Verifikation zu verwenden und nachzuschauen, ob eine Nachricht sich verändert hat. Die Authentifizierung Schlüssel wird geheim gehalten, also deswegen heißt er auch geheimer Schlüssel, aber der Überprüfungsschlüssel, der Verificationsschlüssel, der ist öffentlich, deswegen heißt der Public die öffentliche Schlüssel. Wenn du also ein Setup wie dieses hier hast, dann kann Alice loslegen und die Nachricht nehmen, die sie an Bob schicken möchte und sie rechnet auf der Datei ein bisschen rum zusammen mit ihrem geheimen Authentifizierungsschlüssel, um etwas zu produzieren, dass wir eine Signatur, eine digitale Signatur und dann schickt Alex diese Signatur zusammen mit der Kontonummer an Bob und wenn Bob die Unterschrift erhält und die Kontonummer dann fügt er wieder ein bisschen, fügt er ein paar Berechnungen darauf aus und diese Berechnungen werden entscheiden, ob die Kontonummer verändert wurde oder ob sie tatsächlich diese ist, die original vorgesehen war. Wenn er so ein Angreifer die Kontonummer ändert, dann wird Bob das erkennen können, dass es diese Veränderungen gibt, indem er die digitale Unterschrift überprüft und das stimmt sogar, wenn der Angreifer nicht nur die Kontonummer austauscht, sondern auch die digitale Unterschrift. Also die Sachen sind so designt, dass es hoffentlich unmöglich ist für irgendein Angreifer, eine gültige Signatur zu erstellen, für irgendetwas anderes als die originale Nachricht. Okay. Also der einzige Weg, dass Bob die Signatur akzeptieren wird, ist, wenn der Angreifer in der Tat die Kontonummer nicht geändert hat und in diesem Fall kann Bob einfach das Geld sicher überweisen. Okay, aber hier ist nochmal ein anderer Ansatz dieses Problem zu lösen. Das ist irgendwie dann doch auch fast das Gleiche, aber jetzt haben wir nur noch einen Schlüssel für beide Sachen genutzt, für Authentifizierung und Verifizierung. In diesem Fall haben die Sachen einfach andere Namen, aber sie funktionieren auf die selbe Art und Weise, außer dass die Signatur jetzt ein Messens aus den Authentifizierungskurt oder MAC genannt wird. Okay, aber in beiden dieser Fälle, ob wir nun zwei verschiedene Schlüssel haben oder einen Schlüssel, wir haben immer noch das Problem, dass wir die Schlüssel verteilen müssen. Okay, stellt euch mal vor, in dem Szenario mit zwei Schlüsseln hat Alice ihren öffentlichen Schlüssel an Bob geschickt, und es gibt den gleichen Angriff wie vorher, nämlich der Angreifer kann einfach loslegen und den Schlüssel austauschen, den Alex an Bob schickt und einen eigenen an Bob zu schicken. Tauscht also die Schlüssel einfach unterwegs aus. Wenn der Angreifer seinen eigenen öffentlichen Schlüssel schickt, seinen eigenen Revikationsschlüssel an Bob schickt, dann kann der Angreifer natürlich offensichtlich gültige Unterschriften für seine gefälschte Kontonummer generieren und Bob würde das dann akzeptieren. Wir haben also wieder dieses Problem der Schlüsselverteilung, dass der Revikationsschlüssel von Bob eigentlich schon vorher gekannt werden muss. Okay, das bringt mich zu meinem nächsten Aspekt, den nächsten Bereich meines Vortrages. Lass uns Authentifizierung als erledigt markieren und lasst uns weitermachen mit Zertifikaten. Also Zertifikate ist ein Zertifikat, ist ein Dokument, der bestätigt, dass ein bestimmter öffentlicher Schlüssel tatsächlich zu einer bestimmten Person oder einer bestimmten Organisation oder Unternehmen gehört. Also schauen wir jetzt nochmal kurz zurück. Also Alice möchte gerne ihre Kontonummer, ihre öffentlichen Schlüssel und das Zertifikat an Bob senden. Und der Angreifer könnte natürlich jetzt all das ändern. Aber also wenn wir jetzt noch Zertifikate hinzufügen, dann gibt es so etwas wie eine Zertifikatsautorität, die halt Zertifikate erstellt und die Assoziation zwischen einer Person und einem öffentlichen Schlüssel wäre bestätigt. Also bevor sie eine Nachricht an Bob sendet, hey, Zertifikatsautorität, das ist mein öffentlicher Schlüssel, ich bin Alice, gib mir bitte ein Zertifikat und dann die Zertifikatsautorität wird tatsächlich direkt überprüfen, dass Alice diesen Schlüssel tatsächlich hat und dass Alice tatsächlich sie selbst ist. Und wenn all diese Überprüfungen erfolgreich sind, dann bekommt Alice ein Zertifikat und dieses Zertifikat ist einfach ein Dokument, dass die Zertifikatsautorität verifiziert hat, dass Alice tatsächlich diese Person also diesen Schlüssel hat. Und sobald Alice dieses Zertifikat hat, sobald sie das hat, kann sie ihren öffentlichen Schlüssel an Bob zusammen mit ihrem Zertifikat senden. Bob kann dann einfach Kontakt aufnehmen mit der Zertifikatsautorität und Entschuldigung. Also Bob kann mithilfe der Zertifikatsautorität überprüfen, dass das Zertifikat tatsächlich von Alice ist, weil die Zertifikatsautorität ebenfalls ein eigenes Zertifikat hat, dass Bob bereits hat, vorliegen hat. Also wir haben natürlich das Schlüsselverteilungsproblem noch nicht vollständig gelöst. Bob muss auch den öffentlichen Schlüssel von der Zertifikatsautorität vorher schon wissen. Er muss also nicht Alice das öffentlichen Schlüssel vorher wissen, sondern nur den von der Zertifikatsautorität. Und in der Praxis gibt es halt eine Vielzahl von Zertifikatsautoritäten und es ist auch möglich, dass Zertifikatsautoritäten untereinander ihre Identität bestätigen. Und daher muss Bob nicht alle öffentlichen Schlüssel kennen mit allen seinen Kommunikationspartnern, aber er muss halt einfach die öffentlichen Schlüssel von einigen Zertifikatsautoritäten voraus kennen. Also lasst uns das kurz zusammenfassen Zertifikate bestätigen, dass ein bestimmter öffentlicher Schlüssel tatsächlich zu einer bestimmten Person, einem bestimmten Unternehmen oder einem bestimmten einer bestimmten Firma gehören. Aber die Probleme sind, dass die Zertifikatautoritäten müssen vorher bekannt sein. Und es bedeutet natürlich auch, dass die Zertifikatautoritäten sehr viel macht haben. Das heißt, wenn jetzt ein Angreifer die Zertifikatsautorität direkt angreift, dann könnte er die Zertifikatsautorität missbrauchen oder zwingen, falsche Zertifikate auszustellen und falsche Schlüssel zu richtigen Identitäten zu verknüpfen. Und dadurch könnte jetzt die Zertifikatsinstanz behaupten, dass der Schlüssel des Angreifers zu Alice gehört. Und das ist halt ein Problem, an dem immer noch gearbeitet wird. Also es ist noch ein ungelöstes Problem. Also dieses Problem ist nicht nur theoretisch. Es ist tatsächlich so, dass in der Vergangenheit gab es tatsächlich Vorfälle. Zum Beispiel, dass die Diginota-Autorität wurde gehackt und die Angreifer konnten dann falsche Zertifikate für die Google.com-Domäne erstellen. Und diese Zertifikate wurden dann tatsächlich auch im Iran verwendet. Und wir wissen, dass es jetzt wirklich nicht nur ein theoretisches Angriffsszenario ist, sondern dass es tatsächlich auch passiert ist. Das beendet den Zertifikatsteil. Und jetzt schauen wir uns an, wie das alles zusammengepackt wird. Wie man halt mehr komplexe, aber auch mächtigere Werkzeuge schaffen kann. Und ein Werkzeug, das ihr euch vorstellen möchte, ist authentifizierte Verschlüsselung. Es ist eine Kombination von Authentifizierung und Verschlüsselung. In der Regel verwenden die Leute diesen Begriff eher im symmetrischen Fall, wo man halt ein Schlüssel für Authentifizierung und Anmerkungsübersetze, das habe ich jetzt nicht verstanden. Und in diesem Fall nennen Leute das halt einfach nicht authentifizierte Verschlüsselung. Eine Möglichkeit, authentifizierte Verschlüsselung zu bauen, ist, dass wenn Alice eine Nachricht an Bob senden will, ist, dass sie ihre Nachricht mit dem Schlüssel verschlüsselt und dann die verschlüsselte Nachricht an Bob sendet. Und sie benutzt eine Kopie des verschlüsselten Texts und berechnet den MRC davon. Und dieser Message Authentication Code wird auch an Bob gesendet. Und Bob kann diese Nachricht entschlüsseln mit seinem Schlüssel. Und zusätzlich kann er überprüfen, ob diese Nachricht manipuliert wurde oder ob sie halt wirklich das Original ist mit Hilfe der Verifikationsprozedur. Und Authentifizierung kann halt Manipationen nicht verhindern, aber sie kann sie aufdecken. Und diese authentifizierte Verschlüsselung kann die Sicherheit der Verschlüsselungsmethode halt verstärken. Und eine andere Sache, die noch erwähnen wollte, ist Hybrideverschlüsselung. Das ist eine Kombination von symmetrischer und asymmetrischer Verschlüsselung. Der Grund, warum das interessant ist, ist, dass asymmetrische Verschlüsselung relativ langsam ist. Und wenn man sehr lange Nachrichten senden möchte und nur die öffentliche Schlüsselmethode hat, dann würde es sehr lange dauern, die Nachricht zu verschlüsseln und dann wieder zu entschlüsseln. Aber man kann asymmetrische Verschlüsselung mit symmetrischer Verschlüsselung kombinieren, um das alles zu beschleunigen. Das macht man einfach so, wenn Alice eine Nachricht an Bob senden will, dann sendet sie einen neuen Schlüssel für die symmetrische Verschlüsselung und dann verschlüsselt sie die Nachricht mit dem öffentlichen Kie und danach nimmt sie den symmetrischen Schlüssel und sie wird diesen Schlüssel mit Bob's öffentlichen Schlüssel verschlüsseln und das wird ebenfalls Bob gesendet. Und jetzt kann Bob den symmetrischen Schlüssel mithilfe seines privaten Schlüssel, den goldenen Schlüssel hier auf den Folien, um den symmetrischen Schlüssel zu erhalten und danach kann Bob den frischen symmetrischen Schlüssel benutzen, um die Nachricht zu entschlüsseln und dann auch weiter zu kommunizieren. Und ein Angreifer kann die Nachricht nicht entschlüsseln, weil der Angreifer kann weder den symmetrischen Schlüssel noch die Nachricht entschlüsseln, weil ihm die Schlüssel halt dafür fehlen. Und man kann auf diesen Dingen andere Sachen aufbauen und was man zum Beispiel gemacht hat, ist halt Transport Layer Security und mit, also Transport Layer Security ist ein Netzwerk-Protokoll, dass viele Dinge kombiniert, die ich bereits euch erklärt habe. Sie verwendet Verschlüsselung entweder symmetrisch oder hybrid und es verwendet ebenfalls Authentifizierung, also die MRCs, die Signaturen und die Zertifikate und es fügt noch einige weitere Dinge hinzu. Also es erkennt, wenn eine Nachricht erneut gesendet wurde, dann wird TLS das bemerken und es kann es auch bemerken, wenn eine Nachricht fehlt, weil sie abgefangen wurde vom Angreifer innerhalb einer Verbindung. Was TLS macht ist, es schafft eine sichere Verbindung zwischen zwei Endpunkten durch ein unsicheres Netzwerk, das vom Angreifer angegriffen werden könnte. Und eine Anwendung, wo TLS verwendet wird, ist zum Beispiel E-Mails zu versenden. Wenn ihr also jetzt alles möchte eine E-Mail an Bob schicken, dann wird die E-Mail natürlich nicht direkt gesendet in den meisten Fällen. Schickt Alice das an ihren eigenen E-Mail-Server und der E-Mail-Server von Alice wird diese Nachricht weiterleiten an Bob's E-Mail-Server. Und wenn Bob online geht, dann ist eine E-Mails abruft, dann wird die E-Mail von an auf sein Gerät, zum Beispiel sein Telefon oder seinen Desktop-Rechner runtergeladen. Und Alice kann natürlich sicherstellen, dass wenn sie die E-Mail hochlädt, ihre E-Mail an ihren eigenen Server hochlädt, dass diese Verbindung sicher ist, zum Beispiel, nehmen sie die Nachricht verschlüsselt, also im wesentlichen TLS benutzt und alles das, was damit zu tun hat, zum Beispiel die Nachricht zu verschlüsseln und sie zu authentifizieren und so weiter und so fort. Aber Alice hat eigentlich keine Möglichkeit zu kontrollieren, ob ihr eigener E-Mail-Server auch eine sichere Verbindung benutzt, um diese E-Mail weiterzuleiten an Bob's E-Mail-Server. Okay. Lass uns einen genaueren Blick ins Detail hier hinwerfen. Jeder dieser grünen Schlösser symbolisiert eine sichere Verbindung. Das bedeutet, dass eine Nachricht, die geschickt wird, jedes Mal, wenn eine Nachricht geschickt wird über eine sichere Verbindung, dann gibt es etwas Verschlüsselung, Entschlüsselung, Verschlüsselung und Signatur auf dem sendenden Seite und Entschlüsselung und Verifikation auf dem empfangenen Seite. Also wenn Alice an Bob eine Verbindung schicken möchte, dann baut sie eine Verbindung auf und schickt ihre E-Mail darüber. Das bedeutet, dass sie die E-Mail verschlüsseln und identifizieren möchte. Und Alice-Server wird es dann entschlüsseln und verifizieren, dass nichts verändert wurde. Und dann wird Alice-Server das an Bob's Server weiterleiten und das bedeutet, dass wieder verschlüsselt, identifiziert. Dann Bob's Server wird es wieder entschlüsseln und verifizieren, also überprüfen. Und der selbe Prozess wird sich nochmal wiederholen, wenn die E-Mail von Bob heruntergeladen wird von seinem Server. In diesem Fall haben wir, also auch wenn die Nachricht jetzt verschlüsselt ist, jedes Mal wenn sie über das Netzwerk verschlüsselt wird, ist es trotzdem so, dass Alice-Server und Bob-Server die Nachricht im Klartext kennen. Alice verschlüsselt die Nachricht und Alice-Server entschlüsselt sie. Also Alice-Server kennt dann den Klartext der Nachricht. Und dasselbe gilt auch für Bob's Server. Das ist was wir meinen, wenn wir sagen Transportverschlüsselung. Die E-Mail wird immer verschlüsselt, wenn sie über ein Netzwerk geschickt wird. Und ein anderes Konzept, das ihm ein bisschen gegenübersteht, ist die N-to-N-Verschlüsselung, wo Alice, bevor sie eine Nachricht los schickt, diese Nachricht verschlüsselt, aber nicht mit einem Schlüssel, den ihr Server kennt, sondern nur direkt mit dem öffentlichen Schlüssel von Bob. Und sie wird es vielleicht sogar signieren mit ihrem geheimen Signaturschlüssel. Und Alice kann die bereits verschlüsselte Nachrichten über einen sicheren Kanal an ihren eigenen Servers schicken. Das heißt, die Nachricht wird nochmal verschlüsselt, nochmal authentifiziert. Der Server von Alice wird es dann entschlüsseln und verifizieren, dass es nicht verändert wurde. Aber der Server kann nicht die zweite Ebene Verschlüsselung entfernen. Also diese E-Mail ist jetzt zweimal verschlüsselt. Einmal mit Bob's Schlüssel und einmal so, dass der Server es entschlüsseln kann. Der Server kann jetzt also die zweite Verschlüsselung entfernen, aber nicht die erste. Alice ist E-Mail-Server, kann also die E-Mail nicht lesen. Und dieser Prozess wiederholt sich, die bereits verschlüsselte Nachricht wird nochmal verschlüsselt und entschlüsselt bei einem Bob-Server dann. Und wenn es von Bob heruntergeladen wird, die E-Mail, dann wird genau das Gleiche nochmal passieren. Das wird wieder verschlüsselt und entschlüsselt. Und am Ende hat Bob seine geheimen Entschlüsselschlüssel und der kann dann die innere Ebene der Verschlüsselung entfernen und Bob kann dann tatsächlich die E-Mail lesen. Die Server in der Übertragung können allerdings die Nachrichten nicht lesen, denn es war ja mit Bob's öffentlichen Schlüssel verschlüsselt. Okay, damit würde ich dann zusammenfassen, sorry, Entschuldigung. Ich würde gerne zusammenfassen. Hier sind ein paar Nachrichten oder Ideen, die ihr mit nach Hause nehmen könnt. Das Erste ist, Verschlüsselung verschleiert den Inhalt von Daten. Und das ist ziemlich alles, was es macht. Es verbirgt nicht Metadaten. Und es verhindert auch nicht, dass die übertragende Nachricht verändert wird. Das ist der Job von Authentifizierung. Authentifizierung erlaubt es, die Veränderung von Daten zu erkennen. Beides für Verschlüsselung und für Authentifizierung braucht man vorher geteilte Schlüssel. Vielleicht nicht unbedingt vorher geteilte Schlüssel, aber auf jeden Fall muss man irgendwie Schlüsselverteilung organisieren, und zwar im Voraus. Und eine Möglichkeit, das Problem Schlüsselverteilung leichter zu machen ist, mit Zertifikaten. Zertifikate bestätigen, dass ein spezieller öffentlicher Schnüssel zu einer ganz speziellen Person oder Identität gehört. Wenn man alles das zusammen hat, Verschlüsselung und Authentifizierung und Zertifikate, dann kannst du ein Netzwerkprotokoll bauen, das sich darum kümmert, sicher Nachrichten von einem zu einem anderen Punkt zu transportieren. Damit kannst du dann zum Beispiel Transportverschlüsselung machen. Transportverschlüsselung ist allerdings, was gegensätzlich zu End-zu-Endverschlüsselung war, bei Transportverschlüsselung können alle Zwischenstationen, die Nachricht, die E-Mail oder die Nachricht, die übertragen wird, lesen. Aber bei der End-zu-Endverschlüsselung können Sie das nicht. Und damit würde ich gerne meinen Vortrag beenden und hoffe, dass es Fragen gibt. Ich würde mich freuen, Sie zu beantworten. Wenn es Fragen gibt, welche Ihr heute nicht stellen könnt, dann schreibt mir bitte gerne eine E-Mail an diese E-Mail-Adresse auf den Vorgehen. Ich werde diese E-Mail-Adresse für eine Weile aufrechterhalten, vielleicht ein oder zwei Jahre. Ihr hört den Vortrag, Verschlüsselung, Ihr hört den Vortrag, Verschlüsselung entzaubert. Eure Übersetzer waren Jörn und Mr. Brons. Und jetzt kommen wir zur Frage- und Antwortrunde. Gibt es eigentlich Fragen vom Internet? Wir haben viel Zeit, wenn jemand kommt. Mit der Frage, Sie haben es beantwortet. Falls ihr Feedback für uns habt, freuen wir uns darüber. Am besten mit dem Hashtag C3T. Also wie kann man eine Nachricht verändern, die... Also wie kann man eine Nachricht verändern, ohne dass jetzt gemerkt wird, dass sie verändert wurde? Also das hängt jetzt ab von der Verschlüsselungsmethode an. Also es kommt auf das Verschlüsselungsmethode an. Und bei einigen Sachen ist es relativ einfach, wenn man einige bestimmte Bits ändert. Und das Verschlüsselungsschema ermittelt dann, welche Bits geändert werden sollen und welche nicht geändert werden sollen. Und mit dem Verschlüsselungsschema wird entschieden, welche Bits ausgewext, also gesetzt werden sollen. Und der Empfänger kann natürlich dann das Setzen dieser Bits rückgängig machen, um ursprüngliche Nachricht wiederherzustellen. Und der Angreifer weiß natürlich nicht, welche Bits gesetzt wurden. Aber der Angreifer kann einige Bits zufällig setzen. Und zum Beispiel, wenn Alice das Bitt gesetzt hat und der Angreifer das selbe Bitt dann nochmal gesetzt hat, dann ist es natürlich auf dem ursprünglichen Zustand. Und Bitt, Bob, der jetzt versuchen würde, das Bitt nochmal zu setzen, dann wäre es ja in einem Zustand, der nicht der Originalzustand ist, oder Bob das merken. Also die Verschlüsselung versagt nicht, sie produziert nur das falsche Ergebnis bei Manipulation. Also du sagtest, dass Verschlüsselung nicht Metadaten schützt. Also das ist echt ein hartes Problemfeld bei E-Mails. Gibt es die Idee, dass man halt den Betreff verschlüsselt, weil er normalerweise nicht verschlüsselt ist, wenn man die Länge der Nachricht, für fremden will, ist, dass man zum Beispiel zufälligen Müll an die Nachricht ran hängt, so dass die Nachricht größer aussieht, als sie eigentlich ist. Der Angreifer weiß natürlich jetzt, es gibt nur, der Angreifer kennt natürlich dann eine Obergrenze. Wie groß die Nachricht ist, wie groß die Nachricht ist, wie groß die Nachricht ist, wie groß die Nachricht ist, der Angreifer weiß dann nicht, wie kurz die Nachricht ist. Wenn man die eigene Identität schützen möchte, während man kommuniziert, sollte man Tor verwenden, sodass man nicht direkt mit der Zielperson kommuniziert, sondern eine Reihe von Zwischenstationen verwendet, über die man dann kommuniziert. Okay, dann, ich glaube, wir haben eine Frage aus dem Internet. Ja, das Interfrakt, kannst du etwas zum zusätzlichen Energieverbrauch sagen, durch den Einsatz von Verschlüsselung? Ich kann dazu leider nichts sagen. Ich weiß nicht, wie viel Stromverbrauch durch Verschlüsselung entsteht, was Verschlüsselung angeht. Symmetische Verschlüsselung ist eher billig. 16 Blöcke können mit einigen CPU-Einheiten leicht fair oder entschlüsselt werden, zumindest bei modernen CPUs. Ich weiß es im Endeffekt, ich kenne keine Zahlen dazu. Aber man kann davon ausgehen, dass, wenn jeder in der ersten Welt Verschlüsselung verwenden würde, dann würde durchaus einiges an Energie zusammenkommen. Du erwähntest, dass der Angreifer eine Nachricht erneut senden könnte. Also, was wäre es, wie so macht ein Angreifer sowas? Also, stellt euch vor, dass Alice eine Anfrage an ihre Bank sendet. Und jedes Mal, wenn die Bank diese Anfrage empfängt, würde die Bank die Anfrage ausführen. Und wenn man diese Angreifer, diese Nachricht verwendet, würde der Angreifer die Anfrage wieder an die Bank senden. Und dadurch würde die Bank immer wieder die Anfrage ausführen und das Geldübertrag überweisen. Ich war in einem Gespräch über Elliptik-Kurven und Kryptografie. Und ich frage mir, wo das jetzt in euer Exemplar verabschiedet wird. Okay, wie sieht es mit elliptischer Kurven-Kryptografie aus? Wie wird das in deine Diagramme reinpassen? Wir gehen mal kurz zu den entsprechenden Folien. Normale Elliptik-Kurven verwendet man hier, wo entkript, dekript und dekriptrauten steht. Und ich wollte jetzt nicht, sondern ich wollte tief in die Mathematik reingehen, um eine Möglichkeit, also eine Verschuldung zu haben. Also, ich wollte jetzt nicht, um eine Möglichkeit, also eine Verschüßlungsmethode ist elliptische Kurven. Also wie, wenn ich jetzt an Internet of Things, also kleine Geräte denke, im Bezug auf dieses Thema denke, wie siehst du das? Also, wie sieht es mit, also es gibt Forschung, im Bezug auf Verschüßungsmethoden, die auch funktionieren auf kleinen Geräten. Aber so viel ich weiß, haben diese Methoden alle gewisse Schwächen, sodass sie halt nicht die gleichen Garantien bieten, sodass man halt, ja, nicht die gleiche Sicherheit hat. Du erwähntest, die enorme Macht, die Zertifikatsautoritäten haben. Was können, was für Lösungen gibt es derzeit? Um dieses Problem zu lösen. Eine Lösung ist, eine Lösung ist, nennt sich ZV-Cards Transparenz. Und das funktioniert so, dass es öffentliche Protokolle gibt, wo dran steht, wer alles ein ZV-Card bekommen hat. Und wenn man zum Beispiel Google ist und man sieht, dass ein Google ZV-Card in die Log-Datei hinzugefügt wird und man selber weiß, dass man dieses ZV-Card gar nicht haben wollte, dann weiß man, dass ein falsches ZV-Card erzeugt wurde. Und wenn man auch ein ZV-Card zugesendet bekommt, kann man dann ebenfalls schauen, ist es tatsächlich in der öffentlichen Liste von richtigen ZV-Cards. Nachfrage, aber wie schützt das für Machtnissbrauch vonseiten der ZV-Cards Autoritäten? Also die Idee ist, dass wenn man ein ZV-Card bekommt, kommt dieses ZV-Card auch in eine Protokoll-Datei. Aber wenn die ZV-Cards Autorität das selber macht, ja okay, aber das ist zumindest der Plan der Zeit. Wo können wir die Autofentifizierung für ein PGP-Key-Schlüssel bekommen? Also es hängt davon ab. Also mit PGP ist das Modell, dass es keine zentrale ZV-Cards-Autorität gibt, sondern dass es einen sozialen Graf gibt von Leuten, die einander kennen und die auch E-Mails austauschen. Und jeder von diesen Nutzern sollte die öffentliche Schlüssel seiner Freunde authentifizieren oder zertifizieren. Und dadurch kann man auch indirekt dann nachweisen, dass diese Sachen richtig sind. Also wenn jetzt der Freund von meinem Freund ein Schlüssel bestätigt, dann kann ich diese Kette von Beziehung nutzen, um dem Freund, dem Schlüssel vom Freund meines Freundes ebenfalls zu trauen. Gebt das noch Fragen aus dem Internet? Okay, eine weitere Frage. Jemand möchte wissen, was es besser für E-Mails ist. Ich würde immer eine Verschlüsselung zum E-Mail-Server aufzubauen. Also ich würde immer auf der äußersten Ebene verwenden. Also eine Verschlüsselung zum E-Mail-Server aufzubauen. Also dann eine SMTP-Verbindung aufzubauen. Also ich würde halt wirklich direkt immer sofort mit StarTLS anfangen, weil es auf der äußersten Ebene anfängt und die alle Daten verschlüsselt. Okay, ich glaube, das waren alle Fragen. Ein großer Runde Applaus für unseren Vortragenden.