Was muss ich als Programmierer zu SSL beachten?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Mit SSL ist heutzutage TLS gemeint (ist aber vom Prinzip her das gleiche mit gemeint).

was muss ich beachten wenn ich jetzt programmiere? Muss ich nicht irgendetwas einrichten so das alles encrypted wird? Reicht es einfach das Zertifikat zu kaufen und zu denken das alles verschlüsselt abgeschickt wird in meinen Formularen vom Browser zum Server und wieder zurück?

Als PHP Programmierer musst du dich nicht darum kümmern, die Verschlüsselung der Antwort, die letzendlich vom Browser empfangen wird, übernimmt die Serversoftware hinter der die PHP Skripte laufen. (Apache, Nginx ...)

Warum schickt der Browser nicht voreingestellt alles verschlüsselt

Ein Browser sendet standardmäßig nicht verschlüsselt, da es damals, als das ARPA-Net (Vorgänger des Internets) entstand, nicht nötig war; man vertraute sich Gegenseitig.
Mit dem Wachsen des Internets nahm auch die Kriminalität zu: Angreifer können sich zwischen die Verbindung von Client und Server setzen, und so die Daten abgreifen und auslesen, aber auch modifizieren (Fachwort: MITM Angriff).
Eine Verschlüsselung hätte aber auch nichts gebracht, da sich der Angreifer als Server ausgeben kann und einfach selbst einen anderen Verschlüsselungsschlüssel (:P) festlegt. Er kann also nach wie vor die Daten klauen.
Deshalb wurden die SSL-Zertifikate eingeführt, die die Identität des Servers bestätigen.
SSL-Zertifikate kosten (bzw. kosteten) aber immer viel Geld, da mit ihnen auch eine große Versicherungssumme verbunden ist. Mit HTTP/2 soll in Zukunft alles verschlüsselt sein.

reicht es wenn ich jetzt ein SSL Zertifikat habe alle Passwörter die eingegeben werden und mit meiner MySQL Datenbank abgeglichen werden einfach mit post zu schicken?

Solange die HTML Seite, auf der sich das Formular befindet, verschlüsselt ankommt (also nicht manipuliert werden kann) und das Formular zu einer verschlüsselten URL zeigt, ist die Verbindung sicher. Die (Session-)Cookies natürlich auch.
Am Rande: Die Passwörter in der Datenbank sollten natürlich auch verschlüsselt sein mit einem Hashverfahren wie bcrypt (https://secure.php.net/manual/de/function.password-hash.php)

Wie sieht der Industrie Standard aus?

Genau so :)

Wie macht es zb Facebook wenn man sich einloggt?

Auf der Facebook Website funktioniert das genauso: Beim Login werden die Daten verschlüsselt übertragen und man erhält entweder einen Fehler oder einen Cookie. Mit dem einzigen Unterschied, dass Facebook kein PHP benutzt ;)

Geht alles über PHP?

Wie gesagt hat PHP damit nichts zu tun, sondern der Webserver. Als Entwickler sollten man allerdings dafür sorgen, das die Verschlüsselung auch genutzt werden kann (wie oben erwähnt: Alle Daten verschlüsselt abrufen, nicht nur einen Teil).


Zusammenfassung: Verschlüsselung hat dich kaum zu kümmern, sorge einfach dafür, dass nicht nur ein Teil, sondern alles verschlüsselt übertragen wird.


Viel Spaß beim Verschlüsseln! :P


Fast hätte ich es vergessen: Die Website sollte natürlich überhaupt nicht mehr unverschlüsselt (über http) erreichbar sein. Frage am Besten sogar nach, ob bei dir HSTS aktiviert werden kann. Das sorgt nochmal für deutlich mehr Sicherheit.

Zuerst einmal rate ich von der nutzung von ssl ab. Lieber tls. Selbst dann sind noch nicht alle cipher suites "gut". Da solltest du später auchnochmal am webserver nachstellen welche erlaubt werden sollen (cipher suites). Wenn du ein zertifikat willst das als vertrauenswürdig anerkannt wird von den gängigen browsern kaufst du dir eins für deine domain meist mit ner laufzeit von einem jahr von ner vertrauenswürdigen zertifizierungsstelle. Nen selbstsigniertes würde es aber von der sicherheit her auch tun bzw wäre sicherer wenn du längere schlüssel verwendest. Das zertifikat(inkl öffentlichen Schlüssel) inkl privatem schlüssel und evtl (wozu ich rate..) noch die dhparams gibst du dann in der webserverconfig an und der regelt vom schlüsselaustausch bis hin zum eigentlichen application data exchange alles für dich. Da du ja scheinbar keinen webserver entwickelst hast du was deine programmierung mit js,html,css,php angeht nichts spezielles zu beachten (y)

Also SSL wird am Webserver terminiert. Du kommst mit http auf Port 80 an un der Webserver redirected dich dann nach 443. Beide Ports mussen also schon mal offen sein.

Wie ssl am Webserver eingerichtet wird hängt von der Syntax ab und du musst natürlich den Key und dein Zertifikat hinterlegen.

Zuerst generierst du den request .csr und dein Key. Der request geht dann an eine certificate authority kurz CA und die signen dann dein request wenn du dich authentifiziert hast gegenüber der ca. Sofern geschehen bekommst du dann dein .crt oder .pem zB von der CA zurück.

Desweiteren musst du cipher suits und die tls Versionen angeben. Da gibts sichere aber auch unsichere Kombination. Ich hatte bspw Probleme mit Firefox und bestimmten suits.

Welches certificate du brauchst hängt von den Domains ab die du damit signen willst. Also mehrere Domainnamen im Zertifikat oder hast du zB viele subdomains? Hinzu kommt wie lange das cert gültig sein soll.

Letsencrypt benutze ich seit ein paar Monaten, damit kannst du kostenlos browservalide Zertifikate mit ausstellen, die zwar nur 90tage gültig sind, aber mit nem cron kann man das reibungslos immer weiter verlängern. Dazu brauchst du aber root auf deinem Server.

Wie gesagt du musst nicht unbedingt Geld dafür ausgeben aber dazu Brauch es mehr Expertise und die technischen Voraussetzungen mit entsprechenden Userrechten.

Ich hoffe du kannst damit was anfangen.

Cheers

Also deine Applikation weiß nix vom TLS deswegen musst du beim coden erst mal nichts beachten

0

Müssen IP Adressen, die gespeichert werden, SSL verschlüsselt werden laut DGSVO?

Hallo,

es gab schon erste Abmahnungen wegen DGSVO weil ein Optiker ein Kontaktformular nicht SSL verschlüsselt hatte.

  1. Jetzt stelle ich mir folgende Frage: Wenn ich eine Webseite betreibe wird ja automatisch die IP Adresse in den Serverlogs gespeichert. Ist das ein Verstoß gegen die DGSVO, wenn ich keine SSL Verbindung benutze (weil IP Adressen ja personenbezogene Daten sind)?
  2. Oder wenn ich beispielsweise ein PHP Umfrage Skript auf meiner Webseite bastele, mit der ich den Umfragewert und die IP Adresse in der Datenbank speichere, handle ich dann rechtswidrig, wenn ich die Umfrage nicht mit einer SSL Verbindung verschlüssele?
  3. Noch eins: Wenn ich ein Formular mit Pseudonym, E-Mailadresse und Homepage erstelle, handle ich dann auch rechtswidrig, wenn ich die Daten ohne SSL Verbindung speichere? (Das sind ja keine personenbezogenen Daten oder doch?)

Danke für jede Antwort.

...zur Frage

Tee aus Japan importieren und hier online Handeln?

Hall zusammen, ich bin neu und war noch nie Unternehmer zuvor habe also recht wenig Ahnung. Deshalb frage ich euch was zu beachten ist. Der Plan ist Tee aus Japan in großer Menge: 5-10KG zu importieren, hier in Deutschland im Wohnzimmer kühl Lagern und online zu verkaufen. Hat jemand Erfahrungen damit? Was ist zu beachten?

  • Was ist bei Lebensmittelhandel zu beachten?
  • Wie sieht es mit dem Zoll aus? Bleibt es stecken? Wie Vermeide ich, dass es stecken bleibt?
  • Der Tee ist in Japan BIO Zertifiziert, gilt das Zertifikat auch hier? Wenn nein, wie bekomme ich das BIO Zertifikat?
  • Muss ich irgendwelche Laborteste hier machen?
  • Welche Zertifikate/Genehmigungen muss ich beantragen?
  • Welchen Unternehmens-Typ muss ich anmelden? Reicht ein Kleinunternehmen?

Ich erhoffe mir durch die Frage hier, dass sich jemand meldet der schon etwas ähnliches gemacht hat und von ihm berichten kann, wass für komplikationen es gab, was es zu bearten gibt, was er gerne vorher gewusst hätte.

Gerne könnt ihr mich auch auf weitere Links verweisen wo ich mich einlesen kann. Vielen Dank !!

...zur Frage

Digitales Zertifikat - was muss ich beachten?

Ich habe diese mail in meinem Web-Postfach vorgefunden. Was heißt das konkret und was sollte ich tun bzw. nicht tun. Was genau ist ein Sicherheitszertifikat und wofür benötigt man es? Was ist "PGP"?

Bitte für einen Laien verständlich erklären - danke!

Digitales Zertifikat
Sehr geehrte Frau xy,
in einigen Monaten stellt WEB.DE die E-Mail-Verschlüsselung mit S/MIME ein.
Bereits in Kürze werden deshalb keine neuen Zertifikate für das S/MIME-Verschlüsselungs­verfahren mehr aus­gestellt. Alle E-Mails, die mit früheren Zertifikaten verschlüsselt wurden, lassen sich dann jedoch noch über externe E-Mail-Programme (z.B. Outlook, Thunderbird) entschlüsseln.
Zu diesem Zweck können Sie hier alle Zertifikate herunterladen:
xy
Aufgrund seiner Verbreitung sowie der einfacheren Anwendung empfiehlt sich der Umstieg auf PGP als sichere Alter­native zur bisherigen Verschlüsselung.
Mit freundlichen Grüßen
Ihr
WEB.DE Kundenmanagement
...zur Frage

Warum bleibt die Website auf http obwohl ich das SSL Zertifikat habe?

Hallo,

ich habe für einen Bekannten eine Website erstellt und habe für diese Seite auch das SSL Zertifikat erworben.

Sobald ich die Website mit Https:// eingebe funktioniert es, aber sobald ich die Website bei Google oder normal im Browser eingebe kommt dennoch http.

Wie kann ich es umstellen, damit automatisch immer https erscheint?

Vielen dank im Voraus!

...zur Frage

Website hat starken Ranking Verlust nach Umstellung auf https://?

Hallo liebe Gutefrage.net Community,

ich besitze eine kleine Nischenseite und habe diese vor einer Woche mit einem SSL-Zertifikat versehen. Seit diesem Zeitpunkt sind starke Rankingverluste zu beobachten und ich fiel mit einem Keyword von Platz 8 auf platz 50 und meine Hautpseite rankt so gut wie gar nicht mehr.(Damals wusste ich noch nicht das vor der Umstellung auf https:// einiges zu beachten ist.) Außerdem werden Seiten in Google für bestimmte Keywords angezeigt, die überhaupt nicht auf das Keyword optimiert sind. Gliedert sich das ganze nach der Zeit wieder auf das alte Ranking zurück oder kann ich aktiv etwas tun?

Vielen Dank für Antworten!

...zur Frage

Weitere Programmiersprachen lernen oder vertiefen?

Seit ich 12 bin, programmiere ich schon. Angefangen mit HTML, CSS, JS (JQuery), dann PHP und MySQL. Seit 3 Jahren beschäftige ich mich mit Java, XML und in der Schule habe ich auch Visual Basic gelernt.

Ich bin mir nur nicht sicher ob ich diese Sprachen wirklich gut kann.

HTML, CSS, SQL und XML kann ich 100% und kenn fast alle Befehle.

Zu PHP, JS, Java und VB.NET: Ich kann alle Foren, Blogs, Shops in PHP programmieren, Animaion erstellen, AJAX anwenden und mit JQuery arbeiten und ich entwickle seit der letzten Zeit Apps (auch für Smart Watches).

Trotzdem habe ich irgendwie das Gefühl das ich diese Sprachen nur oberflächlich kenne. Wie kann ich mein Wissen vertiefen? Im Internet finde ich nur Seiten für Anfänger. Oder reicht es und soll ich mit einer neuen Sprache anfangen?

Folgende Möglichkeiten hätte ich: Python, C#, C++. Ich würde zunächst C# lernen, soll einfach sein, da es ähnlich ist wie Java und dann C++, welches sehr umfangreich sein soll.

Soll ich nun mit neuen Programmiersprachen anfangen oder mein Wissen in den anderen Sprachen vertiefen...

...zur Frage

Was möchtest Du wissen?