当前位置: 首页 > 知识库问答 >
问题:

我如何启用diffie-hellman-group-exchange-sha1作为Twisted Python框架(Kippo蜜罐相关)中的密钥交换类型?

端木夕
2023-03-14

我有一个应用程序,它是一个SSHhtml" target="_blank">客户端,支持以下协商的关键算法。

diffie-hellman-group-exchange-sha1 diffie-hellman-group14-sha1 diffie-hellman-group-exchange-sha256

我没有更改SSH客户端的选项,所以我正在尝试解决SSH服务器上的问题,它正在使用Twisted。SSH服务器实际上是在Kippo蜜罐中实现的,但潜在的问题是Twisted。

我看到Twisted在这里的第221行中支持diffie-hellman-group-exchange-sha1和diffie-hellman-group1-sha1:https://github.com/Twisted/Twisted/blob/38421d6fcffa1ddb590e51df0e1c6cba6f29d052/Twisted/conch/ssh/transport.py

我在下面的第60行看到diffie-hellman-group-exchange-sha1被禁用:https://github.com/twisted/twisted/blob/38421d6fcffa1ddb590e51df0e1c6cba6f29d052/twisted/conch/ssh/factory.py

diffie-hellman-group-exchange-sha1受到支持,但后来被禁用。我的应用程序的SSH客户端无法协商密钥来建立到正在使用Twisted的SSH服务器的SSH连接。

在禁用它之前,我在代码中看到了这条注释“log.msg(”disabling diffie-hellman-group-exchange because we cannot find moduli file“)”。如果我试图强制Twisted使用diffie-hellman-group-exchange-sha1,我会得到以下错误。

   Traceback (most recent call last):
      File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 84, in callWithLogger
        return callWithContext({"system": lp}, func, *args, **kw)
      File "/usr/lib/python2.7/dist-packages/twisted/python/log.py", line 69, in callWithContext
        return context.call({ILogContext: newCtx}, func, *args, **kw)
      File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
        return self.currentContext().callWithContext(ctx, func, *args, **kw)
      File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
        return func(*args,**kw)
    --- <exception caught here> ---
      File "/usr/lib/python2.7/dist-packages/twisted/internet/posixbase.py", line 586, in _doReadOrWrite
        why = selectable.doRead()
      File "/usr/lib/python2.7/dist-packages/twisted/internet/tcp.py", line 199, in doRead
        rval = self.protocol.dataReceived(data)
      File "/home/sudopwn/kippo-master/kippo/core/ssh.py", line 150, in dataReceived
        transport.SSHServerTransport.dataReceived(self, data)
      File "/usr/lib/python2.7/dist-packages/twisted/conch/ssh/transport.py", line 438, in dataReceived
        self.dispatchMessage(messageNum, packet[1:])
      File "/usr/lib/python2.7/dist-packages/twisted/conch/ssh/transport.py", line 453, in dispatchMessage
        f(payload)
      File "/usr/lib/python2.7/dist-packages/twisted/conch/ssh/transport.py", line 950, in ssh_KEX_DH_GEX_REQUEST
        self.g, self.p = self.factory.getDHPrime(ideal)
      File "/usr/lib/python2.7/dist-packages/twisted/conch/ssh/factory.py", line 126, in getDHPrime
        primesKeys = self.primes.keys()
    exceptions.AttributeError: 'NoneType' object has no attribute ‘keys'

是否存在允许启用diffie-hellman-group-exchange-sha1的变通方法或解决方案?

共有1个答案

姜泰宁
2023-03-14

对于DH密钥交换需要模数这一事实,没有“变通方法”。这就是数学的原理。如果您在openssh_compat.py中查看,您将看到getPrimes有一个OpenSSH素数格式的解析器,如果您在/path/to/moduli中有moduli,那么twistd-n conch--data=/path/to将解析它们。您可以使用ssh-keygen-g生成这些文件。您需要在honeypotsshfactory上实现类似的内容,在这里实现:https://github.com/desaster/kippo/blob/master/kippo/core/ssh.py#l53

请记住,生成模数需要一段时间,所以您需要提前完成。

 类似资料:
  • 我正在Java的一个个人项目中工作,该项目涉及通过不安全的通道发送敏感数据。我需要知道如何实现Diffie Hellman密钥交换(DHKE)在java使用其库。我知道关于它的所有密码理论,所以不需要深入细节,我只需要一个非常基本的实现,所以我可以让两个程序共享一个密钥。我从java2s.com得到了这个例子,但它并不完整: 我该怎么做呢?有人能帮我完成剩下的代码吗?

  • 在Diffie Hellman密钥交换过程中,如果中间的人能够得到素数“p”和生成器“g”的值。他现在能破译私钥或者生成的共享秘密秘密吗?

  • 我试图用Java实现Diffie-Hellman密钥交换,但我很难理解规范: 根据JWA(RFC 7518),在直接密钥协商模式下,使用曲线P-256、dT和QC完成Diffie-Hellman密钥交换过程,作为本地机制,产生一对由事务ID标识的CEK(每个方向一个)。本规范版本支持的参数值为: alg: ECDH-ES "apv": SDK参考号 epk:QC,JSON Web Key(JWK)

  • 因为这是我正在生成的一个自签名证书,所以我认为我做错了什么。 我首先创建一个根CA证书,并传入私钥来签署我的证书。 方法返回true,我读到的这个值可能返回假阳性。

  • 我正在尝试将DHE_DSS实现到Go的Crypto/TLS包中。不幸的是,我似乎无法使PreMasterSecret(Z)相同,我的基本工作流程是: 提取P、G、YS 使用提供的数字签名进行验证 null 以下是我更改的一个补丁: https://08766345559465695203.googlegroups.com/attach/48587532C74B4348/crypto.patch?p

  • This conatains the low interaction honeypot. Steps to deploy Import iRules Login into the TMUI, Import the Honeypot iRules: https://www.wenjiangs.com/doc/yC3QNYt1TJhoneypot_http.tcl, https://www.wenji