Ankündigung

Einklappen
Keine Ankündigung bisher.

verschlüsselung von upload dateien

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • verschlüsselung von upload dateien

    bei einem upload formular können je nach programmierung dateien auf den server geladen werden. manche dateien sind jedoch streng vertrtaulich und müssen vor unerlaubten herunterladen geschützt werden. es gibt sogar programme die den ganzen server herunterladen und keine datei auslassen wie offline explorer. diese dateien sind dann in raw format vorhanden.

    und genau hier suche ich nach einer methode die dateien die auf den server liegen zu verschlüsseln oder generell nach einer lösung wie man bei solchen problemen vorgeht. geschützt werden sollen bilddateien, pdf und word dokumente. openssl_encrypt steht für php zur verfügung nur hier kann man nur text verschlüsseln. weitere beispiele habe ich leider nicht gefunden. die dateien zip mit passwort versetzen wäre wohl nicht so gut, da das angeblich auch nicht sicher vor dem lesen ist.? möglich wäre auch die speicherung direkt in der datenbank al binary, doch dann ist sie bald so groß, dass sie untauglich wird.

    ich wäre für weitere anregungen dankbar wie man vertrauliche dokumente auf den server vor datenklau und oder lesen schützen kann.


  • #2
    Zitat von mse Beitrag anzeigen
    bei einem upload formular können je nach programmierung dateien auf den server geladen werden. manche dateien sind jedoch streng vertrtaulich und müssen vor unerlaubten herunterladen geschützt werden. es gibt sogar programme die den ganzen server herunterladen und keine datei auslassen wie offline explorer. diese dateien sind dann in raw format vorhanden.
    .
    Dann muss aber irgendwas mit deiner Server Konfiguration mächtig im arsch sein wenn das geht
    Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

    Kommentar


    • #3
      Die Lösung ist, dass man die Dateien nur den Usern zum Download anbietet, die sie auch downloaden dürfen. Zum Beispiel mittels Login.

      Kommentar


      • #4
        ja, das dürfen nur sehr wenige downloaden für die auch die dateien vorgesehen sind im admin bereich usw. dennoch mache ich mir sorgen das diese dateien eingesehen werden können von außen aus den beschribenen erfahrungen weiter oben aus der vergangenheit..

        Kommentar


        • #5
          dafür gibt es Serverdirektriven, die diese dann verbieten.

          Kommentar


          • #6
            Wie wäre es damit, die hochgeladen Dateien einfach ausserhalb des Document-Roots zu speichern?
            sorry, shift-taste kaputt

            Kommentar


            • #7
              Zitat von Thallius Beitrag anzeigen

              Dann muss aber irgendwas mit deiner Server Konfiguration mächtig im arsch sein wenn das geht
              Wieso das remote spiegeln von komplettimnstallationnen ist jetzt nicht so selten, meistens wird dazu über pxe gebootet.
              fraglich ist halt bei sowas immer, was ist ein server ?

              Kommentar


              • #8
                Zitat von tomBuilder Beitrag anzeigen

                Wieso das remote spiegeln von komplettimnstallationnen ist jetzt nicht so selten, meistens wird dazu über pxe gebootet.
                fraglich ist halt bei sowas immer, was ist ein server ?
                Also ich kenne kein OS mehr, das es nicht anbietet (oder mittlerweile sogar als default vorgibt) das alles Dateien auf der Platte automatisch verschlüsselt sind. Somit können eh nur die User für dieses OS auf diesem Rechner auf diese Daten zugreifen. Da kannst du dann Platten spiegeln bis du blau wirst und kommst an keine einzige Datei.
                Pre-Coffee-Posts sind mit Vorsicht zu geniessen!

                Kommentar


                • #9
                  Zitat von mse Beitrag anzeigen
                  bei einem upload formular können je nach programmierung dateien auf den server geladen werden. manche dateien sind jedoch streng vertrtaulich und müssen vor unerlaubten herunterladen geschützt werden. es gibt sogar programme die den ganzen server herunterladen und keine datei auslassen wie offline explorer. diese dateien sind dann in raw format vorhanden.
                  Der „offline explorer“ kann nur Ressourcen laden, die bekannt gegeben werden (als link, scr).

                  Zitat von mse Beitrag anzeigen
                  geschützt werden sollen bilddateien, pdf und word dokumente. openssl_encrypt steht für php zur verfügung nur hier kann man nur text verschlüsseln.
                  Binäre Inhalte kann man mit base64_encode() in ASCII-Text verwandeln. Visa versa mit base64_decode(). Aber openssl_encrypt() hat eine ganz andere Schwäche: Die Passphrase muss, wenn Du also auf dem Server verschlüsseln oder entschlüsseln willst, auf dem Server bekannt sein. Speichert man diese, dann genügt ein einziges fehlerhaftes Wordpress-Plugin und die vermeintlich verschlüsselten Dateien sind zusammen mit dem Schlüssel zugänglich. Abhilfe kann nur eine Verschlüsselung mit Paaren aus privaten und öffentlichen Schlüsseln bieten. Dann müssten die Dateien aber vor dem Upload vom User verschlüsselt und nach dem Download durch die Berechtigten entschlüsselt werden - sonst sind die privaten Schlüssel nicht mehr "privat".

                  Wenn Du binäre Inhalte erst nach einer Authentifizierung ausliefern willst, dann liefere diese nicht direkt aus, sondern sorge dafür, dass z.B. PHP die Anforderung bekommt: z.b.

                  statt
                  Code:
                  https://example.com/files/foo.doc
                  eben:
                  Code:
                  https://example.com/sendFile.php?file=foo.doc
                  getFile.php hat dann den Job, die Authentifizierung zu prüfen und die Dateien mitsamt korrekten Headern (Mime-Type!) auszuliefern oder eben nicht. In dem Fall würde ich auch dafür sorgen, dass die Dateien außerhalb des DOCUMENT_ROOT liegen, damit die in (Webserver-)Konfiguration des Verzeichnisses getroffenen Einschränkungen (e.g. „require all denied“) nicht die letzte Verteidigungslinie sind.

                  Siehe auch: https://code.fastix.org/Projekte/PHP...oginsystem.pdf - ab Seite 17.

                  Freilich kannst Du zusätzlich auch verschlüsseln - das ist aber im Hinblick auf die gespeicherte Passphrase nur Augenwischerei. Wenn Du als Passphrase das Passwort des Benutzers nutzen willst, dann kann aber nur genau dieser die Dokumente wieder entschlüsseln. Vergisst der sein Passwort, dann sind die Daten entweder verloren oder das Verfahren taugt nicht. Wenn Du die Passphrase aber „errechnest“ musst Du den Weg im PHP-Skript offenlegen, dann kann der Angreifer das also auch und die Verschlüsselung taugt nur als „Verteidigung“ gegen gegen „wirklich ganz dumme Kids“, also nichts.

                  Kommentar


                  • #10
                    Also ich kenne kein OS mehr, das es nicht anbietet (oder mittlerweile sogar als default vorgibt) das alles Dateien auf der Platte automatisch verschlüsselt sind.
                    ich kenne weder jede install routine noch alle eine brauchbarte menge an ,
                    dateien auf platten zu verschlüsslen ist mE aber immer eine frage des userspaces, partinitin eher nicht.
                    ob es sinn macht in der server welt ein full encrypted roofs zu nutzen wage ich zu bezweifeln.
                    so ist bei openbsd bpsw swap encrypted by default rootfs aber wohl nicht.

                    und:
                    ,
                    bitte lese dir meinen post nochmals durch -

                    Kommentar


                    • #11
                      Zitat von tomBuilder Beitrag anzeigen
                      bitte lese dir meinen post nochmals durch -
                      Nein, Tom. Du musst wirklich mal damit anfangen, die Posts auch zu lesen- „mse“ schreibt vom „offline explorer“, das ein Tool, welches komplette Webseiten herunterladen möchte - aber eben nicht „alle Dateien des Servers“.

                      Da Tallius schreibt ...
                      Dann muss aber irgendwas mit deiner Server Konfiguration mächtig im arsch sein wenn das geht
                      ... hat er also Recht. Der Webserver müsste das Root des Dateisystems als Document-Root eingestellt haben. Eine solche Konfiguration des Webservers wäre „mächtig im arsch“. Und zwar so sehr, dass Dir das nicht mal eingefallen ist.

                      Im Übrigen wäre dann auch die Dateisystem-Verschlüsselung „perdu“ - wenn man auf einen laufenden Server zugreift, der von einem verschlüsselten Dateisystem gestartet wurde, dann wird hierfür eine, über einen „Treiber“ entschlüsselte Version des Dateisystems gemountet. Die Verschlüsselung sorgt nur dafür, dass, wenn eine Platte oder ein Image der Platte (oder ein Laptop) geklaut wird, die Daten auf dieser Platte oder dem Laptop dem Dieb nichts nützen. Kann der aber auf den laufenden Server zugreifen, dann „war es das mit der Verschlüsselung“.

                      Ich zeige hier mal, wie die Ausgabe von mount für ein mit ecryptfs/FNEK verschlüsseltes Benutzerverzeichnis aussieht:

                      Code:
                      /home/.ecryptfs/fastix/.Private on /home/fastix type ecryptfs (rw,nosuid,nodev,relatime,ecryptfs_fnek_sig=###,ecryptfs_sig=###,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs)
                      Wenn ich angemeldet bin und das Verzeichnis so gemoutet wurde, dann kann z.B. der root meine Dateien ganz normal in meinem Benutzerordner sehen - und darin sogar auch alles verändern. Mit dem gesamten Server ist das nicht anders - und zwar ab Start des OS.

                      Kommentar


                      • #12
                        Zunächst erst einmal einen Dank an Fastix der offenbar verstanden hat was ich meine und eine tolle Antwort geliefert hat. Bei meiner Frage habe ich nicht gesagt dass es so ist, sondern meine eigenen Erfahrungen wiedergegeben. Ich bin doch nicht so blöd (auch wenn das einige denken) dass ich einen solchen Server betreibe. Wenn ich von Server spreche sind das keine eigenen sondern ein Serverpaket von einem Hoster. Hier hat man nur beschränkte Möglichkeiten Einstellungen vorzunehmen. (je nach Serverpaket)

                        Ich möchte den Vorgang nochmal genauer erläutern damit das nicht so kompliziert wird. Ein "User" kann mit einem Formular Dateien hochladen die mitunter sehr empfindliche Daten enthalten können. Diese Dateien dürfen dann vom Betreiber der Webseite eingesehen werden. Weitere "User" haben grundsätzlich keinen Zugriff auf diese Dateien weil es ihnen auch nicht bekannt ist und diese nicht veröffentlicht werden.

                        Diese vom "User" hochgeladenen Dateien sollen jedoch auf den Server bzw. dem angegebenen Verzeichnis verbleiben und bei bedarf wieder gelesen werden. Es geht mir hierbei nicht um das Organisieren der Dateien wie ein File Manger. Das ist mir gedanklich klar wie ich das umsetzen kann. Vielmehr geht es mir um das sichere Ablegen der empfindlichen Dateien die ich nach meiner Auffassung schützen muss vor DATENKLAU oder unberechtigten LESEN wegen oben beschriebenen Gründen.

                        1. Fastix liefert hier ganz gute Ansätze doch verstehe ich noch nicht ob er diese Dateien binär in eine Datenbank ablegen würde?
                        2. Es gäbe die Möglichkeit die Dateien außerhalb der Server Root abzulegen, wass für mich tatsächlich sinn ergibt, doch fühle ich (ich hab es noch nicht probiert) hier probleme mit dem Zugriff auf diese Dateien per Web.
                        3. Man kann diese Dateien in ZIP verpacken mit Passwort, doch ist das aus meiner Sicht nicht wirklich eine Lösung...
                        4. Man kann die Dateien verschlüsseln, doch sieht Fastix die gleichen Probleme mit der Passphrase wie ich auch zuvor gelesen habe.

                        Binäre Inhalte kann man mit base64_encode() in ASCII-Text verwandeln.
                        Hier würde ich gerne mit euch weiter machen wer mag...

                        Kommentar


                        • #13
                          Ich sehe da kein Problem. Lege die Dateien außerhalb vom Document Root ab und liefer sie nur mit PHP aus. Ende der Geschichte. Warum kompliziert, wenns auch einfach geht? Oder gehts gar nicht um die praktische Lösung sondern nur darum möglichst viel darüber akademisch zu diskutieren?

                          Denn um an die nicht öffentlichen Daten am Server zu kommen muss der Server gehackt werden. Wenn man also das als Wahrscheinlichkeit ansieht, ist jede Lösung, die am Server selber passiert, wertlos. Denn alles, was der Server machen kann, kann auch der Hacker machen. Um also Dateien sicher vor Hackern zu machen, müssen die Dateien bereits am Client verschlüsselt werden und dem Server darf der Schlüssel nicht bekannt sein. Nur so sind die Daten (vorausgesetzt Schlüssel und Verschlüsselung sind ausreichend stark), wirklich sicher vor Angreifern.

                          Und warum hier überhaupt Base64 eingeworfen wurde, ist für mich rätselhaft. Das hat mit dem Thema überhaupt nichts zu tun.

                          Kommentar


                          • #14
                            Ich sehe da kein Problem. Lege die Dateien außerhalb vom Document Root ab und liefer sie nur mit PHP aus. Ende der Geschichte.
                            Das würde für mich die beste Lösung sein, doch gibt es da nicht Probleme mit dem Zugriff über Web z.B. Admin Panel? Und wie "sage" ich dem Upload Script das es außerhalb des Dokument Root ablegen soll. Reicht da einfach die Pfadangabe im Script?

                            Kommentar


                            • #15
                              Zitat von mse Beitrag anzeigen
                              Das würde für mich die beste Lösung sein, doch gibt es da nicht Probleme mit dem Zugriff über Web z.B. Admin Panel?
                              Mir sind keine bekannt.

                              Zitat von mse Beitrag anzeigen
                              Und wie "sage" ich dem Upload Script das es außerhalb des Dokument Root ablegen soll. Reicht da einfach die Pfadangabe im Script?
                              Ja.

                              Kommentar

                              Lädt...
                              X