代码之家  ›  专栏  ›  技术社区  ›  ejm Xan

使用RFC1847加密和签名的MIME消息

  •  0
  • ejm Xan  · 技术社区  · 15 年前

    我需要一个用于Web传输的客户机-服务器加密解决方案(即签名和加密的客户机端,以及验证和解密的服务器端)。

    我正在使用HTTP,但由于共享托管限制,SSL不可用(我的服务器是共享主机环境)。 在寻找替代解决方案时,我决定使用OpenPGP GnuPG . 其中一个原因是它在PHP中通过各种PEAR和PECL模块得到支持(PHP是我打算使用的语言 二者都 我的客户机脚本和服务器脚本,尽管Perl也是最后的选择)。

    我现在正试图决定传输数据的最佳方式。我遇到过 RFC 1847 定义加密和签名的多部分MIME消息。此协议专门针对中的PGP扩展。 RFC 3156 . (我认为这些协议与S/MIME加密电子邮件协议有关)。

    我的问题是:有什么理由遵循这些标准吗?就协议而言,它们看起来像是合理的解决方案,但是有没有真正使用这个协议的客户机呢?例如,如果我向ApacheWeb服务器发出了一个多部分/加密请求,是否有任何简单的方法来检索数据?我使用PHP脚本进行的测试让我认为,试图破译这样的请求是没有用的($post data似乎来自“multipart/form data”mime-type data)。

    作为我的主人 让我打开插座,它 我可以使用php的socket编程API编写一个php脚本来充当一个服务器,它将接受“multipart/encrypted”和“multipart/signed”的http请求,但这似乎有点过分了。

    有什么建议吗?

    有关我的问题的更多信息,请参阅 this question .

    1 回复  |  直到 15 年前
        1
  •  1
  •   Vexatus    15 年前

    你说得对-这些协议与加密邮件协议有关,在你的情况下使用它有点过分了,你将不得不使用openssl php扩展。使用openpgp。

    由于您的客户机将用PHP编写-请考虑以下场景:

    场景1:创建简单的SOAP Web服务

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

    • getpublickey()-返回公钥
    • sendmessage(msg)-返回答案

    场景2:使用get/post消息

    • 客户端->HTTP GET(将您的 公钥)->服务器
    • 客户<—(我的 公钥是XXXX)<-服务器
    • 顾客 对服务器的公用邮件进行加密 密钥客户端将自己的公钥添加到 消息
    • 客户端-HTTP Post(发送 加密邮件)->服务器
    • 服务器 解码消息并编码 使用客户端公钥应答
    • 顾客 <-(对客户端的编码应答)<。- 服务器