Este es el comando rsautlssl que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
rsautl - utilidad RSA
SINOPSIS
openssl rsautl [-in presentar] [-fuera presentar] [-inkey presentar] [-pubina] [-certino] [-firmar] [-verificar]
[-encriptar] [-descriptar] [-pkcs] [-ssl] [-crudo] [-volcado hexadecimal] [-asn1parse]
DESCRIPCIÓN
El rsautl El comando se puede usar para firmar, verificar, encriptar y desencriptar datos usando RSA
algoritmo.
COMANDO OPCIONES
-in nombre de archivo
Esto especifica el nombre del archivo de entrada para leer los datos o la entrada estándar si esta opción
no se especifica
-fuera nombre de archivo
especifica el nombre del archivo de salida para escribir o la salida estándar de forma predeterminada.
-inkey presentar
el archivo de clave de entrada, por defecto debe ser una clave privada RSA.
-pubina
el archivo de entrada es una clave pública RSA.
-certino
la entrada es un certificado que contiene una clave pública RSA.
-firmar
firmar los datos de entrada y generar el resultado firmado. Esto requiere una clave privada RSA.
-verificar
Verifique los datos de entrada y envíe los datos recuperados.
-encriptar
cifrar los datos de entrada utilizando una clave pública RSA.
-descriptar
descifrar los datos de entrada utilizando una clave privada RSA.
-pkcs, -oaep, -ssl, -crudo
el relleno a utilizar: PKCS # 1 v1.5 (el predeterminado), PKCS # 1 OAEP, relleno especial utilizado en
Apretones de manos compatibles con versiones anteriores de SSL v2, o sin relleno, respectivamente. Para firmas,
only -pkcs y -crudo puede ser usado.
-volcado hexadecimal
hexadecimal volca los datos de salida.
-asn1parse
asn1parse los datos de salida, esto es útil cuando se combina con el -verificar .
NOTAS
rsautl debido a que usa el algoritmo RSA directamente, solo se puede usar para firmar o verificar pequeños
piezas de datos.
EJEMPLOS
Firma algunos datos con una clave privada:
openssl rsautl -iniciar sesión -archivo de entrada -inkey key.pem -out sig
Recuperar los datos firmados
openssl rsautl -verify -in sig -inkey key.pem
Examine los datos sin procesar firmados:
openssl rsautl -verificar -en archivo -inkey key.pem -raw -hexdump
0000 - 00 01 ff ff ff ff ff ff-ff ff ff ff ff ff ff ................................
0010 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0020 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0030 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0040 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0050 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0060 - ff ff ff ff ff ff ff ff-ff ff ff ff ff ff ff ff ................
0070 - ff ff ff ff 00 68 65 6c-6c 6f 20 77 6f 72 6c 64 ..... hola mundo
El formato de bloque PKCS # 1 es evidente a partir de esto. Si esto se hizo usando cifrar y
descifrar el bloque habría sido de tipo 2 (el segundo byte) y datos de relleno aleatorios
visible en lugar de los bytes 0xff.
Es posible analizar la firma de certificados utilizando esta utilidad en conjunto
con asn1parse. Considere el ejemplo autofirmado en certs / pca-cert.pem. Corriendo asn1parse
como sigue rinde:
openssl asn1parse -en pca-cert.pem
0: d = 0 hl = 4 l = 742 contras: SECUENCIA
4: d = 1 hl = 4 l = 591 contras: SECUENCIA
8: d = 2 hl = 2 l = 3 contras: cont [0]
10: d = 3 hl = 2 l = 1 prim: INTEGER: 02
13: d = 2 hl = 2 l = 1 prim: INTEGER: 00
16: d = 2 hl = 2 l = 13 contras: SECUENCIA
18: d = 3 hl = 2 l = 9 prim: OBJETO: md5WithRSAEncryption
29: d = 3 hl = 2 l = 0 prim: NULL
31: d = 2 hl = 2 l = 92 contras: SECUENCIA
33: d = 3 hl = 2 l = 11 contras: SET
35: d = 4 hl = 2 l = 9 contras: SECUENCIA
37: d = 5 hl = 2 l = 3 prim: OBJETO: countryName
42: d = 5 hl = 2 l = 2 prim: PRINTABLESTRING: AU
....
599: d = 1 hl = 2 l = 13 contras: SECUENCIA
601: d = 2 hl = 2 l = 9 prim: OBJETO: md5WithRSAEncryption
612: d = 2 hl = 2 l = 0 prim: NULL
614: d = 1 hl = 3 l = 129 prim: BIT STRING
El BIT STRING final contiene la firma real. Se puede extraer con:
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
La clave pública del certificado se puede extraer con:
openssl x509 -in test / testx509.pem -pubkey -noout> pubkey.pem
La firma se puede analizar con:
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0: d = 0 hl = 2 l = 32 contras: SECUENCIA
2: d = 1 hl = 2 l = 12 contras: SECUENCIA
4: d = 2 hl = 2 l = 8 prim: OBJETO: md5
14: d = 2 hl = 2 l = 0 prim: NULL
16: d = 1 hl = 2 l = 16 prim: OCTET STRING
0000 - f3 46 9e aa 1a 4a 73 c9-37 ea 93 00 48 25 08 b5 .F ... Js.7 ... H% ..
Esta es la versión analizada de una estructura ASN1 DigestInfo. Se puede ver que el resumen
utilizado fue md5. La parte real del certificado que se firmó se puede extraer con:
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
y su resumen calculado con:
openssl md5 -c cucharadas
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
que se puede ver concuerda con el valor recuperado arriba.
Utilice rsautlssl en línea utilizando los servicios de onworks.net