La forma más sencilla sería utilizar algún tipo de correo electrónico seguro: S / MIME o PGP. Ambos tienen ventajas y desventajas que están fuera del alcance, pero ambos le permitirán proteger la contraseña (también puede proteger el archivo TC, pero es innecesario).
Usted podría realizar un intercambio de acuerdo de clave DH por correo electrónico , fíjate:
No te recomiendo que sigas estos pasos: usar un paquete estándar de seguridad de correo será más simple y más seguro
Así es como lo harías, sin embargo:
- Envíe un primer mensaje donde esté de acuerdo con los valores de P y G (hay muchas bibliotecas que pueden ayudarlo a hacerlo o incluso podría elegir una combinación existente)
- Cada uno elige su entero secreto (lo suficientemente grande) a y b
- Cada uno realiza (A = G ^ a mod P) y (B = G ^ b mod P) e intercambia A y B
- Cada uno realiza (s = b ^ a mod P) y (s = b ^ a mod P) para obtener un secreto compartido s
- use s como contraseña para su archivo TC.
Sin embargo, tenga en cuenta que necesita usar valores de tamaño razonable para la seguridad (P debe tener al menos 1024 bits, por ejemplo), así que tendrá que usar la aritmética de números grandes para manipularlos y necesitará para verificar que no pertenecen a una clase especial de valores débiles (consulte la respuesta a esta pregunta que describe el problema).
Debido a eso, elegir P y G puede ser complicado y complejo. Le recomendaría que use OpenSSL para que lo haga por usted de la siguiente manera:
openssl dhparam 1024 -text
Esto generará una P larga de 1024 usando el generador predeterminado G = 2 y lo mostrará en un formato legible. (
)