Also, wenn ich Ihre Frage richtig verstanden:
- Sie haben eine Web-Anwendung, die Cross-Origin-Anforderungen zugegriffen werden kann.
- Diese Anwendung wird in lokalen Netzwerken bereitgestellt, d. H. Auf sie wird über eine nicht öffentliche IP-Adresse zugegriffen (die Maschine, die in diesem Netzwerk arbeitet, ich nenne sie "lokaler Server").
- Sie möchten die Verbindung zwischen dem Client und dem lokalen Server schützen, vorzugsweise mit SSL.
Sie können das tun! Stellen Sie sicher, dass derjenige, der die Kontrolle über den lokalen Server hat, ein SSL-Zertifikat für somesubdomain.SomeDomainHeControls.com
erhält, dieses Zertifikat auf dem lokalen Server bereitstellt und diese Subdomäne auf die lokale IP verweist. Wenn auf die Anwendung dann über diese Adresse zugegriffen wird, erhalten Sie keine Warnungen und die Verbindung wird gesichert. Solange der Client nur auf Ihre Anwendung zugreift, die diese Domäne verwendet, ist dies sicher, da nur der Besitzer des Servers Zugriff auf den Schlüssel hat.
Wenn Sie den lokalen Server selbst steuern (niemand kann den privaten Schlüssel extrahieren), können Sie einfach ein Wildcart-Zertifikat für *.aDomainForThisPurposeThatYouControl.com
erhalten und für jede Bereitstellung eine Subdomäne erstellen, die auf die entsprechende IP verweist.
Wenn Sie den lokalen Server nicht kontrollieren und wer auch immer sein eigenes Zertifikat nicht erhalten kann, können Sie einzelne Zertifikate für sie erhalten. Dies würde bedeuten, dass Sie deployment1.aDomainForThisPurposeThatYouControl.com
erstellen, auf die lokale IP verweisen, ein reguläres Einzelhost-Zertifikat für diesen Namen erstellen und es auf dem lokalen Server installieren. Aus Sicherheitsgründen sollten Sie diese Domain nicht für andere Zwecke verwenden, da Sie private Schlüssel für Hosts in dieser Domäne ausgegeben haben.
Sie können die Anwendung auch selbst auf einem externen Server unter Ihrer Kontrolle hosten, wenn die lokalen Netzwerke Zugriff auf das Internet haben. Stellen Sie regelmäßig SSL für diesen Server bereit. Nachdem die Anwendung selbst sicher vom externen Server geladen wurde, kann sie einfache HTTP-Anforderungen stellen, um Daten von einem lokalen Server zu erhalten. Dies wird eine Warnung mit "gemischten Inhalten" auslösen, aber keinen SSL-Fehler. Sie können dann JavaScript-basierte Verschlüsselung verwenden, um die Daten zu schützen. Wenn Sie beispielsweise nur Daten schützen möchten, die vom Client zum Server gesendet werden, kann Ihr externer, vertrauenswürdiger Server dem Client vertrauenswürdige JS-Krypto-Bibliotheken und den öffentlichen RSA-Schlüssel des internen Servers (über die SSL-authentifizierte Verbindung) bereitstellen. dann verschlüsseln Sie einfach Ihre Daten auf der Clientseite, bevor Sie sie über einfaches HTTP senden. Theoretisch könnten Sie sogar einen SSL-Client in JavaScript erstellen, dem Client das Skript und ein vertrauenswürdiges Serverzertifikat bereitstellen, einen HTTP- oder WebSocket-Tunnel verwenden und über diesen Tunnel eine eigene SSL-Verbindung zwischen dem lokalen Server und dem JavaScript-Client herstellen . Dies ist natürlich nicht sehr praktisch, aber sicher (da der JS über eine sichere Verbindung heruntergeladen wird). Sie können auch ein kleines JavaScript vom vertrauenswürdigen Server laden, der dann den Rest vom lokalen Server herunterlädt, eine Signatur/einen Hash prüft und ausführt. Megaupload macht so etwas.
"Die Anwendung verwendet nur Javascript und ich weiß nicht, wie ich es schützen kann" Ich würde sagen, wie Javascript eine Client-Seite Sprache ist, können Sie es nicht sichern! –
Welche Rolle spielt WIFI in diesem Setup? – likeitlikeit
Die Verwendung von SSL (HTTPS) bietet eine sichere Kommunikation (Integrität und Vertraulichkeit), auch wenn Ihre Webanwendung über ein offenes WLAN zugänglich ist, da alle HTTP-Anfrage- und Antwortdaten verschlüsselt sind, bevor sie über das Netzwerk gesendet werden. Die Sicherung eines WLANs erfordert die Verwendung eines der Protokolle für die drahtlose Sicherheit, Wired Equivalent Privacy (WEP) oder Wi-Fi Protected Access (WPA) (http://en.wikipedia.org/wiki/Wireless_security), die unabhängig von der Verwendung von SSL verwendet werden, um Ihr offenes WLAN zu schützen. Beachten Sie, dass SSL zwischen Ihrem Client und Ihrer Webanwendung über das Internet Schutz bietet. –