zuküftiger newbee fragt: verschlüsselte Daten verschicken?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • zuküftiger newbee fragt: verschlüsselte Daten verschicken?

    Hallo Leute,
    ich habe mir ein Buch zu Swift und eines für Java gekauft und muss mich jetzt entscheiden und brauche Eure Hilfe.
    Ich habe ein sehr umfanngreiches Mathematik Übungsprogramm für Schüler als OpenOffice Makro geschrieben (Rechentrainer). Jetzt habe ich Zeit (als Pensionär) und wollte, auf Bitte meiner Schüler, den "Rechentrainer" um eine App ergänzen. Android oder IOS?. Bevor ich mich an die letzten 1323 von 1328 Seiten des Swift Buches (Swift 5 von Kofler)mache, habe ich folgende Frage: Für die App wäre es nötig, dass die Ergebnisse der Arbeit in einer Datenbank auf dem Gerät gespeichert werden. Diese Daten sollen von den Nutzern nicht geändert werden können und müssen bei Bedarf (per Mail) an einen Lehrer verschickt werden können und vom Empfänger so entschlüsselt werden können, dass sie in die oO Tabelle eingelesen werden können. Geht das- oder suche ich mir besser ein anderes Hobby?
    Viele Grüße
    Pit
  • Hallo Pit,

    Sicherlich geht das aber wie das so ist im Leben 100% sicher gibt es nicht. In deinem Fall würde ich die Unveränderbaren Daten mit Hilfe eine Public keys verschlüsselt speichern. Den private key kennt dann nur der Empfänger. Das bedeutet aber natürlich auch, dass die App selber die Daten auch nicht wieder entschlüsseln kann. In wiefern das ein Hindernis ist Must du entscheiden. Bei Apple hast du hier eine etwas größere Sicherheit als bei Android. Android apps sind I.d.r. Mit Java geschrieben und von daher sehr leicht zu dekompilieren. Ein Hacker kann also relativ einfach den code zum Verschlüsseln und verschicken finden und ihn für seine eigenen Zwecke abändern. Unter iOS ist das aufwendiger, weil hier nur compilierte Apps auf das Gerät kommen und man ohne jailbreak nicht an irgendwelche Daten kommen kann. Aber das ist eben auch nur eine etwas größere Hürde.

    Sobald du Daten auf dem Gerät selber speicherst wirst du keine 100% Sicherheit bekommen. Um das zu erreichen müßtest du die eigentlichen Ergebnisse auf einem Server erstellen und dort speichern. Also quasi einen webservice erstellen der dann von der App nur genutzt wird.

    Gruß

    Claud
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Hallo Claud,
    vielen Dank für die schnelle Antwort. Kannst Du mir das noch etwas genauer erklären? Also, der/die Schüler/in rechnet Aufgaben aus allen Bereichen der Mathematik. Unter Anderem werden z.B. die Anzahl der richtigen und falschen Antworten mitgezählt - dies müsste so auf dem Gerät gespeichert werden, dass die Nutzer diese Daten nicht ändern können (in einer verschlüsselten Datenbank?). Die Kids müssen normalerweise 100 Aufgaben pro Woche rechnen und dies auch nachweisen. Daher müssen diese Daten an den Lehrer verschickt werden, der benotet das Ergebnis über das Schulhalbjahr. Vom Speichern der Daten auf einemServers wurde mir von allen Fachleuten wegen Datenschutzgründen abgeraten.
    Es ist also natürlich nötig, dass die App auf die Daten zugreifen kann. Die Daten müssen aber doch, wenn ich das richtig verstanden haben im Dokumentordner abgelegt werden - und da dürfen die Nutzer die Daten natürlich nicht ändern können.
    Ist das so möglich?
  • erikafuchs schrieb:

    dass die Nutzer diese Daten nicht ändern können (in einer verschlüsselten Datenbank?)
    Man kann ja nicht sicherstellen, dass der/die/das Schüler die Aufgaben alleine bzw. ohne Hilfe rechnet. Wenn dann jemand den Aufwand betreibt sich in das Handy zu hacken und dort die Daten ändert, dann soll er doch... - Jedenfalls würde ich darauf nicht optimieren.


    erikafuchs schrieb:

    Vom Speichern der Daten auf einemServers wurde mir von allen Fachleuten wegen Datenschutzgründen abgeraten.
    E-Mails werden auch auf einen Server gesichert. Das kann dann doch Datenschutz-Technisch auch nicht anders sein. Ich denke mal, dass das sogar aufwendiger ist.

    Habe nur kurz in das Video reingeschaut. Bevor ich mich für iOS oder Android entscheiden würde, würde ich noch nach alternativen gucken: z.B.Stichwort Jupyter Notebook (das geht in die Richtung, was Du in OO mit Makros gemacht hast)
  • manoh schrieb:

    Man kann ja nicht sicherstellen, dass der/die/das Schüler die Aufgaben alleine bzw. ohne Hilfe rechnet. Wenn dann jemand den Aufwand betreibt sich in das Handy zu hacken und dort die Daten ändert, dann soll er doch.
    Dass Schüler von anderen einige Aufgaben gelöst bekommen, damit kann ich leben. Dass man aber einfach die entsprechenden Daten als Tabelle auslesen kann und aus 12 Aufgaben 1200 gelöste Aufgaben macht und die Tabelle dann wieder speichert, das darf nicht sein. Ich habe da noch nicht viel Erfahrung, gehe aber davon aus, dass man normalerweise auch ohne Hack Daten aus dem Dokumentenordner auslesen und zurückspielen kann - oder?

    manoh schrieb:

    E-Mails werden auch auf einen Server gesichert. Das kann dann doch Datenschutz-Technisch auch nicht anders sein. Ich denke mal, dass das sogar aufwendiger ist.
    E-Mails werden natürlich auch auf Servern gespeichert. Da bin aber ich nicht für den Datenschutz verantwortlich.

    Ich gehe davon aus, dass ich aus der (noch zu entwickelnden ) App das Mailprogramm aufrufe und dann die Daten als Anhang verschicken kann??

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von erikafuchs ()

  • erikafuchs schrieb:

    Dass Schüler von anderen einige Aufgaben gelöst bekommen, damit kann ich leben. Dass man aber einfach die entsprechenden Daten als Tabelle auslesen kann und aus 12 Aufgaben 1200 gelöste Aufgaben macht und die Tabelle dann wieder speichert, das darf nicht sein. Ich habe da noch nicht viel Erfahrung, gehe aber davon aus, dass man normalerweise auch ohne Hack Daten aus dem Dokumentenordner auslesen und zurückspielen kann - oder?
    Wenn ich mein iPhone an meinen PC anstecke, dann kann ich auch nicht den Spielstand von Spiel bla ändern im Dokumentenordner ändern. Da taucht das erst gar nicht auf. Ja, man kann Daten abspeichern, an denen man nicht so einfach rankommt.

    erikafuchs schrieb:

    E-Mails werden natürlich auch auf Servern gespeichert. Da bin aber ich nicht für den Datenschutz verantwortlich.
    Doch, auch Du bist da für den Schutz der Daten verantwortlich:

    - Du musst sicherstellen, dass der Hoster das richtig macht
    - Das Passwort zum E-Mail Konto darf nicht einfach erratbar sein
    - ...

    Blind auf andere Vertrauen geht nicht.

    erikafuchs schrieb:

    Ich gehe davon aus, dass ich aus der (noch zu entwickelnden ) App das Mailprogramm aufrufe und dann die Daten als Anhang verschicken kann??
    Ist möglich. Machen auch andere Apps so.
  • manoh schrieb:

    erikafuchs schrieb:

    Dass Schüler von anderen einige Aufgaben gelöst bekommen, damit kann ich leben. Dass man aber einfach die entsprechenden Daten als Tabelle auslesen kann und aus 12 Aufgaben 1200 gelöste Aufgaben macht und die Tabelle dann wieder speichert, das darf nicht sein. Ich habe da noch nicht viel Erfahrung, gehe aber davon aus, dass man normalerweise auch ohne Hack Daten aus dem Dokumentenordner auslesen und zurückspielen kann - oder?
    Wenn ich mein iPhone an meinen PC anstecke, dann kann ich auch nicht den Spielstand von Spiel bla ändern im Dokumentenordner ändern. Da taucht das erst gar nicht auf. Ja, man kann Daten abspeichern, an denen man nicht so einfach rankommt.

    Ich will die Daten aber als Emailanhang verschicken. Dadurch muss man sie doch auch auslesen können?

    erikafuchs schrieb:

    E-Mails werden natürlich auch auf Servern gespeichert. Da bin aber ich nicht für den Datenschutz verantwortlich.
    Doch, auch Du bist da für den Schutz der Daten verantwortlich:
    - Du musst sicherstellen, dass der Hoster das richtig macht
    - Das Passwort zum E-Mail Konto darf nicht einfach erratbar sein


    Das ist mir nicht klar. Die Daten werden über das Mailprogramms an die Mailadresse eines Lehrers verschickt - was habe ich da als App Programmierer da für eine Verantwortung?
  • Thallius schrieb:

    Ich würde trotzdem die Serverlösungen bevorzugen. Datenschutz ist in sofern kein Thema, da du ja auf dem Server nur die Ergebnisse zusammen mit einer userid speichern musst. Damit sind die Daten anonymisiert und du bist Safe.

    Gruß

    Claus
    Das kann ich mir jetzt nicht so einfach vorstellen. Die Kids müssen doch dann irgendwo ein Nutzerkonto anlegen und der Lehrer muss darauf zugreifen können und die Daten jeweils einem Schüler zuordnen - oder verstehe ich da was nicht?
  • erikafuchs schrieb:

    Thallius schrieb:

    Ich würde trotzdem die Serverlösungen bevorzugen. Datenschutz ist in sofern kein Thema, da du ja auf dem Server nur die Ergebnisse zusammen mit einer userid speichern musst. Damit sind die Daten anonymisiert und du bist Safe.

    Gruß

    Claus
    Das kann ich mir jetzt nicht so einfach vorstellen. Die Kids müssen doch dann irgendwo ein Nutzerkonto anlegen und der Lehrer muss darauf zugreifen können und die Daten jeweils einem Schüler zuordnen - oder verstehe ich da was nicht?

    Genau, und bei der Registrierung bekommst du eine E-Mail in der steht welche Userid der sich gerade registrierende bekommen hat. Somit kannst du die User einer id zuweisen, jemand der den Server hackt aber nicht da diese Info dort nicht gespeichert wird.
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Ich persönlich halte nichts davon, Projekte direkt am Anfang schon recht komplex zu machen. Daher würde ich das Thema ziemlich minimalistisch - um nicht zu sagen, pragmatisch - lösen:
    • Speichern der Daten auf dem Gerät im „Documents“-Ordner. Wenn Du kein iTunes-Sharing o. ä. erlaubst, kommt der Benutzer nicht (ohne weiteres) an den Inhalt.
    • Wenn Du etwas sicherer sein willst, speichere Dir einen Hash der Daten in den User-Defaults. Kein Garant gegen Manipulation auf dem Gerät, aber ein zusätzlicher Stolperstein.
    • Export aus der App heraus in (1.) ein Austauschformat für OO, CSV oder so, oder (2.) in einem proprietären Format. Auf Signing würde ich verzichten: Wer das reverse engineered, hat auch eine gute Mathe-Note verdient
    • Aufbereiten einer eMail mit obiger Datei als Anhang und vorausgefülltem Empfänger. Kannst Du aus der Absende-Adresse den Schüler ableiten? Dann bist Du bzgl. DSGVO fein raus.
    • Andernfalls müsstest Du eine Registrierung vorsehen oder wenigstens einen Namen eingeben lassen und mitschicken. Das wäre mir einen Passus in den Datenschutzbestimmungen wert.
    Fertig. Komplexer, komfortabler und technisch anspruchsvoller geht immer, wäre aber vielleicht ein Plan für die Version 2.0.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Die idee mit dem Hash in den Userdefaults finde ich super.

    Das man bei Apple die Daten nicht so leicht bekommt ist wohl war aber bei Android sieht das eben leider ganz anders aus und hier geht es ja anscheinend um ein allumfassendes Konzept.

    Gruß

    Claus
    2 Stunden Try & Error erspart 10 Minuten Handbuchlesen.

    Pre-Kaffee-Posts sind mit Vorsicht zu geniessen :)
  • Vielen Dank, das hilft mir schon weiter
    nachdem Ihr hier so freundlich helft obwohl ich noch nahezu Null Ahnung von der Materie habe - ich habe noch nicht mal ein Smartphone und muss auch den Umgang mit diesem erst lernen (Nun ja, ein iPad habe ich). Ich habe als Anhang einmal ein Screenshot angehängt, mit einem Ausschnitt der Daten einer (nicht sehr fleißigen) Schülerin (Schüler.jpg) und ebenso einen Ausschnitt der Daten eines ganzen Kurses für den Lehrer (Auswertung.jpg). Wenn es den Kids gelingt, die Zahlen auf dem Transport zu ändern, haben sie bessere Noten!


    osxentwicklerforum.de/index.ph…ec3b0f5b7a8f557783b90fba2 osxentwicklerforum.de/index.ph…ec3b0f5b7a8f557783b90fba2




    Zur Zeit schicken mir (bzw. dem entsprechenden Mathelehrer) die Schülerinnen und Schüler die komplette .ods (OpenOffice Calc) Datei. In Ihr sind die Daten in einem ausgeblendeten Tabellenblatt gespeichert (Bisher ist es nur ganz wenigen Kids gelungen das auszutricksen) - oder die Schülerinnen und Schüler geben die Daten auf einem Stick beim Lehrer ab. Dazu muss ich noch anmerken, dass die Schülerinnen und Schüler zu einem großen Teil (vor Allem im 5ten und 6ten) Schuljahr nicht in der Lage sind, eine Datei, die sich auf ihrem Computer befindet per Emailanhang zu verschicken. Ich hoffe, dies mit einer App vereinfachen zu können, wenn sie dann nur die Emailadresse des Lehrers eingeben müssen und auf "senden" klicken.

    MyMattes schrieb:

    Ich persönlich halte nichts davon, Projekte direkt am Anfang schon recht komplex zu machen. Daher würde ich das Thema ziemlich minimalistisch - um nicht zu sagen, pragmatisch - lösen:
    Nun ja, ich sollte halt vorher wissen, ob das mit der Datenübertragung so geht, bevor ich mich an die Arbeit mache. (Ich kann bisher weder mit einem iPhone umgehen, noch kann ich Swift oder xcode!)

    MyMattes schrieb:

    Aufbereiten einer eMail mit obiger Datei als Anhang und vorausgefülltem Empfänger. Kannst Du aus der Absende-Adresse den Schüler ableiten? Dann bist Du bzgl. DSGVO fein raus.
    Der Name der Schülerin/des Schülers ist in den Daten gespeichert, ansonsten kann ich ja nicht verhindern, dass Schüler A mir die Daten von Schülerin B schickt. Es muss sichergestellt sein, dass die Daten verschlüsselt verschickt werden, ansonsten kann ich ja nicht verhindern, dass die Daten an eine Zwischenadresse verschickt und dort geändert werden - dies ist der Zweck meines Forumeintrages.
    Zur Zeit schicken mir (bzw. dem entsprechenden Mathelehrer) die Schülerinnen und Schüler die komplette .ods (OpenOffice Calc) Datei. In Ihr sind die Daten in einem ausgeblendeten Tabellenblatt gespeichert (Bisher ist es nur ganz wenigen Kids gelungen das auszutricksen) - oder die Schülerinnen und Schüler geben die Daten auf einem Stick beim Lehrer ab.Dazu muss ich noch anmerken, dass die Schülerinnen und Schüler zu einem großen Teil (vor Allem im 5ten und 6ten) Schuljahr nicht in der Lage sind, eine Datei, die sich auf ihrem Computer befindet per Emailanhang zu verschicken. Ich hoffe, dies mit einer App vereinfachen zu können, wenn sie nur die Emailadresse des Lehrers eingeben müssen und auf "senden" klicken.

    Thallius schrieb:

    Die idee mit dem Hash in den Userdefaults finde ich super.

    Das man bei Apple die Daten nicht so leicht bekommt ist wohl war aber bei Android sieht das eben leider ganz anders aus und hier geht es ja anscheinend um ein allumfassendes Konzept.

    Gruß

    Claus
    ... na das werde ich dann halt auch noch lernen müssen!
    (Eine zweite Frage ganz am Anfang war "Apple oder Android" - das hilft mir schon auch weiter.)
  • Wenn‘s sicherer sein soll, würde ich per asymetrischer Verschlüsselung (Generierung am Client) einen symetrischen Schlüssel beim Server abholen. Bei dessen Generierung auf dem Server kannst Du z. B. auch noch eine Geräte-ID einfliessen lassen. Diesen „Content-Key“ dann nur temporär auf dem Gerät halten (ggf. neu anfordern) und zur Verschlüsselung der Daten nutzen.

    So hast Du
    • ein schnelles Block-Chiffre
    • unterschiedliche Schlüssel je Device
    • keinen statischen Schlüssel in der App
    ... aber für einen Anfänger auch ein ganz schönes „Brett“ zu realisieren. Vielleicht nutzt Du für die Übermittlung einfach TLS, dann fehlt „nur“ die Server-Komponente ... vielleicht wie oben vorgeschlagen auch direkt zum Empfang der Daten (statt Email).

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • erikafuchs schrieb:

    Darf ich mich dann mal wieder melden wenn ich wenigstens schon mal Bahnhof verstehe?
    Das darfst Du auch gerne schon vorher: Was an den genannten Schritten ist Dir (vom Vorgehen her) unklar? Bei Fragen fragen ... wenn Du Dich mit den Antworten auseinander setzt, nimmt Dir das keiner krumm :) Ich zumindest nicht, wenn ich momentan - iPhone- und urlaubsbedingt - auch etwas kürzer angebunden bin.

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.