¿Qué tan seguro puede ser el inicio de sesión basado en IP?

8

Por varios sitios y libros de seguridad, entiendo que la seguridad basada en IP (con lo que quiero decir: el usuario es verificado solo por la dirección IP) es una mala idea. Una de las razones es obvia: varios usuarios reales pueden usar la misma dirección IP.

Nuestra idea no es nueva: queremos una validación por única vez y, a partir de ese momento, permitir que cualquier computadora en un determinado rango de IP tenga acceso de edición ligera a un sitio web (considere: todos los empleados de una empresa que están dentro de ese rango). Además, queremos poder configurar esto de antemano en el servidor receptor.

  • Entiendo que es posible y fácil falsificar una dirección IP
  • Una dirección IP falsificada no puede recibir una respuesta de su servidor
  • Cuando se encuentra detrás de un proxy o enrutador, ¿hay alguna forma relacionada que me permita identificar al usuario / sistema de origen original, es decir, algo similar al encabezado HTTP X-Forwarded-For ?

Me interesa especialmente el segundo artículo. Según Wikipedia, es muy difícil, pero no imposible, detectar el paquete de respuesta de una dirección IP falsificada. Sin embargo, no especifica lo que se necesita.

¿Qué recomendaría siempre que el requisito sea poder configurar este IP basado (o relacionado)?

    
pregunta Abel 29.03.2012 - 20:02
fuente

3 respuestas

6

No. Esto probablemente va a ser débil. Además, en ciertos casos la suplantación de IP es mucho más fácil de lo que indica su pregunta. Por ejemplo, si el usuario está iniciando sesión a través de una conexión Wifi abierta, entonces es fácil realizar un ataque de hombre en el medio o falsificar la dirección IP del usuario.

No se agrega un encabezado Forwarded-By cuando un enrutador reenvía un paquete IP. No existe un encabezado que lo ayude a detectar la falsificación de IP.

Consulte también ¿En qué escenarios se basa la dirección IP de origen como un control de seguridad aceptable / inaceptable? .

Si desea una validación única, le sugiero que establezca una cookie persistente segura en el navegador del usuario (una vez que los haya autentificado) para que pueda volver a reconocerlos en el futuro. Eso eliminará la necesidad de que realicen otro paso de autenticación en el futuro, siempre y cuando sigan usando la misma máquina y navegador.

    
respondido por el D.W. 29.03.2012 - 21:10
fuente
9

En primer lugar, debo enfatizar que la dirección IP no se puede utilizar nunca para autenticar a un usuario , solo se puede usar para (intentar) validar un < em> host . Incluso si la dirección IP estuviera perfectamente vinculada a una computadora exacta en un puerto de red exacto, todavía no tendríamos ninguna garantía de que un usuario en particular estuviera en la consola de esa computadora en ese momento. Por lo tanto, si intenta asegurarse de que solo un usuario particular pueda acceder a los recursos que está protegiendo, debe realizar algún tipo de autenticación de nivel de usuario.

Ahora puede ser que solo desee limitar el acceso a, por ejemplo, las personas que trabajan en un determinado negocio, o que asisten a cierta escuela, o que viven en cierta casa. Entonces, usted cree que la validación solo por IP vale el riesgo adicional. Incluso entonces no puede garantizar que sus datos vayan al lugar correcto.

Un ejemplo alámbrico que puedo pensar es el siguiente. Digamos que soy un suscriptor de internet por cable y quiero interceptar el tráfico IP de mi vecino. Nuestro proveedor de cable utiliza DHCP para asignarnos direcciones de un grupo de direcciones reservadas para el direccionamiento IP dinámico. Conceptualmente, puedo interceptar su dirección descubriendo su dirección IP; descubriendo su dirección MAC; configurando mi dirección MAC para que sea un clon de su dirección MAC; reiniciar su cable módem (por ejemplo, al interrumpir la alimentación o el cable a su casa); emitir una solicitud DHCP.

Como muchos servidores DHCP generalmente intentan asignar a los MAC la misma IP que tenían anteriormente, el proveedor de cable me asignará su IP. Ahora esto no funcionará para siempre: el proveedor de cable finalmente verá una colisión de direcciones IP e investigará el problema. Pero para entonces, es posible que ya haya robado sus datos.

    
respondido por el Mark Beadles 29.03.2012 - 21:12
fuente
-1
  

Una dirección IP falsificada no puede recibir una respuesta de su servidor

Esto es 100% cierto. La respuesta a un TCP no se pudo enviar si la dirección IP no es realmente la dirección IP válida.

  

Cuando hay un proxy o enrutador, ¿hay alguna forma relacionada que me permita identificar al usuario, es decir, algún encabezado Reenviado por (o cómo se llama)?

No entiendo el propósito de esta pregunta. Si está detrás de un enrutador, la dirección IP del usuario es lo que dicho hardware le ha asignado. Por lo tanto, cualquier información de identidad sería esa información y no la información real que otra persona vería fuera de su red.

  

¿Qué recomendaría siempre que el requisito sea poder configurar este IP basado (o relacionado)?

¿Qué es exactamente el requisito?

  

Me interesa especialmente el segundo artículo. Según Wikipedia, es muy difícil, pero no imposible, detectar el paquete de respuesta de una dirección IP falsificada. Sin embargo, no especifica lo que se necesita.

Esto requeriría que estuvieras entre el servidor y el cliente. De lo contrario, todas las respuestas irán a la dirección IP a la que el servidor cree que debería ir y, como no tiene esa dirección IP, no recibirá esa dirección. Al estar en el medio, recibe el paquete (en realidad, todos los paquetes es otra cuestión) y puede responder a dicho paquete.

De lo contrario, eventualmente, al servidor le gustará que cualquier conexión TCP se olvide de ti.

Una vez que todos los dispositivos electrónicos que están conectados a Internet tengan una dirección IPv6, PODRÁN usar una dirección IP para verificar un "dispositivo", pero nunca señalaron al "usuario". Por supuesto, es poco probable que esto suceda por muchas razones. IPv4 ha existido durante 20-30 años, lo que significa que todavía hay más direcciones IPv6, y luego dispositivos creados en ese tiempo: $

    
respondido por el Ramhound 29.03.2012 - 21:13
fuente

Lea otras preguntas en las etiquetas