代码之家  ›  专栏  ›  技术社区  ›  Doomhammer

透明IMAPs代理

  •  0
  • Doomhammer  · 技术社区  · 7 年前

    我想使用python(pySocks和imaplib)从零开始实现一个透明的IMAPS(SSL/TLS)代理。

    用户和代理位于同一网络中,邮件服务器位于外部(例如:gmail服务器)。端口993上的所有流量都重定向到代理。用户应该使用他最喜欢的电子邮件应用程序(例如:thunderbird)检索他的电子邮件。代理应该接收命令并将其传输给用户/服务器,并且应该能够读取检索到的电子邮件的内容。

    然而,由于流量是加密的,我不知道如何获取用户的帐户和密码(不使用数据库),也不知道如何在不知道用户的帐户和密码的情况下读取电子邮件的内容。

    经过几天的寻找解决方案,我仍然没有任何线索。也许这是不可能的?如果你有任何曲目,我很乐意读。

    非常感谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Serge Ballesta    7 年前

    您必须将代理实现为中间人攻击。这意味着有两个不同的SSL/TLS加密通信通道:一个在客户端和代理之间,一个在代理和服务器之间。这意味着:

    • 客户端明确地将代理设置为其邮件服务器(如果只有少数服务器使用每个实际服务器的一个名称/地址)
    • 代理具有客户端信任的真实邮件服务器的证书。常用的方法是使用 虚拟CA :代理具有客户端信任的专用证书,可用于签署任何域的证书,如防病毒软件。

    设置好后,代理只需传递所有命令和响应,并动态处理收到的邮件。

    我承认,这不是一个完整的答案,但完整的答案将远远超出SO的范围,我希望这可能是一条通向它的道路。如果您以后在实际实施中遇到困难,可以在这里提出更精确的问题。