cliente HTTPS "emparejando"

1

He sido redirigido aquí desde SuperUser, espero que la pregunta sea apropiada.

Necesito restringir el uso de un sitio determinado a un número limitado de clientes.

Más que eso, en realidad: me gustaría permitir el acceso desde un número restringido de dispositivos físicos (Win + Android).

Esto significa que debo generar certificados de "dispositivo bloqueado".

¿Cuál es la mejor manera de generar e implementar dichos certificados?

Tenga en cuenta que:

  • La solución no debe ser específica para el navegador (si es posible; IE, FFox y Chrome son mínimos)
  • El navegador debe combinar el certificado con alguna huella digital del hardware antes de intentar usarlo.
  • No me importa si el certificado es invalidado por la actualización del sistema (estoy perfectamente bien emitiendo uno nuevo ... y eliminando el antiguo).
  • La comprobación debe realizarse en el "lado del servidor".

Un comentario del Superusuario dice:

There is no binding of a certificate to a hardware.
If you want this you need to use certificates which 
are integrated into the hardware and cannot be extracted 
from there, i.e smartcards.

Las tarjetas inteligentes no son una solución viable para mí, pero se podría usar algún tipo de USB equivalente, si es necesario, siempre que los dispositivos sean lo suficientemente baratos (algunos USD / cada uno).

Alternativamente, podría solicitarle al navegador que envíe información e intente validar el Cliente allí (algo similar a enlace junto con un certificado personalizado ). Funcionaría eso? Si es así, ¿qué necesitaría? ¿Hay libretas que realizan verificaciones similares en el lado del servidor?

Busqué en las "Preguntas similares" sugeridas, pero no encontré algo que se pareciera a mi problema.

    
pregunta ZioByte 09.12.2015 - 00:10
fuente

3 respuestas

2

Lo que necesita es HTTPS con autenticación mutua (el cliente autentica el servidor en función de su almacén de certificados de confianza y el servidor autentica al cliente solicitando un certificado de cliente).

Debe colocar la clave para el certificado del cliente en una tarjeta inteligente o HSM equivalente para que no pueda ser robada si la máquina cliente está comprometida, no hay otra manera de evitarlo. Si su incapacidad para usar tarjetas inteligentes se debe a que los clientes no tienen lectores, hay lectores USB disponibles. Incluso hay lectores en forma pendrive que toman una mini tarjeta inteligente (el mismo factor de forma que una tarjeta SIM) para que pueda ordenar sus tarjetas PKI en ese formato y la solución se verá como una unidad flash.

Los lectores de tarjetas funcionan bien con la mayoría de los sistemas operativos, incluidos Windows, Mac, Linux e incluso Android a través de una API USB genérica Sin embargo, tengo que hacer que tu aplicación personalizada hable con el lector, el sistema operativo no proporciona una biblioteca para eso).

Puede usar certificados en el software, pero el material clave estará en riesgo de ser robado a través de malware, por lo que una solución de hardware es definitivamente más segura.

Para los dispositivos BYOD, es posible que ya estén en peligro y una solución de hardware no lo protegerá completamente de un atacante que use la clave de manera maliciosa mientras se inserta el HSM o la tarjeta.

    
respondido por el André Borie 10.12.2015 - 09:17
fuente
0

Lo siento: solo vuelve a leer la pregunta y el hecho de que es para el acceso al sitio web nuevamente, así que ignora la respuesta a continuación (a menos que quieras obtener información de hardware con Java o algo así).

Para su valor, Maplesoft (los vendedores del programa de álgebra simbólica Maple) maneja una situación similar mediante el uso de un proceso de activación en línea que genera un archivo de licencia vinculado a la dirección MAC de la computadora (y posiblemente alguna otra información, pero MAC es la principal cosa).

El comprador recibe un código que se usa para activar, por lo que la validación / registro / revocación y / o el conteo de la parte del servidor, es posible (las compras típicas, por ejemplo, por parte de las universidades, permiten múltiples activaciones por clave) tras la activación.

El archivo de licencia se verifica en tiempo de ejecución, por lo que mover el hardware no le permite usar más copias de las que compró. La clonación o simplemente el cambio de la dirección MAC en otro dispositivo puede, pero debe haber otra información incorporada en el código de hash del archivo de licencia para evitarlo. O simplemente haga que cada clave de activación se pueda usar una vez.

Las alternativas como las tarjetas inteligentes suenan tediosas para el usuario (y requieren distribución física). Sin embargo, no sé si se puede acceder a la dirección MAC de un dispositivo Android, pero tal vez tengan un identificador de dispositivo único (UUID) como iPhones que podrían usarse en su lugar.

    
respondido por el Billy 10.12.2015 - 12:53
fuente
-1

Usa alguna VPN rica en características. Lo que necesita no se puede hacer de manera portátil solo con el navegador + SO. Hay muchas VPN que se adaptan a sus necesidades, especialmente la parte de hardware / tarjeta inteligente y el soporte de Android.

La mayoría de las VPN se pueden configurar para que solo se apliquen a una dirección IP (o unas pocas direcciones IP) y permitan el tráfico inseguro al resto, si no desea molestar a los clientes y romper el resto de sus conexiones.

    
respondido por el kubanczyk 09.12.2015 - 10:44
fuente

Lea otras preguntas en las etiquetas