EUGEN

Aus Datenschutz
Zur Navigation springen Zur Suche springen

Das Programm EUGEN (nämlich EU-DSGVO-Generator) stellt Fragen zu einem Datenschutzfall und versucht, die Rechtmäßigkeit einzuschätzen. Wie Sie vielleicht sehen, hat das mit "Künstlicher Intelligenz" oder anderen komplexen Dingen nichts zu tun. Es handelt sich um eine einfache Entscheidungstabelle, die unter bestimmten Bedingungen zu einem bestimmten Ergebnis kommt.

Der Fragebogen ist etwas komplexer aber EUGEN ist der große Bruder von KURT. Beide Programme sind identisch. Bis auf die Fragen natürlich.

Auch EUGEN wurde in AutoIt geschrieben (ich mag die Sprache). Das Programm steht hier zur freien Verwendung. Jegliche Gewährleistung schließe ich aus.

Download

Quelltext:


;EUGEN - Datenschutz-Schnellprüfprogramm gem. Datenschutzgrundverordnung (und DSG NW)
;und Berichtsgenerierung per E-Mail, (c) 2019 Frank Werner
;Prototyp für die Android-App, das eBook, die Entscheidungsdatenbank,
;Fragebögen, Formulare und die HTML-Seiten

;To-Do-Liste

;Virenscanner-Warnungen verhindern
#pragma compile(UPX, False)

;Module einlesen
#include <MsgBoxConstants.au3>
#include <StringConstants.au3>
#include <Inet.au3>

;Globale Variable
Global $Bericht = "" ;Der zwischengespeicherte Bericht
Global $i  = 0       ;Index durch den Fragebogen-Array

;Der Fragebogen: 27 Zeilen, 4 Spalten, Index beginnt bei 0!!
; Prüfung auf korrekte Verarbeitung besonderer Kategorien personenbezogener Daten (Art. 9)
; Rechtsgrundlage "Gesetz" (Art. 9, Abs. 2, Bst. g) wird hier ausgelassen, da am Ende dieser Prüfung direkt in die entsprechende Prüfung der Rechtsgrundlage verzweigt werden wird
; Prüfung auf sachliche und räumliche Anwendbarkeit der EU-DSGVO
Global $Daten [36][4] = [ _
						  [00, "Beschreibt der Sachverhalt Daten, Bilder, Sprachaufnahmen oder besondere Eigenschaften, durch die eine Person direkt oder indirekt, aber eindeutig identifiziert werden kann (Artikel 4 Nummer 1)?", 01, 35], _
						  [01, "Werden Daten über ethnische Herkunft, Gesundheit, politische Meinung, religiöse oder weltanschauliche Überzeugungen, Gewerkschaftszugehörigkeit, oder werden biometrische oder genetische Daten oder Sexualität verarbeitet (Artikel 9)?", 02, 12], _
						  [02, "ACHTUNG: Sie könnten BESONDERE KATEGORIEN personenbezogener Daten verarbeiten! Es werden besondere Ansprüche an Verarbeitung und Einwilligung gestellt!", 03, 03], _
						  [03, "Ist die Verarbeitung erforderlich, damit die Betroffenen aus Arbeits- oder Sozialrecht erwachsene Rechte ausüben oder Pflichten nachkommen können (Artikel 9, Absatz 2, Buchstabe b)?", 12, 04], _
						  [04, "Ist die Verarbeitung zum Schutz lebenswichtiger Interessen der Betroffenen oder einer anderen natürlichen Person erforderlich und sind die Betroffenen aus körperlichen oder rechtlichen Gründen außerstande, ihre Einwilligung zu geben (Artikel 9, Absatz 2, Buchstabe c)?", 12, 05], _
						  [05, "Erfolgt die Verarbeitung durch eine Organisation ohne Gewinnerzielungsabsicht, die diese Daten nicht veröffentlichen wird (Artikel 9, Absatz 2, Buchstabe d)?", 12, 06], _
						  [06, "Haben die Betroffenen diese Daten selbst veröffentlicht (Artikel 9, Absatz 2, Buchstabe e)?", 12, 07], _
						  [07, "Ist die Verarbeitung zur Durchsetzung von Rechtsansprüchen erforderlich (Artikel 9, Absatz 2, Buchstabe f)?", 12, 08], _
						  [08, "Ist die Verarbeitung zum Zwecke der Gesundheitsvorsorge, Arbeitsmedizin, Beurteilung der Arbeitsfähigkeit der Betroffenen, medizinische Diagnostik, Versorgung, Behandlung oder Verwaltung von Systemen im Gesundheits- oder Sozialbereich, erforderlich (Artikel 9, Absatz 2, Buchstabe h)?", 09, 10], _
						  [09, "Wird diese Verarbeitung nur von oder in Verantwortung von Fachpersonal verarbeitet, dass einem Berufsgeheimnis oder einer sonstigen Geheimhaltungspflicht untersteht (Artikel 9, Absatz 3)?", 12, 34], _
						  [10, "Ist die Verarbeitung aus Gründen des öffentlichen Interesses im Bereich der öffentlichen Gesundheit, wie dem Schutz vor Pandemien oder zur Gewährleistung hoher Qualitäts- und Sicherheitsstandards erforderlich (Artikel 9, Absatz 2, Buchstabe i)", 12, 11], _
						  [11, "Ist die Verarbeitung für im öffentlichen Interesse liegende Archiv-, Forschungs- oder Statistikzwecke erforderlich (Artikel 9, Absatz 2, Buchstabe j)?", 12, 34], _
						  [12, "Liegt eine nicht ausschließlich persönliche oder familiäre Verarbeitung von Daten vor (Artikel 2)?", 13, 35], _
						  [13, "Findet diese Verarbeitung oder die auslösende Tätigkeit INNERHALB der EU statt oder UNTERSTEHEN die Verantwortlichen dem Recht eines EU-Staates (Artikel 3)?", 14, 35], _
						  [14, "Findet eine ERHEBUNG oder ein EMPFANG von personenbezogenen Daten statt (z. B. durch Bild- oder Tonaufnahmen, Datenerfassung oder die Nutzung eines Angebotes im Internet)?", 15, 16], _
						  [15, "ACHTUNG: Sie könnten eine Datenschutzerklärung abgeben müssen (Artikel 13 und 14)!", 16, 16], _
						  [16, "Liegt eine Verarbeitung (Veränderung, Auswertung, Zweckänderung, Übermittlung, Vernichtung) von Daten vor (Artikel 4 Nummer 2)?", 17, 19], _
						  [17, "Erfolgt die Verarbeitung aufgrund eines Gesetzes, eines Vertrages, eines öffentlichen oder - außer bei Behörden - berechtigten Interesses?", 24, 18], _
						  [18, "Liegt eine rechtmäßige Einwilligung vor (Artikel 7 und Artikel 9)?", 24, 34], _
						  [19, "Sollen bereits erfasste Daten zu einem anderen Zweck genutzt werden?", 20, 22], _
						  [20, "Wurden die Betroffenen vorher über den neuen Zweck informiert (Artikel 13, Absatz 3 und Artikel 14, Absatz 4)?", 22, 34], _
						  [21, "Sind die Zwecke mit dem ursprünglichen Erfassungszweck vereinbar (Artikel 6, Absatz 4)?", 22, 34], _
						  [22, "Sollen die Daten außerhalb der EU übermittelt werden (z. B. durch Speichern in einer Cloud, Nutzung außereuropäischer E-Mail-Anbieter oder Übermittlung in ein soziales Netzwerk)?", 23, 24], _
						  [23, "Liegt eine Einwilligung, ein EU-Beschluss, geeignete Garantien, Gesetze, Verträge oder Rechtsansprüche vor?", 24, 34], _
						  [24, "Werden diese Daten im Auftrag verarbeitet (Artikel 4, Nummer 8)?", 25, 26], _
						  [25, "Erfolgte die Auswahl und die Vertragsgestaltung nach Artikel 28?", 26, 34], _
						  [26, "Sind mehr als 20 Mitarbeiter mit personenbezogener Datenverarbeitung (z. B. E-Mail) beschäftigt, werden Bürger innerhalb der EU systematisch überwacht oder handelt es sich bei den Verantwortlichen um eine Behörde?", 27, 28], _
						  [27, "ACHTUNG: Sie könnten einen DATENSCHUTZBEAUFTRAGTEN benennen müssen (Artikel 37)!", 28, 28], _
						  [28, "Hat einer der Verantwortlichen mehr als 249 Mitarbeiter oder werden besondere Kategorien personenbezogener Daten verarbeitet?", 29, 30], _
						  [29, "ACHTUNG: Sie könnten ein VERARBEITUNGSVERZEICHNIS anfertigen müssen (Artikel 30)!", 30, 30], _
						  [30, "Werden persönliche Aspekte der Betroffenen systematisch und umfassend bewertet oder werden besondere Kategorien personenbezogener Daten verarbeitet?", 31, 32], _
						  [31, "ACHTUNG: Sie könnten eine DATENSCHUTZFOLGENABSCHÄTZUNG abgeben müssen (Artikel 35)!", 32, 32], _
						  [32, "Ermöglichen die technischen und organisatorischen Maßnahmen der Verantwortlichen ein dem Risiko angemessenes Schutzniveau (Vertraulichkeit, Integrität und Verfügbarkeit der Daten, Artikel 32)?", 33, 34], _
						  [33, "ERGEBNIS: Diese Verarbeitung könnte nach der Datenschutzgrundverordnung rechtmäßig sein! Prüfen Sie dennoch andere Gesetze!", 0, 0], _
						  [34, "ERGEBNIS: Diese Verarbeitung könnte daher NICHT rechtmäßig sein! Prüfen Sie eine Meldung an Ihre Aufsichtsbehörde! (Artikel 33)!", 0, 0], _
						  [35, "ERGEBNIS: Die Datenschutzgrundverordnung kann möglicherweise auf diesen Fall nicht angewandt werden! Prüfen Sie andere Gesetze!", 0, 0] _
						]

;Sprachsystem starten
Func StartTTS()
  Return ObjCreate("SAPI.SpVoice")
EndFunc

;Hier spricht der Computer den übergebenen Text
Func Speak(ByRef $Object, $sText)
  $Object.Speak($sText)
EndFunc

;Ausgeben der Frage, Fortschreiben des Berichts, Rückgabe der Antwort
Func Frage ($FT)
  $Bericht = $Bericht & $FT
  Speak ($Default, $FT)
  $Antwort = (MsgBox($MB_YESNO, "Frage von EUGEN", $FT) = $IDYES)
  If $Antwort Then
     $Bericht = $Bericht & "=> JA" & chr(13) & chr(10)
  Else
     $Bericht = $Bericht & "=> NEIN" & @CRLF & @CRLF
  EndIf
  Return $Antwort
EndFunc

;Ausgeben von Informationstext, Fortschreiben des Berichts, keine Rückgabe
Func Info ($IT)
   $Bericht = $Bericht & "+++ " & $IT & " +++" & @CRLF & @CRLF
   Speak ($Default, $IT)
   MsgBox($MB_OK, "Hinweis von EUGEN", $IT)
EndFunc

;Sprachsystem initialisieren
$Default = StartTTS()
If Not IsObj($Default) Then
  Info("Leider steht keine Sprachausgabe zur Verfügung")
EndIf

; Titel
Info ("EUGEN - Automatisierte Vorprüfung und Generierung eines kurzen Berichts zu einem Datenschutzfall (Version 18.06.2020), Autor: Frank Werner")
$Bericht = "Sachverhalt: " & InputBox ("Sachverhalt", "Geben Sie stichpunktartig den Sachverhalt des Falles ein (ohne personenbezogene Daten!) und beantworten Sie die danach folgenden Fragen zu diesem Fall:") & @CRLF & @CRLF

;Loop
Do                                     ; Wiederhole...

  If $Daten [$i][2] = $Daten [$i][3] Then ; Wenn die Werte der Spalten 2 und 3 gleich sind
    Info ($Daten[$i][1])                  ; ist die Frage eine Information
    $i = $Daten [$i][2]                     ; und die Werte die neue Frageposition
  ElseIf $Daten[$i][2] = 0 Then           ; sonst, wenn die nächste Frageposition = 0 ist
    $i = 0                                  ; ist der Loop zu Ende
  ElseIf Frage ($Daten [$i][1]) Then      ; sonst wenn die Frage positiv beantwortet wird
    $i = $Daten [$i][2]                     ; hole nächste Position aus Spalte 2
  Else                                    ; sonst
    $i = $Daten [$i][3]                     ; aus Spalte 3
  EndIf

Until $i = 0                          ; bis nächste Frageposition = 0 ist.

;Bericht generieren und mailen?
If Frage ("Soll das Ergebnis versandt werden?") Then
  ShellExecute ("mailto:?subject=Ergebnis der Prüfung eines Datenschutzfalles mit EUGEN&body="&$Bericht)
  Info ("Tragen Sie bitte die Namen der Empfänger dieses Berichts ein, formatieren und senden Sie die E-Mail ab.")
EndIf

Speak ($Default, "Vielen Dank für die Benutzung von EUGEN. Auf Wiedersehen!")

; ENDE DES PROGRAMMLAUFS ***