Ich befinde mich in einer Situation, in der ich (physische Hardware-)Widgets erstellen möchte, die an ein LAN angeschlossen werden und als Webserver fungieren und Inhalte an Webclients bereitstellen, die sich ebenfalls im LAN befinden.
Der Datenverkehr von den Widgets zum Client sollte verschlüsselt sein, aber dabei besteht das Problem, dass ich weder über das LAN noch über den Client Kontrolle habe. Das bedeutet, dass es unmöglich ist, eine lokale Zertifizierungsstelle einzurichten oder DNS-Änderungen vorzunehmen.
Ist es möglich, eine Möglichkeit einzurichten, wie das Widget dem Webclient verschlüsselte Daten bereitstellen kann?
Es ist wahrscheinlich möglich, Zertifikate für jedes Gerät zu erstellen und zu veröffentlichen, wenn dafür ein Mechanismus geschaffen wird, der dies ermöglicht (gebunden an eine Domäne, die mir gehört, beispielsweise widgetN.thedomainiown.com). Gehen Sie davon aus, dass alles im LAN das große weite Internet sehen kann.
Ich habe die folgenden Strategien in Betracht gezogen:
- Erstellen Sie wie oben beschrieben für jedes Gerät ein Zertifikat und versenden Sie das Widget mit diesem installierten Zertifikat. Ich verstehe, dass dies nicht funktioniert, da es zu einer Diskrepanz beim Zertifikat-Hostnamen führen würde.
- Lassen Sie sowohl das Widget als auch den Client über einen vertrauenswürdigen Internetserver kommunizieren, den ich kontrolliere.
Im zweiten Extremfall können alle Daten über die sicheren Verbindungen übermittelt und vom vertrauenswürdigen Server weitergeleitet werden. Ich nehme an, dass dies das Problem lösen würde, es ist jedoch aus Gründen der Bandbreite und Latenzzeit nicht praktikabel.
Ist es stattdessen möglich, den vertrauenswürdigen Server zu verwenden, um die verschlüsselte Verbindung zwischen Widget und Client einzurichten? Ich habe darüber nachgedacht, hierfür JavaScript-Verschlüsselung zu verwenden, aber alles, was ich gelesen habe, sagt mir, dass JavaScript-Verschlüsselung einfach schlecht ist und niemals verwendet werden sollte. In diesem Fall ist mir nicht ganz klar, was das Problem wäre, daher würde ich mich über Aufklärung freuen.
In diesem Fall würde der vertrauenswürdige Server eine Webanwendung erstellen, die das Verschlüsselungsprotokoll und die erforderlichen Zertifikate enthält, die dann zur Abwicklung der Verschlüsselung über das LAN verwendet werden können. Das heißt, der vertrauenswürdige Server stellt die Webseite bereit, die zur Abwicklung des lokalen Datenverkehrs verwendet wird (ist dies angesichts der Same-Origin-Policy überhaupt möglich?).