【问题标题】:Will it ever be possible to run all web traffic via HTTPS?是否有可能通过 HTTPS 运行所有网络流量?
【发布时间】:2009-06-23 21:14:48
【问题描述】:

我正在考虑(从技术上)将所有网络流量转移到 HTTPS 需要什么。我认为计算机越来越快,所以从现在开始,将有可能通过 HTTPS 运行所有流量,而不会产生任何明显的成本。

但话又说回来,我认为,加密强度必须不断发展以应对安全性的丧失。如果计算机的速度提高 10 倍,则加密强度必须提高 10 倍,否则破解会更容易 10 倍。

那么,我们能否“免费”加密所有网络流量?

编辑:我只询问计算与加密性能提高的逻辑。如果我们可以在 20 年内使用相同的加密算法和密钥,它们将消耗的服务器(或客户端)整体计算能力的百分比要低得多,实际上,这将使加密和签名一切变得“免费”我们通过网络传输。

【问题讨论】:

  • 卖 ssl 证书的人会喜欢的。
  • 这个问题可能更适合ServerFault。
  • 当然。为什么要这样做?
  • 使用加密已经非常快了,特别是考虑到我们使用的是 CPU 周期与数据传输。加密密钥不需要变得更长。我认为这不切实际没有任何技术原因。
  • 在其他条件相同的情况下,如果您使用 2 倍于密钥中的位数,您只需将通过暴力破解所需的工作量平方,而正常的加密和解密只需 2 左右-4 倍慢。快 10 倍的蛮力只会让你失去大约 3.3 位的关键强度。你应该更担心人们使用加密货币的数学进步,而不是计算机变得更快。

标签: performance language-agnostic encryption https


【解决方案1】:

使用 HTTPS 的一个大问题是它被认为是安全的,因此大多数 Web 浏览器不进行任何缓存,或者至少进行非常有限的缓存。

如果没有缓存,您会注意到 HTTPS 页面的加载速度明显变慢,而未加密的页面会这样。

HTTPS 应该用于保护敏感信息。

我不知道通过 SSL 运行所有内容对 CPU 的影响。我想说的是,在客户端,CPU 不是问题,因为大多数工作站大部分时间都处于空闲状态。由于正在处理的并发请求数量庞大,大型程序将位于 Web 服务器端。

为了达到 SSL 基本上是“免费”的这一点,您必须拥有用于加密的专用硬件(今天已经存在)。

编辑:根据 cmets,问题的作者建议这是他正在寻找的答案:

使用加密已经非常快了, 特别是考虑到我们 使用 CPU 周期与数据 传播。加密密钥不需要 变得更长。我不认为有 任何技术原因 不切实际的。 -David Thornley

更新:我刚刚读到Google's SPDY protocol(旨在替换 HTTP)看起来它将在每个连接上使用 SSL。所以,看起来谷歌认为这是可能的!

使 SSL 成为底层传输 协议,以获得更好的安全性和 与现有网络的兼容性 基础设施。虽然 SSL 确实 引入延迟惩罚,我们 相信长远的未来 网络依赖于安全的网络 联系。此外,使用 SSL 是必要的,以确保 跨现有代理的通信 没有坏。

【讨论】:

  • 最近的 Security Now 播客对此进行了详细讨论。请参阅grc.com/sn/sn-198.txt 并搜索“未讨论的几个缺点”
  • 如果 HTTPS 用于所有通信,我们将使用其他方式(如 Expires 标头)来管理缓存。我的问题只是关于计算与加密性能提升的逻辑。
【解决方案2】:

Chris Thompson 提到了浏览器缓存,但这很容易在浏览器中修复。将所有内容切换到 HTTPS 时无法解决的是代理缓存。因为 HTTPS 是端到端加密的,所以透明的 HTTP 代理不起作用。在很多地方,透明代理可以加快速度(例如在 NAT 边界)。

处理因失去透明代理而增加的带宽可能是可行的 - 据称 HTTP 流量与 p2p 相比无论如何都是微不足道的,因此透明代理并不是保持互联网在线的唯一方法。它将不可逆转地影响延迟,并使斜线比现在更糟。但是对于云托管,这两者都可能由技术处理。当然,“安全服务器”在云托管中具有不同的含义,甚至在 akamai 等网络上其他形式的内容去中心化中也具有不同的含义。

我不认为 CPU 开销有那么大。当然,如果您的服务器当前至少在某些时候受 CPU 限制,那么将所有流量从 HTTP 切换到 HTTPS 会彻底死掉它。一些服务器可能会认为 HTTPS 不值得花费可以处理负载的 CPU 的金钱成本,并且他们会阻止每个人采用它。但我怀疑这将是一个长期的主要障碍。例如,谷歌已经跨越了它,并且很高兴地以 https 的形式提供应用程序(尽管不是搜索),而不会大惊小怪。并且服务器在每个连接上所做的工作越多,SSL 保护该连接所需的额外工作就越少。 SSL 可以在必要时进行硬件加速。

还有一个管理/经济问题,即 HTTPS 依赖于受信任的 CA,而受信任的 CA 需要花钱。除了 SSL 实际使用的方法之外,还有其他方法可以设计 PKI,但 SSL 的工作原理是有原因的。例如,SSH 让用户负责通过安全的侧通道从服务器获取密钥指纹,this is the result:一些用户认为这种不便程度不符合其安全目的。如果用户不想要安全性,那么除非他们无法避免,否则他们不会得到它。

如果用户只是自动点击“接受”以获得不受信任的 SSL 证书,那么您几乎没有它,因为现在中间人攻击并不比普通窃听更难。因此,同样,有大量服务器对支付(工作)HTTPS 并不感兴趣。

【讨论】:

    【解决方案3】:
    1. 加密不必提高 10 倍,因为您不需要使用 10 倍以上的位。暴力破解的难度随着密钥长度的增加呈指数增长。最多密钥长度必须稍长一些。
    2. 通过 SSL 运行 所有 流量有什么意义,即使是显然没有优势的流量?这似乎非常浪费。例如,通过 SSL 下载 Linux 发行版似乎很荒谬。

    【讨论】:

    • 1.但是加密的计算成本与暴力破解的成本是对称的吗? 2. 我问的是加密成本如此之低的情况,总是使用它是有意义的——老大哥可以将一些间谍代码交换到你的 Debian 种子中。
    • 因为如果一切都是加密的,就没有“特殊”流量,所以没有信号 - 我无法通过查看你向谁发送加密消息来了解你激进的 Joel 粉丝网络。
    • 您为什么认为通过安全渠道分发软件是荒谬的?
    • 但是您可能想要断言适合 HTTPS(或 BITS en.wikipedia.org/wiki/…)的软件分发的机密性、完整性和真实性。
    • @Pies:不,知道密钥时使用密码的成本与不知道密钥时的成本没有特别的关系。现代密码本质上是针对暴力破解的证明。
    【解决方案4】:

    现在的成本并不高。

    另外...拥有 10 倍速度的计算机绝不会导致有必要更改加密。 AES(一种常见的 SSL 加密)足够强大,需要很长时间才能破解。

    【讨论】:

    • 如果有人发现 AES 的弱点使其更容易破解一百万倍怎么办?使用 16kbit 密钥不是更安全吗?
    • 如果他们发现了一个足以让破解变得可行的弱点,那么在密钥中添加更多位不会有太大帮助。
    【解决方案5】:

    有可能吗?是的 这会是可取的吗?没有

    出于几个原因。

    • 服务器和客户端上的额外 cpu 周期会消耗更多功率,从而产生成本和排放
    • 每台服务器都需要 ssl 证书
    • 加密不需要隐藏的数据是没有用的

    【讨论】:

    • 1) 计算机周期每天都在变得更便宜。 2)对我的问题没关系。 3)如果你只是加密有价值的数据,它可以很容易地发现和集中精力。如果每个人都对所有内容进行加密,那么攻击就会变得更加困难。
    • 那么,为什么每个服务器都有证书会有问题呢?它们的生成并不昂贵或繁重。现在,昂贵的是购买一个可以被普通网络浏览器在其默认配置中识别的证书;换句话说,您支付的不是加密,而是身份验证。
    • @pies 1. 更便宜!= 免费,想象一下如果每个服务器和每个客户端都为每个事务执行 SSL 的总成本 2. 这就是为什么我说可能是可取的 3. 如果你加密一切您可能会对安全性感到懒惰,因为“都是 https”@david 并不昂贵!= 免费
    • @Hardwareguy:如果您购买的每个域名都可以获得免费的 SSL 证书会怎样?
    • @Hardwareguy:证书本质上是免费的。你可以自己生成,没问题。在您和您的证书之间建立某种联系的成本是多少。
    【解决方案6】:

    IMO,答案是否定的。造成这种情况的主要原因是,如果您考虑有多少页面包含来自多个来源的项目,每个来源都必须使用 https 并拥有有效证书,我认为这对一些必须更改所有内容的大公司不起作用他们的链接。

    这不是一个坏主意,也许某些 Web x.0 在默认情况下会有更安全的通信,但我认为 http 不会是那种协议。

    仅举几个例子,虽然我来自加拿大,这可能会影响这些网站的呈现方式:

    www.msn.com:

    • atdmt.com
    • s-msn.com
    • live.com

    www.cnn.com:

    • revsci.net
    • cnn.net
    • turner.com
    • dl-rms.com

    这些是通过“NoScript”列出的,其中指出除了 stackoverflow.com 之外,此页面还有来自“google-analytics.com”和“quantserve.com”的代码,这是第三个示例。

    【讨论】:

    • 但是如果每个人都使用HTTPS,那些广告服务器等也会如此。我的问题是是否有可能将其成本降低这么多,以至于安全的边际利润是值得的。跨度>
    • 货币成本可能会降低,但考虑一下会发生什么样的过渡,因为您无法想象世界各地的每个服务器都会同时切换到 HTTPS,对吗?
    • 它不必一次发生。例如,Google Analytics javascript 文件可通过 http 和 https 获得。
    • 但是,如果网站同时使用 http 和 https,则会弹出一个对话框,提示下载不安全的项目,这将是一场噩梦,而且很可能发生,因为每个网站管理员都必须知道是否他们所有的图像和 javascript 包括和其他东西一起发生。我的观点是,其中的一部分必须立即发生。
    • @JB:那是因为现在 http 是默认设置。如果 https 是默认设置,则不会有问题(即不安全页面上没有关于安全项目的警告。)
    【解决方案7】:

    与 https 的一个主要区别是会话保持打开状态,直到您关闭它。使用会话 cookie 省去了很多麻烦,但会给服务器带来负担。

    在您发送查询后,Google 应将与您的 https 会话保持多长时间?

    您希望与每个弹出广告保持持久连接吗?

    【讨论】:

    • 我希望到那时该软件将能够处理这种事情,因为每个人都会这样做。我只是在问这在逻辑上是否有可能。
    • 软件总是可以处理它 - 这是您需要考虑的其他影响,例如会话跟踪。
    • 如果服务器想要恢复相关资源,可以终止 SSL 会话。 SSLv3 只有自己的关闭消息,因为使用 TCP FIN 允许攻击者插入该数据包,而客户端没有意识到服务器不打算关闭(称为截断攻击)。如果他们愿意,服务器可以使用 Keep-Alive 保持普通的 HTTP 连接打开。只是 SSL 握手比 TCP 握手要昂贵得多,所以保持连接打开更有价值。
    猜你喜欢
    • 1970-01-01
    • 2010-10-10
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多