Как отправлять и получать зашифрованные письма в Ruby on Rails? - PullRequest
7 голосов
/ 25 марта 2009

У меня есть приложение rails, которое запускает электронные письма при определенных событиях. Эти электронные письма отправляются отдельной компании, которая добавит некоторые дополнительные данные в электронное письмо при ответе. Это все понято и работает, я разбираю ответы, извлекаю данные и все работает нормально.

Теперь меня попросили зашифровать письма.

Есть ли у кого-нибудь опыт / идеи по поводу того, как это сделать?

Я не могу гарантировать, какой почтовый клиент будет использовать третья сторона, поэтому мне нужно решение, которое будет работать во всех почтовых клиентах. Шифрование должно выполняться как моим приложением при отправке электронного письма, так и клиентским приложением (Outlook, Thunderbird, Entourage и т. Д.), Когда оно отвечает. Затем мне нужно будет получить зашифрованное электронное письмо, расшифровать и проанализировать его, чтобы извлечь новую информацию, которая мне нужна.

Может кто-нибудь указать мне на плагины / документы, которые помогут мне достичь этого?

Ответы [ 2 ]

3 голосов
/ 25 марта 2009

Если другой конец не использует ваше приложение, вы должны использовать S / MIME или PGP.

Большинство настольных почтовых клиентов поддерживают S / MIME из коробки, и PGP обычно доступен в виде плагина (для Thunderbird есть Enigmail , для Apple Mail есть GPGMail и т. Д. ).

Кроме того, S / MIME требуются сертификаты, которые вы можете создать самостоятельно или приобрести в Центре сертификации (например, Verisign или Thawte ), в зависимости от ваших потребностей.

Я уверен, что есть библиотеки S / MIME и PGP для Ruby, но быстрый поиск не выявил для меня «единственную истинную библиотеку». Однако вы всегда можете позволить OpenSSL (для S / MIME) или GPG сделать тяжелую работу за вас.

1 голос
/ 21 июля 2009

Я думаю, что ответ Гудера превосходен, но имейте в виду, что все это требует, чтобы у пользователя уже было установлено что-то вроде GPG и доступен соответствующий ключ. Этот изнурительный процесс установки составляет около 95% препятствия для более широкого распространения шифрования электронной почты.

Вы уверены, что люди, которые заказали этот проект, понимают, что это не так просто, как переключить код в коде для отправки зашифрованных писем?

Одним из вариантов является включение в процесс установки вашей программы подпрограммы управления ключами, которая зависит (и включает) GPG. Затем пользователь может выбрать очень сложную фразу-пароль (убедитесь, что она выполняет проверки, чтобы она была как минимум буквенно-цифровой и т. Д.), Из этого может быть сгенерирован открытый ключ и загружен на популярные серверы ключей.

Сгенерированный ключ можно использовать для электронных писем, которые генерирует программа, и, что наиболее важно, ключ будет уникальным для каждого пользователя. Затем вы можете сделать обычный внешний вызов почтовому клиенту по умолчанию в операционной системе пользователя, чтобы открыть письмо.

Чтобы убедиться, что электронное письмо открыто в зашифрованном виде, я проверю среду и получу почтовый клиент по умолчанию, а затем отправлю электронное письмо из вашей программы с необходимыми флагами, необходимыми для шифрования сгенерированного электронного письма. Это означает, что для Enigmail Thunderbird он будет другим, например, для почты Apple.

Но не забудьте про OpenSSL, конечно ....

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...