Il modo migliore sembra utilizzare un certificato di firma del codice da una CA ben nota. Poiché i certificati CA ben noti sono già considerati affidabili dal client (browser, sistema operativo), non è necessaria alcuna manutenzione aggiuntiva con questa configurazione.
Java Applet & Web Start - Code Signing afferma che
...Users will be better protected by maintaining up-to-date versions
of the JRE on their systems, combined with requiring code that is
signed by a Trusted Certificate Authority (rather than self-signed or
unsigned code)...
...self-signing is primarily of value to developer and intranet
applications as it also requires managing the keystore for Java...
Quando si utilizza un certificato dalla CA, il rinnovo non pone problemi, potremmo semplicemente firmare con un nuovo certificato. Il timestamp affidabile, aggiungendo complessità, consente ai client di convalidare la firma anche dopo la scadenza della firma, dato che era valida durante l'operazione di firma (vedere Firma il codice per il lungo raggio ).
La revoca del certificato viene verificata utilizzando il protocollo OCSP (Online Certificate Status Protocol) sul client. Per i dettagli, consultare la sezione Revocation Checking per le applicazioni Java qui .
Tuttavia, ci sono molte grandi aziende che gestiscono una CA interna, principalmente per l'emissione di certificati server. Se tale infrastruttura è già presente, possiamo presumere che i certificati CA interni siano già distribuiti ai Clienti in un modo o nell'altro, affinché i clienti possano fidarsi dei server. In questo caso, l'emissione di certificati di firma del codice dalla stessa CA potrebbe non causare un sovraccarico amministrativo aggiuntivo.