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

时间:2015-03-14 17:07:09

标签: ssl https public-key-encryption

是否可以减少TLS的实施,我们只是 假设我们连接的服务器是可信的 - 在服务器发送之后 证书,我们可以绕过对此的验证并进一步取消 处理,并获得正确的标准http?是使用公钥加密 一些绝对必要的东西,还是可以跳过它?

重写我的问题。

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

3 个答案:

答案 0 :(得分:0)

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

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

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

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

答案 1 :(得分:0)

  

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

验证的重点不在于确定服务器是否可信,而在于您实际上正在与您期望的服务器通信。如果省略此步骤,则可以接受中间人攻击。

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

答案 2 :(得分:-1)

好的,我的问题已经在之前得到了回答和讨论 - 它的问题 称为NULL / ZERO密码:

Unencrypted SSL protocol?