2009-03-25 12 views
6

Tengo una aplicación de rieles que desencadena correos electrónicos sobre ciertos eventos. Estos correos electrónicos se envían a una compañía separada que agregará algunos datos adicionales al correo electrónico al responder. Todo esto se entiende y funciona, estoy analizando las respuestas, extrayendo los datos y funciona bien.¿Cómo envío y recibo un correo electrónico cifrado en Ruby on Rails?

Me han pedido que encripte los correos electrónicos.

¿Alguien tiene alguna experiencia/ideas sobre la mejor manera de hacerlo?

No puedo garantizar qué cliente de correo electrónico utilizará el tercero, así que necesito una solución que funcione genéricamente en muchos clientes de correo electrónico. El cifrado debe ser hecho tanto por mi aplicación cuando envío el correo electrónico como por la aplicación cliente (Outlook, Thunderbird, Entourage, etc.) cuando responde. Luego necesitaré recibir el correo electrónico encriptado, descifrarlo y analizarlo para extraer la nueva información que necesito.

¿Alguien me puede indicar complementos/documentos que me ayudarían a lograr esto?

Respuesta

3

Si el otro extremo no usa su aplicación, debe usar S/MIME o PGP.

La mayoría de los clientes de correo electrónico de escritorio admiten S/MIME de fábrica, y PGP suele estar disponible como complemento (para Thunderbird hay Enigmail, para Apple Mail hay GPGMail, etc.).

Además, S/MIME necesita certificados, que puede crear usted mismo o comprar en una entidad emisora ​​de certificados (como Verisign o Thawte), según sus necesidades.

Estoy seguro de que hay bibliotecas S/MIME y PGP para Ruby, pero una búsqueda rápida no reveló la "única biblioteca verdadera" para mí. Sin embargo, siempre puede dejar OpenSSL (para S/MIME) o GPG hacer el trabajo pesado por usted.

+1

http://github.com/bendiken/openpgp –

1

Creo que la respuesta de Güder es excelente, pero tenga en cuenta que todo lo que necesita es que el usuario ya tenga algo así como GPG instalado y una clave asociada disponible. Este proceso de instalación extenuante es aproximadamente el 95% del obstáculo para lograr que el cifrado de correo electrónico sea más común.

¿Está seguro de que las personas que encargaron este proyecto entienden que no es tan simple como activar un interruptor en el código para enviar correos electrónicos cifrados?

Una opción es incorporar en el proceso de instalación de su programa una rutina de gestión de claves que dependa (e incluya) de GPG. Luego, el usuario podría seleccionar una frase de contraseña muy difícil (asegúrese de ejecutar comprobaciones para que sea al menos alfanumérica, etc.), se podría generar una clave pública y subirla a los populares servidores de claves.

La clave generada podría utilizarse para los correos electrónicos que el programa genera, y lo más importante, la clave sería exclusiva para cada usuario. Luego puede hacer una llamada externa regular al cliente de correo electrónico predeterminado en el sistema operativo del usuario para abrir el correo electrónico.

Para asegurarme de que el correo electrónico se abre encriptado, reviso el entorno y obtengo el cliente de correo electrónico predeterminado, luego envío el correo electrónico de su programa con los indicadores necesarios para que el correo electrónico generado sea encriptado. Esto significa que va a ser diferente para Enigmail de Thunderbird que para el correo de Apple, por ejemplo.

Pero no se olvide de OpenSSL, sin duda ....

Cuestiones relacionadas