it-swarm.dev

Come posso ottenere la lunghezza del bit RSA con pubkey e openssl?

Ho una chiave pubblica generata con ssh-keygen e mi sto solo chiedendo come posso ottenere informazioni sulla lunghezza dei tasti con openssl?

87
Evan Carroll

Con openssl, se la tua chiave privata è nel file id_rsa, poi:

openssl rsa -text -noout -in id_rsa

stamperà il contenuto della chiave privata e la prima riga di output contiene la dimensione del modulo in bit. Se la chiave è protetta da una passphrase, dovrai ovviamente digitare quella passphrase.

Se hai solo la chiave pubblica, OpenSSL non ti aiuterà direttamente. @Enigma mostra la riga di comando corretta (con ssh-keygen -lf id_rsa.pub). Puoi ancora farlo con OpenSSL nel modo seguente:

Apri il file della chiave pubblica con un editor di testo. Troverai qualcosa del genere:

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDDo2xko99piegEDgZCrobfFTvXUTFDbWT
ch4IGk5mk0CelB5RKiCvDeK4yhDLcj8QNumaReuwNKGjAQwdENsIT1UjOdVvZOX2d41/p6J
gOCD1ujjwuHWBzzQvDA5rXdQgsdsrJIfNuYr/+kIIANkGPPIheb2Ar2ccIWh9giwNHDjkXT
JXTVQ5Whc0mGBU/EGdlCD6poG4EzCc0N9zk/DNSMIIZUInySaHhn2f7kmfoh5LRw7RF3c2O
5tCWIptu8u8ydIxz9q5zHxxKS+c7q4nkl9V/tVjZx8sneNZB+O79X1teq7LawiYJyLulUMi
OEoiL1YH1SE1U93bUcOWvpAQ5 [email protected]

Con il mouse, seleziona i primi caratteri del BLOB centrale ( dopo il ssh-rsa); questo è Base64 e OpenSSL può decodificare che:

echo "AAAAB3NzaC1yc2EAAAADAQABAAABAQDDo2xko99piegEDgZC" | openssl base64 -d | hd

OpenSSL è esigente, richiederà di non inserire più di 76 caratteri come una riga e il numero di caratteri deve essere un multiplo di 4. Il la riga sopra stampa questo:

00000000  00 00 00 07 73 73 68 2d  72 73 61 00 00 00 03 01  |....ssh-rsa.....|
00000010  00 01 00 00 01 01 00 c3  a3 6c 64 a3 df 69 89 e8  |.........ld..i..|
00000020  04 0e 06 42                                       |...B|

Questo recita come tale:

00 00 00 07             The length in bytes of the next field
73 73 68 2d 72 73 61    The key type (ASCII encoding of "ssh-rsa")
00 00 00 03             The length in bytes of the public exponent
01 00 01                The public exponent (usually 65537, as here)
00 00 01 01             The length in bytes of the modulus (here, 257)
00 c3 a3...             The modulus

Quindi la chiave ha il tipo RSA e il suo modulo ha lunghezza 257 byte , tranne per il fatto che il primo byte ha valore "00", quindi la lunghezza reale è 256 byte (quel primo byte è stato aggiunto in modo che il valore sia considerato positivo, poiché le regole di codifica interna richiedono numeri interi con segno , il primo bit che definisce il segno) . 256 byte è 2048 bit.

95
Tom Leek
ssh-keygen -lf /etc/ssh/rsa_key.pub 
2048 d1:cb:15:df:5d:44:...

2048 è la lunghezza della chiave

106
enigma