A principal troca é em quem tem a responsabilidade de garantir a segurança.
-
Se você confiar em uma VPN, a responsabilidade estará no pessoal de operações para garantir que eles tenham configurado uma VPN. Se eles esquecerem ou desconfigurarem a VPN, você estará silenciosamente inseguro, mas provavelmente ninguém notará, porque o aplicativo continuará funcionando.
-
Se você incorporar criptografia de ponta a ponta em seu aplicativo (por exemplo, usando SSL / TLS), a segurança será automática. Não há nada para esquecer e menos potencial para erros de configuração; você pode conseguir que a segurança esteja ativada por padrão ou, pelo menos, que o software se recuse a iniciar se não puder negociar uma conexão criptografada segura. No entanto, essa abordagem provavelmente requer mais esforço para codificar.
Eu decidi com base em quantas instalações do seu sistema você planeja fazer. Se você tiver apenas uma instalação, e seu pessoal de operações estiver disposto a assumir o fardo extra de configurar e manter a VPN e configurar processos / listas de verificação apropriados para detectar erros de configuração, a abordagem da VPN provavelmente será mais simples e mais barato, então é isso que eu usaria. Se você tiver muitas instalações, recomendo implementá-lo em seu software: você fará isso uma vez e salvará todos que instalarem o software de lidar individualmente com a VPN; e a segurança resultante será mais confiável, porque há menos risco de erros de configuração.