entradas de firma TLS DSA

3

Cada implementación TLS1.0 debe admitir el uso del conjunto de cifrado TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA . Esta suite de cifrado dicta que el servidor debe enviar un mensaje ServerKeyExchange con las siguientes estructuras:

struct {
    opaque dh_p<1..2^16-1>;
    opaque dh_g<1..2^16-1>;
    opaque dh_Ys<1..2^16-1>;
} ServerDHParams;

select (SignatureAlgorithm)
{   ....... omitted ........
    case dsa:
        digitally-signed struct {
            opaque sha_hash[20];
        };
} Signature;

El valor sha_hash se calcula mediante SHA(ClientHello.random + ServerHello.random + ServerParams) y luego el hash calculado se asigna al algoritmo DSA para producir la firma (que a su vez está codificada en DER). Mi pregunta es ¿cómo se derivan los aportes a la DSA en este caso? Según wikipedia DSA requiere los siguientes parámetros:

  • N: q longitud
  • L: p longitud
  • q: N-bit prime
  • p: Módulo principal de L-bit tal que p-1 es un múltiplo de q
  • g: un número cuyo orden multiplicativo módulo p es q
  • x: clave secreta, donde 0 < x < q
  • y: clave pública y = g ^ x mod p

¿Es la clave pública (o cualquier otro valor) el mismo valor contenido en el certificado X.509 enviado por el servidor? ¿O todos los valores se generan específicamente para la firma DSA?

También: he leído en alguna parte que N y L deben ser 1024/160. ¿Es este un requisito del protocolo TLS u otros valores son válidos en el contexto de TLS?

    
pregunta evgeni tsvetanov 14.06.2016 - 18:33
fuente

1 respuesta

0

Marcaré esta pregunta como contestada. Si alguien está buscando la respuesta a esta pregunta:

Los parámetros p, q, g están contenidos en el certificado DSA (en el campo DSS-Params) junto con la clave pública dsa (en el campo SubjectPublicKeyInfo) - técnicamente esta es la clave pública del servidor. Estos parámetros, junto con la clave secreta (privada), están contenidos en el archivo producido por openssl dsaparam -genkey 1024 -out dsakey.pem.

    
respondido por el evgeni tsvetanov 23.06.2016 - 13:28
fuente

Lea otras preguntas en las etiquetas