¿Cómo protejo holísticamente un servicio web de la red y los ataques MITM?

1

Tengo varios servicios web financieros a los que se accede a través de HTTPS, sin embargo, los dispositivos cliente pueden acceder a los servicios web a través de WiFi no confiable, a través de proxies cuestionables, y posiblemente de nodos de salida ToR.

Pregunta

¿Cómo puedo proteger la llamada a la API de Javascript, la respuesta y la identidad del usuario?

Específicamente, estoy interesado en garantizar un no holgazanismo integral, la confidencialidad, la integridad de la conexión de extremo a extremo.

Mi objetivo es hacer que un servicio web esté disponible desde sitios web de escritorio y también aplicaciones móviles.

    
pregunta random65537 29.12.2012 - 16:57
fuente

2 respuestas

2

TLS / SSL

El mínimo de seguridad que debe tener un servicio web es que esté disponible a través de conexiones HTTPS. El certificado debe ser válido (no vencido, no autofirmado).

Lo ideal es que el servicio HTTP esté deshabilitado.

Usar encabezados HTTPSTS

El encabezado HTTP Strict Transport Security debe agregarse para garantizar que todas las solicitudes futuras a ese host se produzcan a través de HTTPS. Esta tecnología ayuda a prevenir ataques del hombre en el medio con herramientas de ataque como SSLStrip.

Asegúrese de que TLS esté configurado correctamente

Pruebe la configuración TLS del servidor y resuelva las advertencias críticas según corresponda.

Agregar crucero a las respuestas de JSON

Google, Facebook y otros utilizan el navegador Unparsable para prevenir ciertos ataques de javascript.

Establezca la marca de seguridad en todas las cookies

La configuración de la marca de seguridad en todas las cookies evita la "filtración" involuntaria de datos valiosos a los posibles atacantes.

Configurar solo HTTP para todas las cookies de autenticación

El indicador Solo HTTP es incorrecto y no significa que la cookie se enviará de forma segura, sino que significa que la cookie no está disponible para Javascript y solo está disponible para el consumo del servidor.

Bloquea el uso por dirección IP

Dependiendo de la audiencia objetivo, restringe el uso del servicio por la IP de origen.

Monitor

Supervise las solicitudes por segundo, por usuario y las fallas por segundo, por usuario.

    
respondido por el random65537 29.12.2012 - 17:10
fuente
1

Lo siguiente se usa con menos frecuencia, pero mejora mi respuesta anterior

Certificados de cliente

Un certificado de cliente cifrará la sesión TLS completa con "autenticación mutua" y protegerá la sesión de los ataques MITM y se puede usar en redes que no son de confianza.

Usar DNSSec

Utilice DNSSec para todos los dominios DNS utilizados en la aplicación, es decir, la ubicación del servicio y todas las rutas CRL, AIA y OCSP en la cadena

VPN

Las llamadas a la API a través de una VPN pueden mejorar la seguridad, y si la VPN requiere certificados implementados localmente, el beneficio de seguridad puede ser el mismo que el de los certificados de cliente.

Una variación de esta respuesta es usar ToR con el servidor de destino que tiene una dirección .onion, pero no se recomienda para el público en general.

Si el servicio web está utilizando SOAP, o WS-Security considera usar seguridad de mensajes. La seguridad de los mensajes se ha descrito como la interpretación WS- * de TLS pero dentro de una carga útil XML. Eso significa que estas llamadas SOAP se pueden usar a través de HTTP simple y se pueden transmitir a través de varios intermediarios que no son de confianza.

Advertencia para usuarios de Javascript

No intentes usar SOAP con seguridad de mensajes con Javascript. No hay manera de crear y administrar de manera segura el par de claves que se necesita para los mensajes SOAP. Además, existen otras preocupaciones como el uso de dominios cruzados, el análisis XML, etc.

    
respondido por el random65537 29.12.2012 - 17:30
fuente

Lea otras preguntas en las etiquetas