哪个订单是正确的? ECDSA在ECDH之前或ECDH之后运行?

时间:2017-09-15 09:54:22

标签: ecdsa ecdh

我对ECDSA和ECDH的执行顺序感到困惑,哪一个先运行?

由于ECDH无法避免MITM附着,因此ECDSA用于验证实体。那么ECDSA应该在ECDH之前运行吗?

或者它根本不重要?

1 个答案:

答案 0 :(得分:0)

  

由于ECDH无法避免MITM攻击

首先,这是使用RSA而不是DSA(或ECDSA)解决此难度的众多方法之一:客户端在线路上发送其ECDH(或DH)公钥之前,可以加密此ECDH(或DH)公钥与服务器的公共RSA密钥。这样,服务器就是唯一知道客户端ECDH密钥的对等体。因此,双方都在中间攻击中受到保护。当然,使用RSA加密另一个密钥可能需要OAEP。

  

或者它根本不重要?

在您的情况下,使用ECDSA而不是RSA,您无法加密任何内容。因此,您需要在要设计的协议中进行相互身份验证:您的服务器和客户端之前必须已交换其公共ECDSA密钥,或者必须具有某种类型的PKI和某种根证书才能验证远程公共ECDSA密钥。最后,客户端和服务器只需按以下顺序执行这些步骤:

  • 使用他们的ECDSA私钥签署他们的ECDH公钥
  • 将此信息发送给其他主机
  • 从其他主机
  • 接收此信息
  • 检查签名,
  • 如果检查失败,请停止说话,
  • 如果签名被正确检查,则执行DH算法的结束。