NEWS
den ioBroker sicher machen
-
@ignis-draco auch dir ein Dankeschön für deine Erklärung.
Ich nutze den VPN Service der Fritzbox und bin somit eigentlich zufrieden.Was ich noch nicht verstehe, für was nun ein Zertifikat (https) überhaupt sinnvoll ist.
Vielleicht in einem Haushalt mit mehreren Personen (WG) wo man sich "hinter" dem Router etwas absichern möchte?
Ansonsten müsste ich ja gerade zur Zertifikaterstellung bzw. -erneuerung einen Port öffenen, oder? -
Durch ein Zertifikat (z.b. lets encrypt) kann man den Daten Verkehr zwischen Rechner und Server Verschlüsseln und verifizieren. Also sicherstellen das der Server der richtige ist und das die Daten nicht einfach mit belauscht werden können.
In einem Privaten umfällt (ohne Öffentlichen Port) ist es nicht zwingend Notwendig (Meine Meinung nach).Es gibt mehrere Wege ein Zertifikat zu erstellen.
-
Selbst erstellen ohne signatur (kostenlos)
Man hat alle Vorteile von z.b. https jedoch wird der Webbrowser meckern das er das Zertifikat nicht überprüfen kann. Dies kann man aber per Ausnahmeregelung (muss bei jedem benutzen Endgerät gemacht werden) umgehen. -
mit Signatur (kostenlos oder Teuer)
Das Zertifikat wird von einer Zentralen stelle unterschrieben. Dadurch kann der Webbrowser es überprüfen und man bekommt keine Warnmeldung.
Wenn man die Signatur von einer der großen Stellen bekommt dann ist das Zertifikat meist zwischen 1-5 Jahren gültig.
Man bekommt eine Datei die man auf den Rechner mit IoBroker packt diese Verfahren ist meinst Kostenpflichtig (ca. 200€).
Seit ein paar Jahren besteht die Möglichkeit kostenlos eine Signatur über lets encrypt zu bekommen. Diese Zertifikate sind "nur" 90 Tage gültig. Dies führt dazu das die Überprüfung Maschinell passieren muss. Bei der "Domain-Validierung"
die benötigt wird muss auf den Rechner eine Datei mit einem ganz bestimmten Inhalt erstellt werden die dann von lets encrypt überprüft wird[1]. Dies führt dazu das von lets encrypt eine Verbindung (Eingehende) zu dem Rechner aufgebaut werden muss. Also muss eine Portweiterleitung eingerichtet werden.Meiner Meinung nach ist der Zugewinn an Sicherheit viel kleiner als die Unsicherheit durch den offene Port.
Anders sieht es aus wenn man z.b. ein Webserver betreiben möchte (z.b. Nextcloud) der aus dem Internet erreichbar seinen soll dort sollte man zwingend ein Zertifikat verwenden und das darf natürlich auch ein lets encrypt sein da der Port ja für die Funktion schon offen seien muss.[1] Es gibt Programmen die sich um das regelmäßige erneuern kümmern. Wenn man das einmal eingerichtet hat passiert alles von alleine ohne das man was machen muss.
P.s. Ich habe extra den weg über ein eigenes Root-Zertifikat das man auf jedem Client installiert nicht erwählt.
-
-
@ignis-draco sagte in den ioBroker sicher machen:
Also ich bin sehr an Deinem Angebot interessiert.
[3] Wenn Interesse besteht kann ich hier auch mehr ins Detail gehen.
[4] hier im Forum gibt es ein paar gute Beispiele dafür. Bei Interesse würde ich auch meinen Bot mal vorstellen.Gruss Thomas
-
Um es einfach zu halten, bleibe bei deiner VPN Lösung, verwende keine Port Freigaben und setze ein Passwort für deinen Admin Benutzer, was dann automatisch dazu führt (außer du lehnst das im Menü explizit ab) das du https mit dem selbst erstellen Zertifikat deiner ioBroker Instanz nutzt.
Den Aufwand mit letsencrypt und co. kannst du dir sparen.
Damit hast du alles nötige erfüllt um deinen ioBroker abzusichern.
Grüße
TeNNo2k5 -
Hat jemand zufällig einen Weg gefunden auf iOS - Geräten, die Zertifikatswarnung zu umgehen?
Im Safari unter MacOS kann ich die Ausnahme hinzufügen, bzw. die Warnmeldung umgehen, aber unter iOS ist es mir bislang nicht gelungen.
Es wird lediglich die Seite "Die Seite ist unsicher" angezeigt und das war es dann.Zwar sind bei mir alle Ports dicht, aber etwas mehr Sicherheit kann ja nie schaden.
-
@stenmic sagte in den ioBroker sicher machen:
@ssw-mcor Beispiel:
Was hat das mit der FritzBox zu tun.Fritzbox (Adapter TR-064) sollte als Beispiel dienen - hier sind schließlich auch Login-Daten hinterlegt, ohne Diese, kein Zugriff !!!
Was das Internet angeht, laufen alle Adapter hinter dem Router (bei mir der Fritzbox), somit gehe ich mal davon aus, dass die gesamte Kommunikation/Datenaustausch verschlüsselt wird...
Siehe auch:
Allerdings hab ich auch keine Ahnung
-
@ignis-draco sagte in den ioBroker sicher machen:
Durch ein Zertifikat (z.b. lets encrypt) kann man den Daten Verkehr zwischen Rechner und Server Verschlüsseln und verifizieren. Also sicherstellen das der Server der richtige ist und das die Daten nicht einfach mit belauscht werden können.
@ignis-draco Vor ab, ich bin kein Netzwerkexperte, war mir bis eben aber sicher, daß ein lets encrypt Zertifikat (wie alle anderen Zertifikate auch) nichts zur Verschlüsselung beiträgt, sondern lediglich den Browser veranlaßt, bei einer https-Verbindung (also einer Verbindung, die auch ohne irgendein Zertifikat bereits verschlüsselt ist) keine Warnung anzuzeigen, weil er die Identität des Servers mit Hilfe des Zertifikats überprüft.
Ich wäre sogar soweit gegangen zu behaupten, daß ich auch einem Server, der meinem Browser bei einer https-Verbindung ein vertrauensvolles Zertifikat "zeigt" und der Browser ihm daher "vertraut" (also keine Warnung anzeigt), zusätzlich auch noch immer selber vertrauen muß, denn schließlich kann sich ja jeder (also auch ein "nicht seriöser Serverbetreiber") solch ein Zertifakt beschaffen - oder?
Gibt es nicht einen Unterschied zwischen Zertifikaten und Schlüsseln?
Liege ich mit meinem "sicher geglaubten Wissen" falsch?
-
Beim Verbindungsaufbau über https werden die Zertifikate dein eigenes und die vom Ziel Server werden dazu genutzt die eigentliche Verschlüsselung aufzubauen, zu einem Zertifikat gehört ein privater und ein öffentlicher Schlüssel.
Die öffentlichen Schlüssel werden zwischen beiden Seiten ausgetauscht, und durch ein Mathematisches Verfahren wird sichergestellt das nur der Server und der Client mit ihrem privaten und geheimen Schlüssel die eigentliche Verbindung entschlüsseln können.
Näheres dazu hier:
https://www.elektronik-kompendium.de/sites/net/1909031.htmAlso ja es ist egal woher die eigentlichen Zertifikate stammen solange Sie einem gewissen aktuellen Standard entsprechen, dein Betriebssystem und auch z. B. der Firefox Browser bringen von Haus aus eine Liste von Zertifizierungsstellen mit und nur deren Zertifikaten wird automatischer vertraut solange Sie gültig sind.
Und ja ein nicht „seriöser Serverbetreiber“ kann sich einfach z. B. ein kostenloses letsencrypt Zertifikat ausstellen, und somit Seine Webseite mit https anbieten ohne das beim User im Browser eine Fehlermeldung erscheint.
Es gibt auch Zertifizierungsstellen die kostenpflichtig sind und bei denen genau geprüft wird, wer denn da sich für welchen Dienst ein Zertifikat austellen möchte.
Nicht desto trotz ist letsencrypt ein super Service der den https Standard vorangetrieben hat.
-
@tenno2k5 Hm..., ich bin noch nicht überzeugt, denn so wie ich das verstehe, ist Dein Link https://www.elektronik-kompendium.de/sites/net/1909031.htm ja gerade die Beschreibung eines Verfahrens, daß z. B. für https eingesetzt wird, aber eben nichts mit einem erworbenen, selbst erzeugten oder auf einem Server installierten/bereitgestellten Zertifikat zu tun hat, sondern "nur" die Verschlüsselung realisiert.
Beim Verbindungsaufbau über https werden die Zertifikate dein eigenes und die vom Ziel Server werden dazu genutzt die eigentliche Verschlüsselung aufzubauen, zu einem Zertifikat gehört ein privater und ein öffentlicher Schlüssel.
Diese Deine Beschreibung kenne ich so nur für Email-Verschlüsselung. Das hat aber soweit mir bekannt, nichts mit https zu tun, sondern soll dafür sorgen, daß eine Email die (warum auch immer) auf ihrem Weg zum Empfänger irgendwo (zwischen)gespeichert wird, dort dann verschlüsselt liegt (also nicht von Personen mit Zugriff auf den Speicherort gelesen werden kann) und wirklich nur vom vorgesehenen Empfänger gelesen werden kann.
Ich bin noch immer der Meinung (laß mich aber gern eines Besseren belehren):
Verschlüsselung und Zertifikat sind zwei Paar Schuhe und für die sichere Kommunikation mit einem Server via https braucht keine Seite (schon gar nicht der Client. Woher soll das denn auch kommen, wenn man z. B. mit einer frisch installierten Maschine eine https-Seite im Browser aufruft?) ein Zertifikat, wenn ich dem Server vertraue. Ein Indiz, ob ich dem Server vertrauen sollte/darf ist dann vorhanden, wenn er ein anerkanntes (also vom Browser ohne Warnung akzeptiertes) Zertifikat vorweisen kann. -
Ach Gott Berufsschule ist lange her, vom vereinfachten Prinzip stimmt schon alles was ich geschrieben hatte bis auf „öffentlichen Schlüssel werden zwischen beiden Seiten ausgetauscht“
Für Https sendet nur der Server dem Client seinen öffentlichen Schlüssel beim TLS Handshake.
Und natürlich sind Zertifikate und Verschlüsselung zwei Paar Schuhe aber für Https mit TLS sowie es heutzutage gängig ist werden Zertifikate verwendet um einen symmetrischen Sitzungsschlüssel zu generieren.
Grüße
TeNNo2k5 -
@TeNNo2k5
@stenmic schreibt (und um seine Frage geht es ja letztlich in diesem Post):Mich würde z.B. sehr interessieren wie ich ein letsencrypt Zertifikat erstellen könnte und dieses einbinde.
Ist es ohne überhaupt ein Risiko? ich nutze viele Adapter wie Nuki oder BMW… werden die Passwörter bei deren Abfragen ohne Umstellung auf https unverschlüsselt übertragen?Daraus ergibt sich für mich, daß er glaubt, durch ein letsencrypt Zertifikat wird seine Verschlüsselung sicherer oder sogar erst möglich. Und bevor mir das nicht jemand nachvollziehbar beweist, sagt mir mein bisher (zugegebener Maaßen nur selbst) erlerntes Wissen, daß das nicht stimmt. https allein erledigt die Verschlüsselung. Da braucht er sich weder ein letsencrypt noch irgendein anderes Zertifikat zu beschaffen. Ein Zertifikat bringt ihm höchstens den Vorteil, daß sein Browser nicht mehr warnt, wenn er oder jemand anderes auf seinen Server (ioBroker) zugreift. Mindestens in Firefox kann er diese Warnung für genau seinen Server / ioBroker abschalten (denn er wird ja wohl seinen eigenem Server vertrauen). Damit würde ihn dann auch ohne Zertifikat diese Browserwarnung nicht mehr nerven.
Wäre ein Zertifikat für https-Verschlüsselung erforderlich, könnte ich nicht mehr erklären, daß jeder, der auf einem Rechner z. B. Windows oder Linux installiert hat, sofort (also ohne, daß er das Wort Zertifikat überhaupt schon einmal gehört, geschweigedenn eines beschafft / installiert hat) via https Internetseiten aufrufen kann.
Meine Empfehlung an @stenmic wäre gewesen: Solange wie Dich (oder wer auch immer auf Deinen Server / ioBroker zugreift) die Browserwarnungen nicht nerven, brauchst Du Dich um keinerlei Zertifikate zu kümmern.
Gibt es einen Experten zu diesem Thema, der hier mitgelesen hat und eindeutig sagen kann, ob das / was stimmt?
Vielleicht kann ja auch @stenmic noch´mal sagen, ob ich seinen Post überhaupt richtig interpretiert habe und ob ihm meine "Einmischung" überhaupt irgendetwas bringt, sonst würde ich mich einfach wieder ´raushalten. (;-)
-
Es gibt zwei Arten von Zertifikaten. Die einen zertifizieren lediglich die Website, die anderen auch den Inhaber. Mit der Verschlüsselung haben beide nichts zu tun. Die Verschlüsselung sorgt nur dafür, dass es keine Man-in-the-Middle-Angriffe geben kann. Gegen Phishing hilft sie nicht. Dafür dienen (Inhaber-)Zertifikate, die sicherstellen sollen, dass man auch mit der korrekten Website kommuniziert.
-
@dr-bakterius Danke, dann "markiere" ich mein bisher nur als sicher geglaubtes Wissen jetzt als verifiziert. (;-)
-
Vielleicht drücke ich mich zu kompliziert aus, bei dem Versuch ein kompliziertes Thema vereinfacht darzustellen deswegen verlinke ich einfach ein paar Webseiten wo das genauer beschrieben wird:
https://www.cloudflare.com/learning/ssl/what-is-an-ssl-certificate/
https://de.wikipedia.org/wiki/Transport_Layer_Security
https://www.cloudflare.com/learning/ssl/what-happens-in-a-tls-handshake/Grüße
TeNNo2k5 -
@stenmic
Direkt ins Internet sollten nur Applikationen gestellt werden, die dafür gedacht sind.
Um die Sicherheit zu gewährleisten müssen diese Applikationen sehr gut getestet werden. Entdeckte Probleme sollten schnellstens behoben werden.
Iobroker gehört meiner Meinung nach nicht dazu. Ich denke auch nicht das irgendein Programmierer hier aus dem kernteam hier eine Freigabe dazu erteilen würde.
Daher kannst du eigentlich nur per VPN drauf zugreifen.
SSL ist nur eine Transportverschlüsselung diente nur dazu das Ausspähen von Daten auf dem Weg zwischen Client und Server und zurück abzusichern. Der Port steht trotzdem offen im Internet und kann da angegriffen werden.
Auch ein Reverse Proxy ist keine geeignete Maßnahme einen Port abzusichern.