[Ayuda] PassMaster v3.0

Esta sección esta especialmente diseñada para todos aquellos usuarios que estés desarrollando plugins o aplicaciones y quieran ayuda para dichos plugins o aplicaciones.
Ya empece a hacer la nueva version de PassMaster...
Me voy a enfocar mas en mejorar la experiencia visual pero tambien necesito ideas para implementar en el programa...

Eso es lo que necesito ...
algunas ideas para ponerle a PassMaster, Mejorar la Seguridad y interfaz grafica...

Si alguien me desea ayudar bienvenido sea su comentario...

La interfaz grafica no va a cambiar mucho solamente voy a agrandar un pokito la ventana pero va a tener el mismo color negro caracteristico y voy a pnerle caracteristicas de el tema Tanzo7 para win 7 :P

Repito Alguna ayuda o sugerencia por favor decirme.....

Imagen
A mi el tipo de interfaz que vas usando me gusta , no es recargada pero es atractiva y queda bastante pro.
Por otro lado como sugerencia para mejorar trabaja el resize de la ventana , realizar copias de seguridad y utilizar bases de datos y encriptaciones para guardar las contraseñas ( no se si ya lo haces asi).
Está bastante bien, lo que tengo es una pregunta porque vi lo del settings.ini en el otro post, y es que tipo de almacenamiento utilizas para guardar las claves?

Si es una sqlite puedes hacer una cosa para aumentar la seguridad, cuando el usuario le ponga una clave de protección al programa guárdala en el settings.ini con el Crypto.MD5DigestFromString que si no creo mal la única forma de sacarla es a fuerza bruta. Despues cuando abran el programa pides el pass y le haces el MD5 también, y si coinciden entonces le dejas paso, de este modo el pass nunca está al descubierto y está protegido.

Bueno lo primero es una tontería en si ya que el fallo del settings.ini era otro, pero ahora es cuando te quiero explicar eso. Coges la clave que te ponga el usuario sin el MD5 y la utilizas para encriptar y desencriptar los datos de la base de datos con Crypto.BlowfishEncryptString y Crypto.BlowfishDecryptString.

Ventajas:
  • El pass se guarda con un MD5 por lo que no se puede desencriptar, solo a base de fuerza bruta.
  • La base de datos se encripta con el pass del usuario por lo que la única forma de desencriptarla es con ese pass.
  • Complementando lo de arriba, no hay forma de sacar el pass de tu código aun desmontando el programa.
  • Aunque borres el settings.ini pasa lo mismo, la base está encriptada y aunque puedas acceder borrando el archivo los datos recibidos serán erróneos.
Desventajas:
  • Como el usuario pierda la clave pierde los datos.
  • No puedes buscar en la base de datos, ya que todo está encriptado, al menos que solo encriptes las claves y no los sitios.
  • Consumirá un poco más de recursos al tener que encriptar/desencriptar cada vez.
Si, esa es la mejor forma para administrar una base de datos. De hecho yo ni siquiera guardaría la contraseña del usuario en el settings.ini.

Lo que deberías de hacer es encriptar un texto con la contraseña del usuario o una entrada de la base de datos (con un texto mayor de 12 dígitos). Cuando el usuario inicie sesión desencriptas esa entrada con la contraseña, y si coincide con los datos que deberían de ser, pues podrá seguir mostrando todo el contenido de la base de datos, al poder desencriptarlo todo con su contraseña.

Es fácil y muy seguro.

En cuanto a la base de datos... puedes usuar un sqlite, un simple documento de texto (en cada linea metes separadores para cargar cada cosa) o un archivo ini. Siempre todo encriptado con el pass del usuario.

Un saludo
Daniel_Lechu escribió:Está bastante bien, lo que tengo es una pregunta porque vi lo del settings.ini en el otro post, y es que tipo de almacenamiento utilizas para guardar las claves?

Si es una sqlite puedes hacer una cosa para aumentar la seguridad, cuando el usuario le ponga una clave de protección al programa guárdala en el settings.ini con el Crypto.MD5DigestFromString que si no creo mal la única forma de sacarla es a fuerza bruta. Despues cuando abran el programa pides el pass y le haces el MD5 también, y si coinciden entonces le dejas paso, de este modo el pass nunca está al descubierto y está protegido.

Bueno lo primero es una tontería en si ya que el fallo del settings.ini era otro, pero ahora es cuando te quiero explicar eso. Coges la clave que te ponga el usuario sin el MD5 y la utilizas para encriptar y desencriptar los datos de la base de datos con Crypto.BlowfishEncryptString y Crypto.BlowfishDecryptString.

Ventajas:
  • El pass se guarda con un MD5 por lo que no se puede desencriptar, solo a base de fuerza bruta.
  • La base de datos se encripta con el pass del usuario por lo que la única forma de desencriptarla es con ese pass.
  • Complementando lo de arriba, no hay forma de sacar el pass de tu código aun desmontando el programa.
  • Aunque borres el settings.ini pasa lo mismo, la base está encriptada y aunque puedas acceder borrando el archivo los datos recibidos serán erróneos.
Desventajas:
  • Como el usuario pierda la clave pierde los datos.
  • No puedes buscar en la base de datos, ya que todo está encriptado, al menos que solo encriptes las claves y no los sitios.
  • Consumirá un poco más de recursos al tener que encriptar/desencriptar cada vez.
aass escribió:Si, esa es la mejor forma para administrar una base de datos. De hecho yo ni siquiera guardaría la contraseña del usuario en el settings.ini.

Lo que deberías de hacer es encriptar un texto con la contraseña del usuario o una entrada de la base de datos (con un texto mayor de 12 dígitos). Cuando el usuario inicie sesión desencriptas esa entrada con la contraseña, y si coincide con los datos que deberían de ser, pues podrá seguir mostrando todo el contenido de la base de datos, al poder desencriptarlo todo con su contraseña.

Es fácil y muy seguro.

En cuanto a la base de datos... puedes usuar un sqlite, un simple documento de texto (en cada linea metes separadores para cargar cada cosa) o un archivo ini. Siempre todo encriptado con el pass del usuario.

Un saludo
Yo usaba Ceone Crypt y guardaba los strings encriptados....

Gracias por su ayuda y sigo esperando sugerencias...

------------------
animo con el programa.
personalmente mejoraria la interfaz, algo más avanzada y con más funciones.

saludos.
TE recomiendo lo mismo amigo bases de datos en SQLite y encriptar la data, es lo mas seguro que puedo ver.

y sobre el aspecto pues si seria bueno mejorarlo un poco mas darle un toque mas avanzado se mira muy bien todo el skin que tiene pero recuerda que cuando avanzas con actualizaciones debe de mejorar también el aspecto visual y el color negro a mi ver es de PM, pero recuerda que muchas mas personas usaran tu programa y no a todos les gusta ese color puedes poner opciones de skin un sistema de selección de temas al menos dos temas.
echaste un vistazo al ejemplo que te puse en el otro post???

http://www.amsspecialist.info/viewtopic ... 1&start=10

Es que me he quedado en la duda...
Daniel_Lechu escribió:echaste un vistazo al ejemplo que te puse en el otro post???

http://www.amsspecialist.info/viewtopic ... 1&start=10

Es que me he quedado en la duda...

Ahh Si perdon jeje.. Si lo utilice y de verdad este sistema es el que use para la v3.0 que ya casi saco la Beta para que ustedes la prueben si quieren jeje

PDT:

Me encanto ese ejemplo ;) era lo que buscaba.
Me alegro de que te sirviera ;), la verdad es que es de lo más seguro ya que no guarda el pass en ningún lado de modo visible...

Tengo una duda, el INI lo usas para algo más aparte de guardar el Pass???, porque si no a lo mejor se puede sustituir de alguna manera...
Daniel_Lechu escribió:Me alegro de que te sirviera ;), la verdad es que es de lo más seguro ya que no guarda el pass en ningún lado de modo visible...

Tengo una duda, el INI lo usas para algo más aparte de guardar el Pass???, porque si no a lo mejor se puede sustituir de alguna manera...
Pues si lo utilizo para otras cosas como guardar rutas de carpetas y algunas opciones como backup automatico entre otros... Porque?
Era por pasarlo al archivo de Base de datos, que quieras que no aumenta la seguridad un pelin ya que solo tu y los del foro sabemos que es una base Sqlite, y al menos que el usuario final le de por andar probando no podría sacar tampoco los datos al igual que ahora que con el wordpad los ves, aunque a estas alturas con lo que le has metido no afecta a la seguridad...<div>
Daniel_Lechu escribió:Era por pasarlo al archivo de Base de datos, que quieras que no aumenta la seguridad un pelin ya que solo tu y los del foro sabemos que es una base Sqlite, y al menos que el usuario final le de por andar probando no podría sacar tampoco los datos al igual que ahora que con el wordpad los ves, aunque a estas alturas con lo que le has metido no afecta a la seguridad...<div>

Me parece buena idea aver que hago.. ;D
wow