Pregunta

Estoy construyendo una aplicación de escritorio centralizada usando Python / wxPython. Uno de los requisitos es la autenticación del usuario, lo que estoy tratando de poner en práctica mediante LDAP (aunque esto no es obligatorio).

Los usuarios del sistema serán ingenieros mecánicos y eléctricos haciendo presupuestos, y el mayor problema sería el espionaje industrial. Es un problema común que se produzcan filtraciones comúnmente a partir de la parte inferior de manera informal, y esto podría plantear problemas. El sistema está configurado de tal manera que cada usuario tiene acceso a todos y sólo la información que necesita, por lo que ninguna persona, pero la gente en la parte superior tiene información monetaria en todo el proyecto.

El problema es que, para cada manera que puedo pensar para poner en práctica el sistema de autenticación, la apertura de Python me hace pensar en al menos una forma de eludir / obtención de información sensible del sistema, debido a que "la compilación" con py2exe es el que más cerca puede llegar a la ofuscación de código en Windows.

No estoy tratando de Ocultar el código, sino más bien hacer que la rutina de autenticación segura por sí mismo, que sea de tal manera que el acceso al código no significa la capacidad para acceder a la solicitud. Una cosa que quería añadir, era una especie de firma de código de acceso a la rutina, por lo que el usuario puede estar seguro de que no se está ejecutando una aplicación de cliente modificado.

Una de las maneras que he pensado para evitar esto es hacer un módulo C para la autenticación, pero yo preferiría no tener que hacer eso.

Por supuesto, esta pregunta está cambiando y no es simplemente "¿Puede alguien me punto en la dirección correcta en cuanto a cómo construir un sistema de autenticación segura se ejecuta en Python? ¿Existe ya algo como esto?", Sino "¿Cómo se endurecer una scripting (Python) contra la modificación ilícita? "

¿Fue útil?

Solución

¿Cómo maliciosos son sus usuarios? Realmente.

Exactamente cómo malicioso?

Si los usuarios son sociópatas mal y no se puede confiar en una solución de escritorio, a continuación, no construir una solución de escritorio . Construir un sitio web.

Si los usuarios son usuarios normales, que van a atornillar el medio ambiente por la instalación de virus, malware y keyloggers de sitios de pornografía antes de que intenten (a) aprender Python (b) aprender cómo funciona su seguridad y (c) hacer una esfuerzo sincero en romperlo.

Si realmente tiene problemas de seguridad de escritorio (es decir, la seguridad pública, militares, etc), entonces reconsiderar el uso del escritorio.

De lo contrario, relajarse, hacer lo correcto, y no se preocupe por "secuencias de comandos".

Los programas en C ++ son más fáciles de cortar, porque la gente es perezosa y permiten la inyección de SQL.

Otros consejos

Posiblemente:

  1. El usuario introduce sus credenciales en el cliente de escritorio.
  2. El cliente le dice al servidor: "Hola, mi nombre de usuario y la contraseña es la contraseña"
  3. .
  4. El servidor comprueba estos.
  5. El servidor le dice al cliente: "Hola, nombre de usuario Aquí está el token secreto: ...."
  6. A continuación, el cliente utiliza el token secreto junto con el nombre de usuario para las comunicaciones "señal" con el servidor.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top