PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : (JavaScript) - Verschlüsselung



masterholdy
10.04.2018, 08:37
Hi Leute,

ich habe 0 Ahnung von Verschlüsselungen und wollte euch mal mein Problem schildern, damit ihr mir hoffentlich Key-Words geben könnt nach denen ich Googeln soll um mich weiterzubilden.

Ich muss fürs Studium eine Textdatei aufnehmen und verschlüsseln, diese soll anschließend an einen Server geschickt werden und dort soll aus der Audiodatei Text generiert werden. Meine Aufgabe ist die Aufnahme und Verschlüsselung der Audiodatei. Die aufgenommene Audiodatei muss verschlüsselt sein, da der Inhalt unter die Schweigepflicht fällt.

Das Aufnehmen von Audiodateien ist schon möglich, doch leider habe ich diese noch nicht verschlüsselt.

Die Audiodateien müssen verschlüsselt auf dem System (Handy) vorliegen, müssen verschlüsselt an den Server übermittelt werden, wo sie entschlüsselt werden und bearbeitet werden, danach sollten sie verschlüsselt persistiert werden.

Macht dieses Vorgehen überhaupt sinn?

Ich dachte als erstes an eine Verschlüsslung welche Private/Public Keys verwendet, aber dann müsste der Server ja auch zumindest temporär den Private Key haben..

Als Frontend wird Ionic 3 verwendet.

MFG

EDIT:// Wenn man mit einer Verschlüsselung arbeitet die private/public keys benutzt, wo würde man dann die Keys überhaupt ablegen?

TeeB
10.04.2018, 09:03
Hi Leute,

ich habe 0 Ahnung von Verschlüsselungen

Solltest Du das nicht in Deinem Studium lernen?

fsxto
10.04.2018, 09:44
Für mich hört sich das "Problem" mit der Verschlüsselung recht simpel an. Ich weiß nicht wie du die Daten an den Server schickst, sollte es HTTP oder Websocket sein, so kannst du die Transport Verschlüsselung aktivieren. Dazu musst du den Link anpassen (https oder wss) und anschließend auf dem Server ein SSL Zertifikat mit dem entsprechenden Hostnamen anlegen (geht mit Lets Encrypt am einfachsten).

So hast du die Transportverschlüsselung aktiviert und die Daten sind auf dem Transportweg sicher.

Sollte das nicht gemeint sein und du musst die Daten auf dem Gerät verschlüsselt aufbewahren, so kannst du dies mit den Libraries erreichen, die jedes Smartphone bietet.
Schau mal in die Developer Seiten des OS das du verwendest, dort sollte so etwas zu finden sein.

EDIT:
Wenn beide Geräte (Handy und Server) an der Datei rumarbeiten können müssen, würde ich symmetrische Verfahren verwenden und den Key beim Upload mitschicken.

~fsxto

- - - - - - - - - - Beitrag nachträglich erweitert - - - - - - - - - -

Eigentlich macht es keinen Sinn mit diesem Hickhack :D

Ich würde einen lokalen Bereich auf dem Handy haben wollen, in dem alle Aufnahmen verschlüsselt liegen. Wenn die Dateien ausgetauscht werden sollen, kann man diese entschlüsseln und über eine Transportverschlüsselung wie TLS / HTTPS verschicken und der Server kann sich dann überlegen was er damit tut. Da er sowieso damit arbeiten können muss, brauchst du ihm auch keine doppelt verschlüsselte Datei schicken. Anschließend würde ich auf dem Server mir wieder einen Bereich auf der Festplatte suchen und dort die angenommenen Daten verschlüsselt wieder ablegen. Crypto an sich benötigt Rechenleistung und der Server wird es dir danken, wenn er nicht mehrere Verschlüsselungen öffnen muss, je nachdem wie viele Leute auf dem Server dann Dateien ablegen lässt sich so auch Geld sparen.

masterholdy
10.04.2018, 09:47
Solltest Du das nicht in Deinem Studium lernen?

nope, ist ein forschungsexperiment was man genau für solche sachen nutzen sollte ( sich neue sachen angucken + selber beibringen)

EVXN
10.04.2018, 21:37
In Google: client side file encryption
Github: https://github.com/hellais/up-crypt

Sonst: MEGA.NZ Source => verschlüsseln auch client-side