Notiz-Blo(ck|g) zur Sicherung wissenschaftlicher Praxis
Aktualisierung einer alten Idee. Ein wissenschaftssicherheitstechnischer Gedanke. Über kryptographische Zeitstempel.
Auf Forschungsmafia habe ich vorhin etwas über die angeblich fehlende wissenschaftliche Zitierwürdigkeit von Blogs geschrieben.
Ein sicherheitstechnischer Gedanke hierzu (auf die Gefahr hin, daß es wieder irgendwer aus meinem Blog abschreibt):
Vor über 15 Jahren hab ich damals als Wissenschaftlicher Mitarbeiter an der Uni schon mal an so einer Problemstellung getüftelt. Nur ging es damals nicht um wissenschaftliche Arbeit allgemein, sondern um medizinische Diagnosen. Wie würde ein Arzt beweisen, daß er die richtige Diagnose nicht versäumt hat? Man könnte die Patientenakte als Logbuch in einer Datenbank führen und diese dann durch Prüfsummen miteinander verschränken und Zeitstempel einholen, die verhindern, daß an der Akte nachträglich etwas geändert würde.
Ein Angriff dagegen ist mir damals schon aufgefallen, der die Sache schwierig macht. Man müßte nämlich jeden einzelnen Zeitstempel zählen und den Verbleib nachweisen. Ein Angriff wäre nämlich möglich, wenn er nicht nachträglich erfolgt. Wäre sich ein Arzt unsicher, ob der Patient an X oder Y leidet, könnte er die Akte aufgabeln und ab diesem Punkt zwei oder mehr Schattenakten parallel führen, in der einen steht eben die Diagnose X, in der anderen Y. Bei einem späteren Streit würde der dann die passende Akte vorlegen können, mitsamt allen Signaturen usw.
Bekannt geworden ist auch eine sehr ähnliche Betrugsmethode, in der Börsenberater (oder Tipgeber für Fußballwetten) ihren Opfern vorgaukeln, sie könnten die Zukunft vorhersagen. Es bedarf einer Reihe von Ereignissen, die zwei mögliche Ausgänge kennen (Aktien rauf oder runter oder sowas). Sie schicken einfach 102.400 Leuten Briefe mit Vorhersagen, der Häfte mit Prognose A, der anderen Hälfte mit Prognose B. Nur der Hälfte, bei denen sie richtig lagen, schicken sie in der nächsten Woche wieder eine Prognose, wieder je zur Hälfte mit Prognose C oder D. Und so weiter. Nach 10 Wochen bleiben also 100 Leute übrig, denen sie zehnmal hintereinander die richtige Prognose abgeliefert haben, die also glauben, der Berater könne treffsichere Prognosen liefern.
Ich kann mich auch entsinnen, daß es in den neunziger Jahren mal so einen Fall von Wissenschaftsbetrug in der vordigitalen Zeit gab. Irgendeine Redaktion einer Zeitschrift bot den Service an, daß Wissenschaftler bei ihnen nummerierte versiegelte Kuverts hinterlegen können, die dort mit einem bestätigten Eingangsstempel versehen, aber nicht geöffnet werden. Sollte es später mal zu einem Streit kommen, wer etwas zuerst er-/gefunden hatte, konnte ein Wissenschaftler dann bei denen beantragen, sein Kuvert Nr. x zu öffnen, und die Redaktion hat dann bestätigt, daß diese These zum entsprechenden Zeitpunkt schon eingereicht worden war. Also letztlich nichts anderes als ein kryptographischer Notar, der Zeitstempel erteilt, nur eben nicht mit Kryptographie, sondern real hinterlegten Medien. Irgendwann kam es tatsächlich mal zu einem solchen Streit, und eine Öffnung wurde beantragt. Irgendwas lief dabei aber schief und sie haben versehentlich auch ein weiteres Kuvert geöffnet. Wodurch herauskam, daß ein Wissenschaftler zwei widersprüchliche wissenschaftliche Studien eingereicht hatte (irgendwie sowas wie gleichzeitig der Nachweis, daß X wirkt und nicht wirkt), wartete, bis jemand anderes das wirklich geklärt hatte und dann damit punkten wollte, daß er das doch schon vorher gewußt hätte.
Man muß bei solchen Zeitstempeln also immer äußerst vorsichtig sein, weil sie nicht belegen, daß jemand sich auf etwas festgelegt hat (Kryptologen machen sehr häufig den Fehler, daß sie Signaturen beweisen, aber übersehen, daß da noch irgendwoher eine Semantik kommen muß), sondern nur, daß irgendein Inhalt (genaugenommen nicht mal der, sondern nur dessen Hash-Wert) zu einem Zeitpunkt bekannt war. Selbst das ist kritisch, denn wenn ich mir eine Million Zeitstempel vorsorglich – oder in anderem Zusammenhang – besorgt habe, ist die Länge des Hashwertes bezüglich der Kollisionswahrscheinlichkeit schon effektiv 20 Bit kürzer geworden. Man muß also sehr vorsichtig mit der Konstruktion sein und die Menge von Zeitstempeln, die ausgegeben werden, sinnvoll begrenzen.
Mir schwebt da folgendes vor:
Man baue eine Art digitales Labor- oder Notizbuch. Ähnlich wie eine Kreuzung aus Wiki und Repository. In das man Texte und Attachments legen kann, Meßwerte, Papers im Entwicklungszustand, auch ganze Datenbanken und Dateisysteme. Multimedia und so. Die Größe ist letztlich nachrangig. Hauptsache, man kann Daten beliebiger Art einchecken und archivieren. Alle Notizen, Fotos, Papers und Dissertationen im Entwicklungsstand.
Dieses Ding sollte nun in regelmäßigen Abständen – etwa einmal am Tag oder alle x Stunden – einen Zeitstempel für seinen aktuellen Status bei einer zentralen Instanz holen. Und zwar so, daß damit auch eine einzelne Datei nachweisbar ist ohne das ganze Notizbuch en bloc vorzulegen. Man könnte beispielsweise eine Liste der Prüfsummen aller Einzeldateien zeitstempeln lassen, womit man auch eine einzelne Datei nachweisen kann, ohne die anderen offenzulegen (was natürlich wieder die Gefahr des mehrgleisigen Fahrens mit sich bringt, das muß man eben wissen).
Gibt es nun Streit, wer wann was entwickelt hat, könnte der Autor im Zweifelsfall in diesem Archiv suchen und die erste Datei/Notiz auschecken und den entsprechenden Tagesstempel zum Nachweis mit dazuholen. Er könnte also nachweisen (oder auch für sich selbst klären), daß er zu einem bestimmten Datum irgendetwas bereits kannte.
Man könnte beispielsweise dann auch Doktoranden zur Nutzung verpflichten, um damit nachzuweisen, daß die Dissertation nicht einfach mal so plötzlich vom Himmel fiel. Drittmittelgeber könnten ihre Auftragnehmer verpflichten. Journale ihre Autoren. Kürzlich gab es ja den Fall wo es Streit zwischen einer Doktorandin und ihrem Doktorvater gab, wer da von wem abgeschrieben hatte. Ging mir ja genauso.
Aber vermutlich will man das gar nicht, daß objektiv nachweisbar ist, wer wann welchen Gedanken hatte.
10 Kommentare (RSS-Feed)
@yasar: Das ist ja nur ein Implementierungsdetail. Zeitstempel werden ja eh nur über die Hash-Werte verwaltet.
Problematisch ist aber, daß normale Texteditoren keine vollständige History führen, und das eben auch Aufgabe der Software wäre. Denn wenn man die Originaldaten nicht mehr hat, nutzen einem die Stempel gar nichts mehr.
Gute Idee.
Allerdings basiert sie auf einem elitären Wissenschaftsmodell: Du nimmst implizit an, dass ein Gedanke auch einer Person “gehört”. Allerdings würde ich eher sagen, dass Gedanken in Gruppen und bei Diskussionen “heranreifen” und am Ende nur einer die Stränge zusammenführt und dann das Offensichtliche auch ausspricht. Mit ein wenig Demut muss jeder Wissenschaftler zugeben, dass die meisten Dinge so laufen und nicht das einsame Genie schon immer was wusste oder erarbeitet hat.
Insofern zementiert Deine Idee eine Vorstellung von Wissenschaft, die zu den feudalen Strukturen geführt hat, die wir heute sehen.
Der Gegenentwurf ist ein anderer: publiziere alles und schnell und zwar open access oder im Blog oder …. und vergebe keine Stellen auf Grundlagen von Zitate etc. sondern von echtem Impact und Kooperationsbereitschaft, denn Wissenschaft ist ein kollaboratives Handwerk. Wenn sich der Geist nur ein wenig ändern würde, bräuchten wir keine Zeitstempel etc.
@karbau: Da hast Du natürlich auch nicht Unrecht.
Wenn ich eine Idee habe und die im Mitarbeiterseminar äußere, und der Prof kloppt sie als erster in sein Notizbuch, dann sieht es hinterher so aus, als hätte er sie gehabt. Leute wie Beth wären da sicher ganz fix gewesen.
@Colin: Ähnlich. Donnerhacke will das Löschen verhindern, und sein Log hat Integrität wohl nur im Ganzen. Mir geht es eher darum, automatisiert und möglichst komfortabel (und Faulenzer-Sicher) Zeitstempel darüber zu holen, daß man zu einem bestimmten Zeitpunkt etwas schon gehabt/gekannt hat. Das heißt, daß der Integritätsnachweis auch mit einem ausgewählten selektiven Datum möglich sein soll, man also in der Lage wäre, die Notiz vom 5.3.1997 vorzulegen und deren Zeitstempel zu beweisen ohne den Rest offenzulegen.
Wäre freilich zu definieren, was man lieber will. Kann man das Ding aber immer nur in seiner Gesamtheit verifizieren, dann würde einen das davon abhalten Dinge einzuchecken, bei denen man Zweifel hat, ob die richtig sind, damit sie einen hinter nicht potentiell blamieren, und damit wertvolle Zeitstempel vergeben.
Vielleicht beides zusammen machen.
Wenn man ein versionsverwaltungsprogramm wie zB git verwendet, dann müsste man nur noch die hash-werte (die die history repräsentieren) zum jeweiligen datum signeren.
Da mit git immer die ganze history gehasht wird – wenn man nun forciert, dass pro person nur ein hash pro tag gesichert werden kann, dann bekommt man denke ich genug information, dass man kaum mehr zweigleisig fahren kann
hash von Tag 1 Beinhaltet Aussage A
hash von Tag 2 Beinhaltet Aussage B (ohne A, B im Widerspruch zu A)
hash von Tag 3 muss dann eine folge von A oder B sein, womit man sich festlegt (nun gut, könnte auch an Tag x passieren)
@Alex: Nein, weil man dann immer alles vorlegen muß, was man hat, um die Prüfsumme zu verifizieren, und dabei auch Dinge offenbaren muß, die womöglich noch geheim sind.
Man braucht einen zusätzlichen Abstraktionslayer, einen Katalog der an diesem Tag existierenden Daten, mit jeweils separater Prüfsumme, damit man auch selektiv Bestandteile vorlegen kann, ohne alles vorlegen zu müssen.
Außerdem ist eine Struktur wie git zu fehleranfällig. Fehlt etwas, fällt die ganze Struktur zusammen. Weil git nicht als Nachweistool gebaut ist, sondern der Fehlererkennung und -vermeidung dient. Andere Zielsetzung.
“Problematisch ist aber, daß normale Texteditoren keine vollständige History führen,”
Etherpad tut das 🙂
Um nochmal konstruktiv zu sein 🙂
Folgendes Script:
1) Erstelle backup von jedem “Projekt” jeden Tag (zB in Form von einer Zip-Datei pro ‘Hauptverzeichnis’)
* Durch die individuellen Zip-Dateien müsste genug flexibilität vorhandensein, um nur das offenzulegen, was nötig ist.
* Durch das tägliche Backup ist man hinreichend gut gesichert, um die Streitfälle klarlegen zu können (pseudo-versionskontrolle)
2) Erstelle von jeder der backup-zip dateien einen Hash
3) Setze diese Hashwerte in eine liste und füge ebenso den Hashwert aus Punkt 4 (allerdings vom Vortag) hinzu.
4) Erstelle einen Hashwert der in 3) erstellten Liste
5) Lasse den in 4) erstellten Hash durch einen unabhängigen dritten zum Datum signieren.
Dieses minimalsystem müsste bereits “sicher” gegenüber betrugsversuchen sein, hat allerdings noch als problem, dass es keinen automatismus gibt, um dateikorruption zu entdecken
Ein theoretischer Betrugsversuch ergibt sich durch manipulation der Liste datei: – ändern der gewünschten Datei -> ändern des zugehörigen Hashs, anpassen der anderen Hashs sodass der gesammt-hash wieder zum signierten Hash passt (kann ich nicht beurteilen, wie schwer das ist)
ggf. muß man ja nicht einmal die Dokumente selbst in die DB legen, sondern nur deren Hash-Werte, weil ja nur eh die signiert werden. Würde natürlich das Problem Bedingen, daß der Autor das Originaldokument aufbwahren müßte und das ganz vor Hashkollisionen nicht geschützt wäre.