Lo que es una buena manera de identificar de forma única a una computadora?

Estoy desarrollando algunos software de escritorio de un cliente para revender. El cliente quiere restringir el software de manera que el código de registro será específico para un solo equipo.

Además de usar la MAC de la tarjeta de red, ¿alguien tiene alguna de las otras técnicas (que funcionan tanto en Windows como en Mac OS X) para identificar de forma única a una computadora?

  • No te vayas con la dirección MAC. No es sólo que el Adaptador de Red de los cambios, la dirección MAC se puede cambiar fácilmente a través del Administrador de Dispositivos de Windows.

15 Kommentare

  1. 38

    Otra solución es el uso de una tecnología de licencias con un dongle. Este es un pequeño dispositivo que se conecta al USB o a otro puerto de e/S en el host, y sirve como un ser único, física clave para activar el software.

    Una tercera solución es proporcionar un administrador de licencias. Es decir, cuando se inicia el software de seguridad, consulta a un servidor en la red (ya sea en la LAN del cliente o de la persona accede a su empresa a través de la internet) que valida que el uso del cliente del software es legítimo. Esta es una buena solución para «licencias concurrentes» de modo que los clientes pueden instalar su software en muchos ejércitos, pero la licencia para el uso simultáneo de un número limitado de los ejércitos. FLEXnet Publisher es un ejemplo de una licencia de administración de la solución.

    La dirección MAC de la tarjeta de red es la solución que se usó la última vez que trabajé para una empresa de software con licencia para que se ejecute en un host específico.

    Sin embargo, quiero ofrecer una precaución: si usted hace este tipo de licencias, usted tiene que anticipar que va a convertirse en un administrativa permanente tarea para el seguimiento de sus clientes de licencias. Una vez que usted tiene un par de cientos de clientes, usted se sorprenderá de la frecuencia con la que recibe llamadas telefónicas con las solicitudes de cambio de claves de

    «Hemos actualizado nuestro servidor a un gigabit
    adaptador de red, y ahora la licencia
    no funciona porque el nuevo adaptador tiene
    una diferente dirección MAC.»

    O bien el cliente puede sustituir su máquina completa, y la necesidad de una actualización de licencia para ejecutar el software en la máquina nueva. Tenemos estas llamadas prácticamente todos los días en la empresa en la que trabajé para.

    También necesita de la confianza que el cliente deje de utilizar el software en el ordenador viejo (o el adaptador de red) si les da una nueva clave. Si no podía confiar en ellos para obedecer la licencia, en primer lugar, ¿cómo se puede confiar en que van a tirar el viejo clave?

    Si usted no planea cómo vas a apoyar esta actividad administrativa, no de la licencia de su producto de esta manera. Usted sólo tendrá inconveniente sus buenos clientes, que habría cooperado de todos modos.

    • Definitivamente de acuerdo con el mantenimiento o la parte administrativa. Así que muchas empresas parecen enfocarse sólo en la parte técnica de ello, pero no el «pueblo» final. Recuerdo que una pieza de software que he comprado que estaba atado a mi máquina, y cuando he actualizado tuve que esperar 3 semanas para obtener una nueva clave!
    • Estoy completamente de acuerdo acerca de la ayuda de cliente del problema, que es la razón por la que originalmente se recomienda al cliente que no utilice un equipo de código específico. Pero ellos sienten que es importante.
    • Las mochilas de puede se agrietado, aunque. El Software puede emulado un dongle que se adjunta con una clave correcta, aunque probablemente raros, si no estás liberando al público (un cliente).
    • Las mochilas son fáciles de romper, no hay necesidad de emular, solo binario-editar el código para eliminar los cheques. Este es el ruso Hacking 101 cosas.
    • A la derecha, si tienes en cuenta los piratas que binary-editar el código, entonces cualquier software clave de la solución es crackable. Cuanto más se intenta vencer la piratería, sólo hacen que sea un inconveniente para los clientes legítimos para usar el software.
  2. 10

    Voy a jugar al abogado del diablo aquí y te dicen que algo como esto probablemente no es la mejor cosa para discutir en «público».

    Con eso dicho, mira lo que otros hayan hecho y, posiblemente, mejorar (o de tomar una porción del programa). Dirección MAC, como usted ha dicho, es, posiblemente, de acuerdo a su uso. He oído que Windows y otros programas de uso unidad de disco duro información (número de serie) – de acuerdo a este sitio, la Activación de Windows cheques de 10 diferentes elementos y los convierte en una clave única.

    • Cambios de dirección de MAC cuando la tarjeta de red de los cambios. No es la mejor idea.
    • 1º, ¿con qué frecuencia hay que modificar/cambiar la tarjeta de red? 2º, una combinación de cosas (como la activación de Windows usa) es probablemente el mejor enfoque.
    • De acuerdo con la primera parte. La seguridad no es fiable cuando está basado en la ocultación de la estructura. Todos los algoritmos de seguridad son públicamente conocidos y impugnada 😉
    • De acuerdo con valipour: aquellos que burlar las características de seguridad puede realizar ingeniería inversa con bastante fluidez.
    • Supongo que mal entendido. No quiere decir que el público 100% cómo su activación/equipo de la identidad de trabajos de cosas. No veo Microsoft publica el código fuente para su Activación de Windows cosas.. se lo que estoy diciendo? Está bien discutir los conceptos generales, pero el quid de la cuestión, obviamente, que no debe ser información pública.
    • Nicholas no le veo ningún problema, ya que cada galleta es un programador. Discutir públicamente que no va a cambiar el hecho de que se pueden romper los programas. El problema es: Galletas de hacer leer a los desarrolladores de contenido, pero los desarrolladores no lee galletas de contenido.
    • Estoy de acuerdo con valipour. «seguridad por oscuridad» no es un buen enfoque.
    • No estoy hablando de la oscuridad. Estoy hablando de la publicación real de los detalles específicos de cómo funciona. No sane negocio va a hacer eso.
    • No sé cuánto más claro que puedo estar aquí. Hablar de cómo se debe trabajar es, por supuesto, bien. Pero el código de bajo nivel/real de la implementación de la gente no publicar ese tipo de información, por lo general. Hay una página donde Microsoft específicamente dice: «aquí todo el bajo nivel de la lógica que utilizamos para la activación de cheques. Disfrutar, galletas!»

  3. 10

    mejor manera es tomar el UUID con C# en Windows

    La Mejor Manera De Identificar Una Máquina Windows

    public string GetUUID()
    {
        var procStartInfo = new ProcessStartInfo("cmd", "/c " + "wmic csproduct get UUID")
        {
            RedirectStandardOutput = true,
            UseShellExecute = false,
            CreateNoWindow = true
        };
    
        var proc = new Process() { StartInfo = procStartInfo };
        proc.Start();
    
        return proc.StandardOutput.ReadToEnd().Replace("UUID", string.Empty).Trim().ToUpper();
    }
    
    • Será el UUID persistir en una nueva instalación de windows?!
    • PERO, esto se requieren derechos de ADMINISTRADOR en el equipo, ¿verdad? Si su software está pensado para ser utilizado por el incumplimiento de la administración, tal vez, no lo puedo ayudar. !!
  4. 6

    La idea que estoy jugando con es el uso de un par de números de serie o único de identificación relacionado con el hardware y el hash de ellos juntos.

    Cosas que conseguir actualizado:
    -Memoria
    -MACs (puede ser falseada, adaptadores usb conseguir conectado, etc.)

    Cosas que no se actualiza a menudo:
    -CPU
    -BIOS
    -Placa base

    El uso de WMIC puede ser una gran manera de agarrar un poco de info, me gustaría empezar por el acaparamiento de las cosas que no cambian a menudo como la primera opción preferida, me gustaría ser capaz de huellas dactilares de por lo menos 2 números de serie o de los dispositivos a utilizar para la generación de una clave de registro.

    wmic cpu get DeviceId /format:value
    

    Que va a tomar el ID de CPU, puede ejecutar el comando para:

    1 – CPU (cpu:DeviceID)
    2 – Placa base (placa base:serialnumber)
    3 – BIOS (bios:serialnumber)

    si usted no consigue al menos 2 poblada de valores, a continuación, tomar

    4 – Adaptador de Red (nic:MACAddress)
    5 – RAM – (memphysical:SerialNumber)

    Dependiendo de la lógica de negocios se puede utilizar los dos primeros números de serie disponibles para crear su número de registro y si usted sigue siempre el mismo orden, a continuación, en la re-instala el número de registro funcionará, sin embargo, si un dispositivo de cambios o un usuario intenta instalar en un ordenador secundario la identificación del cambio de invalidar el número de registro. Para reducir la cantidad de soporte técnico llama a la menor cantidad de hardware que de huellas dactilares le dará la menor cantidad de dolores de cabeza y si usted intenta su huella digital en el menos probable de los elementos a ser mejorado que reduce aún más los dolores de cabeza. Mi preferencia es el orden de arriba.

    Usted podría utilizar una de claves Diffie-Hellman programa de intercambio para que el usuario genere un privado/pulic par de claves con su id de hardware como de carga, transmitir esta información a un servidor de registro donde el servidor de registro sería el uso de claves pública/privada para descifrar la carga y calcular la clave de registro para volver de nuevo al usuario final. Me gusta usar JWT para pasar cosas de ida y vuelta con él las claves públicas incluidas en la carga de la JWT. Espero que ayude.

    UUID fue mencionado anteriormente y es una gran idea que usted puede conseguir que mediante el siguiente comando de windows cmd.exe:

    wmic csproduct get UUID /format:value      
    

    Descargo de responsabilidad estas comando sólo funciona para Windows creo 2000 y anteriores, pero usted tendría que comprobar, que tal vez está disponible para los sistemas por debajo de 2000, pero en ese momento yo realmente trato de no apoyar a esos dispositivos. La buena suerte.

    En Mac:

    system_profiler | grep "Serial Number (system)"
    

    En Linux (debian):

    sudo dmidecode -t system | grep "Serial Number"
    

    dmidecode y system_profiler tiene otros componentes se puede obtener los números de serie de similar wmic en windows. Yo no trabajo en mac, así que no puedo confirmar una lista exacta de especificaciones, pero la creación de una lista de LCD (mínimo común denominador) los números de serie de las partes que todos los tres de los comandos de acceso y preparado para la menos probable de las piezas a ser actualizado o modificado. A continuación, una combinación de la parte superior de 2-3 números hash, que se puede hacer para un único id de máquina que es un poco más robusto y permite una cruz de la plataforma de aplicación para ser activado incluso en un dispositivo con sistema operativo actualizado.

  5. 5

    Sólo quiero usar la dirección MAC para generar una solicitud de clave, a continuación, se exigirá a los usuarios a registrarse con su cliente. Su cliente tendrá una aplicación especial que tiene que solicitar la clave y produce una activación de la clave que el usuario puede utilizar para activar el software. Una vez activado, el software de obras, obras – no ocasionalmente llamar a casa para la verificación y tal.

    Que si se tratara de un requisito. Mi primera tarea sería la de intentar convencer al cliente de que esta era una mala idea.

    La razón es que estos esquemas prácticamente nunca evitar que el código está agrietada. Sin embargo, hacer que la vida de su genuina de los clientes más difíciles. Me resulta difícil pensar en cualquier otra industria que sale de su camino para molestar a su auténtica clientes con planes que nunca de conseguir sus objetivos (otros que el servicio del gobierno, por supuesto :-).

    Si debe hacer esto, solo quisiera hacer un token esfuerzo para cumplir con la obligación contractual (no le diga a su cliente esto, sin embargo). Tomando la dirección MAC (o un número aleatorio si, $DEITY no lo quiera, el equipo no tiene una tarjeta de red) como la solicitud de la clave y el uso de un programa a solo XOR con una cadena ASCII para obtener la clave de activación, parece un enfoque funcional. También me gustaría almacenar claves, ya que no desea que el software para desactivar si se acaba de cambiar su tarjeta de red (o incluso de la placa base) – que aún se ve que como el mismo equipo y no va a ser feliz si el software deja de funcionar.

    Tu código va a ser roto a pesar de todo (a menos que el programa es una basura de la que estoy seguro no es el caso) – este método le dará a su genuino clientes una avenida para el movimiento de su software a otro equipo en caso de que la empresa de tu cliente no responde de alguna manera (gotas de apoyo, se va a la quiebra, y así sucesivamente).

    Los principales problemas con todos esquemas que se basan en la singularidad de un poco de hardware es que el cliente puede elegir cambiar un poco de hardware:

    • fantasma de su contenido del disco duro a un disco duro mayor hace HD números de serie cambio.
    • el uso de la CPU de la serie de números significa que actualizar a la última versión de Intel bigmutha CPU matar a su software.
    • utilizando la dirección MAC significa que no puede cambiar su NIC.

    Todos estos pueden ser corregidos por el uso de los valores para crear una clave en el momento de la instalación y verificación sólo en contra de esa clave, no el valor modificado en los últimos seis meses de la pista. Esto significa que usted tiene que guardar la solicitud y activación de valores, pero las actualizaciones no requerir a los usuarios a pasar por el proceso de re-activación de su software. Créanme, que se desprecie a usted para tener que hacer eso.

    • El mal compañías pueden simplemente conectar un USB stick wifi a cada nuevo equipo, licencia, la llevan a la siguiente computadora, licencia, etc. Así que tal vez debería tratar con situaciones en donde más de 1 adaptador de red se encuentra.
  6. 4

    No hay una manera segura de identificar una computadora, si se asume que un equipo se construye con muchas partes que pueden ser eventualmente reemplazado.

    Algunas piezas de hardware – la dirección MAC, HDD número de serie del disco, incluso de serie de la placa base, etc – son un par de buenas fuentes de «singularidad», pero como se puede saber si un cliente decide cambiar la parte de la licencia depende de… estar preparado para algo de soporte al cliente.
    También a tener en cuenta es que algunas partes pueden ser simulados (el de MAC es uno de ellos).

    Una licencia en línea de verificación es otra buena manera de ir – usted puede manejar todo en el lado del servidor, e incluso definir sus propias reglas para él (¿cuántas licencias por cliente/instalar, concurrencia, etc), pero la gran cosa a tener en cuenta es lo que sucede cuando la conexión no puede ser establecida?

  7. 2

    Abrir Registro y vaya a

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Criptografía

    Encontrar la clave de la llamada «MachineGuid» esta clave se genera de forma exclusiva durante la instalación de Windows y eso no va a cambiar, independientemente de cualquier intercambio de hardware (aparte de la sustitución de la bota-capaz de disco duro cuando el sistema operativo está instalado). Esto significa que si usted quiere mantener el seguimiento de la instalación por OS esta es otra de las alternativas. Eso no va a cambiar a menos que hacer una nueva reinstalación de Windows.

    • Si usted clon de su sistema operativo, este GUID sigue siendo el mismo
  8. 1

    Solía haber un número de serie impreso en la CPU, por lo que he visto, sin embargo; esta información (PSN, Pentium Número de Serie) ha quedado obsoleto. La información puede todavía existen, pero al menos en el 3r mundo se había ido. También, creo que la elección obvia de la dirección MAC de la NIC para la interfaz principal que se utiliza para el host debe ser considerado como una posibilidad real. A menos que su cliente no espera interfaces ethernet para estar presente en los hosts que ellos venden.

    • Creo que de serie de la CPU numer está desactivado por defecto en casi todas las cajas de envío.
    • Sí, un número de serie del procesador es definitivamente no ir a trabajar hoy, y aún cuando esta característica fue puesto en libertad, estaba roto y impopular.
    • Además de la exigencia de trabajo en os x, probablemente significa trabajar también en PPC
  9. 1

    Usted podría considerar la posibilidad de un tercero-la concesión de licencias de utilidad que tendrán más probabilidades de obtener este «derecho» y también proveer de usted (o su cliente) con opciones adicionales deben cambiar los requisitos (y no siempre?). Me gustaría mencionar algunas de ellas por su nombre, pero realmente no estoy íntimamente familiarizado con ellos.

  10. 1

    Tengo algo de experiencia en esto. En mi solución del problema clave de servicio cuando se ha de vender el producto al cliente.

    En el momento de la instalación del cliente de la aplicación es generar una clave de lectura de la placa de serie de la máquina cliente. El cliente se supone que el correo electrónico la clave de servicio y la clave generada en la instalación de nuestra organización, para activar el producto.

    Mantenemos una aplicación de administración en la organización en cuestión claves de activación. Ofrecemos sólo una clave de activación de la clave para un servicio en particular clave.

    Hemos vendido el número de copias y se ejecuta sin un problema. Pero luego nos enteramos de algunos equipos que no proporciona un número de serie de la placa base. Las máquinas de devolución de valor nulo como el número de serie de la placa base. todavía estamos tratando de solucionar este problema.

    • Algo que no funciona de forma fiable, no es una solución.
  11. 1

    ¿hash cualquier cosa que tiene un quemó en la SN, disco duro, proc, ram, etc… este hash se quedará con el equipo hasta que se tiene es la sustitución de las piezas.

  12. 1

    Uno puede crear una serie de claves que el usuario tiene que introducir una vez.
    Se debe incluir la dirección de correo del usuario (algo así como [email protected]-9828372-398232). Esto evitará que muchas personas tratando de manipular o dar a otras personas.
    Durante la activación, el software debe comprobar en línea db en el caso de la clave de serie existe.

  13. 0

    O simplemente podría no tienen activiation código y asegurarse de que tiene derechos de auditoría por escrito en el contrato y el ejercicio de su derecho a la auditoría de vez en cuando.

    Maravillas para Oracle.

  14. 0

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Criptografía

    «MachineGuid» clave se genera de forma exclusiva durante la instalación de Windows y eso no va a cambiar, independientemente de cualquier intercambio de hardware (aparte de la sustitución de la bota-capaz de disco duro cuando el sistema operativo está instalado). No estoy seguro acerca de esto.

    MI SUGERENCIA

    Puede Utilizar que MachineGuid, Disco Duro, Número de Serie, tarjeta Madre Número de Serie y el UUID. Junto HASH es el uso de SHA 256 o cualquier otra función HASH.

    UUID – wmic csproduct obtener el UUID

    MachineGuid – HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Criptografía

    De Disco duro Número de Serie – wmic diskdrive obtener serialnumber

    Número de Serie del BIOS – wmic bios obtener serialnumber

    Madre la Placa del Número de Serie – wmic zócalo obtener serialnumber

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea