I'm dealing with a proprietary, legacy VMS (Video Management System) that is connected to IP cameras for remote surveillance.
The system is exposed on the public Internet on port 8016 and users are accessing it over a non-encrypted connection (mostly on mobile devices, using an app called RAS Mobile I). The protocol used for the communication is proprietary, not based on HTTP. The server supports authentication, but it uses a short numeric code and everything is transmitted clear-text. Needless to say, this is a huge security issue.
I've been asked to make the system more secure, but I can't think of any way to achieve that without requiring a VPN. A VPN is not an ideal solution because users are accessing the cameras on mobile devices 99% of the times (all Apple devices), and using a VPN would require them to: open the VPN app, start the tunnel, go back to RAS Mobile I, then open the VPN app again to close the tunnel.
Is there another way to add some layers of security and encryption to the system, without requiring a VPN connection?
For example: for another system that was communicating via HTTP, I've added a Nginx reverse proxy in front and enabled SSL and HTTP basic auth in the proxy.