安全地将信息从Web表单发送到电子邮件地址

时间:2012-01-27 01:31:40

标签: php security

是否可以让用户在HTTPS安全站点上的表单中输入信息,然后使用PHP将该信息安全地发送到电子邮件地址?如何加密电子邮件,以便从HTTPS站点发送和通过HTTPS电子邮件检查它之间是否安全?这有多可行,有什么潜在的陷阱?

2 个答案:

答案 0 :(得分:6)

您可以使用PGPS/MIME加密电子邮件。这些将需要您的客户端的特殊支持来解密。大多数网络邮件提供商都没有这个(尽管可能有例如Firefox扩展使它工作)。

除了像PGP或S / MIME这样的端到端加密之外,由于电子邮件的明文遗产,它确实不可行:

  • 可以使用TLS(使用SMTL STARTTLS扩展名)在MTA之间传输电子邮件。但是,没有办法将消息标记为需要它。您可以将您的 MTA配置为需要STARTTLS,而不是其他任何人。 (请注意,除非你有root用户,否则你甚至无法配置你的MTA。)MTA的默认和正常配置将高兴地通过TLS接收消息,并将其转发为纯文本。
  • 在需要时添加继电器是正常的。在实践中,它们很常见。因此,在最终交付之前,您的消息可能需要几个跳。您可以强制第一跳的TLS,但不能强制执行其他任务。您可以检查Received:标头以查看邮件占用了​​多少跳,但这可能随时发生变化(出于操作原因,它可能会因消息而发生变化)。
  • 一般来说,传输过程中的邮件会写入磁盘。正常的MTA进程是接受消息,写入磁盘,确认接收,向下一个MTA发送消息,等待确认,从磁盘删除。您当然可以将MTA配置为将这些存储在加密的磁盘上,但通常不会这样做。
  • 一旦“发送”,邮件通常以明文形式存储在磁盘上。您的网络邮件提供商可能会这样做。
  • 如果您使用非网络邮件客户端访问该电子邮件,则很可能以纯文本格式将邮件下载到磁盘。然后,您可以在随机桌面PC上找到未加密的消息。 MUA甚至可以通过互联网以纯文本形式传输消息。
  • 可以从任何机器轻松访问任何地方的电子邮件。尤其是网络邮件。对于您或您公司中的其他人来说,登录到从随机设备发送消息的帐户将非常诱人。你能保证 none 这些设备是否安装了恶意软件密钥记录器,会话劫持程序,屏幕抓取器等?你能保证没有用户会永远忽略证书警告,从而实现中间人攻击吗?

除了一些最大的网络邮件提供商,他们可能没有足够的安全性来保护机密身份数据。例如,如果你打电话给他们并说你忘记了密码,他们如何处理?或者,如果某人 else 打电话给他们并假装自己。

最后,即使使用PGP或S / MIME,您仍然会遇到以下问题:在现实世界中,电子邮件可能并且确实会丢失。您的网站可能会发送邮件,确认邮件已被接受传递,然后该邮件永远不会到达 - 甚至不会发送到垃圾邮件文件夹。对于有价值的数据,这通常是不可接受的。

注意:如果使用PGP或S / MIME加密消息,使用合理的设置(例如,3072-bit or higher RSA密钥对,AES密码),那么电子邮件消息(密文)是否被披露无关紧要;没有私钥,它是不可读的。使用的加密与TLS非常相似(但遗憾的是,它不提供完美的前向安全性作为其离线协议)。端到端加密可以防止端点之间的不安全感。并不是说我主张在报纸上打印cihertext,但即使这样也应该是安全的。当然,您必须保持拥有私钥的机器(并解密电子邮件)安全。

答案 1 :(得分:2)

仅发送最后四位数字。比如!!!! - && -8590。如有必要,向他们发送安全链接以在线查看号码。还要记住,在某些地区存储社会安全号码或明文中的任何敏感信息是非法的,总是加密或编码您的数据。

相关问题