VPN ou TLSv1 para proteger um protocolo de programas do dispositivo de campo para o mainframe

5

Estou trabalhando em um produto que exige que dispositivos existam em qualquer lugar do mundo conectado à Internet por meio de modems de célula ou em linhas de WLAN que se comuniquem com um servidor que existe em outro lugar do mundo.

Ao designar a parte de rede do programa, não consigo definir qual é a melhor opção para proteger a comunicação entre o servidor e o dispositivo final.

Nas minhas pesquisas, venho com duas opções.

Opção 1: Usando um host para hospedar a conexão VPN entre os dois dispositivos.

Prós: O software VPN parece estar bem testado e não requer programação extra para o protocolo de rede. O departamento de TI está mais confortável com isso por causa do uso de softwares já testados e confortáveis com o vpn.

Contras: Como meus dispositivos finais são linux em plataformas OMAP, compilar o software vpn, se ainda não estiver pronto, pode ser complicado. Lidar com firewalls e roteadores por trás da rede de dispositivos finais. A configuração da conexão pode ser complicada.

Opção 2: Implementando o protocolo TLSv1 no meu programa para lidar com a criptografia.

Prós: Não requer software adicional para ser executado no dispositivo. Apenas confia nas bibliotecas de criptografia como uma dependência. Não precisa se preocupar em lidar com nats e firewalls porque o protocolo exigirá apenas que uma porta tcp seja aberta.

Contras: Codificação extra para o software de rede. A TI é cética porque nosso programa é responsável por proteger o protocolo.

FYI: Para implementar o TLSv1 eu usaria o link

    
por D. Mathis 14.10.2011 / 16:19
fonte

3 respostas

2

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.

    
por 06.11.2011 / 22:33
fonte
1

Meu conselho seria descobrir que tipo de estilo de comunicação é necessário, de uma maneira ou de duas maneiras. Se você está olhando para um padrão de comunicação unidirecional, provavelmente é seguro dizer que use algo lightweigth e pow padrão como https como TLS. Se, no entanto, existir uma comunicação bidireccional exigida na vpn, é uma excelente opção. Grande desvantagem das conexões vpn é que a configuração da conexão requer bastante tempo (relativamente falando). Se o usuário tiver que esperar por essa configuração, isso seria menos que o ideal. Nesse caso, o TLS personalizado seria a opção preferível.

    
por 23.10.2011 / 15:07
fonte
0

Usar a VPN e adicionar o recurso TLS ao seu programa são duas respostas independentes, lidando com diferentes camadas de protocolo entre si.

A VPN protege os pacotes de rede entre dois hosts. Por outro lado, o recurso TLS do seu programa protegerá a comunicação entre os dois programas independentemente dos protocolos subjacentes , incluindo a camada física (WLANs ou links de modem).

Se você está tentando usar seu programa onde as VPNs não estão disponíveis, o TLS é obrigatório.

    
por 21.10.2011 / 05:44
fonte