我必须将从网站收集的敏感信息(姓名,地址,社会安全号码等)发送到电子邮件地址。
使信息安全且易于在接收方提取的最佳行动方案是什么?
编辑:我将在网站上使用ASP.NET,而不确定它在此问题上的功能。
编辑:如果我决定将信息存储在数据库中,只是在新条目发送时发送邮件,这会更好吗?并创建一些安全的方式来转储信息。
答案 0 :(得分:8)
最好的做法是快速运行另一种方式。重新设计您的应用程序,使其不会导致身份盗用。
您可以使用S / MIME或PGP向大多数非Web电子邮件客户端发送安全电子邮件,但需要进行大量设置:收件人必须拥有证书,并且您必须获得正确的证书对于每个收件人。
作为更好设计的示例,请考虑向收件人邮寄通知的一个示例,然后返回到网站以在通过SSL安全地进行身份验证后查看信息。
虽然它有助于降低收件人所需系统的复杂性,但更大的好处是它可以加强对敏感信息的分发和保留的控制,并有助于审核对该信息的访问。向某人发送电子邮件可以让他们更加容易地将其永久存储,或者将其转发给未经授权的收件人。
答案 1 :(得分:2)
加密,加密,加密!!!别的什么:)
答案 2 :(得分:2)
将数据放入邮件的加密附件中。附件可以是您喜欢的任何格式。这将使另一方的解析变得可靠。您可以使用ASP.NET支持的任何编解码器,因此您可以选择对方可以读取的任何内容。
答案 3 :(得分:1)
可悲的是,如果您正在使用mailto:URL,我认为这里没有实用的解决方案。
通过电子邮件发送内容的唯一安全方式是加密。您可以使用PGP或S / MIME,但这些都不容易为Web表单上的任意用户部署,因为您无法使用PGP密钥或X.509证书轻松设置用户。
如果要从托管环境部署网站,则您控制的代码可能会加密数据然后发送。例如,您可以使用GPG使用您自己的公钥进行加密,然后将结果发送到电子邮件中。但这需要代码,而不仅仅是mailto:url。
除非你能在Javascript中找到公钥加密库。
答案 4 :(得分:1)
总之没有。默认情况下,电子邮件不受保护。您使用加密程序来保护内部信息,但这需要最终用户能够解密它。
最简单的方法可能是创建一个ssl加密站点,用户可以登录并访问该信息。
答案 5 :(得分:1)
您可能需要查看http://ecocrypt.com/SecureMessage/
这将允许您创建可通过标准电子邮件发送的加密邮件。
我认为他们有一个可用于购买/许可的API(成本非常低......) 但是,用户可以在云中加密/解密而无需任何设置要求。
Encrypted Message Using http://ecocrypt.com/SecureMessage
To read this secure message do the following:
1. go to http://ecocrypt.com/SecureMessage:
2. Copy this ENTIRE message into the encrypted message area:
3. Enter the message pass phrase:
4. Press the Decrypt button:
NOTE: the message pass phrase was sent in a separate message, or the sender assumed you already have it.
NOTE: If you need or lost the pass phrase contact the sender at:test@ecocrypt.com
------------------HEAD--------------------------------
ECOCRYPT:67570:95992fad87a1165c100a0b915f86ce7f:
------------------START--------------------------------
GyuyjmHF68edfoSGM0YqtICXPrA6P69Pf7pXdgZ22g1PjzoANDOVy+0UJ/P0Pb+B09O+IsXqWPus
BO1gsVOA1BnMEE5r68A2fa02nRC9F3anVV8rvZDiZdfu9up2uDWrtsGhlLcHI6iKau4z7dAxq6qV
k7C/o2l3
------------------END--------------------------------
云中的相同地址:http://ecocrypt.com/SecureMessage/ 消息Decrypted:
Greetings,
This is a test Message.
Sensitive Information Goes Here:
name ss and other sensitive info.
Thanks.
答案 6 :(得分:0)
我使用的是使用TLS的Gmail SMTP。我不是.NET用户,但通过Rails应用程序连接很容易。它是免费的!当然,我认为你每月只能获得大约200个消息,但你可以支付更多费用
答案 7 :(得分:0)
如果您对接收方有“控制”(我的意思是,如果接收方不是lambda用户),我将使用PGP进行公钥/私钥加密。这个article有一个使用GnuPG和.NET的完整工作示例。
答案 8 :(得分:0)
让我重新说明信息流,看看我是否做对了。
a)用户U将信息放入网站W, b)W然后通过电子邮件向U发送信息。
这使得必须保护两个通信过程。因为你只是要求保护b)我假设你在a)期间已经在使用TLS / SSL。
要保护b)您需要一些加密密钥。我看到两种解决方案:在a)期间交换的一些对称秘密或在a)期间交换的一些非对称公钥。后者在a)期间不需要任何保密,这是一个优点,但你仍需要验证这个密钥确实来自U.
在a)期间可能会传输这两种类型的键,您可能只需要在表单中插入一个新字段。在这两种情况下,U都需要有必要的软件来破译b)中收到的任何加密通信。将x509-Certificates或PGP-Keys作为两种标准加密算法,这些可能是最好的猜测。我不确定ASP.NET支持多少,但即使我假设不直接支持电子邮件加密,也应支持某些加密。
问题仍然存在,你找不到一个不假设你的邮件客户端的某些功能的解决方案(以上阅读电子邮件,对于我们中的一些人来说加密是一个相当常见的功能)。