0

由于我的主机存在一些问题,我无法在我的服务器上使用 SSL 证书(我还没有准备好更改提供商),因此无法使用 HTTPS。该服务器将与几台客户端计算机进行通信,并将传输有些保密的数据。

简单地使用 AES 加密(发送前在客户端加密,处理前在服务器上解密)而不是 HTTPS 是否合理?

4

2 回答 2

5

这取决于您的部署环境。

用您自己的加密协议替换 SSL/TLS(和 HTTPS)以供 Web 浏览器使用总是一个坏主意,因为它依赖于不安全地交付的 JavaScript 代码(有关详细信息,请参见Security.SE 上的这个问题,例如)。

如果客户端不是 Web 浏览器,您可以使用更多选项。特别是,您可以实现消息级安全性而不是传输级安全性(HTTPS 使用的安全性)。

有许多尝试使用 HTTP 标准化消息级别的安全性。例如:

或许更简单地说,如果您想重用现有工具,您可以使用 S/MIME 或 PGP(以与电子邮件相同的方式)来加密 HTTP 消息实体。与 HTTPS 不同,这不会保护 URL 或 HTTP 标头,但如果您不在那里放置任何敏感数据,这可能就足够了。

您自己使用“原始加密”越深入(例如,直接使用 AES),您就越有可能必须手动实现其他方面的安全性(通常,验证远程方的身份并处理预先共享密钥)。

于 2012-11-26T16:43:40.267 回答
0

如果您有一小部分不经常更改的客户端,您可以使用 SSH 实现自己的 SSL-Tunnel。对客户做一个;

ssh -D 4444 nulluser@example.com -N

wherenulluser上没有外壳或文件访问权限example.com

然后添加 foxyproxy 白名单设置 - 以便example.com客户端浏览器使用localhost:4040代理。

这是一个 hack,它完全不可扩展,但正如我所说,它适用于少量静态的客户端,并且它的优点是在完全安全的同时不重新发明任何轮子。

于 2012-11-26T16:43:49.473 回答