SO geht Software Sicherheit!

Sebastian Hahner - skate702
31 Aug 202418:10

Summary

TLDRDieses Video ist ein Experiment, in dem der Sprecher seine Gastvorlesung über Software Security Engineering in einer informatischen Masterstudiengänge vermittelt. Er konzentriert sich auf Datenflussdiagramme und Vertraulichkeitsanalyse, um die Sicherheit in der Softwareentwicklung zu erhöhen. Er erklärt Begriffe wie Vertraulichkeit, Zugriffskontrolle und verschlüsselte Kommunikation und zeigt, wie Datenflussdiagramme dazu beitragen können, Vertraulichkeitsverletzungen in einfachen und komplexen Systemen zu identifizieren. Der Sprecher nutzt auch mathematische Konzepte, um die Analyse zu erläutern und betont die Notwendigkeit von Vertraulichkeit in der heutigen vernetzten Welt.

Takeaways

  • 👨‍🏫 Der Redner hält Gastvorlesungen im Bereich Software Security Engineering, wo es um Methoden zur Verbesserung der Sicherheit in der Softwareentwicklung geht.
  • 🔒 Die Vorlesung beinhaltet das Erstellen von Datenflussdiagrammen und Vertraulichkeitsanalysen, welche die Grundlage für seine Forschung sind.
  • 🗝️ Vertraulichkeit wird im Kontext der Vorlesung definiert als sensible Daten, die nur für autorisierte Personen oder Prozesse zugänglich sein sollten.
  • 💡 Ein einfaches Beispiel aus der Vorlesung ist die Darstellung einer Online-Shop-Architektur, um die Vertraulichkeitsprobleme wie Zugriffskontrolle, verschlüsselte Kommunikation und Eingabedaten zu veranschaulichen.
  • 🔗 Datenflussdiagramme sind ein Werkzeug, um die Vertraulichkeit in Softwaresystemen zu analysieren und werden als gerichtete, azyklische Graphen (DAG) beschrieben.
  • 📊 Die Vorlesung verwendet mathematische Konzepte wie partielle Ordnung, strikte Ordnung und Transitivität, um die Eigenschaften von Datenflussdiagrammen zu erklären.
  • 🔍 Durch die Analyse von Datenflussdiagrammen können Vertraulichkeitsverletzungen identifiziert werden, indem man Datenflüsse und deren Beziehungen zu Systemkomponenten überprüft.
  • 🏷️ Die Verwendung von Labels (knotenlabel und datenlabel) ermöglicht es, Vertraulichkeitsattribute an Prozesse und Datenflüsse zu binden und so eine formale Methode zur Vertraulichkeitsanalyse zu entwickeln.
  • 🔄 Die Vorlesung diskutiert auch die Automatisierung von Vertraulichkeitsanalysen, wobei die Verfolgung von Datenflüssen und die Überprüfung gegen Vertraulichkeitsanforderungen algorithmisch durchgeführt werden können.
  • 🌐 Der Redner reflektiert über die Herausforderungen und Möglichkeiten der Wissenschaftskommunikation und nutzt das Video als Experiment, um sein Vorgehen zu testen und Feedback zu erhalten.

Q & A

  • Was ist das Hauptthema des Videos?

    -Das Hauptthema des Videos ist die Darstellung von Vertraulichkeit und Datenflussdiagrammen in der Softwaresicherheit, die in einer Gastvorlesung im Informatik-Master am KIT behandelt werden.

  • Was sind die Hauptinhalte der Gastvorlesung?

    -Die Gastvorlesung behandelt verschiedene Techniken und Ansätze für mehr Sicherheit in der Softwareentwicklung, einschließlich Datenflussdiagrammen und Vertraulichkeitsanalyse.

  • Wie definiert der ISO-Standard 27000 die Vertraulichkeit?

    -Der ISO-Standard 27000 definiert Vertraulichkeit als die Zugänglichkeit von sensiblen Daten nur für berechtigte Personen, Prozesse oder Entitäten.

  • Welche Rolle spielen Datenflussdiagramme in der Vertraulichkeitsanalyse?

    -Datenflussdiagramme sind eine Notation, um Vertraulichkeit effektiv darzustellen und verschiedene Datenflüsse im System zu verfolgen, was für die Vertraulichkeitsanalyse und -bewertung von entscheidender Bedeutung ist.

  • Was ist ein gerichteter azyklischer Graph und wie ist er in der Vertraulichkeitsanalyse relevant?

    -Ein gerichteter azyklischer Graph (DAG) ist eine Menge von Kanten und Knoten, bei der es keine Zyklen gibt. Dies vereinfacht die Analyse von Datenflüssen und ist für die Vertraulichkeitsanalyse von Softwarearchitekturen relevant.

  • Wie werden in den Datenflussdiagrammen die externen Entitäten, Prozesse und Zwischenspeicher dargestellt?

    -Externe Entitäten werden durch Vierecke dargestellt, Prozesse durch Kreise und Zwischenspeicher, wie Logdateien, durch spezielle Symbole oder Anmerkungen.

  • Was bedeuten die Begriffe irreflexiv, asymmetrisch und transitiv in Bezug auf Datenflüsse?

    -Irreflexiv bedeutet, dass es keinen Datenfluss zu sich selbst gibt. Asymmetrisch bedeutet, dass ein Fluss in eine Richtung nicht impliziert, dass er auch in die entgegengesetzte Richtung geht. Transitiv bedeutet, dass ein Datenfluss, der über mehrere Schritte weitergegeben wird, immer gültig ist.

  • Wie können Datenflussdiagramme aus Sourcecode oder Architekturdokumentation extrahiert werden?

    -Datenflussdiagramme können aus Sourcecode oder Architekturdokumentation durch Analyse der Interaktionen und Abläufe zwischen Komponenten extrahiert werden, um die Datenflüsse im System darzustellen.

  • Was sind die praktischen Anwendungen von Datenflussdiagrammen in der Softwareentwicklung?

    -Datenflussdiagramme werden in der Softwareentwicklung verwendet, um die Vertraulichkeit von Daten zu bewerten, potenzielle Sicherheitsrisiken zu identifizieren und sicherere Softwarearchitekturen zu entwickeln.

  • Wie werden Knoten- und Datenlabel in den Datenflussdiagrammen verwendet?

    -Knotenlabel beschreiben vertraulichkeitsbezogene Eigenschaften der Knoten, wie z.B. die Cloud-Lage einer Datenbank, während Datenlabel, auch als Datencharakteristiken bezeichnet, die Datenflüsse in Bezug auf ihre Vertraulichkeit kennzeichnen.

Outlines

00:00

😀 Einführung in die Software Security Engineering

Der Sprecher stellt sich als Dozent für Software Security Engineering vor, eine Wahlvorlesung im Informatik Master an der Universität. Er führt die Themen der Vorlesung ein, wie Datenflussdiagramme und Vertraulichkeitsanalyse, und erklärt, dass diese auch die Grundlage seiner Forschung sind. Das Video soll als Experiment dienen, um die Vorlesungsinhalte auf einer Handvoll Karten zu vermitteln. Der Sprecher möchte auch Vertraulichkeit definieren und stellt die aktuelle Relevanz des Themas her, indem er auf Datenlecks und Missbrauch von Daten hinweist. Ein einfaches Beispiel einer Softwarearchitektur wird präsentiert, um Vertraulichkeitsverletzungen aufzuzeigen, die in solchen Systemen auftreten können.

05:02

📈 Datenflussdiagramme und ihre Analyse

Der zweite Absatz konzentriert sich auf das Erstellen und Analysieren von Datenflussdiagrammen, die zur Veranschaulichung von Vertraulichkeit in Softwaresystemen verwendet werden. Der Sprecher erklärt, wie man Datenflussdiagramme erstellt, welche Elemente sie enthalten und wie sie aus Sourcecode oder Architekturdokumentation extrahiert werden können. Er führt dann die mathematischen Aspekte ein, wie z. B. die Beschreibung von Datenflussdiagrammen als gerichtete azyklische Graphen (DAGs), und erläutert, warum diese Struktur für die Analyse wichtig ist. Der Sprecher geht dann auf die Eigenschaften von solchen Graphen ein, wie irreflexiv, asymmetrisch und transitiv, und wie diese Eigenschaften bei der Analyse von Vertraulichkeitsproblemen hilfreich sind.

10:03

🔍 Anwendung mathematischer Konzepte in der Datenflussanalyse

Der dritte Absatz vertieft sich in die Anwendung mathematischer Konzepte bei der Analyse von Datenflüssen. Der Sprecher erklärt, wie man Datenflussdiagramme mit mathematischen Begriffen wie partielle strikte Ordnung und Antikette beschreiben kann. Er stellt dar, wie diese Konzepte dazu dienen, die Vertraulichkeitsanalyse zu verfeinern und komplexe Vertraulichkeitsanforderungen in Softwaresystemen zu identifizieren. Der Sprecher verwendet Beispiele, um zu zeigen, wie man Verletzungen von Vertraulichkeitsrichtlinien im Kontext von Datenflüssen erkennen kann und wie man automatische Analysen durchführt, um solche Verletzungen zu vermeiden.

15:05

🎓 Zusammenfassung und Rückmeldung

Schließlich fasst der Sprecher die wesentlichen Punkte der Vorlesung zusammen und betont, dass das Video auch als Experiment dient, um herauszufinden, wie effektiv die Kommunikation von Forschungsinhalten im Format eines Videos ist. Er bittet die Zuschauer, Feedback zu geben, um zu erfahren, ob der Stil des Videos und die dargebotenen Inhalte verstanden wurden. Der Sprecher reflektiert auch über seine eigene Fähigkeit, Wissenschaft zu kommunizieren, und vergleicht es mit anderen Wissenschaftlern, die erfolgreich im Format des Videos vorgehen. Er erwähnt auch, dass das Video eine Fortsetzung der 'Minecraft und Forschung'-Serie darstellt und bittet die Zuschauer, ihre Meinung über die Art und Weise, wie die Forschung präsentiert wurde, zu teilen.

Mindmap

Keywords

💡Vertraulichkeit

Vertraulichkeit bezieht sich auf die Beschränkung des Zugangs zu sensiblen oder geheimen Informationen. Im Kontext des Videos ist Vertraulichkeit ein zentrales Thema, da es darum geht, wie sensible Daten nur den berechtigten Personen, Prozessen oder Entitäten zur Verfügung gestellt werden sollen. Ein Beispiel aus dem Skript ist die Definition von Vertraulichkeit gemäß dem ISO-Standard 27000, der besagt, dass vertrauliche Daten nur für diejenigen zugänglich sein sollten, die darauf zugreifen dürfen.

💡Datenflussdiagramme

Datenflussdiagramme sind eine Visualisierungsmethode, die verwendet wird, um den Fluss von Daten innerhalb eines Systems darzustellen. Im Video wird erläutert, wie solche Diagramme dazu verwendet werden können, die Vertraulichkeit in Softwaresystemen zu analysieren. Ein Beispiel ist das einfache Datenflussdiagramm, das den Fluss von Daten von einem Benutzer durch verschiedene Prozesse bis hin zur Datenbank zeigt.

💡Vertraulichkeitsanalyse

Vertraulichkeitsanalyse ist der Prozess, bei dem überprüft wird, ob ein System oder eine Softwarearchitektur die Anforderungen an die Vertraulichkeit erfüllt. Im Video wird dies durch die Verwendung von Datenflussdiagrammen und der Analyse der darin dargestellten Datenströme beschrieben. Eine Verletzung der Vertraulichkeit kann beispielsweise vorliegen, wenn persönliche Daten unverschlüsselt zu einem Administrator fließen.

💡Zugriffskontrolle

Zugriffskontrolle ist ein Sicherheitsmechanismus, der sicherstellt, dass nur autorisierte Benutzer oder Prozesse auf bestimmte Ressourcen oder Daten zugreifen können. Im Video wird dies als eine der Maßnahmen erwähnt, die verhindern können, dass nicht autorisierte Personen auf sensible Daten zugreifen, was zu Vertraulichkeitsverletzungen führen kann.

💡Verschlüsselte Kommunikation

Verschlüsselte Kommunikation ist ein Verfahren, bei dem Daten vor dem Senden codiert werden, um sie während der Übertragung zu schützen. Im Video wird betont, wie wichtig es ist, dass Kommunikationskanäle verschlüsselt sind, um die Vertraulichkeit der übertragenen Informationen sicherzustellen, insbesondere wenn sie sensible Daten beinhalten.

💡Eingabevalidierung

Eingabevalidierung ist der Prozess, bei dem überprüft wird, ob die von Benutzern eingegebenen Daten gültig sind, bevor sie verarbeitet werden. Im Video wird erwähnt, dass fehlende Eingabevalidierung zu Sicherheitslücken wie SQL Injection führen kann, bei denen böswillige Daten in das System eingefügt werden können.

💡Logging

Logging ist die Aufzeichnung von Systemereignissen und -aktivitäten, die zur Fehleranalyse und zum Überwachen des Systemverhaltens verwendet werden kann. Im Video wird darauf hingewiesen, dass Logging, wenn es nicht sorgfältig durchgeführt wird, zu Vertraulichkeitsproblemen führen kann, da potenziell sensible Daten in Logdateien gespeichert werden können.

💡DSGVO

Die DSGVO (Datenschutz-Grundverordnung) ist ein europäisches Gesetz, das Regeln für die Verarbeitung personenbezogener Daten vorschreibt. Im Video wird darauf verwiesen, dass die Einhaltung der DSGVO wichtig ist, um Vertraulichkeitsverletzungen zu vermeiden, die teure Bußgelder nach sich ziehen können.

💡Gerichteter azyklischer Graph

Ein gerichteter azyklischer Graph (DAG) ist ein spezieller Typ von Graph, bei dem es keine Zyklen gibt und die Kanten eine Richtung haben. Im Video wird erklärt, dass Datenflussdiagramme als gerichtete azyklische Graphen modelliert werden können, was die Analyse und Verarbeitung der Diagramme vereinfacht.

💡Strikte partielle Ordnung

Eine strikte partielle Ordnung ist eine Beziehung zwischen Elementen, bei der nicht jedes Element mit jedem anderen verglichen werden kann, aber die verglichenen Elemente eine klare, strenge Beziehung aufweisen. Im Video wird dies verwendet, um die Beziehungen zwischen den Knoten in Datenflussdiagrammen zu beschreiben, wobei nicht jeder Knoten mit jedem anderen Knoten direkt verglichen werden kann.

Highlights

Das Video ist ein Experiment zur Wissenschaftskommunikation.

Die Gastvorlesung in Software Security Engineering behandelt verschiedene Techniken für mehr Sicherheit in der Softwareentwicklung.

Datenflussdiagramme und Vertraulichkeitsanalyse sind zentrale Themen der Forschung und Lehre des Dozenten.

Vertraulichkeit ist definiert als die Beschränkung des Zugangs zu sensiblen Daten auf autorisierte Personen oder Prozesse.

Vertraulichkeitsverletzungen sind ein aktuelles Problem, oft durch Datenlecks oder illegalen Zugriff auf Daten erkennbar.

Einfache Softwarearchitektur-Grafiken können verwendet werden, um Vertraulichkeitsprobleme zu illustrieren.

Zugriffskontrolle ist entscheidend, um nicht autorisierten Zugriff auf Systeme zu verhindern.

Verschlüsselte Kommunikation ist ein Klassiker in der Vertraulichkeitssicherung, obwohl Cloudanbieter immer wieder zum Zweifel Anlass geben.

Eingabedaten müssen validiert werden, um Angreifer wie SQL Injection zu verhindern.

Logging kann zu Vertraulichkeitsproblemen führen, wenn sie nicht sorgfältig gehandhabt wird.

Die DSGVO in der EU legt klare Vorschriften für den Umgang mit Daten fest und schützt vor teuren Bußgeldern.

Datenflussdiagramme sind ein Werkzeug, um die Vertraulichkeit in Softwaresystemen darzustellen und zu analysieren.

Gerichtete azyklische Graphen (DAGs) sind eine mathematische Beschreibung von Datenflussdiagrammen ohne Zyklen.

Partielle strikte Ordnung ist ein Konzept, das bei der Analyse von Datenflussdiagrammen hilft, die Beziehungen zwischen Knoten zu verstehen.

Irreflexivität, Asymmetrie und Transitivität sind Eigenschaften, die bei der mathematischen Modellierung von Datenflüssen wichtig sind.

Auswirkungsmengen oder Impact Sets sind Teilmengen von Knoten, die verwendet werden, um die Auswirkungen von Datenflüssen zu analysieren.

Antiketten sind ein mathematisches Konzept, das verwendet wird, um die größten, nicht ineinander schlüsselnden Teilmengen in einem Graphen zu identifizieren.

Labels werden auf Knoten und Datenflüsse in Datenflussdiagrammen verwendet, um Vertraulichkeitseigenschaften zu kennzeichnen.

Vertraulichkeitsanalysen können automatisiert werden, um große Softwaresysteme auf Verletzungen von Datenschutzanforderungen zu überprüfen.

Das Video ist auch ein Experiment namens 'Forschung und Forschung', eine Reaktion auf frühere 'Minecraft und Forschung'-Videos.

Der Dozent sucht Feedback, um seine Fähigkeiten in Wissenschaftskommunikation zu verbessern.

Transcripts

play00:00

dieses Video hier ist ein Experiment und

play00:01

weil es ein Experiment ist erzähle ich

play00:03

auch erst am Ende des Videos warum es

play00:05

eigentlich ging einmal im Jahr halte ich

play00:08

eine gastvorlesung in Software Security

play00:10

Engineering das ist eine wahlvorlesung

play00:12

im Informatik Master am ket und dort

play00:15

geht es um verschiedene Techniken und

play00:16

Ansätze für mehr Sicherheit in der

play00:18

Softwareentwicklung das sieht dann

play00:20

ungefähr so aus wie hier mit dem kleinen

play00:22

Unterschied dass ich diese Aufnahmen vom

play00:24

ARD geklaut habe Software Security

play00:27

Engineering als wahlverorlesung ist ein

play00:28

kleines bisschen kleiner als das in

play00:30

meiner gastvorlesung geht es um

play00:32

datenflussdiagramme und

play00:34

vertraulichkeitsanalyse was die

play00:35

Grundlage für meine Forschung und auch

play00:38

die Forschung vieler meiner Kollegen bei

play00:40

mir am Lehrstuhl ist und heute in diesem

play00:42

Video möchte ich versuchen immittels nur

play00:45

drei von diesen Karteikarten hier euch

play00:48

den Vorlesungsinhalt so gut wie möglich

play00:50

zusammenzufassen wobei diese karikarte

play00:53

hier gehört nicht dazu das ist aus

play00:54

meiner grundlagenvorlesung zur

play00:56

Herstellung von Whisky für meinen

play00:58

anderen YouTube-Kanal heute geht es

play01:00

Vertraulichkeit und deswegen möchte ich

play01:01

einsteigen mit der Definition von

play01:03

Vertraulichkeit wenn man mal nicht

play01:05

weiter weiß oder eine gute Definition

play01:06

benötigt ist es immer eine gute Idee in

play01:08

einem Standard nachzuschauen wie hier in

play01:10

ISO standard 27.000 da sind nämlich ganz

play01:13

viele Begriffe der Sicherheit definiert

play01:15

wie auch Vertraulichkeit und letztlich

play01:17

lässt sich diese Definition

play01:18

zusammenfassen in sensible Daten

play01:20

vertrauliche Daten dürfen nur zugänglich

play01:23

gemacht werden zu Entitäten Menschen

play01:26

Personen Prozessen die da auch drauf

play01:28

zugreifen dürfen das kann man sich sich

play01:30

tatsächlich so vorstellen wie ein

play01:31

Geheimnis ich habe ein Geheimnis und das

play01:33

darf ich anderen Personen nicht erzählen

play01:35

weil ansonsten preche ich die

play01:36

Vertraulichkeit und das mit der

play01:37

Vertraulichkeit ist ein total aktuelles

play01:39

Problem und das kann auch wirklich

play01:40

überall vorkommen öfters hört man mal in

play01:42

den Nachrichten dass wieder ein

play01:43

datenliag war oder dass wieder

play01:44

irgendjemand illegalerweise

play01:46

verbotenerweise auf Daten zugegriffen

play01:48

hat all das sind

play01:50

vertraulichkeitsverletzungen in meiner

play01:51

gastvorlesung fange ich dann auch immer

play01:53

mit einer Grafik an das ist eine total

play01:55

einfache Grafik von einer ganz simplen

play01:57

Softwarearchitektur wir haben hier einen

play01:58

onlinhop stellt euch sowas wie Amazon

play02:01

vor und wir haben hier eine Datenbank da

play02:04

liegen die ganzen Daten welche Produkte

play02:05

sind gerade verfügbar welche Kunden

play02:07

haben was gekauft und für dieses

play02:09

einfache Beispiel reicht das auch

play02:10

erstmal und dann ist hier noch so ein

play02:12

bisschen implementierungslogik wie z.B

play02:15

dass es ein Debugging gibt wo etwas auf

play02:17

dem logoutput kommt denn ansonsten

play02:18

werden die Eingaben einfach in der

play02:19

Datenbank gespeichert komplett trivial

play02:22

sollte man meinen aber selbst hier und

play02:24

das sieht man an den ganzen abgeklebten

play02:25

Zetteln gibt's schon einige

play02:27

vertraulichkeitsverletzungen Arbeiten

play02:28

wir uns mal von oben links durch

play02:31

Zugriffskontrolle welcher Nutzer darf

play02:33

überhaupt auf welche Schnittstelle des

play02:34

Systems zugreifen wenn ich keine

play02:36

ordentliche Zugriffskontrolle habe dann

play02:38

kann ja jeder sich Admin Privilegien

play02:40

holen und mal eben alle Daten scrapen

play02:42

verschlüsselte Kommunikation auch ein

play02:44

Klassiker auch sehr bekannt die

play02:46

Vertrauenswürdigkeit von z.B

play02:48

cloudanbietern der Zweifel ist irgendwie

play02:50

immer da und wenn ich mich dann nicht

play02:52

ordentlich drum kümmer habe ich ein

play02:54

vertraulichkeitsproblem dann

play02:55

Eingabedaten da konnt ihr alles mögliche

play02:57

drin stehen was den Nutzer hier in das

play02:59

System eingibt Stichwort SQL Injection

play03:01

oder sowas auch das ist ein Problem für

play03:03

die Sicherheit dann viele haben es

play03:05

wahrscheinlich schon geahnt logging y

play03:07

another problem logging sorgt super oft

play03:10

für riesige Probleme was Vertraulichkeit

play03:12

angeht Input Validierung wo wir sowieso

play03:14

gerade schon von SQL in Jacksons

play03:16

gesprochen haben selbst wenn Server in

play03:17

den eigenen Räumlichkeiten salop gesagt

play03:19

im eigenen Keller stehen könnte man sich

play03:21

fragen wer darf da eigentlich alles

play03:22

drauf zugreifen kann der Hausmeister mit

play03:24

meiner gesamten Kundendatenbank einfach

play03:26

so davon laufen und selbst wenn man sich

play03:28

gegen den Server im E Keller entscheidet

play03:30

kann man sich immer noch fragen wo

play03:31

liegen eigentlich meine Daten da gibt

play03:33

die dsgvo in der EU auch ganz klare

play03:35

Vorschriften was man darf und was man

play03:36

nicht darf und daran sollte man sich

play03:37

besser halten weil sonst wird's teuer so

play03:40

ich habe diese kleine Grafik hier mal

play03:41

kurz aufgedeckt und man sieht schon

play03:43

selbst in so einem wirklich total

play03:44

einfachen Minimalbeispiel da kann doch

play03:47

einiges schiefgehen stellt sich

play03:49

natürlich jetzt die große Frage wie

play03:51

analysiert man das ganze wie findet man

play03:53

eine Möglichkeit auch verschiedene

play03:55

Experten zusammenzuführen einen

play03:56

Softwarearchitekten vielleicht auf der

play03:58

einen Seite eine softwareingenieurin auf

play03:59

der anderen Seite und noch Security

play04:01

Experten auf der anderen Seite die die

play04:02

Vertraulichkeit bewerten können dafür

play04:04

bräuchte man in irgendeiner Form eine

play04:06

Notation um Vertraulichkeit gut

play04:09

darstellen zu können um verschiedene

play04:10

Datenflüsse im System zu verfolgen

play04:14

datenflussdiagramme was ich dann in der

play04:16

Vorlesung immer mache ist dass ich mit

play04:18

so einem Diagramm einsteige ohne genau

play04:20

zu erklären was eigentlich ein

play04:21

datenflussdiagramm ist und dann lasse

play04:23

ich die Zuhörer und ZuhörerInnen

play04:26

entscheiden um was es eigentlich da geht

play04:28

welche Elemente da so vorkommen kommen

play04:29

könnten das ist ein total einfaches

play04:31

datenflussdiagramm was wir hier haben

play04:33

der Nutzer gibt irgendwie Daten ein es

play04:35

gibt eine logging Ausgabe eine Logdatei

play04:37

und dann werden Daten in der Datenbank

play04:39

gespeichert ist also so ähnlich wie das

play04:41

Beispiel was wir gerade eben auch

play04:42

gesehen haben und was man hier sieht ist

play04:44

verschiedene Arten von Elementen wir

play04:46

haben irgendwie unsere externe Entität

play04:48

den Nutzer und die Datenbank wir haben

play04:51

hier verschiedene Prozesse die Daten

play04:52

verarbeiten wir haben hier so ein

play04:54

Zwischenspeicher könnte man sagen so

play04:55

eine Logdatei und das Ganze ist

play04:57

verbunden durch verschiedene Kanten die

play04:59

die Datenflüsse darstellen und sie da

play05:02

ganz genaau so werden

play05:03

datenflüssdiagramme auch dargestellt wir

play05:04

haben Datenflüsse das sind die Pfeile

play05:06

und dann haben wir die Prozesse das sind

play05:08

die Kreise wir haben diese Vierecke das

play05:09

sind externe Entitäten auch Daten senken

play05:12

oder Quellen je nachdem wie man sein

play05:14

System modelliert und dann haben wir

play05:16

noch diese Zwischenspeicher z.B in

play05:18

meinem Fall hier die Logdatei und das

play05:20

ist das faszinierende an

play05:21

datenflussdiagramm denn das ist alles

play05:24

und das habe auch nicht ich gerade ebeno

play05:25

erfunden hier steht die Quelle das ist

play05:27

40 Jahre alt und mit diesen einfachen

play05:31

Darstellungsmöglichkeiten kann man

play05:32

bereits über die komplexesten

play05:34

Softwaresysteme reden denn wir können

play05:36

das ja auf einer ganz hohen Ebene machen

play05:37

wo irgendwie jeder Kreis eine Komponente

play05:39

im großen System darstellt oder wir

play05:41

können ganz arg ins Detail gehen und

play05:43

datenflusdiagramme kann man sowohl aus

play05:45

Sourcecode als auch aus

play05:47

softwarearchitekturdokumentation

play05:48

extrahieren sodass man diese Dinge

play05:50

einfach darlegen hat und sie als

play05:52

Kommunikationsmedium nutzen und man kann

play05:54

sogar noch einen Schritt weitergehen und

play05:57

darauf automatische Analysen fahren und

play05:59

und das wiederum ist die Grundlage für

play06:01

unter anderem meine Forschung jetzt

play06:02

wird's ein kleines bisschen mathematisch

play06:04

also jede gute Vorlesung ist ja so

play06:05

aufgebaut dass man erstmal ein bisschen

play06:07

Einleitung hat dann ganz tief in den

play06:09

Stoff reingeht und dann wieder rauszomt

play06:11

und den Leuten erzählt was das denn

play06:12

jetzt alles bedeutet wir sind jetzt in

play06:14

diesem etwas tieferen mathematischen

play06:16

Teil dann gucken wir uns mal den Grafen

play06:18

hier rechts an eigentlich komplett

play06:20

vereinfacht ist das ja auch nur eine

play06:22

Menge von Kanten und Knoten also falls

play06:25

ihr irgendwie gerade angefangen habt

play06:27

Informatik zu studieren kennt ihr den

play06:28

Begriff der Kante schon das der kluge

play06:30

Name für ein Pfeil und Knoten ist die

play06:32

kluge Name für so ein Kreis an meiner

play06:34

datenflussdiagramme habe ich aber noch

play06:36

eine extra Anforderung und zwar dass es

play06:38

da drin keine Zyklen gibt man kann und

play06:40

das wurde auch schon vor Jahrzehnten

play06:42

gezeigt jedes datenflusdiagramm so

play06:44

ausdrücken dass da drin tatsächlich

play06:46

keine Zyklen gibt und da haben die ganz

play06:47

tolle Eigenschaften im englischen

play06:49

spricht man von einem Duck von einem

play06:51

directed acyclic CF oder auf Deutsch ein

play06:53

gerichteter azyklischer Graf auch diesen

play06:56

Begriff kurz eingeführt Graf ist klar

play06:58

also wir haben irgendwie Pfeile und wir

play07:00

haben Knoten gerichtet ist auch klar die

play07:02

Pfeile haben nämlich eine Richtung wenn

play07:04

man kurz über Datenflüsse nachdenkt dann

play07:06

ergibt das sehr viel Sinn ich spreche

play07:08

mit jemandem der kann dann antworten das

play07:10

ist okay aber in dem Moment wo ich

play07:11

spreche ist das eine gerichtete Aktion

play07:14

deswegen gerichtet und zum Schluss wie

play07:15

gesagt dieses azyyklische was die

play07:17

Analyse sehr stark vereinfacht hier

play07:19

sehen wir z.B so ein Dack also hier

play07:21

sehen wir keine Zyklen es gibt hier

play07:22

keinen Kreis da drin und diese Annahme

play07:24

kann man machen wie gesagt ohne

play07:26

Einschränkung der Allgemeinheit und

play07:28

jetzt wenn ich mein Papier nicht

play07:29

komplett kaputt Reise wird es sogar noch

play07:31

eine Stufe spannender jetzt reden wir

play07:32

nämlich über Ordnung falls ihr gerade

play07:35

irgendwie Grundbegriffe der Informatik

play07:36

oder ein ähnliche Vorlesung bei euch

play07:38

gehört habt und gerade mit so Begriffen

play07:40

wie reflexiv und transitiv und

play07:42

symmetrisch und sowas zu kämpfen habt

play07:43

und euch fragt was ist das eigentlich

play07:45

für realitätsferner Bullshit warum muss

play07:47

ich das überhaupt lernen hier kommt ein

play07:49

Anwendungsfall dafür also wir haben

play07:51

erstmal eine partielle strikte Ordnung

play07:54

bitte was lass mich das einfach erklären

play07:56

was ist eine Ordnung eine Ordnung sagt

play07:58

erstmal nur etwas darüber aus wie zwei

play08:00

Dinge in Relation zueinander stehen eine

play08:02

Ordnung die ihr alle kennt ist kleiner

play08:04

als z.B natürlichen Zahlen ich verdiene

play08:07

in an der Uni vielleicht 5000 € im Monat

play08:09

und mein Kollege in der freien

play08:10

Wirtschaft verdient 10 000 € im Monat

play08:13

ich verdiene weniger als er das ist eine

play08:15

Ordnung 5000 kleiner als 10.000 dann

play08:19

gibt es den Begriff der totalordnung und

play08:21

das haben wir z.B bei den Zahlen die wir

play08:23

so umgangssprachlich verwenden weil man

play08:25

jede Zahl mit jeder anderen Zahl

play08:27

vergleichen kann egal ob ich 3 mit 7

play08:30

Vergleich oder 5000 mit 10000 jede Zahl

play08:33

kann miteinander verglichen werden bei

play08:36

diesem datenflussdiagrammen haben wir

play08:37

jetzt eine partielle Ordnung und das

play08:39

bedeutet dass man nicht jeden Knoten

play08:41

miteinander vergleichen kann nehmen wir

play08:43

z.B den knoteningabe verarbeiten und

play08:45

Datenspeichern die sind ganz klar

play08:47

geordnet denn es gibt eine direkte Kante

play08:49

dazwischen einen Datenfluss wenn wir

play08:51

jetzt aber z.B den Knoten logging

play08:53

Ausgabe und Datenspeicher nehmen dann

play08:55

gibt es da keinen direkten Fluss in

play08:57

irgendeiner Form weil hier bei Eingabe

play08:59

verarbeiten Abzweigung ist das heißt die

play09:01

beiden hier sind nicht miteinander

play09:03

vergleichbar und deswegen ist es nur

play09:05

eine partielle Ordnung ich kann manche

play09:07

Knoten miteinander vergleichen aber eben

play09:09

nicht alle und dann zum Schluss noch zum

play09:12

Begriff strickt strickt kennen wir auch

play09:14

z.B 5000 ist kleiner als 10.000 kleiner

play09:19

gleich ist keine strikte Ordnung denn 5

play09:22

ist kleiner gleich 5 also kann man Dinge

play09:24

mit sich selbst vergleichen das werden

play09:26

wir gleich noch sehen und bei einem

play09:28

Datenfluss ist es so wenn ich keine

play09:29

Zyklen will fließt der immer irgendwo

play09:31

anders hin und das macht daraus dieses

play09:33

strickte undterm Strich also eine

play09:36

strickte partielle Ordnung eigentlich

play09:38

gar nicht so schwer und diese strikte

play09:40

partielle Ordnung die hat jetzt einige

play09:41

tolle Eigenschaften und hier kommen wir

play09:43

jetzt zu den verschiedenen Begriffen den

play09:45

ersten habe ich gerade eben schon

play09:46

erklärt irreflexiv was heißt denn das

play09:48

schon wieder es ist ganz einfach es gibt

play09:50

keinen Fluss zu sich selbst fünf kleiner

play09:53

gleich als F bedeutet eine Kante von 5

play09:56

Z5 ne steht in Relation mit sich selbst

play09:58

das möchte ich hier nicht das wäre

play10:00

nämlich ein Zyklus wenn ich also

play10:01

irgendwie mir selbst meinen Nutzernamen

play10:03

sagen würde oder sowas das würde erstens

play10:05

wenig Sinn ergeben und zweitens ein

play10:07

Zyklus bedeuten was ich gerade eben in

play10:08

der Definition von diesem Duck schon

play10:10

ausgeschlossen habe deswegen muss der

play10:12

irreflexiv sein es gibt also keine

play10:14

Beziehung zu sich selbst das nächste ist

play10:17

asymmetrisch das bedeutet wenn ich von

play10:19

einem Knoten zu einem anderen Knoten

play10:21

gehe dass ich dann nicht von dem Knoten

play10:22

wieder zurückkomme ist auch einfach zu

play10:24

sehen denn ansonsten hätte ich ja wieder

play10:25

einen Zyklus und das letzte ist die

play10:27

Transitivität und und auch die ergibt

play10:30

sehr viel Sinn wenn ich z.B dir ein

play10:32

Geheimnis verrate und du erzählst das

play10:34

einer anderen Person weiter dann weiß

play10:36

diese weitere Person ja mein Geheimnis

play10:38

und da macht es dann gar keinen

play10:40

Unterschied ob das jetzt ein Umweg über

play10:41

dich gemacht hat oder ob ich das der

play10:43

Person direkt gesagt hätte das nennt

play10:45

sich Transitivität und es ist sehr

play10:47

einfach zu sehen dass das bei

play10:49

datenflussdiagrammen vorliegt wir haben

play10:51

hier sehr viele transitive Flüsse z.B

play10:53

der Fluss von Nutzer zu Datenbank es ist

play10:56

leicht zu sehen dass wenn der Nutzer was

play10:58

eingibt dass das irgendwann mal in der

play11:00

Datenbank landen wird aber was ist es

play11:02

ein transitiver Fluss das steckt also

play11:04

hinten dran under Strich bedeutet es

play11:06

also dieses natürlich sprachliche

play11:08

Konzept wenn wir über Datenflüsse reden

play11:10

kann man nicht nur in eine Notation

play11:12

Gießen ein datenflussdiagramm sondern

play11:14

das kann man auch noch mathematisch

play11:15

ausdrücken und wenn man das tut bekommt

play11:17

man einige tolle Eigenschaften und diese

play11:19

Eigenschaften nutzen wir dann später in

play11:21

der

play11:23

datenflussanalyse für alle die jetzt

play11:24

gerade irgendwie z.B am Anfang des

play11:26

Informatikstudiums sind und sich fragen

play11:28

so okay cool vielleicht habe ich so ein

play11:30

bisschen was davon verstanden lasst mir

play11:31

das gerne mal in den Kommentaren wissen

play11:33

ob so euer Basiswissen was ihr

play11:35

vielleicht gerade im Studium gehabt habt

play11:37

ob das jetzt funktioniert hat diese

play11:38

Erklärung für euch und für alle die ich

play11:40

noch nicht genug abgehängt hab hier ist

play11:42

noch eine weitere tolle Eigenschaft aus

play11:43

meiner eigenen Forschung ich berechne ja

play11:45

sogenannte auswirkungsmengen auf

play11:47

Englisch impact Sets von anderen Dingen

play11:50

wie Ungewissheit das sind also immer

play11:51

Teilmengen von diesen Knoten und das

play11:54

spannende daran ist diese Teilmengen

play11:55

untereinander können wieder na ja

play11:57

Teilmengen von anderen teilen Mengen

play11:59

sein das will ich aber nicht ich bin nur

play12:01

interessiert an den größten Teilmengen

play12:03

die eben nicht gerade Teilmengen von

play12:04

anderen sind und bis vorgestern wusste

play12:06

ich noch nicht wie das mathematische

play12:08

Konzept dahinter heißt das nennt sich

play12:09

eine antikette eine antikette der

play12:12

Teilmengen dieses Grafen mit der

play12:15

Relation der teilmengenbeziehung und

play12:18

dann sind gerade alle paarweise nicht

play12:20

miteinander vergleichbar wenn man eine

play12:22

antikette hat so hat überhaupt nichts

play12:24

mit diesem Grafen zu tun aber ich wollte

play12:25

einfach mit meinem frisch gewonnenen

play12:26

Matte Wissen flexen und hoffe dass das

play12:28

nicht falsch war denn wie immer bei

play12:29

Mathe wenn man sich das selbst einfach

play12:31

nur so aus Lehrbüchern und

play12:32

Internetquellen zusammenensucht h zum

play12:35

Glück gibt's Chat GPT da hat man eine

play12:36

weitere Quelle wo man dann keine Ahnung

play12:38

hat ob es gerade richtig ist oder nicht

play12:39

pas beiseite Zen wir wieder ein kleines

play12:41

bisschen raus und kommen zu meiner

play12:43

letzten Karte denn jetzt könnte man sich

play12:44

durchaus fragen alles klar du hast diese

play12:46

tollen mathematischen Rezepte wie nutzt

play12:47

man die jetzt was wir machen ist wir

play12:50

packen Label an diese Knoten also

play12:52

wirklich so kleine tags wie so kleine

play12:54

posttits die man drank kleben würde und

play12:56

zwar zweierlei Label auf der einen Seite

play12:58

haben wir die knot Label das sind die

play13:00

blauen hier sagt man z.B guck mal die

play13:02

Datenbank die liegt in der Cloud

play13:03

knotenlabel die stecken fest am Knoten

play13:06

dran und beschreiben

play13:08

vertraulichkeitsbezogene Eigenschaften

play13:09

wie z.B dass auf die Logdatei ein

play13:12

adminzugriff besteht die Grünen hier das

play13:15

sind die datenlabel oder auch

play13:17

datencharakteristiken genannt die packen

play13:19

wir nicht an Knoten sondern an die Daten

play13:20

die ja im Diagramm rumfließen und dann

play13:23

kann man sich einfach vorstellen dass

play13:24

man den Fluss von so einem grünen Label

play13:27

im Softwaresystem nachvollziehen kann

play13:29

und dann über den Vergleich von diesen

play13:31

grünen und diesen blauen Labeln

play13:33

vertraulichkeitsanforderung formulieren

play13:34

kann einfaches Beispiel ich sage

play13:37

persönliche Daten dürfen nicht zum Admin

play13:40

fließen dann verfolge ich mein grünes

play13:42

Level persönlich auf dem Fluss zum atmin

play13:45

und sehe schon an diesem einfachen

play13:47

Diagramm upsi persönliche Daten fließen

play13:50

jetzt zum Admin das wäre dann wohl eine

play13:52

vertraulichkeitsverletzung und das war's

play13:54

auch schon also total einfach

play13:56

zusammengefasst ist das das was unsere

play13:59

Analyse automatisch macht ihr könnt euch

play14:00

vorstellen das kann man sehr einfach

play14:02

automatisieren l propagation ist dann

play14:04

eigentlich auch nur eine schön angemalte

play14:06

Tiefensuche W eiglich alles in der

play14:07

Informatik am Schluss irgendwie eine

play14:08

schön angemalter grundsatzalgorithmus

play14:10

auf Grafen ist aber das ist es und so

play14:12

kann man auch auf großen

play14:13

Softwaresystemen zu

play14:15

vertraulichkeitsanalysen automatisch

play14:16

ausführen ein paar Beispiele habe ich

play14:18

auch dabei das allererste haben wir

play14:19

gerade eben schon gesehen persönliche

play14:20

Daten fließen zum admen aber wir können

play14:22

z.B auch sagen persönliche Daten dürfen

play14:24

nicht in die Cloud fließen da sieht man

play14:26

hier den Fluss zur Cloud leider wieder

play14:28

eine verlz man könnte auch sagen nicht

play14:30

gesäuberte Daten dürfen nicht in

play14:32

Datenbank fließen oder anders gesagt

play14:34

alles was in der Datenbank landet muss

play14:35

davor mal auf die gerade eben benannten

play14:37

sQL Injections getestet werden da sieht

play14:39

man dass hier mit Datenspeichern

play14:41

tatsächlich das gesäubert hinzuomt das

play14:43

heißt diese Anforderung wird erfüllt und

play14:46

man kann natürlich auch viel komplexere

play14:47

Anforderungen formulieren wie z.B

play14:49

persönlich und unverschlüsselt darf

play14:51

weder zur Cloud noch zum Admin und dann

play14:53

finden wir gleich sogar mehrere

play14:55

Verletzungen und das ist wie wir die

play14:58

Daten flussdiagramme Nutzen für gut

play15:01

skalaliierbare große

play15:02

vertraulichkeitsanalysen auf

play15:04

Softwarearchitekturen und das wiederum

play15:06

ist die Grundlage für meine eigene

play15:08

Forschung und die ganze Vorlesung geht

play15:11

90 Minuten aber eigentlich erkläre ich

play15:14

da auch nur ungefähr das was ich jetzt

play15:16

gerade eben hier zusammengefasst habe

play15:19

bevor ich jetzt weitergehe schreibt mir

play15:21

gerne mal einen Kommentar ich lese alle

play15:23

Kommentare und mich würde hier an der

play15:24

Stelle brennend interessieren wie ihr

play15:26

erstens diesen Stil fandet und ob ihr

play15:28

zweiten

play15:29

alles verstanden habt und wenn nicht an

play15:31

was es gehakt hat also gerade wenn ihr

play15:33

z.B selbst irgendwas mit Informatik zu

play15:35

tun habt vielleicht gerade am Anfang von

play15:37

informalstulum seid würde mich

play15:38

interessieren so habt ihr die Konzepte

play15:40

die ihr da vielleicht gerade erst in der

play15:41

Theorie gelernt habt hier wiedergefunden

play15:43

war das alles verständlich was hätte ich

play15:45

besser erklären können das ist sehr sehr

play15:46

wertvolles Feedback für mich und zwar

play15:49

wegen besagtem

play15:51

Experiment vielleicht hat man in diesem

play15:53

Video schon gesehen wovon ich mich so

play15:55

ein bisschen habe inspirieren lassen z.B

play15:58

Professor Christian R oder auch

play15:59

Professor harald Lesch sind zwei

play16:01

Beispiele für Leute die auf Youtube

play16:04

Wissen vermitteln

play16:05

Wissenschaftskommunikation machen und

play16:07

das ohne super krass aufwendige

play16:10

Postproduktion also gut natürlich Terra

play16:12

X ist ein ganz anderes Phänomen aber die

play16:14

können sich auch einfach vor eine Kamera

play16:15

setzen und Dinge rüberbringen Dinge

play16:18

erzählen und das ist eine Fähigkeit die

play16:21

ich sehr gerne auch selbst erlangen

play16:23

würde ich glaube ich bin da nicht

play16:24

unbedingt auf einem schlechten Weg mit

play16:26

meiner Erfahrung aus über 10 Jahren

play16:29

Let's Play und mittlerweile auch 4

play16:31

Jahren noch nicht ganz 3 Jahre und 11

play16:34

Monate an der Uni als doktorant habe ich

play16:37

doch glaube ich schon einiges

play16:37

mitgenommen zum Thema präsentieren und

play16:40

und freisprechen und vor der Kamera

play16:42

irgendwie existieren können aber dennoch

play16:44

ich glaube da gibt's noch mal ein großes

play16:46

GAP zwischen mir und na ja geübten

play16:49

Professoren dennoch möchte ich da

play16:51

irgendwie hinkommen und dieses Video war

play16:52

mal ein Versuch auch für mich selbst

play16:55

rauszufinden ob das geht und euer

play16:56

Feedback wird mir weiterhelfen mich dann

play16:58

noch weiter zu verbessern außerdem war

play17:00

dieses Video hier eine Folge von

play17:02

Minecraft und Forschung wenn ihr euch

play17:05

ein paar Monate zurück erinnert da habe

play17:07

ich mal eine Folge Minecraft und

play17:08

Forschung hochgeladen die eigentlich

play17:09

Minecraft und Minecraft war weil ich da

play17:11

einfach keinen Bock hatte über Forschung

play17:13

zu reden und lieber einfach Minecraft

play17:14

spielen wollte also habe ich die

play17:15

Forschung außen vorgelassen aber schon

play17:17

da gab es Witze darüber ob ich

play17:18

vielleicht irgendwann auch mal eine

play17:20

Folge Forschung und Forschung mache und

play17:22

das dann als Minecraft und Forschung

play17:23

Verkauf und genau das ist es ach und

play17:26

übrigens es ist auch ein exper im

play17:29

Experiment denn falls ihr alle Folgen

play17:32

von Minecraft und Forschung mit verfolgt

play17:33

habt habt ihr vielleicht gesehen dass

play17:36

ich schon mal nicht auf dem Detail

play17:37

gerade aber auf ähnlicher

play17:38

Abstraktionsebene über

play17:40

datenflussdiagramme berichtet habe das

play17:42

heißt ihr könntet das wissen sogar

play17:44

vielleicht sogar wiedererkennen meiner

play17:46

Meinung nach ist Minecraft und Forschung

play17:48

so wie ich das dieses Jahr gemacht habe

play17:50

allerdings kein besonders guter Ansatz

play17:53

für die Wissenschaftskommunikation

play17:54

deswegen ist das hier mal so ein

play17:56

gegenexperiment lasst mich eure Meinung

play17:59

sehr gerne wissen und ich mache jetzt

play18:01

wieder die Klima an denn draußen haben

play18:02

wir über 30° und ich wohne im

play18:04

Dachgeschoss vielen Dank

Rate This

5.0 / 5 (0 votes)

الوسوم ذات الصلة
SoftwaresicherheitDatenflussdiagrammeVertraulichkeitForschungInformatikDatenschutzWissenschaftskommunikationDatenanalyseIT-SicherheitSchulung
هل تحتاج إلى تلخيص باللغة الإنجليزية؟