Come può essere generato un CSR da OpenSSL senza la chiave pubblica

0

Ok, quindi i passaggi generali per effettuare una richiesta di firma del certificato sono (come ho capito) come segue:

  • Genera una coppia di chiavi
  • Inserisci le mie informazioni identificative e la chiave pubblica (o il suo hash) in un documento
  • Firma quel documento (CSR) con la chiave privata generata
  • Invia il CSR a una CA che verificherà che si tratta di me e restituirà un certificato firmato con catena di fiducia (possibilmente)

Poiché l'effettivo certificato firmato deve associare una relazione di trust tra la mia chiave pubblica e le mie credenziali, un certificato non può essere firmato senza accesso alla chiave pubblica o almeno un hash della chiave pubblica.

Ecco la confusione per me: vedo che esiste un comando che posso eseguire in OpenSSL:

openssl req -out CSR.csr -key privateKey.key -new

Questo presumibilmente crea un nuovo CSR usando solo la chiave privata. Non riesco a vedere come funzioni.

La chiave pubblica o il suo hash sono nascosti segretamente all'interno del file della chiave privata?

    
posta Tim Spears 07.02.2017 - 19:17
fonte

1 risposta

3

Una chiave privata non è solo un grande numero, in realtà è una struttura di dati con diversi numeri.

Ecco come appare una chiave pubblica (RSA):

<RSAKeyValue>
    <Modulus>yIf6e2K99p7hyCPlpjR0TDpH6Cpxy/zxctg/G8xHVGxtM00z6p9svf9YoT+TraHM8i6ZFtod9emkNSq8jAcWfWQ1q0xzuSmJNo74ZHFardNzH/oGExVpfiO1qCgeAnI3ILn5jTyV7g82j2wPImdAiL/wA7TfhE93POrKdrP1QpM=
    </Modulus>
    <Exponent>AQAB</Exponent>
</RSAKeyValue>

E privato:

<RSAKeyValue>
    <Modulus>yIf6e2K99p7hyCPlpjR0TDpH6Cpxy/zxctg/G8xHVGxtM00z6p9svf9YoT+TraHM8i6ZFtod9emkNSq8jAcWfWQ1q0xzuSmJNo74ZHFardNzH/oGExVpfiO1qCgeAnI3ILn5jTyV7g82j2wPImdAiL/wA7TfhE93POrKdrP1QpM=
    </Modulus>
    <Exponent>AQAB</Exponent>
    <P>8KXqVAlsMtguk+xtLysbpcKYtNRIvLcORUc7SXtnMi6rtWnQ807IRfpXXDqK8BVDSCZCaNp5/lKFE4YSPqEKlQ==
    </P>
     <Q>1VLnPE9qWMXAIkYg7Y5w+jSNWAixuMBeKKIxx43VuwdrtRK7pRXaSYci/DZNe72XN8DHL6sbqpk93hnqx4h2hw==
    </Q>
    <DP>VIJ/qylv9N8UZGBH66Og3vJavE48iQFkIpIkUObkU6wuItRZS8ij7mc+3KW2ex+MdD7zXW00IEsMbtHLgHD/jQ==
    </DP>
    <DQ>S4Qtl4wFeaeHfJqWzYG/PNOdtaxePajbrEa+mIX9Q1g9KLyY8LfrrlvIZsBSbZuQDIyR9q37/UiCPj2ufzQvwQ==
    </DQ>
    <InverseQ>nrkYAY+YWALD4M39LfwdCWrtjVGYMUwMiebd3qQtirRfSBSvqPhhz1huKV7pZZHbrW+h3mxfZVZ/4WpaJ67GEA==
    </InverseQ>
    <D>kUSQXBnn62Slw0rd7k1Jgn8l4DX/Qfr3Hm8xKH4PnkT9xpBC79CWAf2cwxM/dCUmRrsjA772vVKINkvDUt0/mEXFZyYxg8FK1D1g9CdSoq6dPSxk/QXBYrsEPDo4Pe5gFdKTh4dqfnsBP0d6/7U4e2bAGg+3xn63w6CQ+JzCYmE=
    </D>
</RSAKeyValue>

Come puoi vedere, la chiave privata include tutto ciò che è nella chiave pubblica.

    
risposta data 07.02.2017 - 20:36
fonte

Leggi altre domande sui tag