Esconder la clave dentro de un programa

La cuestion es que tengo un programa que accede a una base
datos. Pero claro en la llamada a la función de conexión viene
la clave y basta con mirar el codigo para verla.

¿que metodos conoceis para evitar esto?

en el caso concreto que estoi tratando como es java se que basta
con usr rmi (llamada a procedimiento remoto) para que la función
de conexión se ejute en otra maquina y asi la clave no aparezca en
el codigo del cliente.

¿alguien conoce alguna otra forma de ocultar esta información?
(sea en el lenguje que sea )
Chico, lo que pides es imposible, por lo menos desde mi punto de vista, en la pratactica lo que puedes hacer es dificultar mucho que sea vista pero poco mas, tal vez el rmi sea la unica solucion mas o menos eficaz, tambien podrias buscar otros metodos para certificar la clave, como usar las claves cifradas, un metodo interesante pero que implica la modificacion de la base de datos o crear un puente es la encriptacion de la clave con otra clave almacenada en el servidor para volver a reencriptar luego la clave valida segun sesion, esto no lo imposibilita pero obliga a un buen debuging a un nivel muy dificil.

ejemplo simplificado del proceso de generacion de la clave de sesion:

Cliente - conexion -> Servidor
Cliente <- intercambio de claves publicas -> Servidor
Cliente -* Conexion cifrada *- Servidor
Cliente <-* Clave de la ClaveCliente + Clave para la generacion de la clave de sesion *- Servidor
Cliente -* Verificacion de la Clave de sesion*-> Servidor
Cliente -* Fin de la conexion cifrada*- Servidor

ahora el cliente dispone de una clave valida solo durante la sesion o asta la caducidad establecida, la unica manera de averigura la clave de una manera rapida es haciendo debuging con un cliente valido, estudiar el protocolo y el modo de funcionar el sistema aparte de tambien usar un puente transparente para la conexion cifrada.

Clave de sesion es lo mismo que la clavecliente descifrada y luego cifrada con la clave para la generacion del aclave sesion
1 respuesta