Creazione di CA radice per emettere certificati a livello di codice

0

Devo generare una CA radice autofirmata e usarla per emettere i certificati a livello di programmazione. Sono nuovo di sicurezza e certificati e penso che mi manchino alcuni pezzi necessari per far funzionare tutto insieme.

Da quanto ho capito, ho bisogno di generare un certificato X509 usando lo strumento keytool Java per agire come root CA e quindi usare la sua chiave privata per firmare i nuovi certificati che sto generando usando Bouncy Castle in fase di runtime.

Ho generato un nuovo certificato utilizzando keytool e il seguente comando:

keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048

Quando ho provato a leggere questo keystore e il certificato a livello di codice, ho scoperto che la chiave privata del certificato non è memorizzata nel keystore o non c'era modo di leggere la chiave privata.

Ho le seguenti domande:

  1. Come faccio a generare una CA radice usando keytool?

  2. Quale dovrebbe essere il formato di output della CA radice in modo da poter leggere la chiave privata? Il mio attuale approccio di scrivere il cert su un keystore è sbagliato?

posta Pranava Sheoran 06.11.2015 - 02:44
fonte

2 risposte

3

Credo che tu stia facendo la domanda sbagliata. La domanda giusta è "Qualcuno nuovo alla sicurezza dovrebbe lavorare su una CA radice?" e la risposta è "probabilmente no".

È molto probabile che ciò che stai facendo esporterà tutti coloro che fanno affidamento sulla tua CA radice ad alto rischio di compromissione. Questo è stato dimostrato da aziende mature come Dell (si veda, ad esempio, link )

Ci sono molti modi in cui le cose vanno male, che vanno ben oltre lo scopo di una domanda di S.SE.

    
risposta data 05.06.2016 - 19:24
fonte
1
  1. Il tuo comando è corretto: keytool -genkey -keyalg RSA -alias selfsigned -keystore keystore.jks -storepass password -validity 360 -keysize 2048
  2. keytool -list -v -keystore keystore.jks

Dovrebbe assomigliare a questo:

Enter keystore password:  

Keystore type: JKS
Keystore provider: SUN

Your keystore contains 1 entry

Alias name: selfsigned
Creation date: Nov 8, 2015
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=sdf, OU=sf, O=sf, L=sf, ST=sf, C=sf
Issuer: CN=sdf, OU=sf, O=sf, L=sf, ST=sf, C=sf
Serial number: 69aa218
Valid from: Sun Nov 08 12:34:47 CET 2015 until: Wed Nov 02 12:34:47 CET 2016
Certificate fingerprints:
     MD5:  FE:7C:97:C8:62:5E:C7:AA:8C:20:E9:7A:78:21:93:8A
     SHA1: 71:55:81:1C:AF:12:10:84:30:66:A2:35:BA:EC:AB:74:C0:11:43:6E
     SHA256: 89:E5:EC:5D:CE:BA:3B:13:02:0C:27:A6:FC:EC:B8:2B:48:9F:32:23:A8:10:5D:84:9A:CE:7F:F7:D6:E4:65:67
     Signature algorithm name: SHA256withRSA
     Version: 3

Extensions: 

#1: ObjectId: 2.5.29.14 Criticality=false
SubjectKeyIdentifier [
KeyIdentifier [
0000: 79 D9 C1 A6 17 32 97 B0   39 61 41 1F 23 F9 A8 00  y....2..9aA.#...
0010: 4A 32 F7 EA                                        J2..
]
]



*******************************************
*******************************************
    
risposta data 08.11.2015 - 12:39
fonte

Leggi altre domande sui tag