Lieber Zuschauer, dieser Untertitel wurde automatisch generiert von YouTube und dementsprechend (sehr) fehlerhaft. Wenn du kannst, hilf uns bitte gute Untertitel zu erstellen: https://c3subtitles.de/talk/1517 Danke!
ja ich freue mich jetzt vorstellen zu
dürfen es kommt jetzt Cubit er studiert
in Potsdam was mit Software wie er
selber sagt im Chaos ist er halt viel
als fashion obs unterwegs und er sagt
uns etwas über die Fallstricke der
Anonymisierung und hat da ein spannendes
Fallbeispiel und gerade in Zeiten wie
diesen wo viel über Anonymisierung und
Pseudonymisierung gesagt wird ein großer
Applaus auf die Bühne
bitte ja herzlich Willkommen zu
Fallstricke der Anonymisierung ich bin
der Cubit und baue mit ein paar
komelitonen eine evaluierungsplattform
für Lehrveranstaltung an Hochschulen das
Projekt ist jetzt fast 10 Jahre alt
heißt EVP und ist seitdem gern zitiert
beim Thema projektnensgeben nein also
die Idee ist Studierende bewerten dort
Lehrveranstaltung die sie in dem
Semester an der Universität belegt
haben das ist eine gute Sache so sieht
es aus es gibt ein Fragebögen mit
Ratings auf verschiedenen Skalen und so
Freitextfeldern die Ergebnisse von
diesen ankreuzfragen können nach der
notenveröffentlichung alle sehen und die
Dozierenden erhalten zusätzlich die
textantworten als
Übersicht EVP ist dazu gedacht die Lehre
zu verbessern so das funktioniert nur
wenn auch viele Leute mitmachen und
ernsthaft Feedback gegeben wird und da
spielen wirklich viele Dinge mit rein
und eins davon ist für die Studierenden
die ja irgendwie in der Gunst der
lehrend den stehen besonders interessant
und das ist sind meine Antworten da
anonym also kann ich auf dieser
Plattform Feedback geben ohne das für
andere zu sehen sein wird dass ich
dieses Feedback gegeb eben habe
Disclaimer an dieser Stelle anonyme
Kommentare sind nicht unbedingt eine
geeignete Methode für Feedback aber das
ist das was wir uns jetzt hier anschauen
und die Dozierenden und wir haben damit
auch gute Erfahrung gemacht damit so und
unser Anspruch ist jetzt ja euer
Feedback soll anonym sein wir wollen
eine hohe Beteiligung und anonym ist nun
mal
gut dazu die Hürde für Feedback nach
unten zu setzen ja dass das dass die
Hürde gering ist s dass viele Leute
mitmachen und wir müssen das auch
richtig machen mit der Anonymität denn
so ein Vertrauen in uns als Betreiber
dieser evaluationsplattform das lässt
sich schnell verspielen und wenn da
einmal rauskommt dass da irgendwie Dinge
nicht anonym waren dann hat man erstmal
sein Vertrauen verspielt gut wie machen
wir das na ja die Plattform ist so
gebaut dass sie bei den Antworten nie
die Autoren anzeigt ja das ist jetzt so
eine Ansicht wie es für die die
duzierenden wäre wenn Sie die Auswertung
bekommen das ist einfach eine Liste
aller textkommentare ohne Autor und
zusätzlich zeigen wir immer noch an wer
die textantworten alles sehen kann
sowohl den Leuten die abstimmen als auch
den Leuten die sich dann die Ergebnisse
anschauen so und das ist doch super
damit haben wir jetzt irgendwie
Anonymität geschaffen die Autoren werden
nicht angezeigt zu den Kommentaren und
damit ist es ja irgendwie
anonym
oder na ja
man hat ja so ein eigenen Schreibstil
wenn man so Kommentare verfasst und die
können einen verraten ja man baut ja
auch über das Semester irgendwie eine
Beziehung zu Dozierenden auf die lernen
ein ein bisschen kennen und die lernen
ja auch die eigene Meinung kennen und so
kann man vielleicht über das was man da
schreibt seine Identität preisgeben und
das müssen die Leute wissen wenn sie
irgendwie ihre ihren evoluationsbogen
online ausfüllen und das ist auch
besonders bei kleinen Seminaren kritisch
denn da gibt's ja nur wenig Leute aber
auch bei denen wollen wir ja Feedback
sammeln was machen wir da na ja wir
wollen ja das irgendwie nicht
verfälschen irgendwie Zusatz Rauschen da
reinpacken oder so stattdessen zeigen
wir den Leuten eine Warnung an achtung
hier in dieser Veranstaltung gibt es
eine geringe Anzahl an teilnehmen sei
dir dessen bewusst formuliere deinen
Text vielleicht so
ja und zusätzlich haben die Leute die
Möglichkeit dass wenn sie die einzigen
wären die Antworten gegeben haben dass
dann ihre Kommentare nicht
veröffentlicht werden
und so soll es eben möglich sein
zumindest dieses Problem ein bisschen zu
zu reduzieren oder zu akzeptieren so
also jetzt sind wir glücklich wir haben
uns irgendwie angeschaut damit haben wir
irgendwie Anonymität hergestellt
oder na ja das jetzt ein Punkt da könnte
man aufhören sich die Sache anzuschauen
was wir erreicht haben ist ja irgendwie
organisatorische Anonymität also das
Tool zeigt die Antworten nicht an und
das haben wir so organisiert dass
Anonymität Herst
das hat uns aber nicht unb unbedingt
gereicht wir waren auch ein bisschen
neugierig und wir wollten technische
Anonymität wir wollten also dass es gar
nicht möglich ist
irgendwie zu den textantworten die
Autoren zuzuordnen für welches Szenario
ist das irgendwie interessant na ja
enter the Hacker stellt man sich vor
dass unsere unsere Seite angegriffen
wird ja also jemand bekommt Zugriff
nicht nur auf die Seite wie die
Dozierenden sondern auch auf den Server
auf die Datenbank auf dem Backup auf dem
Export und auch dann wollen wir dass
Anonymität herrscht so das heißt das
Szenario was wir uns jetzt anschauen ist
dass ein Angreifer jetzt ein
datenbankdump oder Zugriff auf die
Datenbank oder den Server
erhält sobald dieser Angriff auf den
Server erfolgt ist kann der Angreifer
natürlich irgendwie die Anwendung
austauschen und dann immer mitschreiben
wer welchen Kommentar abgegeben hat aber
für alle Daten die wir bis dahin
gesammelt haben für die soll natürlich
weiterhin Anonymität
gelten zum Umgang mit Daten hat matchech
ziglowski in seinem Talk haunted by data
einen Vergleich angestellt er hat heute
Daten mit radioaktiven Abfall verglichen
und daraus drei einfache Tipps für uns
abgeleitet und zwar über Daten don't
collect it if you have to collect it
don't store it und if you have to store
it don't keep it also schauen wir jetzt
mal rein wie wir das bei uns umsetzen
ein einfaches Beispiel für das don't
collect
habe ich hier früher haben wir kberos
für unser einloggen benutzt ja die
Nutzer haben in einem Nutzername und
Passwortfeld ihre loginaten der
Universität
eingegeben wir haben das dann mit dem
Identitätsmanagement Server der Uni
abgeklärt und der hat dann gesagt ja der
Nutzer darf sich einloggen oder eben
nicht und dabei liefen die Passwörter
auch über unseren Server mittlerweile
nutzen wir einen open ID Provider da
gibt's jetzt kein Passwortfeld mehr
sondern nur noch ein Knopf wo man drauf
drückt um sich einzuloggen man wird zum
Open ID Provider geleitet der kümmert
sich um dieses ganze Passwort geschupse
und sagt uns am Ende nur der Nutzer hat
sich eingeloggt als der und der oder die
Nutzerin gibt es nicht ja so wir kriegen
jetzt keine Passwörter mehr auf dem
Server und wir haben quasi dieses don't
collected erfüllt wir können die Daten
auch nicht mehr
verlieren jetzt haben wir aber diese
evaluationsdaten wir müssen diese
sammeln und speichern weil das ist ja
Sinn unserer Anwendung wir wollen Sie
auch später anzeigen aber wir können
dabei auswählen welche Daten genau wir
speichern und hier haben wir ein ganz
klassisches Problem mit der
nutzeridentität die Nutzer müssen sich
authentifizieren und dann werden sie
autorisiert genau einmal abzustimmen
keiner soll mehrmals Kommentare abgeben
können und so irgendwie das Ergebnis
beeinflussen aber jeder soll das Recht
dazu haben jeder der an der
Veranstaltung teilgenommen hat aber
nachdem die Nutzer autorisiert wuren
hier ihre Ihr Feedback zu geben ab dann
sollen sie anonym sein und alle Daten
die Sie angeben sollen ohne Bezug zum
Autor sein und die klassische Lösung die
wir in der Welt z.B dafür haben ist eine
Wahl ohne weil eine Wahl ist ja
irgendwie genau das und da leistet eine
Wahl ohne genau das was wir wollen auf
einer Liste wird abgestrichen wer zur
Wahlurne herantreten darf und diese
gruppiert dann die Antworten die kommen
alle in einen Haufen und so sind sie
dieidentifiziert und damit ist es
irgendwie nachvollziehbar
anonymisierend wir wollen jetzt also
unsere Anwendung so bauen dass sie die
Autorisierung sicherstellt aber dann die
entsprechenden Daten anonym
sind so das ganze Projekt ist ein Dango
Projekt mit dem Dango Web Framework
geschrieben und da haben wir so Models
hier dargestellt ganz oben die evaluier
das ist ein Modell da gibt's eine Liste
an Teilnehmern und dann eine Liste an
voters also an Leuten die schon
abgestimmt haben da drunter haben wir
zwei ergebnisobjekte einmal ein Rating
answerser Counter also ein Zähler der
zählt wie oft welche Option bei einer
Frage gewählt wurde und ganz unten so
ein Text answer Objekt und das ist hier
sehr ähnlich zu ohne denn nur bei der
Evaluierung haben wir irgendwie eine
Liste an Nutzern und die antwortobjekte
unten sind ohne Referenz zu irgend chen
Leuten von denen z.B die textantwort
kommt und das sieht gut aus da können
wir erstmal glücklich sein weil wir
haben ja jetzt nicht gespeichert wer
hier so so eine textantwort gegeben hat
und das haut ihr erstmal gut hin
oder na ja wir müssen bisschen tiefer
graben wir nutzen jung als webfamework
und das fügt jedem Objekt noch
automatisch eine ID hinzu die in der
Datenbank als Primärschlüssel genutzt
wird das ist auch gut und wichtig denn
mit diesem Primärschlüssel mit dieser ID
werden diese ganzen Beziehungen zwischen
den Objekten überhaupt erst realisiert
das Problem ist dass diese IDs immer
automatisch eins weiterzählen also die
erste textantwort z.B bekommt ID 0 die
zweite bekommt ID 1 die dritte bekommt
ID2 und so
weiter das heißt eigentlich sehen unsere
modelldefinitionen so aus jedes Objekt
hat so eine ID das ist ein autofield
also diese hochzählende ID und das
Problem ist jetzt dass wir z.B
textantworten zusammengrupieren können
denn diese haben aufeinander folgende
IDs da sie gemeinsam abgegeben wurden ja
wenn einer ein Nutzer sein Fragebogen
abschickt dann sind da meinwegen fünf
textantworten drin die kriegen dann z.B
die IDs 23 bis 27 weil die alle zusammen
reinkommen und der Zähler ja hochzählt
und wenn sich dieser Nutzer jetzt durch
seinen Schreibstil in der ersten Antwort
und in der letzten identifiziert
dann kann ein jemand der die Datenbank
hat auch sehen dass alle Antworten
dazwischen von diesem Nutzer stammen
müssen aber besonders kritisch ist man
muss nicht mal unbedingt Zugriff auf die
Datenbank haben denn wenn man sich da
nicht weiter drum kümmert wird auf
unserer Seite werden die Kommentare in
der Reihenfolge wie sie diese IDs haben
angezeigt das heißt auch ein dozierender
der hier mehrere Antworten identifiziert
kann wissen von wem die Antworten die
dazwischen gelistet sind stammen
h das jetzt schlecht weil das wollen wir
ja nicht wir wollen ja nicht dass die
Antworten außer die die sich wirklich
selbst
identifizieren deanonymisiert werden
aber wenigstens sind ja nur die
textantworten Betroffen ja diese Rating
Antworten mit den Zählern die sind ja
schon gruppiert
richtig na ja auch bei diesen Rating
antworten kann man Personen zuordnen das
ist nur etwas puzliger etwas schwieriger
da dazu schauen wir uns dieses
Evaluation Model noch mal an das Hal
dieses ID feht die Liste an Teilnehmern
und die Liste an Abstimmenden und diese
Liste an Abstimmenden ist ein many to
many field ja das wird immer realisiert
durch eine eigene Tabelle das kann man
sich so vorstellen wir eine Liste an
evaluationssteilnahmen und auch die
bekommen ja eine ID das heißt wir können
hier wieder aus den IDs ablesen in
welcher Reihenfolge die Leute den
Fragebogen ausgefüllt und abgeschickt
haben
wir wissen somit auch wer der erste
voter war hier hat z.B Laura die
geringste ID die 42 und dann kommt Linus
mit der 43 und so weiter das ist das
erste pzzelstück und das zweite ist dass
diese Rating answers Counter nur bei
Bedarf erstellt werden also wenn eine
Option noch nie gewählt wurde dann hat
sie auch keinen Zähler aber auch die
haben IDs und auch da lässt sich
erkennen in welcher Reihenfolge die
Counter angelegt wurden es könnte z.B so
so aussehen der Counter für die
Antwortoption 4 wenn wir jetzt nach
Schulnoten gehen hat hier ID 101 und die
anderen beiden haben eine höhere ID sind
also später erstellt worden jetzt wissen
wir dass Laura zuerst abgestimmt hat und
die Rating Option vi zuerst gewählt
wurde und damit wissen wir dass Laura
die vier gewählt hat und auch hier haben
wir wieder diese Antwort die ja nur aus
soem ankreuzen bestand auf einmal eine
Person zuordnen können auch wenn wir nur
einen Zähler haben und es ist schlecht
ja wir können quasi alle Antworten die
der erste Nutzer gegeben hat
rekonstruieren und mit ein bisschen
Trickserei kann man das auch für die
Nutzer machen die D Nachkommen es wird
dann immer ein bisschen unsicherer aber
es geht auf jeden Fall für mehrere
Personen z.B vielleicht auch irgendwie
für die letzte Person und das alles nur
weil wir diese auto increment IDs in den
Objekten haben die es uns ermöglichen
die Reihenfolge der Objekte
nachzuvollziehen also was können wir
dagegen tun na ja
IDs to the rescue
was ist es ja das sind universal unique
identifiers also eine Art
standardisierte ID und die lösen unser
Problem oder na ja so eine UUID Version
1 basiert erstmal auf einem Zeitstempel
zu einem gewissen Anteil und liegt damit
ja wieder die einführungsreihenfolge wir
brauchen zufällige UUIDs und es gibt's
auch das heißt dann Version 4 reicht das
na ja wenn wir so Zufallszahlen haben
dann kann man da vielleicht auch
nachvollziehen in welcher Reihenfolge
die erstellt wurden wir brauchen
kryptographisch sicheren Zufall wo dann
man wo man dann im Nachhinein nicht
sagen kann in welcher Reihenfolge der
Zufall da generiert wurde auch dafür
gibt's eine Funktion und wir basteln uns
das dann hier zusammen und sagen hier
UID Version 4 mit diesen 16 zufälligen
bites diese Funktion nehmen wir und
setzen sie in unsere drei Models ein als
ID dann gibt's diese auto increment ID
nicht mehr sondern stattdessen diese uU
IDs und jetzt können wir aus den IDs
nicht mehr die Reihenfolge
nachvollziehen super jetzt sind wir doch
glücklich
oder na ja wir graben mal ein bisschen
tiefer diese ganzen Objekte landen ja
irgendwann in einer Datenbank dafür
nutzen wir postgris und postgris toll
trollt uns ein bisschen ja warum trollt
uns postgris na ja schauen wir mal rein
wir haben ein Codeschnippsel da
erstellen wir eine Tabelle Test mit zwei
Feldern ID und Text und fügen da drei
verschiedene Datensätze ein immer mit so
einer zufallsgenerierten ID und den
Texten Fu Bar und
EVP und jetzt können wir so einen select
machen auf diese Tabelle und siee da die
Daten werden uns genau in der einfolge
Reihenfolge einfügereihenfolge wieder
ausgegeben ohne dass wir irgendwie da
eine bestimmte Sortierung
fordern so das jetzt ein Problem wir
müssen es irgendwie verhindern dass die
und default so ausgegeben werden wie sie
eingefügt wurden was können wir dagegen
tun na ja wir sortieren die Tupel auf
Disk um da gibt's auch ein Befehl wenn
man da in die Dokumentation schaut
findet man das Cluster command und das
macht genau das es reordert die tupless
on disk also erstellen wir den Index an
dem sich an dem man klustterern kann das
ist einfach die ID und klasern dann nach
dieser
[Musik]
ID und es funktioniert ja wir haben
jetzt hier geklustert machen wieder
dieses SELECT Statement und sie da jetzt
sind die Tupel per Standard erstmal nach
dieser ID alphabetisch
sortiert und damit sind wir doch jetzt
glücklich oder jetzt können wir auch aus
der Datenbank nicht mehr die Reihenfolge
in der die Einträge eingefügt wurden
nachvollziehen
oder postgrress trollt uns wieder es
gibt nämlich zusätzlich zu den Spalten
die wir erstellen auch ein paar
systemspalten und eine davon ist die x-
Spalte aus technisch Gründen braucht man
die z.B zur Isolation einzelner
datenbanktransaktion und dabei wird für
jedes Tupel also für jede Zeile in der
Tabelle die transaktionsid der
Transaktion gespeichert die dieses Tupel
einfügt also immer wenn man einen neu
eine neue Zeile schreibt oder eine Zeile
ändert dann wird nämlich einfach nur
eine neue Version angelegt und das alte
Tupel als alt markiert kommt da eine
transaktionsid ran und das Besondere ist
die ist aufsteigend also wie die IDs
vorhin in unserer Django Models haben
wir hier wieder aufsteigende IDs an
unseren Objekten dran da ist vielleicht
mal eine Ziffer übersprung weil andere
Transaktion in der Datenbank stattfinden
aber das ja nicht schlimm wir können es
immer noch in eine Reihenfolge
bringen so das kann man sich auch mit
anzeigen lassen dazu muss man neben dem
Stern einfach noch sagen zeig mir das x-
und dann können wir danach auch
sortieren das braucht diesen Cast aber
mit diesem Cast seht ihr dass wir jetzt
trotz der klustterung unsere Texte
wieder in der ein fü Reihenfolge
anzeigen können vu a und
EVP und das schlecht ne jetzt haben wir
wieder die Datenbank und haben wieder
eine Reihenfolge obwohl wir das her
geklastert haben und in der Anwendung
eigentlich gar keinen Verweis mehr auf
die Reihenfolge
haben was können wir dagen tun ja
nächster Hack unsere kritischen Tabellen
also z.B die mit den textantworten
Kriegen jetzt eine extra Spalte und die
ändern wir einfach nur um die
einfügereereihenfolge zurückzusetzen ja
also da wird dann überall das x- auf den
gleichen Wert gesetzt ich habe hier
wieder ein Codeschnipsel wir fügen der
Tabelle Test jetzt diese Spalte toggel
hinzu das einfach ein Boen den wir an
und ausmachen können und ich füge jetzt
hier noch mal eine Zeile mit dem Text
Hans hinzu der taucht jetzt wenn wir
selektieren und nach transaktionsid
sortieren ganz unten
auf jetzt gehen wir aber los und toggeln
das in allen Zeilen auf true
und jetzt clustn wir die Relation neu
nach dem nach unserem Index wieder s
dass es wieder alles nach der UID
sortiert ist und dann machen wir wieder
ein SELECT und se da die x- ID rechts
ist jetzt überall gleich von diesem
toggle auf true setzen und die tbel sind
wieder nach der ID
sortiert super jetzt verrätt die
Transaktion die transaktionsid erstmal
nicht mehr die Reihenfolge ja halt stopp
achtung wir dürfen die Toten nicht
vergessen die es ja auch noch irgendwo
im Speicher gibt wie viele es davon gibt
kann man sich anzeigen lassen ich habe
hier mal die Abfrage dafür mitgebracht
ihr seht da die Live Tupels sind vier
Stück die vier die wir gerade gesehen
haben und die vier alten Tupel bevor wir
dieses toggle auf true gesetzt haben
gibt's auch noch die wollen wir
loswerden weil die geben ja noch die
reihenfolgepreis was macht man da da
gibt's auch ein Befehl für wacuum räumt
in posters ein bisschen auf und entfernt
unter anderem eben auch diese Toten
Tupel das machen wir und schauen dann
wieder rein und sehee da tatsächlich
keine Toten Tupel mehr so jetzt haben
wir es aber wirklich geschafft oder
jetzt können wir uns sicher sein dass
man die Reihenfolge nicht mehr
nachvollziehen kann aus unseren
Daten oder
uff na ja es gibt eigentlich noch so
viel mehr Dinge die man sich hier
anschauen kann z.B die Webserver Access
Logs in dem irgendwie IPs verzeichnet
werden die Reihenfolge in der auf den
Webserver zugegriffen wurde oder auch
die datenbanklogs postgris macht einen
write ahead Log einfach um ausfallsicher
zu sein aber auch in diesem Log finden
sich die Werte noch mal wieder in einer
gewissen Reihenfolge dann die ganzen
Backups die wir von unserer Datenbank
machen vielleicht auch bevor wir
irgendwie geklastert haben aber auch der
Vergleich von Backups auf zwei
aufeinander folgenden Tagen kann etwas
verraten wenn z.B von einem auf den
anderen Tag Antworten hinzukommen dann
wissen wir irgendwas über die
Reihenfolge der
textantworten diese ganzen Dokumente
muss man dann irgendwie auch löschen ja
weil die verraten ja was aber was ist
denn löschen überhaupt ja in vielen
Speichermedien bedeutet löschen einfach
dass man Speicherplatz als unbenutzt
markiert dass der also überschrieben
werden kann für andere Fälle das heißt
aber nicht dass man nicht mit
irgendeinem tool diese Daten doch wieder
ans Licht bringen
kann ja ist also schwierig aber ich
möchte jetzt noch mal drauf eingehen
warum wir uns das angeschaut haben diese
ganzen Maßnahmen dienen irgendwie der
Datensparsamkeit und wir wollen
Datensparsamkeit weil falls ein
Angreifer an unsere Daten kommt unsere
Nutzer geschützt sein sollen ja also in
dem Fall soll eben nicht zuordnenbar
sein wer hier diesen kritischen
Kommentar geschrieben
hat aber wir wollen es unseren Nutzern
auch einfacher machen uns Ihre Daten
anzuvertrauen uns Ihre Meinung uns Ihre
Kritik die sie an den lefah anstaltung
oder was auch immer haben denn wir
könnten ja auch irgendwann bösartige
Intentionen haben oder die Leute die
sich nach uns um die
evaluierungsplattform kümmern oder wir
können auch einfach einen Fehler machen
wir können auch einfach falsch machen
irgendwas falsch konfigurieren
irgendeine E-Mail an den falschen
Empfänger schicken davon sind wir auch
nicht frei aber wir wollen Nutzern
einfach die Möglichkeit geben und so gut
wie es geht zu vertrauen denn
letztendlich vertrauen sie ja uns auch
dass wir die Software so betreiben wie
wir sie auf giitub veröffentlichen das
garantieren wir auf mit keinem
technischen Mittel wir erwarten da
einfach dass sie uns das glauben nicht
zuletzt wird bei uns der Server auch
durch Studierende betreut die ja auch
Abstimmung machen und damit die gleichen
Interessen wie die Nutzer als ganze
haben sicherlich gibt's auch irgendwie
Verfahren das zu validieren was da läuft
oder irgende Zertifizierung aber das
haben wir
nicht und wenn wenn man das ein bisschen
weiter treibt dann vertrauen wir als
Betreiber ja auch nur darauf dass die
Frameworks und die Programmiersprachen
und die Betriebssysteme und die Hardware
die wir nutzen auch nichts
verwunderliches mit den Daten anstellt
die wir mit Ihnen
verarbeiten ein interessantes Beispiel
dazu wir sagen jetzt mal wir vertrauen
dem Distributionsweg nicht also wir
kennen die Sources dieser ganzen
Projekte und wir vertrauen den auch wir
wissen dass es irgendwie Open Source da
haben viele Leute drauf geschaut das
setzen viele ein aber wenn ich hier
upget insty mache oder was auch immer
dann vertraue ich nicht dem was da
rauskommt was da ankommt so und was
macht man in vielleicht genau diesem
speziellen Fall ja richtig selbst
kompilieren ja und warum dieser Ansatz
vielleicht ein bisschen zu naiv ist für
so ein Problem was ich offensichtlich so
leicht schildern lässt das möchte ich
mir jetzt noch mal anschauen mit
euch 1984 hat Thomson kein Thomson dazu
sich Gedanken gemacht und bei einer
Turing Award lecture quasi ein Hack
beschrieben das ganze heißt reflections
und trusting Trust das Paper findet man
im Internet sind drei sehr interessante
Seiten auf jeden Fall lesenswert wir
schauen uns jetzt mal die ganz grobe
Idee davon
an also wir haben hier unsere App und
wir wissen nicht so richtig ob die in
Ordnung ist so wir wissen aber die
Source ist in Ordnung der vertrauen wir
also gehen wir jetzt los und kompilieren
unsere App und jetzt können wir ja aus
der Source einfach das binary erzeugen
und sind damit erstmal zufrieden aber
halt wir haben das ja mit einem anderen
Tool gemacht und zwar irgendwie mit dem
cciler
z.B und wir haben ja gesagt wir
vertrauen der Distribution nicht so wir
haben den ccompiler ja auch nur irgendwo
herbkommen also ist der nicht unbedingt
vertrauenswürdig und es könnte ja sein
dass der genau für die App die wir
betreiben wollen heimlich eine
Schwachstelle einschmuggelt das ist
irgendwie in der binary von dem cciler
versteckt das können wir gar nicht
können wir gar nicht
erkennen gut was machen wir gleicher
Ansatz wir holen uns die Source für den
cciler und bauen das dann
auch aber womit haben wir jetzt den
cciler gebaut na ja auch mit dem cciler
aber dem vertrauen wir nicht und damit
haben wir jetzt so ein bisschen ein
Henne und Ei Problem das wir so ohne
weiteres erstmal nicht aus der Welt
schaffen können in dem paper ist es noch
ein bisschen detaillierter beschrieben
schaut euch das gerne an so aber hier
sind wir jetzt irgendwie auf ein Problem
gestoßen wo wir dann einfach vertrauen
haben müssen und ich hö jetzt hier mal
auf weil jetzt sind wir gleich bei einer
Verschwörungstheorie ich möchte aber
noch mal kurz zusammenfassen was wir
alles gesehen
haben zuerst Anonymität ist schwierig
als
afterthought wir haben erst unsere
Anwendung gebaut und erst dann tiefer
Graben wollen und es gab viel zu finden
dabei in der Informatik gibt es so viel
Abstraktion zu durchschauen da muss man
von Anfang an irgendwie klare Ziele
haben was Anonymität und
Datensparsamkeit angeht und die von
Anfang an mit umsetzen weil sonst landet
man in so einer Situation wo wir jetzt
sind wo wir feststellen wir habenwie
verschiedene Stellen da haut es nicht
ganz hin mit der Datensparsamkeit und
der
Anonymität als zweites am Ende muss man
auch Vertrauen haben technische
Maßnahmen sind großartig und sind auf
jeden Fall sehr zuverlässig wenn man es
richtig macht aber Sie decken irgendwie
nicht immer alles ab ja irgendwie müssen
die Nutzer auch den Anbietern Vertrauen
z.B dass Sie die Software so betreiben
wie angekündigt ja oder wie beworben
vielleicht auch und die Anbieter selbst
vertrauen ja auch nur auf die genutzten
Frameworks Tools Services auf die
genutzte Harware oder auf irgendwie
vertraglich gebundene Partner in der
Datenverarbeitung es gibt Dinge die
können da helfen dieses Vertrauen zu
stärken das sind irgendwie Gesetze das
ist Dezentralität weil irgendwie die
Angriffsfläche größer und
unüberschaubarer wird und es sind auch
Freundschaften zwischen Leuten also z.B
kenne ich Leute die betreiben
Infrastruktur und ich nutze die halt
gerne we ich den Leuten
vertraue und zu guter Letzt wahlohren
sind eine gute Sache und was meine ich
damit na ja Verfahren die überschaubar
sind und bei Design wenig Daten sammeln
den kann man viel einfacher
Vertrauen ja und damit vielen Dank fürs
zuhören und danke an die Leute die uns
immer helfen unsere
evaluierungsplattform mitzuentwickeln
und alle und all die die so fleißig
mitkommentieren euch viel Spaß beim
divog
noch
ich bin
unmuted ja dann erstmal herzlichen Dank
für den Vortrag und gehen wir in Medi
die
Fragen warum werden die nen überhaupt
gespeichert und nicht nur ein Hash
dieser dann wären die IDs auch nicht so
kritisch wir haben uns wir haben darüber
nachgedacht wie wir
das unabhängiger von den Nutzernamen
machen können und Hash war damit im
Gespräch unter anderem auch ein Hash mit
dem Passwort zusammen um den Nutzern die
Möglichkeit zu geben im Nachhinein noch
ihre Antworten zu ändern ohne dass wir
speichern müssen die Antworten
zugeordnet
werden das sind aber Gedanken die halt
später kamen nachdem die Plattform
erstmal so entwickelt wurde wie ich sie
jetzt hier gezeigt habe das ist auf
jeden Fall guter Gedanke wir hab
nachgedacht aber wir sind halt nicht
haben noch nicht angefangen das
irgendwie umzubauen aber ist eine gute
Idee auf jeden Fall dann die nächste
Frage dass bei jedem Hinzufügen von
Daten der Wert einer Spalte toggel alle
gleichzeitig verändert wird klingt nicht
so als würde es gut skalieren gab es da
Probleme probleme gibt's von der
Performance bei unserer Größe noch nicht
also wir sind irgendwie 600 Leute die
dait evaluieren also 600 Studierende
aber ich kenne durchaus Leute die sagen
wir bauen Anwendung mit postgrress und
wenn wir vacuum machen das also es geht
nicht wir können nicht auch nicht mal
für 5 Minuten nachts um 4R unsere
Datenbank abschalten ja
wir hatten damit noch keine Probleme
aber ich kann das auf jeden Fall
nachvollziehen dass es bei anderen
Anwendungen der Fall wäre wenn dann muss
man sich ein anderes Setup überlegen ja
also irgendwie copy on wiite Datenbanken
mehrere Instanzen und Mirrors und so
weiter da kann man auf jeden Fall ein
bisschen sophisticated
werden dann wenn man dieses diesen
Feedback Service bei sich an der Uni
verwenden will welche Zusatzservices
braucht man jetzt
insgesamt
das ist
eine Open Source Software ihr könnt die
das ist eine Jungo App die wird mit dem
postcass Datenbank sererver Betrieben
man muss sicherlich irgendwie eine
Authentifizierung da reinbauen also wir
haben jetzt so open ID Provider und das
ist bei uns so ein bisschen auf
die ja Datenflüsse mit dem
studienreferat abgestimmt
Teilnehmerlisten und so weiter wie die
importiert werden aber man kann das
sicherlich auch für seine eigene Zwecke
anpassen in der Zwischenzeit ist er hier
auch ein Link sogar eingefügt werden wo
man noch weitere Informationen findet
nächste Frage mit was für einem Tool
hast du die Folien erstellt
[Musik]
revales sie sehen echt toll
aus danke die Folien sind von einem
Kollegen aus dem Projekt der das mal der
den Talk in kürzerer Form mal an der Uni
gehalten hat wir haben das da mit Google
Präsentation gebaut shame on ME aber das
ist halt historisch gewachsen so diese
Folien ja steel with bright so nächste
Frage wenn man immer misstrauischer wird
und nicht mal einem Compiler traut
könnte man auch gleich seinen eigenen
Server basteln wie weit soll man am
besten gehen zwecks Misstrauen wann ist
Misstrauen gesund und wann nicht
mehr oh das ist eine ganz schwierige und
individuelle Frage also also dieses
Paranoia Level ist ja so beim beim CCC
gefühlt generell ein bisschen
höher ich glaube das muss ich jeder
selbst beantworten wie sehr er er Leuten
vertraut oder Diensten oder
Anbietern das kann ich nicht im
allgemeinen beantworten aber ich denke
eine gewisse
Grundskepsis ist ganz gut ja das führt
eben dazu dass Services vielleicht
dezentralisiert betrieben werden dass
man sich selber mal
Kopf macht selber nextcoud aufsetzt
anstatt irgendwie bei Dropbox die
eigenen Daten zu haben z.B aber das ist
letztendlich eine Entscheidung die jeder
selbst treffen
muss so dann wird die Software an deiner
Uni schon
verwendet wenn ja gibt es schon
praktische Erfahrungen
damit die Software ist seit 2011 im
Einsatz also fast 10 Jahre jetzt wir
haben sehr gute Erfahrung damit gemacht
also allein dadurch dass ich die
Studierenden selbst um die
Weiterentwicklung kümmern sind die
Features eigentlich immer so wie wir sie
gerade brauchen ähm dies ist von
Usability sehr schön wir erhalten sehr
hohe Rücklaufquoten also 60% der
Teilnehmer schicken dann auch eine
Evaluierung ab also wir haben wirklich
gute
überdurchschnittlich
überdurchschnittliche Erfahrung damit
gemacht ja aber das das hängt auch
wirklich mit einer Kultur was
Evaluierung angeht an der Uni zusammen
ja also wir sind jetzt eine Informatik
äh ein informatikgebiet da sind die
Leute halt gut da drin Feedback und
Kritik und Fehler zu akzeptieren
vielleicht eher als an klassischeren
Studiengängen jetzt meine
Vermutung dann die nächste Frage im
Rückblick welche Designentscheidungen
würdet ihr jetzt anders machen um
Anonymität besser/leichter in Software
umzusetzen
was was W jetzt anders
machen ich glaube irgendwo sagt man auch
es sind nur
Evaluierungsergebnisse die sind nicht so
kritisch wie bei einer politischen Wahl
z.B und das ist jetzt ein Ausgleich
zwischen wie praktikabel ist das Ganze
zu programmieren und wie anonym ist das
und ich finde obwohl wir ja diese
Schwächen haben haben wir da trotzdem
noch einen zufriedenstellenden Punkt
Kunden auf dieser Skala aber wenn man da
was krasseses braucht dann wie gesagt
von Anfang an überlegen welche
Technologien ermöglichen da mehr
Anonymität ich kenne mich gar nicht so
sehr aus in welche Technologien das
machen ich bin da auch noch sehr am
Anfang und wir sind da auch noch immer
noch am
diskutieren so nächste Frage was ist mit
anderen systemspalten in der Datenbank
wie beispielsweise
ctiid
ich weiß nicht was die CT ID macht
schreib uns gerne ein issue ins ins
giitub wir sind da auf jeden Fall
interessiert ich hatte gestern noch mal
in das Datenbank write aheadlock
reingeschaut habe da auch nur einige
Texte gefunden von denen die ich da per
insert in die Datenbank gepackt habe
also mit technischenem knohow immer her
damit wir finden das auf jeden Fall
spannt auch wenn es nicht unbedingt in
eränderung an unserem System
resultiert
so die nächste Frage überspringe ich
kurz
komme aber gleich noch mal drauf zurück
so verrückte mathemats jetzt verrücken
die Zeilen verrüte mathematiksysteme die
für onlineewahlen vorgeschlagen werden
mal angeschaut um das ohne servertrust
zu
realisieren also die Frage ist jetzt ob
ob ich mir Systeme angeschaut habe die
ohne Server Trust n bal umsetzen wollen
mit verrückter Mathematik oder dunkler
mit verrückter
Mathematik nein stecke ich nicht tief
drin online Wahlen digitale Wahlen ist
aber auf jeden Fall ein Thema auch bei
uns an der
Uni und bei uns in der Nähe in
pzdam wir beobachten das auf jeden Fall
als Chaostreff ganz
eng ja aber Ken ich mich mit den
technischen Details nicht so aus nächste
Frage kann ich nicht einfach jedem
Benutzer meines Systems einen einmalig
verwendbaren Token ausstellen jeder
Student bekommt genau ein keiner weiß
wer welchen
hat das kann man machen ja
wieder ist wieder so ein Punkt von
Bequemlichkeit ja jetzt kriegen wir
einfach einen Export an allen
Belegungsdaten importieren das und es
funktioniert ja jeder sie kann genau
seine Veranstaltung evaluieren die Leute
kriegen E-Mail Reminder zwei Tage vorher
die Nacht vor
evaluierungsschluss wir müssen nichts in
der Vorlesung austeilen die dozierenen
müssen sich nicht weiter groß drum
kümmern außer dass sie am Anfang einmal
sagen ich will die und die und die Frage
Bögen es ist einfach sehr bequem so aber
man kann das auch mit diesen Tokens
machen
ja nächste Frage wäre eure
abstimmungsplattform theoretisch
geeignet nach allen
anonymisierungsversuchen um Wahlen Slash
Volksabstimmungen
durchzuführen
nein ich ich denke du lchst auch schon
ich
denke digitale Wahlen sind in sehr sehr
vielen fren eine ganz ganz schlechte
Idee
weil die Wahl ohne das so gut macht
nachvollziehbar zu sein ja da gibt's
nichts mit drei Stufen drei
abstraktionstiefen weiter unten und da
plötzlich kannst du wieder nachvollzi en
wer welchen wahlzittel geschrieben hat
sondern bei einer Wahlurne versteht
jeder wie die Anonymisierung
funktioniert und es kann trotzdem jeder
nachvollziehen dass jeder nur einmal
abstimmen durfte und diese
Nachvollziehbarkeit auch für nicht tchis
also auch für Leute die sich gar nicht
mit der Informatik auskennen ist einfach
ein ganz wichtiger Aspekt für
Wahlen plus 1 nächste Frage ist gute
Sicherheit nicht ein Mix zwischen
Usability und Sicherheit gute Sicherheit
heißt dass es mehr Auswand ist den die
zu knacken als die Daten anders zu
bekommen und Sicherheit oder Anonymität
ist zudem nichts absolutes sondern etwas
Relatives glaubst du nicht dass viele zu
viel Aufwand betreiben irgendwo muss man
ja die Grenzen
ziehen ich denke das spricht genau
diesen Punkt an ja dieses Spektrum von
Usability und absoluter Sicherheit und
ja also wir ziehen ja auch irgendwo den
Punkt wir sagen ja auch irgendwo ja wir
gucken uns das weiter an weil wir es
interessant finden aber wir wollen nicht
die Codebasis sprengen nur um dieses
winzige Stückchen mehr an Sicherheit und
Anonymität zu
gewinnen ja also ich bin auch der
Meinung dass es da dass es keine
absolute sind sondern dass man da sehr
individuell entscheiden mus reicht im
Grunde nicht die anonyme Fragefunktion
von mudel oder anonyme
Zettel ja kennen Sie das wenn eine
Fakultät historisch gewachsen ist ja wir
haben z Mels an der
Fakultät Zettel sind tote totes Holz
Informatiker wollen nicht Zettel sie
wollen gerne technologische Lösung und
ja gut bei Wahlen dann vielleicht nicht
und dann sind wir da vielleicht
irgendwie an der Grenze das sind alles
valide Alternativen
wirklich so ist es bei uns geworden
jetzt okay welche Punkte am aktuellen
Stand der Soft stören dich noch und
würdest du noch verbessern wollen
ähm bezüglich der
Anonymität bin ich schon recht zufrieden
ich glaube auch dass alles was man da
mehr programmieren würde nicht das
Problem fixt dass die Leute ja gar nicht
wissen können dass wir das auch so
betreiben wie wir es auf der Open Source
Seite zeigen also ich glaube das ist an
der Stelle das viel größere Problem als
an der an der an der codebase selbst und
von der Funktionalität der Plattform
selbst
ähm ja wir sind so gewachsen ich würde
mir ein bisschen mehr Automatisierung
von Erinnerungen wünschen ja also viele
Dozierende lassen sich so Zeit bis sie
mal Ihren Fragebogen bestätigen da bauen
wir jetzt so einen Knopf der einfach
alle mal erinnert dass Sie doch bitte
Ihre Evaluierung einstellen
sollen wie regelt ihr das Löschen der
Daten wie lange bleiben die Antworten
für die Lehrende s
verfügbar die Antworten werden
archiviert nach sechs Semestern in etwa
ähm so duzierende ändern ja auch ihre
Veranstaltungskonzepte es kommen neue
Leute dazu sie verbessern sich und es
sollen einfach nicht 5 Jahre alte
Evaluierungsergebnisse ein großen
Einfluss darauf haben wie die
Studierenden heute ihre
Lehrveranstaltung wählen z.B
ähm die Leute können aber sich ja einen
Export
machen wenn Sie die Veranstaltung noch
sehen können also da haben wir nicht
mehr so also wir geben das ja weg und
damit ist es erstmal weggegeben aber für
Leute die neu an die Uni kommen die
sehen immer nur die vergangenen 3 Jahre
ja dann wird jeder Punkt der CIA Triade
erfüllt CIA Triade ist
konfidentiality integrity und
availability oh die kenne ich nicht
confidential also Verfügbarkeit
Integrität und
Vertraulichkeit kannst du mir helfen das
zuzuordnen ja ich denke mal einfach so
wie wird die Vertraulichkeit bei euch
sichergestellt also vielleicht welche
technisch organisatorischen Maßnahmen
habt ihr implementiert um Daten irgendwo
zu sichern vor unberechtigter
Einsichtnahme oder vor unberechtigter
Veränderung dass die halt auch dann da
ist wenn man sie
braucht ach so na ja wir haben einen
Gremium das kümmert sich um diese
evaluierungsplattform da gibt's genau
zwei Leute die die Admins sind und
Zugrif auf den Server haben und genau
drei Leute die
Verwaltungszugriff auf die Plattform
haben also da die die Veranstaltung
bearbeiten können dieses Gremium das ist
Teil des des Fachschaftsrats das wird
also auch gewählt aus der
Studierendenschaft
äh und ich denke dadurch haben wir einen
ziemlich demokratischen Ansatz was die
Kontrolle dieser Plattform angeht aber
ja wie sich das jetzt auf dieses C
Triade bezieht ja so dann nächste Frage
habt ihr darüber nachgedacht KI zu
nutzen um den Schreibstil anzugleichen
da gibt es Projekte zu damit wären alle
Texte gleich oder ähnlich
formuliert wir haben mal drüber
nachgedacht mit KI Beleidigungen zu
erkennen um um die dann
hinter einer Content warning oder sowas
anzuzeigen ja
ähm haben uns aber auch dagegen
entschieden das ist kein großes Problem
tatsächlich also manchmal wollen die
Leute auch erkannt werden
und ansonsten ist es mit dem Schreibstil
haben wir das noch nie als Problem
wahrgenommen das so groß ist dass man
sich da wirklich automatisiert drum
kümmern
muss ja und wie gesagt wir wollen das
Feedback nicht verfälschen auch nicht
durch durch eine KI das ist uns
irgendwie das höhere gut an der
Stelle