-->

使用RFC 1847年加密和签名MIME邮件(Encrypted and signed MIME m

2019-10-29 08:32发布

我需要网络传输客户端 - 服务器加密解决方案(即签名和加密的客户端,并验证和解密的服务器端)。

我使用HTTP,SSL,但并不是由于共享主机的限制可用的(我的服务器是一个共享的主机环境)。 展望替代解决方案,我决定使用的OpenPGP GnuPG的 。 其中的一个原因是,它是在PHP中通过各种PEAR和PECL模块(PHP是我打算用两个我的客户端脚本和我的服务器脚本语言,尽管Perl是也可以作为最后的手段)的支持。

现在我试图决定最佳的方式来传输数据。 我所遇到的RFC 1847年 ,它定义加密和签名的多部分MIME消息。 该协议在PGP具体扩展RFC 3156 。 (我认为这些协议相关的S / MIME加密的电子邮件协议)。

我的问题是:没有任何理由按照这些标准吗? 至于协议去,它们看起来像明智的解决方案,但没有实际使用该协议的任何客户端? 例如,如果我犯了一个多/加密请求Apache Web服务器,会不会有来检索数据没有简单的方法? 使用PHP脚本我的测试使我觉得PHP是没有用试图破译喜欢这些请求($ _ POST数据似乎来自“的multipart / form-data的” MIME类型的数据)。

由于我的主机让我打开插座, 有可能对我来说,使用PHP的套接字编程API来写一个PHP脚本作为将接受“多/加密”和“多部分/签名” HTTP请求的服务器,但是这似乎有点小题大做。

有什么建议么?

关于我的问题的详细信息,请参阅这个问题 。

Answer 1:

你说得对 - 用你的情况是矫枉过正的一点点,你wolud必须使用OpenSSL php扩展,这些协议都涉及到enrypted邮件协议。 一起去的OpenPGP。

由于您的客户端将在PHP写成 - 考虑以下情况:

方案1:创建简单的SOAP Web服务

服务器和客户端的方法是相同的:

  • 的getpublickey() - 返回公钥
  • 的sendMessage(MSG) - 返回回答

方案2:使用GET / POST消息

  • 客户端 - > HTTP GET(给我你的公钥) - >服务器
  • 客户端< - (我的公钥是XXXX)< - 服务器
  • 客户端加密与服务器的公钥客户端消息增加了自己的公钥对消息
  • 客户端 - > HTTP POST(发送加密的消息) - >服务器
  • 服务器对消息进行解码,并编码与客户的公钥答案
  • 客户端< - (编码回答客户端)< - 服务器


文章来源: Encrypted and signed MIME messages using RFC 1847