Diffie Hellman Key Exchange en una aplicación de mensajería

7

Actualmente, soy un estudiante que está tratando de desarrollar una aplicación de mensajería en Android con java que implementará el intercambio de claves de Hellie Difie para asegurar que ambos puedan calcular una clave secreta para descifrar el contenido que se envía. dentro del texto.

Busqué varias fuentes en línea, pero no pude encontrar una biblioteca o hacer que mi propio intercambio de claves se pueda realizar dentro de la propia aplicación. Por ejemplo, si uso el móvil A para generar la clave, ¿cómo recibe el móvil B esos datos y sabe que es la clave pública? Además, una vez que se recibe la clave pública, ¿cómo genera su propia clave privada basada en la clave pública?

He mirado las diversas fuentes como enlace enlace enlace

y muchos más, pero parece que los códigos que proporcionan son más para ejecutar dentro de la aplicación donde hay 2 usuarios en el dispositivo, y no dentro de la aplicación, pero 1 usuario por dispositivo.

Lo siento por el problema, gracias!

    
pregunta hongster32 16.05.2016 - 10:44
fuente

1 respuesta

4

Para obtener una buena imagen del Intercambio de claves Diffie Hellman, algunas Las representaciones esquemáticas pueden ser útiles.

El enfoque común para las aplicaciones de mensajería en Android (o cualquier otro dispositivo cliente) en Java (o en cualquier otro idioma) es utilizar TLS generalmente junto con HTTPS para autenticar, autorizar y comunicar de forma segura el mensaje de texto sin formato a través de un mensaje seguro. Secuencia que contiene las representaciones de texto cifrado entre pares.

La probabilidad de implementar una versión casera segura de un Diffie Hellman Key Exchange sin unos pocos años de experiencia es pequeña. Un hecho que puede aclarar el panorama general es que la seguridad en la criptografía público-privada se basa en la participación de la Autoridad de Certificación como parte de la autenticación. JSA (Java Security Architecture) le da algunas opciones para emplear todo eso entre pares y en ausencia de un servidor web, pero a un nivel superior.

La relación entre la clave privada y la clave pública está diseñada de tal manera que la clave privada prácticamente no se puede calcular a partir de la clave pública, por lo que no se moleste en tratar de encontrar una manera de hacerlo.

Otra alternativa altamente segura sería usar un pad de una sola vez, lo que probablemente no será práctico para tu aplicación en absoluto.

Si ambos dispositivos tienen el mismo secreto (que se acordó de antemano), simplemente podría usar un algoritmo simétrico en ambos pares, pero requeriría una contraseña segura para ser almacenada en ambos dispositivos o recordada por ambos usuarios.

    
respondido por el Douglas Daseeco 21.02.2017 - 22:13
fuente

Lea otras preguntas en las etiquetas