Ideensammlung für Anonyme Datenspeicherung (Programmstart) bei OpenSource Projekt

  • Allgemein

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von siycah.

    Ideensammlung für Anonyme Datenspeicherung (Programmstart) bei OpenSource Projekt

    Hallo Zusammen,

    ich bin aktuell an der Erstellung eines Konzeptes für ein neues Open Source Programm.

    Mal unabhängig davon, was das Programm können soll, sollen zumindest der Programmstart anonym und freiwillig erfasst werden.
    Der Programm soll diese Datenerfassung nur mit Zustimmung des Benutzers erstellen.

    Dies soll bei der Auswertung helfen um zu sehen, wie oft ein Download des Programms erfolgt ist und wie oft es tatsächlich gestartet wird.

    Aktuell schweben mir drei Ideen durch den Kopf:

    1. Eintrag in eine Datenbank
    Nachteil:
    - Serveradresse und Passwörter für Datenbankeinträge sind in der OpenSource Version zu sehen und somit ist die Datenbank manipulierbar

    2. Eine Art Webcounter auf einer Homepage. Das Programm müsste beim Start diese Homepage einmal "ansteuern" damit der Counter reagiert.
    Nachteil: Zwar gibt es hier keine Probleme mit Zugangsdaten, aber auch diese "Homepage" könnte einfach "zugemüllt" werden und der Counter ist damit unbrauchbar.

    3. Ein separates Tool, was dem Programm beiliegt, und diese Arbeit in Richtung Datenbank übernimmt, welches nicht Open-Source ist.
    Nachteil: Nicht Transparent gegenüber dem Benutzer.


    Habt Ihr vielleicht die ein oder andere Idee, wie man es noch lösen könnte?
    Ich drehe mich hier gerade etwas im Kreis und komme aus meiner Schleife nicht raus.

    *Topic verschoben*

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Marcus Gräfe“ ()

    @Sisco Ich gehe mal davon aus, dass das ganze vom Datenschutzbeauftragten abgesegnet ist.
    Auch wenn Du in bester Absicht handelst, ist das ganze doch missbrauchbar.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    @Sisco Ich gehe mal davon aus, dass das ganze vom Datenschutzbeauftragten abgesegnet ist.
    Auch wenn Du in bester Absicht handelst, ist das ganze doch missbrauchbar.


    Aktuell Ja und Nein... Deshalb ein Konzept.
    Es geht ersteinmal um ein grobes Konzept wie man es realisieren könnte.
    Sollte es eine Datenbank werden, ist dort natürlich dann noch mehr Arbeit zu erledigen. Gerade was Datensicherheit usw. angeht.
    Was ich selber an der ganzen Sache verweigere, sind die Erfassung von IP Adressen etc...
    Wie gesagt, das Programm, wo gerade an einem Konzept gearbeitet wird, soll mal prinzipiell Open Source sein.
    Der Quellcode soll offen liegen um Transparenz her zu stellen.

    Es soll aber nicht nur aufgrund der Downloads abgeleitet werden, ob das Programm genutzt wird, sondern auch anhand von anderen Faktoren.
    Z.B. durch das Tracken, wie oft das Programm gestartet wird.
    Was die rechtliche Seite angeht habe ich neulich in einem Newsletter folgenden Artikel entdeckt: activemind.de/magazin/telemetriedaten/

    Und bzgl. Passwortübermittlung bei 1. und 3: Wenn Daten hin und her geschickt werden, können diese immer ausgespäht werden. Da muss man nicht in den Quellcode schauen. Und wenn diese zu gut verschlüsselt sind, dann könnte man aber sicher immer noch das Programm Dekompilieren/Disassemblieren. Bringt dir also nichts, für den Fall ein kompiliertes Programm mitzuliefern. Meiner Meinung nach kommt nur Variante 2 in Frage, natürlich mit ein paar Überlegungen zur Manipulationssicherung.
    Besucht auch mein anderes Forum:
    Das Amateurfilm-Forum

    Marcus Gräfe schrieb:

    Was die rechtliche Seite angeht habe ich neulich in einem Newsletter folgenden Artikel entdeckt: activemind.de/magazin/telemetriedaten/


    Danke für den Link. Wird in die Überlegung mit einfließen.

    Es wird einem aber auch immer schwerer gemacht.
    Da will man schon Open Source machen um Transparent zu sein und versucht irgendwie heraus zu finden, ob überhaupt ein Bedarf für Weiterentwicklungen usw. besteht und man stolpert.... jedes mal.
    Moin Sisco,

    Telemetriedaten sind erstmal kein Thema, solange keine personenbezogenen Daten drin sind. Erstelle eine EULA und lizensiere das ganze korrekt und du bist auf der sicheren Seite.

    Was die Speicherung der Daten angeht, denkst du dir das aktuell viel zu kompliziert.

    Es gibt zwei Möglichkeiten, wie du das Ganze angehen kannst.

    1)
    den Teil mit den Telemetriedaten machst du closed-source. Das bringt dir aber in .net nichts, weil jedes Kind dein Programm dekompilieren kann. Mal abgesehen davon, Passwörter o.Ä. in deinem Programm zu speichern ist ein No-Go.

    2)
    du arbeitest mit public/private Keys. Dein Server ist der "single source of truth"; beim ersten Start meldest du deinem User dass du Daten sammeln möchtest - biete deinem User die Möglichkeit, dieses auszuschalten. Tust du das nicht, wird keiner deine Software nutzen - würde ich auch nicht tun, oder ich würde Umwege darum suchen. Microsoft z.B. kriegt keine Daten von mir ;)

    Wenn dein User eingewilligt hat, machst du dir mittels PC und User (anonymisiert natürlich!), einen Unique Key. Kannst auch eine UUID (unter .net GUID) nehmen. Damit meldest du dich auf deinem Server an; dieser gibt dir dann einen public Key, mit dem dein Programm sich beim Server authentifizieren kann.
    Dafür musst du nur eine Domäne haben (oder eine IP, aber mal ehrlich: eine Domäne hat so viele Vorteile, dass die Diskussion nicht lohnt!).

    Ein Beispiel für eine Route auf dem Server könnte sein:
    ​https://myapp.mydomain.eu/register/<uuid> und der Server generiert deinen Key.
    Dann kannst du einfach per HTTPS sowas wie:

    Quellcode

    1. POST myapp.mydomain.eu/telemetry/<uuid>
    2. Content-Type: form/multi-part
    3. ...
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)

    Sisco schrieb:

    Na da war ich ja schon mal gar nicht so auf dem Holzweg.


    Nö, das erstmal nicht. Es gibt lediglich ein paar Sachen, die du dir überlegen solltest.

    Wie du die Daten speicherst, ist erstmal faktisch egal; solange keine personenbezogenen Daten erfasst werden. IP-Adressen sind nicht personenbezogen! IP-Adressen loggen gehört zum normalen Server-Alltag. Ich habe sogar Tools geschrieben und veröffentlicht, mit denen man genau sehen kann, welche IP-Adressen einen zum Beipiel auf den Keks gehen.

    Außerdem nutzt 95% der Welt immer noch eine IPv4 (wenn auch oft über Teredo und Co getunnelt); da gilt in fast allen Ländern das Gleiche: Zwangstrennung nach 24h.

    Wenn du wirklich Transparenz schaffen willst; biete deinen Usern einen unkomplizierten Download von den gesammelten Daten an. Zeige denen klar und deutlich was die UUID von denen ist hab auf deiner Webseite ein Eingabefeld, wo die das eingeben können.

    Sisco schrieb:

    Ich werde das mal im kleinen testen und in mein Konzept aufnehmen.


    Kleiner Hinweis von mir (wir machen sowas hundertfach für Maschinen auf der Arbeit): RSA-4096 ist hier dein Freund. Sowohl für dein Server, der mittels private-Key alles überprüfen kann, als auch für deine Clients.

    Wichtig ist immer: die Private Keys heißen nicht umsonst private. Erstellst du mit deinem Client ein pub/private key pair, hast du nichts mit dem Private Key zu suchen!
    Andersherum genau so: gebe niemals deinen private Key raus.
    Quellcode lizensiert unter CC by SA 2.0 (Creative Commons Share-Alike)

    Meine Firma: Procyon Systems
    Meine Privatwebseite: SimonC.eu

    Bitte nicht wundern, wenn meine Aktivitäten im Forum etwas langsamer sind, ich baue gerade mein Nebengewerbe zum Vollgewerbe aus.
    Ich versuche auf euch zurückzukommen :)