Este é o comando rsautlssl que pode ser executado no provedor de hospedagem gratuita OnWorks usando uma de nossas múltiplas estações de trabalho online gratuitas, como Ubuntu Online, Fedora Online, emulador online de Windows ou emulador online de MAC OS.
PROGRAMA:
NOME
rsautl - utilitário RSA
SINOPSE
openssl rsautl [-em lima] [-Fora lima] [-inkey lima] [-pubina] [-certina] [-placa] [-verificar]
[- criptografar] [-descriptografar] [-pkcs] [-ssl] [-cru] [-hexdump] [-asn1parse]
DESCRIÇÃO
A rsautl O comando pode ser usado para assinar, verificar, criptografar e descriptografar dados usando o RSA
algoritmo.
COMANDO OPÇÕES
-em nome do arquivo
Isto especifica o nome do arquivo de entrada para ler os dados ou a entrada padrão se esta opção
não é especificado.
-Fora nome do arquivo
especifica o nome do arquivo de saída para gravar ou a saída padrão por padrão.
-inkey lima
o arquivo de chave de entrada, por padrão, deve ser uma chave privada RSA.
-pubina
o arquivo de entrada é uma chave pública RSA.
-certina
a entrada é um certificado contendo uma chave pública RSA.
-placa
assine os dados de entrada e produza o resultado assinado. Isso requer uma chave privada RSA.
-verificar
verifique os dados de entrada e produza os dados recuperados.
- criptografar
criptografar os dados de entrada usando uma chave pública RSA.
-descriptografar
descriptografar os dados de entrada usando uma chave privada RSA.
-pkcs, -oaep, -ssl, -cru
o preenchimento a ser usado: PKCS#1 v1.5 (o padrão), PKCS#1 OAEP, preenchimento especial usado em
Handshakes compatíveis com versões anteriores de SSL v2 ou sem preenchimento, respectivamente. Para assinaturas,
só -pkcs e -cru pode ser usado.
-hexdump
hex despeja os dados de saída.
-asn1parse
asn1parse os dados de saída, isso é útil quando combinado com o -verificar opção.
NOTAS
rsautl porque usa o algoritmo RSA diretamente, só pode ser usado para assinar ou verificar pequenos
pedaços de dados.
EXEMPLOS
Assine alguns dados usando uma chave privada:
openssl rsautl -sign -in arquivo -inkey key.pem -out sig
Recuperar os dados assinados
openssl rsautl -verify -in sig -inkey key.pem
Examine os dados brutos assinados:
openssl rsautl -verify -in arquivo -inkey key.pem -raw -hexdump
0000 - 00 01 ff 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 ................
0020 - 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 ................
0040 - 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 ................
0060 - 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 .....olá mundo
A formatação do bloco PKCS#1 fica evidente a partir disso. Se isso foi feito usando criptografia e
descriptografar o bloco teria sido do tipo 2 (o segundo byte) e dados de preenchimento aleatório
visível em vez dos bytes 0xff.
É possível analisar a assinatura de certificados usando este utilitário em conjunto
com asn1parse. Considere o exemplo autoassinado em certs/pca-cert.pem . Correndo asn1parse
como segue rendimentos:
openssl asn1parse -in pca-cert.pem
0: d = 0 hl = 4 l = 742 cons: SEQUÊNCIA
4: d = 1 hl = 4 l = 591 cons: SEQUÊNCIA
8: d = 2 hl = 2 l = 3 contras: cont [0]
10: d = 3 hl = 2 l = 1 prim: INTEIRO: 02
13: d = 2 hl = 2 l = 1 prim: INTEIRO: 00
16: d = 2 hl = 2 l = 13 cons: SEQUÊNCIA
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 cons: SEQUÊNCIA
33: d = 3 hl = 2 l = 11 cons: SET
35: d = 4 hl = 2 l = 9 cons: SEQUÊNCIA
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 cons: SEQUÊNCIA
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
O BIT STRING final contém a assinatura real. Pode ser extraído com:
openssl asn1parse -in pca-cert.pem -out sig -noout -strparse 614
A chave pública do certificado pode ser extraída com:
openssl x509 -in test/testx509.pem -pubkey -noout >pubkey.pem
A assinatura pode ser analisada com:
openssl rsautl -in sig -verify -asn1parse -inkey pubkey.pem -pubin
0: d = 0 hl = 2 l = 32 cons: SEQUÊNCIA
2: d = 1 hl = 2 l = 12 cons: SEQUÊNCIA
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 é a versão analisada de uma estrutura ASN1 DigestInfo. Pode-se ver que o resumo
usado foi md5. A parte real do certificado que foi assinada pode ser extraída com:
openssl asn1parse -in pca-cert.pem -out tbs -noout -strparse 4
e seu resumo calculado com:
openssl md5 -c tbs
MD5(tbs)= f3:46:9e:aa:1a:4a:73:c9:37:ea:93:00:48:25:08:b5
que se verifica está de acordo com o valor recuperado acima.
Use rsautlssl online usando serviços onworks.net