透明的IMAP代理

时间:2017-12-27 07:48:09

标签: python imap

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

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

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

在寻找解决方案几天后,我仍然没有任何跟踪。也许这是不可能的?如果你有任何曲目,我很乐意阅读它。

谢谢。

1 个答案:

答案 0 :(得分:0)

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

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

设置完成后,代理只需传递所有命令和响应,并即时处理收到的邮件。

我承认这不是一个完整的答案,但完整的答案将远远超出SO的范围,我希望它可以通往它。如果您后来陷入实际实施阶段,请随时在此处提出更准确的问题。