Umstellung auf https, Verschlüsselung Kontaktdaten

  • Nicht gerade ein Vereinsthema, da aber wohl etliche von Euch auch Webseitren erstellen, ist das hier vielleicht doch ein guter Anlaufpunkt für mich.


    Wie stelle ich Webseiten, die weitestgehend aus statischen HTML-Seiten bestehen (bis auf zwei php-Files, mit denen das deutsche/englische Kontaktformular ausgewertet werden), am einfachsten auf https um und wie kann man die Kontaktdaten vor dem e-Mail-Versand am einfachsten verschlüsseln?


    Thx

    • Offizieller Beitrag

    Hi


    Die HTTPS Verschlüsselung der Webseite muss der Webserver erledigen. Du brauchst ein passendes Zertifikat, z.B. aus der Lets Encrypts Kampagne. Wenn die Webseite irgendwo beim Shared Hoster liegt, musst Du auf das Angebot dort zurückgreifen. Bei Mails ist es ähnlich: Der Mailserver, den PHP benutzt, muss S/MIME können. Oder du nutzt openssl_encrypt im Script und openssl_decrypt in einem Script auf der Empfängerseite.


    Gruß- Georg B. aus N.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Danke Georg - das bringt schon mal ein wenig Licht ins Dunkel. Wenn meine Seiten bei 1&1 gehostet sind, liegt wohl das Shared Hoster Model vor und ch kann nicht auf auf Let's Encrypt zurückgreifen - werde mich also mal an 1&1 wenden.

    Wg. der Mail-Verschlüsselung war meine Idee, Absenderdaten, Betreff und Text zu einem Strng zu packen und diesen mit einem öffentlichen Schlüssel zu verschlüsseln - ist jemanden in der Richtung was bekannt? Gibt es entsprechende Funktionen/Module für php? Oder andere, bei 1&1 verfügbare Scriptsprachen? Der Gedanke geht wohl on Richtung des zweiten Vorschlags (openssl_encrypt / openssl_decrypt)? Werde mir das mal anschauen.

  • Du kannst dir bei 1&1 einfach ein SSL-Zertifikat generieren und das Hosting dann auf https umstellen, ich glaube das ist einfach ein Häkchen irgendwo. Ansonsten hilft der Support da gerne weiter.

  • Auch ein Danke an Dich macrobat - damit hab' ich nicht gerechnet, dass das so einfach geht - dann bleibt nur noch die Sache mit dem verschlüsselten Versenden des Kontaktformulars zu erledigen - werd' mir diesbezüglich openssl anschauen - weitere Tips gern gesehen :) - am liebsten die mit dem "Häkchen"

  • ähm... Wenn das Kontaktformular per https:// aufgerufen wird ist doch bereits alles Ende-zu-Ende-verschlüsselt. Die POST Action muss selbstverständlich auch an https:// erfolgen.

    Und die Email sollte eigentlich heutzutage auch per SMTPS versandt werden. Ich gehe mal schwer davon aus, dass der MTA von 1&1 verschlüsselte Verbindungen unterstützt.

  • Na das jeder mitlesen kann, ist wohl ein bisschen weit hergeholt. Der jeweilige Provider der durchzulaufenden Infrastruktur (Switche, Router etc) kann mitlesen, ja. Aber nicht z.B. jemand anders, der wie die meisten hier sich per DSL oder Kabel ins Internet verbindet.

    "The biggest communication problem is we do not listen to understand. We listen to reply." - Stephen Covey


    Webseite und Blog ist immer noch - seit fast 20 Jahren - online.

  • Schau einfach mal in den Quelltext einer dieser E-Mails.

    Eigentlich sollte schon seit Jahren kein Mailserver mehr unverschlüsselte Mails senden.


    Beispiel:

    Received: from oms-m014e.mx.aol.com ([204.29.186.110]) by mail.xxx.net with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.89) (envelope-from <xxx@aol.com>) id 1ei0CJ-0002uw-D0 for xxx@xxx.net; Sat, 03 Feb 2018 16:58:01 +0100


    Lies: Verschlüsselt

  • > ein bisschen weit hergeholt. Der jeweilige Provider der durchzulaufenden Infrastruktur (Switche, Router etc) kann mitlesen, ja.

    > Aber nicht z.B. jemand anders, der wie die meisten hier sich per DSL oder Kabel ins Internet verbindet.

    Drum hab' ich auch "jeder auf dem Weg" geschrieben - und ab 25. Mai mag das wohl des guten zuviel sein:

    https://www.heise.de/ix/meldun…uer-Websites-3936980.html

    "... und aus dem in der DSGVO festgeschriebenen Grundsatz der Integrität und der Vertraulichkeit, der beispielsweise eine verschlüsselte Übertragung der Daten aus Kontaktformularen erzwingt"

  • Ich denke, das gerade der Versand mittels PHP-mail-Befehl an formular@mydomain.de hier ein Problem ist!?

    Code
    Received: from 85.128.62.35 (IP may be forged by CGI script) by infong1425.kundenserver.de 
    with HTTP id zLkwOh-1eNF2U3TfI-00PPw1; Sat, 03 Feb 2018 19:32:02 +0100

    Die Weiterleitung an meine private e-Mail-Adresse (hier max.mustermann@gmx.de) dürfte dann verschlüsselt erfolgen.

    Also wohl doch was zu tun!

  • Das erste ist innerhalb des Webservers. Also alles kein Problem ;)

    Wenn da dann auch noch HTTPS steht, ist alles vollkommen verschlüsselt

  • Nein, der Mail-Befehl übergibt die Mail einfach an den lokalen MTA des Webservers. Oder welcher auch immer eingestellt ist. Üblicherweise aber der lokale.

    PHP läuft ja auf dem Server, der Befehl also auch. Das ist einfach die Übergabe der Daten vom Webserver-Prozess an den MTA-Prozess.


    Wie gesagt, mach dir keinen Kopf: Den Webserver auf HTTPS umstellen und du bist auf der sicheren Seite (im wahrsten Sinne) :D

    • Offizieller Beitrag

    Schau einfach mal in den Quelltext einer dieser E-Mails.

    Eigentlich sollte schon seit Jahren kein Mailserver mehr unverschlüsselte Mails senden.

    Die Frage ist hier eher, wie der Schutzbedarf der übertragenen Daten einzustufen ist.


    Bei TLS Verschlüsselung ist ja der Transportweg zwischen zwei MTAs verschlüsselt (TLS ist ja Transport Layer Security). Im MTA selbst liegt die Mail unverschlüsselt in der Queue. Wenn der MTA des Providers auf dem Mailserver direkt auf den MTA Deines Providers geht, von dem Du mit IMAP (oder IMAPS) die Mails holst, ist das eine Sache. Wenn da infolge eines entsprechenden Mailroutings weitere Hops dazwischen sind, sehen die beteiligten MTAs immer die unverschlüsselte Mail. Das Risiko wäre vor Einschätzung des Schutzbedarfs einzustufen.


    Wenn Du vermeiden willst, das man auf den MTAs mitlesen kann, brauchst Du eine Verschlüsselung der Mail selbst. Entweder mit S/MIME, PGP oder einer eher selbstgebauten Lösung mit einer Verschlüsselung unter PHP.


    Sind das nur Web-Kontaktdaten und die Webseite ist nicht kommerziell, würde schon eine durchgehende TLS Verschlüsselung wahrscheinlich als ausreichend nach Stand der Technik angesehen werden,


    Gruß- Georg B.

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Also, wenn ich meinem Hoster nicht mehr trauen kann, sollte ich ihn wechseln.

    Ohne Ende-zu-Ende-Verschlüsselung liegt die Mail ja schlussendlich auch unverschlüsselt im Postfach.

    Und wer Zugriff auf die Mail-Queue hat, hat auch auf mein Maildir Zugriff.


    Wenn du das ganze ganz sicher haben willst:

    Sende das Formular nicht per Mail ab sondern schiebe die Felder in eine lokale Datenbank.

    Alternativ: Miete dir einen Rootserver und hoste Website und Mail auf der selben Maschine.

  • Auch wenn das Gros der Inhalte auf meiner Webseiten in der Ecke "Entdecken" zu finden und eher nicht­kom­mer­zi­eller Natur ist, handelt es sich um eine Firmenwebseite, so dass ich doch eine Verschlüsselung (vermutlich unter PHP) anstrebe - habe ja noch etwas Zeit. Am Wochenende hab' ich erst mal auf PHP 7.1 umgestellt. In openssl hab' ich auch schon reingeschaut, kann aber noch nicht behaupten, dass ich verstanden hätte, wie das zu benutzen ist.

  • Ich meinte eigentlich gesehen zu haben, dass ein, in einer HTML-Seite enthaltenes PHP-Script z.B. mit Mozilla mittles "Extras" -> "Web-Entwickler" -> "Seitenquelltext anzeigen" angeschaut werden kann - das gelingt mir aktuell nicht mehr - ist das ein neues "Feature" einer neueren Version des Mozilla oder lag ich da falsch und die PHP-Scripte einer HTML-Seite wurden noch nie vom Server ausgeliefert? Das würde dann bedeuten, dass man bei einer Verschlüsselung der Daten eines Kontaktformulars nicht umbedingt mit einem öffentliche/geheimen Schlüsselpaar arbeiten muss, also auch ein symetrische Verschlüsselung nutzen könnte!?

    • Offizieller Beitrag

    Ne, mit PHP geht das nicht, das wird immer serverseitig abgearbeitet. Das geht nur mit clientseitigen Scripts wie JavaScript

    Denn Feindschaft wird durch Feindschaft nimmermehr gestillt; Versöhnlichkeit schafft Ruh’ – ein Satz, der immer gilt. Man denkt oft nicht daran, sich selbst zurückzuhalten; Wer aber daran denkt, der lässt den Zorn erkalten. Sprüche von Buddha, aus dem ‹Dhammapada›.


    Mein Netz: Acorn | Atari | Milan | Amiga | Apple //e und IIGS | Macintosh | SUN Sparc | NeXT |SGI | IBM RS/6000 | DEC Vaxstation und Decstation| Raspberry Pi | PCs mit OS/2, BeOS, Linux, AROS, Windows, BSD | Stand-alone: Apple //c und III | Commodore 128D | Sinclair QL | Amstrad | PDAs

  • Ich wollte darauf hinaus, dass ich serverseitig unter PHP auch mit einem symetrischen Verschlüsselungsverfahren arbeiten könnte, wenn ein "Angreifer" meinen PHP-Code gar nicht zu Gesicht bekommt - umgekehrt wär mir das verwehrt, wenn ich damit rechnen muss, dass der Schlüssel meinem PHP-Programm entnommen werden kann - ich kann dann nur mit einem öffentlichen Schküssel, bzw. mit einem asymetrischen Verfahren eine sichere Verschlüsselung gewähren - und deshalb meine Frage - bleibt der PHP-Code

    grundsätzlich unsichtbar?