¿Podemos ocultar una clave hash constante utilizada para el cifrado AES de una contraseña?

0

¿Hay métodos en java para ocultar una clave hash constante que está incrustada en una clase? Para su información, la clave se usa para cifrar AES una contraseña utilizada para autenticar un servicio web que solo tomaría un texto simple.

    
pregunta user2350096 18.09.2014 - 21:07
fuente

2 respuestas

1

No. Si inserta algo en el código fuente, está disponible para cualquier persona con el código fuente.

En la mayoría de las circunstancias, desea que cada sistema tenga sus propias claves, de modo que dos usuarios de su software no puedan atacarse entre sí. En un entorno alojado, usted desea la separación de tareas entre operaciones y operaciones: no debe tener las claves que las operaciones utilizan para proteger los datos, ya que la descripción del trabajo del desarrollador es escribir el código y no ser custodios de los datos.

En raras ocasiones, deseará incrustar su clave pública para garantizar que su software pueda comunicarse con su servidor. Esto es un poco más flexible sin codificación dura, y más fácil de cambiar si no se codifica.

Dicho todo esto, si desea hacer una pregunta diferente que trate el problema que está tratando de resolver en lugar de cómo lo está tratando de resolver, es probable que podamos darle un mejor consejo.

Ya que ha cambiado su pregunta y ha agregado que está intentando enviar una contraseña a un servicio web, tengo el siguiente consejo: no lo haga de esa manera. Usted está inventando su propio protocolo criptográfico para autenticarse, y planea proteger solo la contraseña. Si puedes usar TLS, usa eso. Si está utilizando SOAP, puede usar WS-Security. Su protocolo personalizado no protege contra la reproducción de contraseñas (no necesito la contraseña de texto simple, solo la contraseña cifrada que otra persona envió), no protege otros mensajes enviados al servidor y cualquier persona puede descifrarla con una copia de Su software de cliente. Y no intente arreglar su protocolo; hay escritos de libros sobre cómo las fallas sutiles pueden destruir la seguridad de un protocolo de red, y si trata de arreglar el suyo, solo reiniciará reinventando el TLS (si está suerte)

    
respondido por el atk 19.09.2014 - 04:10
fuente
0

Probablemente valga la pena pensar en lo que estás tratando de hacer, en lugar de en cómo lograrlo.

  1. Tiene un cliente distribuido que utiliza un servicio web.

  2. El servicio web restringe el uso a través de una contraseña.

Entonces, la pregunta es ¿cómo puede distribuir una versión del cliente mientras protege la contraseña que necesita para acceder al servicio web?

Si controla el proceso de instalación y está usando Windows, puede almacenar la contraseña en el contexto de una cuenta de servicio y usar DPAPI para obtener acceso a ella.

Si usted controla el servicio web, podría ofrecerle otro servicio que requiera certificados digitales o contraseñas únicas y emitir uno con cada cliente.

También puede restringir el acceso al servicio web con una lista blanca de direcciones IP.

Sin embargo, lo que no puedes hacer es evitar que alguien obtenga un secreto del código que les distribuyas, por mucho que lo intentes.

    
respondido por el DodgyG33za 19.09.2014 - 07:41
fuente

Lea otras preguntas en las etiquetas