Convalida del certificato di firma del codice da parte di Java

1

Nonostante diverse ricerche sul Web, non riesco a trovare una spiegazione accurata sulla convalida del certificato per la firma del codice da parte di Java.

Mi chiedo se il certificato di firma del codice (il "certificato finale") deve già essere nel truststore Java del client o se il client richiede solo la CA radice (e la relativa catena) nel truststore Java per convalidarlo?

Non riesco a trovare documenti Java davvero espliciti, quindi ho bisogno di dettagli tecnici sulla convalida del certificato di firma del codice (da cui il certificato viene prelevato, cosa è necessario), non sul processo di firma.

    
posta crypto-learner 22.09.2015 - 14:23
fonte

1 risposta

1

Se un jar è firmato correttamente, il verificatore (spesso ma non necessariamente un client di rete) ha bisogno solo della root, e se usi una CA pubblica quella root sarà già presente in quel momento.

In particolare, un KeyStore privateKeyEntry deve contenere la catena completa di cert (sebbene se la cert sia autofirmata la catena è solo quella cert). Quando jarsigner firma usando quella chiave privata (per alias) crea una PKCS # 7 SignedData firma separata, che include la catena di certificazione. Nel caso in cui il keystore non possa fornire la catena, jarsigner poiché Java7 ha l'opzione -certchain per aggiungerli, vedere link .

Per verificare una firma del contenitore (o qualsiasi firma contenente una catena di certificati) Java può effettivamente usare qualsiasi certificato nella catena trovata nel truststore locale. Poiché le radici esistono allo scopo di concentrare la fiducia per tutte le catene sotto di esse, è convenzionale e più semplice avere solo le radici nel truststore locale. E JRE include un cacerts predefinito contenente quasi 100 radici per le CA pubbliche "ben note" come Verisign e GoDaddy.

jarsigner -verify -verbose -certs [-keystore if_not_default] test.jar ti mostrerà la catena di certificati utilizzata, e contrassegna i certificati (s?) trovati nel truststore con il suo alias tra parentesi alla destra.

    
risposta data 22.09.2015 - 23:03
fonte