Vorrei il tuo consiglio su quale sia l'approccio migliore per la sfida tra le mie mani ...
Sto sviluppando un'estensione di un software di terze parti. Sto facendo il mio sviluppo usando Python / Twisted / Autobahn. I risultati finali devono essere un server WebSockets che supporta comunicazioni crittografate / protette. Gli utenti riceveranno questa estensione e la installeranno sulle loro macchine, quindi possono essere 'qualsiasi' nome host, IP, ecc. Non noti in anticipo.
Il client (WebSocket) di questa estensione software è un'app per iOS (che utilizza SocketRocket) che richiede all'utente di fornire l'IP e la porta della propria installazione a cui connettersi. L'app per iOS proviene dall'app store di Apple, quindi non è personalizzata per utente.
In questo scenario qual è il modo migliore per rendere questa connessione tra l'app iOS (client Websocket) e l'estensione software (server Websocket) sicura / criptata?
Inizialmente pensavo che i certificati, avendo wss forzato le connessioni sul WebSocket Server, ma questo richiede che ogni utente crei il proprio certificato e non so se il dispositivo iOS lo "accetterà" e lo "userà"?
Ho pensato di cambiare l'architettura e di avere un livello intermedio, rendendo l'estensione un client websocket avendo così un unico punto di contatto, questa idea è stata respinta.
Qualche alternativa dovrei prendere in considerazione?
Grazie!