Ver Mensaje Individual
  #4  
Antiguo 09-01-2009
rolandoj rolandoj is offline
Miembro
 
Registrado: abr 2007
Posts: 395
Reputación: 20
rolandoj Va por buen camino
Tratemos de entender conceptos y terminología

Hola,

Muchas gracias por el interés.

Al igual que tú, tengo la enorme duda de que de pronto no nos estamos entendiendo porque nos estamos refiriendo a ciertas cosas con diferente terminología.

Para empezar, cuando yo hablo de cifrado o encriptación, me refiero a cualquier método con el cual, dado un dato, lo transformo en una cadena de información diferente. En ese sentido, para mi el hash es un cifrado.

Ahora bien, para aclarar lo de la clave de usuario, mejor hagamos un ejemplo:

Supongamos que tengo una página Web donde para conectarme me piden digitar en el formulario un usuario y un password. Digamos que mi usuario es Delphi y mi clave Pedro. Cuando yo uso el botón de Login, el sistema envía un comando POST de http a mi servidor. Si desde el cliente yo no encripto mi clave, asumiendo que mi servidor es un dll, el comando POST que se genera puede ser algo como esto:

Código Delphi [-]
http://www.midominio.com/miacceso/miservidor.dll?USUARIO=Delphi&CLAVE=Pedro

Ese es el texto que vá por http. Cualquiera que lo intercepte puede ver que mi clave es Pedro y mi usuario es Delphi. Sabiendo eso, solo tienen que entrar a la página y digitar exactamente lo mismo. No importa el método que hayas usado en el servidor; por eso te digo que hay encriptar en el cliente; de lo contrario no hay forma de evitar que conozcan tú clave.


Ahora, que se use un protocolo https, que solo se encripte parte de la información, etc, son detalles de estilo, la forma de cifrar lo que se envía. Lo relevante es la necesidad de ocultar de alguna forma, al menos los datos más sensibles que se están enviando, y eso necesariamente debe hacerse en el cliente.

De hecho, la visibilidad de los datos directamente en la Base de Datos es la que a mi menos me preocupa. Por qué ?. Porque para acceder a las tablas de la Base de Datos primero tienen que conseguir un usuario Windows o Unix del servidor que tenga permisos para ejecutar los programas del motor de Base de Datos y acceso al archivo de la misma; luego tiene que conseguir un usuario del motor con acceso a la Base de Datos, lo cual es complicado porque nada de eso llega nunca a los usuarios finales; es exclusivo del servidor. El guardar datos encriptados en las tablas es una medida de elemental prudencia; pero, en la práctica, es muy improbable que alguien extreno pueda llegar directamente a esas tablas vía SQL
Responder Con Cita