HPKP y certificados de curva elíptica

4

Hay bastante información en la web sobre cómo extraer la codificación base 64 de la huella dactilar SHA-256 (que es necesaria para el encabezado de identificación de clave pública) para los certificados RSA (por ejemplo, by Mozilla ).

Sin embargo, no estoy seguro de cómo obtener la misma información para un certificado ECC. Reemplazar rsa por ec parece una idea decente, sin embargo, openssl ec -in my-key-file.key -outform der -pubout no solo imprime el contenido real de la clave, sino también

read EC key
writing EC key

de antemano. Supongo que este resultado está incluido en el hasha SHA-256, lo que invalida todo el procedimiento. ¿Hay alguna forma de evitar esto?

    
pregunta TheWolf 22.06.2015 - 15:11
fuente

1 respuesta

1

Hay salida de estado adicional pero va a la secuencia StdErr. Así que va a la consola (es decir, a la pantalla) y NO baja a la tubería. La salida regular es parte del flujo "StdOut". Esa corriente entra en la tubería. Esto también es válido para * nix y Windows.

Aquí hay un ejemplo.

Generar una clave:

C:\>openssl ecparam -name secp256k1 -genkey -noout -out secp256k1-key.pem

Si no redirecciona nada, entonces ambas secuencias terminan en la pantalla:

C:\>openssl ec -in secp256k1-key.pem -noout -text
read EC key
Private-Key: (256 bit)
priv:
    00:d6:09:84:21:77:32:86:bb:5d:c9:da:30:ce:dc:
    98:28:f1:f2:f2:2e:2a:9a:91:28:c3:88:b2:bb:80:
    51:24:39
pub:
    04:e3:4b:2c:96:44:08:18:9f:37:bb:b5:8e:44:52:
    69:f4:4b:7f:a7:2a:61:9e:5a:39:1a:07:7a:d6:27:
    e8:8f:83:36:fa:a6:72:e9:f5:7c:41:53:0c:b6:16:
    ab:24:7a:0d:82:2c:b9:cc:2d:2b:08:38:83:e2:ac:
    4e:d7:9a:09:91
ASN1 OID: secp256k1

Si tira la secuencia "1", que es StdOut, entonces lo que queda es la secuencia "2", que es simplemente StdErr:

C:\>openssl ec -in secp256k1-key.pem -noout -text 1>NUL
read EC key

También puedes tirar la secuencia "2":

C:\>openssl ec -in secp256k1-key.pem -noout -text 2>NUL
Private-Key: (256 bit)
priv:
    00:d6:09:84:21:77:32:86:bb:5d:c9:da:30:ce:dc:
    98:28:f1:f2:f2:2e:2a:9a:91:28:c3:88:b2:bb:80:
    51:24:39
pub:
    04:e3:4b:2c:96:44:08:18:9f:37:bb:b5:8e:44:52:
    69:f4:4b:7f:a7:2a:61:9e:5a:39:1a:07:7a:d6:27:
    e8:8f:83:36:fa:a6:72:e9:f5:7c:41:53:0c:b6:16:
    ab:24:7a:0d:82:2c:b9:cc:2d:2b:08:38:83:e2:ac:
    4e:d7:9a:09:91
ASN1 OID: secp256k1

En cuanto al "¿Por qué?": No lo sé. Creo que esa es solo una de las muchas peculiaridades de las utilidades de línea de comandos de OpenSSL.

    
respondido por el StackzOfZtuff 30.08.2018 - 22:05
fuente

Lea otras preguntas en las etiquetas