我可以通过跳过一些步骤来实现 TLS 吗?



是否有可能减少TLS的实现,我们只是假设我们正在连接的服务器是受信任的 - 在服务器发送其证书,我们是否可以绕过对此的验证并取消任何进一步的验证处理,并直接进入标准 HTTP ?正在使用公钥加密绝对必要的东西,还是可以跳过的?

改写我的问题。

是否可以跳过使用 RSA 公钥的需要来编写 tls 引擎法典?或客户端是否可以在握手期间通知服务器它只需要服务器证书信息,公司名称,到期日期,并要求以纯文本形式发送秘密密码密钥。

跳过我不完全理解的协议中的某些内容通常是一个坏主意。只有 RFC 中标记为可选的步骤才能安全地跳过。因此,如果您不打算使用基于客户端证书的身份验证,则可以跳过它。

但是,您可以做的是限制实现中的变体数量。这意味着仅支持一个TLS版本(例如TLS 1.2),并且仅支持一个专用密码套件。

无论如何,实现

TLS时的陷阱如此之多,以至于我建议您使用现有的实现(例如,以不允许侧信道攻击的方式实现并不是那么简单,需要有关该主题的知识)。除了OpenSSL之外,还有其他实现,占用空间要小得多。

顺便说一句:如果您可以假设连接是受信任的,则不需要TLS。如果您需要TLS,它应该是安全的。

我们

只是假设我们连接到的服务器是受信任的 - 在服务器发送其证书后,我们是否可以绕过对此的验证并取消任何进一步的处理

验证的重点不是确定服务器是否受信任,而是您实际上正在与您期望的服务器进行通信。如果省略此步骤,您将面临中间人攻击。

但是,TLS 是一种非常灵活的协议,实际上有一些方法可以将匿名身份验证或共享密钥与 TLS 一起使用,从而跳过证书的使用。当然,在这种情况下,您需要有其他方法来验证服务器,否则您仍然会受到中间人攻击。而且由于此用例大多与互联网上的常见用法无关,因此通常不会在浏览器中实现。

最新更新