如前所述,最好的解决方案是获得一个允许 https 的真正的网络托管计划。这不应该太贵,事实上甚至应该可以找到免费的提供商来提供这个。
如果做不到这一点,你的用例是什么?听起来您为您的网站设置了一组用户。如果是这种情况,并且您不只是向 Internet 上的随机人员提供基于订阅的事件通知服务,请考虑为不同频道上的“安全”连接提供基础。
我突然想到,通过另一个可靠的来源(通过蜗牛邮件发布 CD 并通过电子邮件通知他们,只需将软件作为数字签名电子邮件的附件发送等)将代码发送到他们的机器上,您就可以预先- 使用加密公钥加载软件。
然后,您可以通过不安全的连接方法(例如 http)协商安全连接,因为确定服务器是否已令人满意地解密使用其公钥加密的详细信息的代码存在于客户端上。结果是“纯文本”http 应用程序数据流,其中应用程序数据本身是加密的。
这是一个很麻烦且不标准的方法。您会遇到实施问题,因为很少有人会尝试提供建议,而安全性则是因为很少有人审查过它的可靠性*。
替代通道本身可能存在安全问题。邮件会被截获吗?诈骗者会冒充您的组织并发送他们自己的“安全”版本的软件吗?您的用户是否足够精通检查您发送的电子邮件上的数字签名?这些都是您需要考虑的问题,要么接受风险,要么尝试使用新颖的解决方案来减轻风险,因为您不仅对如何实施,甚至对您需要问的问题(您需要问不止这三个!)。
在与非政府组织管理层交谈时,请考虑用以下术语概述情况:
- 后一种方法涉及重大风险,并且最终会花费更多的时间来实施,而不是简单地支付托管费用 - 程序需要更新,特别是如果服务器(或服务器密钥对)发生变化,并不断分发到新的初始部署后的用户。
- 如果有任何信息泄露(并且会泄露),那么在 http 上使用地址和姓名(以及可能的电子邮件地址)的密码什么都不做,可能会成为一场公关灾难,这是一个重大风险。人们重复使用密码以及您的不良做法可能与随后的违规行为有关,这使情况更加复杂。
- 因此,您已经对这种情况进行了重要的思考,并且不会仅仅因为“每个人都这样做”而建议第 4 步中概述的解决方案(尽管,在每个人都这样做的情况下,因为这是最佳实践,这并不是一件坏事)。能够提出步骤 1 和 2 中概述的替代(如果复杂和过度)解决方案是进行尽职调查的证据。
- 基于此,持续成本低(或无)的 https 托管既是成本最低又风险最小的方法。
*Jonathan Gray在他的回答中解释了为什么您会遇到编码安全系统的问题,请查看“TLS 也是一个更加内在的系统”开头的部分