2009-03-25 34 views
6

Tôi có một ứng dụng đường ray kích hoạt Email trên các sự kiện nhất định. Những email này được gửi đến một công ty riêng biệt, những người sẽ thêm một số dữ liệu bổ sung vào email khi trả lời. Điều này là tất cả hiểu và làm việc, tôi phân tích các câu trả lời, trích xuất dữ liệu và nó hoạt động tốt.Làm cách nào để gửi và nhận email được mã hóa trong Ruby on Rails?

Tôi hiện đã được yêu cầu mã hóa email.

Có ai có kinh nghiệm/ý tưởng nào về cách tốt nhất để làm điều này không?

Tôi không thể đảm bảo ứng dụng Email nào bên thứ ba sẽ sử dụng vì vậy tôi cần một giải pháp có thể hoạt động chung trên nhiều ứng dụng email. Mã hóa phải được thực hiện cả bởi ứng dụng của tôi khi tôi gửi email và bởi ứng dụng khách (Outlook, Thunderbird, Entourage, vv) khi nó trả lời. Sau đó, tôi sẽ cần nhận được email được mã hóa, giải mã và phân tích cú pháp để trích xuất thông tin mới mà tôi cần.

Mọi người có thể chỉ cho tôi các plugin/tài liệu có thể giúp tôi đạt được điều này không?

Trả lời

3

Nếu đầu kia không sử dụng ứng dụng của bạn, bạn nên sử dụng S/MIME hoặc PGP.

Hầu hết ứng dụng email khách trên máy tính để bàn hỗ trợ S/MIME ngoài hộp và PGP thường có sẵn dưới dạng plugin (đối với Thunderbird có Enigmail, đối với Apple Mail có GPGMail, v.v.).

Ngoài ra, S/MIME cần chứng chỉ mà bạn có thể tự tạo hoặc mua từ Cơ quan cấp chứng chỉ (như Verisign hoặc Thawte), tùy theo nhu cầu của bạn.

Tôi chắc rằng có thư viện S/MIME và PGP cho Ruby, nhưng tìm kiếm nhanh không tiết lộ "một thư viện thực" cho tôi. Tuy nhiên, bạn luôn có thể để số OpenSSL (cho S/MIME) hoặc GPG thực hiện việc nâng hạng nặng cho bạn.

+1

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

1

Tôi nghĩ câu trả lời của Güder là tuyệt vời, nhưng hãy nhớ rằng tất cả những gì cần thiết là người dùng đã có một cái gì đó giống như GPG cài đặt và một khóa liên quan có sẵn. Quá trình thiết lập mệt mỏi này là khoảng 95% trở ngại để nhận được mã hóa email phổ biến hơn.

Bạn có chắc chắn rằng các cá nhân đã ủy thác dự án này hiểu rằng nó không đơn giản như lật công tắc trong mã để gửi email được mã hóa?

Một tùy chọn là kết hợp trong quá trình cài đặt cho chương trình của bạn một quy trình quản lý khóa phụ thuộc vào (và bao gồm) GPG. Sau đó, người dùng có thể chọn một cụm từ mật khẩu rất khó (đảm bảo chạy kiểm tra trên nó để nó ít nhất là chữ và số, vv), một khóa công khai có thể được tạo ra từ đó, và tải lên các máy chủ khóa phổ biến.

Khóa được tạo có thể được sử dụng cho email mà chương trình tạo và quan trọng nhất, khóa sẽ là duy nhất cho mỗi người dùng. Sau đó, bạn có thể thực hiện cuộc gọi bên ngoài thông thường tới ứng dụng email mặc định trên hệ điều hành của người dùng để mở email.

Để đảm bảo rằng email được mở mã hóa, tôi sẽ kiểm tra môi trường và nhận ứng dụng email mặc định, sau đó gửi email từ chương trình của bạn với các cờ cần thiết để tạo email được tạo. Điều này có nghĩa là nó sẽ khác với Enigmail của Thunderbird hơn là cho Mail của Apple, ví dụ.

Nhưng đừng quên về OpenSSL, chắc chắn ...

Các vấn đề liên quan