繁体   English   中英

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

[英]Securely sending information from a web form to an email address

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM