formas seguras de evitar el acceso a una aplicación por más de una persona a la vez?
No hay una forma segura para evitar que los usuarios ejecuten más de una instancia de su aplicación en sus máquinas si tienen una copia de su aplicación. Si un usuario tiene una copia de su aplicación, siempre puede encontrar formas de subvertir cualquier cheque que realice.
La única forma segura de limitar el acceso de los usuarios a su aplicación es no ejecutar su aplicación en la máquina del usuario. En otras palabras, una aplicación web.
DRM puede hacer un buen trabajo para evitar que los usuarios utilicen una instancia de su aplicación a la vez por motivos de licencia. Pero tratar de ejecutar código de confianza en una máquina que no es de confianza es intrínsecamente inseguro.
DRM es un juego perdido para desarrolladores y usuarios legítimos por igual. El infractor de la licencia siempre encontrará una manera de evitar el DRM y el DRM a menudo encontrará formas de incomodar y alienar a los usuarios legítimos, lo que aumenta los costos de soporte.
Estaba pensando en probar las propiedades del sistema para las versiones de servidor de Windows, etc., pero luego me di cuenta de que puede usar el control remoto en cualquier computadora, con una variedad de programas, para que salga por la ventana.
Un usuario ilegítimo siempre puede editar cualquier archivo / configuración / registro en su computadora. No hay nada que puedas hacer para prevenir esto. Son los que tienen privilegios de administrador del sistema, no su aplicación.
¿Es un problema de seguridad si me conecto a mi servidor, con FTP, antes de que la aplicación incluso inicie sesión un usuario?
A menos que su aplicación dependa mucho de la conexión de red como parte, no puede confiar en la conexión de red. Si su usuario legítimo no tiene conexión a Internet en su casa, su aplicación tendrá que negarse a ejecutarse (lo que molestará al usuario legítimo), mientras que un usuario ilegítimo simplemente puede impedir que su aplicación acceda a Internet mediante un firewall de aplicación.
También pensé en intentar encontrar y ver si la aplicación ya se está ejecutando en la máquina (como un proceso o tarea, es decir, lo que se muestra en el "Administrador de tareas").
Esto no protegería contra la ejecución en máquinas diferentes o la ejecución de su aplicación en una máquina virtual. Por otro lado, los usuarios legítimos pueden necesitar legítimamente la necesidad de ejecutar varias copias de la aplicación, o su aplicación puede quedar bloqueada como un proceso de zombie impenetrable en segundo plano y los usuarios legítimos pueden necesitar reiniciar su sistema para reiniciar su aplicación nuevamente. .
Las restricciones de licencia y DRM solo pueden hacer que las personas honestas sean honestas.
"Mi aplicación realmente no se puede ejecutar como una aplicación web, porque X, Y y Z. Dado que el DRM es inútil, ¿qué puede hacer un desarrollador de software para proteger sus ingresos?"
Si desarrolla una gran aplicación a un precio razonable, las personas querrán pagarla. Realice un simple control de licencia que puede juntar en un par de horas o incluso sin DRM, y termine. Acepte el riesgo de que haya usuarios ilegítimos y utilice medidas legales para atacar a los principales infractores (la elusión de incluso los DRM simples como el control de claves de licencia estúpidas está legalmente protegido en muchos países). Evite los DRM que hacen cosas extrañas, como implantarse en el sector MBR / boot o intentar ocultarse del Administrador del sistema como un rootkit. Es más probable que causen frustraciones a los usuarios legítimos que a los usuarios ilegítimos.