2011-11-09 26 views
5

Necesito generar una cadena única que difiera de una máquina a otra: una "huella digital del dispositivo".¿La mejor manera de generar una huella digital de máquina?

... ¿Cuáles son

  • posibles enfoques para implementaciones personalizadas? (Tengo algunas ideas, pero creo que ustedes probablemente tengan MEJORES)
  • soluciones existentes? (Ambos no comercial comercial/son aceptables)
+1

¿Desea que la huella digital cambie o permanezca igual cuando el usuario actualiza su CPU/memoria/disco duro/tarjeta de red/etc ... –

+0

¿Puede proporcionarnos un caso de uso más detallado? ¿Son sus máquinas móviles? ¿Puede instalar certificados y similares (en lugar de un dispositivo dedicado)? ¿Tiene control/propiedad de las máquinas o la red en la que reside? – phatfingers

+0

Solo un aviso para cualquier persona interesada: para nuestro caso de uso, decidimos que la toma de huellas digitales del dispositivo no era tan importante. –

Respuesta

1

La identificación del dispositivo es un tema complejo si desea cubrir muchos casos extremos (por ejemplo, actualizaciones de hardware, actualizaciones del sistema operativo, etc.) y si le preocupa que la gente gaste energía para falsificar una huella dactilar lo que significa que conoce la huella digital y recibe algún beneficio, como los derechos de uso del software), o crea una huella dactilar completamente nueva que no conoce (por ejemplo, la huella digital figuraba en una lista negra y el usuario desea crear una nueva Identificación del dispositivo para el dispositivo que no está en la lista negra).

Algunas cosas son bastante estáticas y una base razonable para una huella dactilar simple. La dirección MAC se ajusta mejor a esa categoría, pero también es muy fácil de cambiar. Además, algunas computadoras tienen varias direcciones MAC (incluidas las MAC de máquinas virtuales), por lo que debe lidiar con esa complejidad. Algunos dispositivos de red son efímeros, p. teléfono celular atado.

Otros aspectos de la computadora son más difíciles (pero no imposibles) de falsificar, como información de la CPU, suma de comprobación BIOS, números de serie del disco duro, etc. Sin embargo, esas cosas que tienden a ser más difíciles de falsificar también más probabilidades de cambiar (actualización de BIOS, disco duro nuevo, discos duros extraíbles, etc.).

También debe considerar proteger cuidadosamente el código que realmente genera la huella digital. Si ese código es fácil (suficiente) para hackear, alguien que intente vencer a su solución simplemente insertará la huella digital que desee directamente en el código que recopila y evalúa los componentes.

1

bien lo que hago con mis aplicaciones se suele crear una identificación especial tomando el hash del nombre de la máquina que se encuentra en Environment, concat con un valor hash del nombre de mi aplicación , y luego aplicar una sal (probablemente ni siquiera necesaria, pero ayuda a ser paranoico) para producir una "huella digital" para un combo de aplicación/máquina.

Esto funciona en mi situación porque solo hay una copia de mi aplicación en una máquina a la vez.

+1

Ese enfoque es algo frágil, aunque puede estar bien para muchos casos de uso. Los nombres de las máquinas cambian de vez en cuando en el mundo real. Si un cliente grande decide cambiar el esquema de nomenclatura de la máquina, eso generará muchas instalaciones rotas. –

+0

Eso es cierto, pero no respondía la pregunta con la toma de huellas dactilares para las instalaciones. Uso mis huellas dactilares para la comunicación de aplicación a aplicación, concretamente para aplicaciones que monitorean varias otras aplicaciones para informes de estado/error. Es por eso que lo hago de esta manera. – jlafay

+0

Claro, el OP aún no menciona el caso de uso. Ciertamente funciona bien para muchos escenarios. –

1

La mayoría de las máquinas tienen ahora una NIC con direcciones MAC (si no está conectada a la red, ¿para qué necesita una identificación única para la máquina?). Solo asegúrese de obtener la dirección MAC de la NIC física y no una Mac virtual (creada por VMWare o Virtualbox). Es posible que desee almacenar el nombre del dispositivo del que proviene el MAC para que siempre obtenga la misma dirección MAC cuando enumere las direcciones MAC. Tampoco use esto para la seguridad, ya que siempre es posible falsificar una dirección MAC, solo proporciona un identificador relativamente único.

+0

¿Cómo obtener MAC físico dentro de vmware? Tengo diferentes mac en Vmware y NIC virtual. – lll

0

Algunas de las cosas que desea pueden depender de su visibilidad en los sistemas en cuestión. Por ejemplo, puede tener firewalls personales y/o de red y VLAN que le impidan interrogar a los dispositivos ellos mismos. Encuentro que una consulta SNMP contra dispositivos en su infraestructura de red (sus switches para información de direcciones MAC y sus enrutadores para direcciones IP) brinda una buena imagen rápida. De lo contrario, NMAP es tu amigo.

0

Puede usar WMI y obtener la dirección MAC de la NIC, la serie de HDD (no el volumen en serie), la ID de la CPU y la ID del BIOS.La desventaja de este método es que en algunas máquinas por varias razones, parte de esta información no está disponible, pero puede combinar información de esa fuente 4 y al menos una estará allí, pero WMI en algunas máquinas simplemente no funciona como se espera y debe tener algún tipo de repliegue, algo que surja en todas las máquinas, por ejemplo. número de serie del volumen

Otro problema es que debe tener derechos de administrador para obtener esta información a través de WMI, he resuelto ese problema con el servicio de Windows que utiliza WMI y envía información a la (s) aplicación (es).

Éstos son algunos de interesantes consultas WMI:

duros discos seriales:

SELECT SerialNumber FROM Win32_PhysicalMedia where SerialNumber <> null 

BIOS de serie:

SELECT SerialNumber FROM Win32_BIOS where SerialNumber <> null 

CPU de serie:

SELECT ProcessorID FROM Win32_Processor 

NIC MAC:

SELECT MACAddress FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True 

btw. puede probar WMI con Paessler WMI Tester

+0

El número de serie del volumen no sobrevive a la sustitución/actualización del disco duro. –

+0

Lo sé, es una última opción y solo en caso de que no pueda obtener ninguna información de WMI –

Cuestiones relacionadas