¿Cómo se compone la "clave de host pública y certificados (K_S)" en el mensaje SSH_MSG_KEX_DH_GEX_REPLY? (Intercambio de claves SSH2)

2

Estoy tratando de implementar el intercambio de claves SSH2 en Java y tengo algunas dificultades. El RFC4419 establece que:

  

El servidor responde con:

 byte    SSH_MSG_KEX_DH_GEX_REPLY
 string  server public host key and certificates (K_S)
 mpint   f
 string  signature of H

Mi pregunta es: ¿cómo se debe componer la "clave pública de servidor y certificados (K_S)"? ¿Dónde puedo encontrar esta información?

Tengo claves públicas y privadas del host, y puedo leer toda la información necesaria, por ejemplo:

/*
 Read the required variables from the public key.
 */
DSAParams pubKeyDSAParams = ((DSAPublicKey) pair.getPublic()).getParams();
BigInteger p = pubKeyDSAParams.getP();
BigInteger q = pubKeyDSAParams.getQ();
BigInteger g = pubKeyDSAParams.getG();

/*
Read the private exponent from the private key.
 */
DSAPrivateKey privKey = (DSAPrivateKey) pair.getPrivate();
BigInteger x = privKey.getX();
    
pregunta Ernestas Gruodis 29.04.2015 - 15:56
fuente

1 respuesta

1

Encontré la respuesta en RFC4253 :

  

Las firmas se codifican de la siguiente manera:

  string    signature format identifier (as specified by the
            public key/certificate format)
  byte[n]   signature blob in format specific encoding.
     

El formato de clave "ssh-dss" tiene la siguiente codificación específica:

  string    "ssh-dss"
  mpint     p
  mpint     q
  mpint     g
  mpint     y
     

Aquí, los parámetros 'p', 'q', 'g' y 'y' forman la clave de firma   blob.

Formatos de firma:

  

Los siguientes formatos de clave pública y / o certificado están actualmente          definido:

   ssh-dss           REQUIRED     sign   Raw DSS Key
   ssh-rsa           RECOMMENDED  sign   Raw RSA Key
   pgp-sign-rsa      OPTIONAL     sign   OpenPGP certificates (RSA key)
   pgp-sign-dss      OPTIONAL     sign   OpenPGP certificates (DSS key)
    
respondido por el Ernestas Gruodis 29.04.2015 - 17:27
fuente

Lea otras preguntas en las etiquetas