为了账号安全,请及时绑定邮箱和手机立即绑定

具有自签名证书的 HTTPS 流量对于桌面应用程序到服务器的连接是否足够安全?

具有自签名证书的 HTTPS 流量对于桌面应用程序到服务器的连接是否足够安全?

PHP
holdtom 2023-08-11 17:38:38
在我的 Apache 服务器上,我使用 OpenSSL 创建了自签名密钥和证书对。我还将所有流量重定向为使用 HTTPS。在我的 C# 应用程序上,我使用类似的方法来发送和接收数据。StringContent encodedContent = new StringContent(str, null, "application/x-www-form-urlencoded");client.PostAsync("https://myserverip/main.php", encodedContent)HttpResponseMessage response = client.PostAsync(URL, encodedContent).Result;除此之外,我还在服务器端和客户端使用phpseclib实现了自己的 AES 加密。但所有这些加密和解密让我很头疼。我的问题是,我是否真的通过进一步加密将通过 HTTPS 发送的数据来做出任何贡献?
查看完整描述

3 回答

?
慕桂英3389331

TA贡献2036条经验 获得超8个赞

这一切都取决于用例。对于传输安全性,TLS 通常被认为足够了。花时间保护该连接比添加额外的对策(例如消息特定加密)更好。


当然,TLS 确实有局限性,因此可能需要额外的加密技术:

  • 如果没有显式配置,TLS 不提供客户端身份验证;建立连接后可能必须执行客户端身份验证。

  • 从鸟瞰角度来看,它还仅提供点对点保护 (*);一旦 TLS 安全性被剥离,数据就不再受到保护。

  • 同样,您可能希望将数据安全地存储在发送方或接收方。显然 TLS 不会提供这样的功能。

(*) 从 IP 协议的角度来看,TLS 提供端到端加密,因为 TCP/UDP 允许它在多个节点上路由(跳跃)受保护的 IP 数据包,但现在它经常在到达目的地之前被剥离。应用程序(TLS 卸载程序等)。


如果您已经拥有共享密钥,那么您可能需要查看 PSK 模式下的 TLS,但请注意该标准的实现并不像“常规”TLS 那样常见。还要注意,您最多只能在两方之间共享密钥。


最后,仅通过使用 AES 加密消息来提供有意义的安全性的可能性微乎其微。您确实需要特定的用例、协议、方案以及最终的实现。通过“仅加密数据”来实现这一点的机会很小。这样做的陷阱实在太多了。如果加密代码或密钥通过 TLS 连接(浏览器/JavaScript 加密)传输,则尤其如此。


查看完整回答
反对 回复 2023-08-11
?
呼如林

TA贡献1798条经验 获得超3个赞

这取决于您发送或接收的数据。在大多数情况下,HTTPS 为通过网络发送的数据提供了很大的安全性,添加附加层只会使其变得多余,并且会占用处理时间。

查看完整回答
反对 回复 2023-08-11
?
慕田峪4524236

TA贡献1875条经验 获得超5个赞

我不确定您实际的问题是什么,因为您在标题中提出的问题与文本中的内容不同。

您标题中的问题似乎是在询问带有自签名证书的 HTTPS(= TLS)是否足够,而不是“官方”证书。如果是这样,那么是的,安全性方面没有区别。不同之处在于,客户端需要明确信任自签名证书,而由大型根 CA(证书颁发机构)之一颁发的证书将自动受信任,因为它们是随操作系统一起交付和信任的。

然而,如果问题更多的是除了 HTTPS 之外是否还需要额外的加密,那么我的答案是:这取决于情况。

HTTPS(或 TLS)提供传输安全性,以防止数据在客户端和(目标)服务器之间传输时被看到。然而,两端的数据都不会被加密。如果客户端和服务器环境(文件系统等)可以被认为是可信的,您不会提供信息。如果是这样,HTTPs 应该就足够了。否则,建议对有效负载数据进行额外加密。


查看完整回答
反对 回复 2023-08-11
  • 3 回答
  • 0 关注
  • 136 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信