Domande frequenti sui certificati di firma del codice
D: A cosa servono i certificati Code Signing?
R: I certificati Code Signing sono consigliati a tutti gli editori che distribuiscono codice o contenuti su Internet o nelle reti aziendali. I clienti sono consapevoli dei rischi associati al download di file online e quindi si fidano molto di più dei file firmati che di quelli non firmati. Vedendo la firma dell'editore, il cliente capisce che il file è autentico e non contiene malware. La firma dell'editore è un modo affidabile per proteggere l'applicazione da qualsiasi interferenza di terzi.
D: Quali documenti sono necessari per ordinare un certificato Code Signing?
R: I certificati Code Signing standard sono disponibili per imprenditori individuali e persone giuridiche.
Nel caso di Sectigo (Comodo) sono necessari:
- un link a un database governativo con la registrazione della vostra azienda;
- dati di contatto: nome, e-mail, telefono, titolo;
- una scansione di un documento d'identità con foto rilasciato dal governo (come passaporto, patente di guida, ecc.) per verificare il richiedente (contatto amministrativo) sull'ordine;
- un selfie con la foto del documento d'identità rilasciato dal governo [passaporto, patente di guida] (deve contenere foto e nome).
Si tratta di un requisito obbligatorio di Sectigo, per maggiori dettagli:
https://sectigo.com/knowledge-base/detail/OV-Code-Signing-Validation-for-Organizations-and-Individuals/kA01N000000brb0 - per la verifica del numero di telefono: un link a un elenco online con la registrazione della vostra azienda (da kompass.com o numero DUNS).
Questo profilo deve contenere nome dell'azienda, indirizzo e numero di telefono.
Nel caso di Digicert sono necessari:
- un link a un database governativo con la registrazione dell'azienda;
- dati di contatto: nome, e-mail, telefono, titolo;
- Per la verifica del numero di telefono: registrazione dell'azienda su dnb.com/DUNS o registrazione statale con numero di telefono.
Nel caso di Certum sono necessari
- documento di registrazione dell'organizzazione
- Autorizzazione/Procura: Firmata secondo le modalità di rappresentanza specificate nel documento di registrazione. *Richiesto solo se la persona che richiede il certificato non è autorizzata a rappresentare l'organizzazione in modo indipendente.
- Fattura di utenza (richiesta solo per EV): una fattura di utenza emessa a nome dell'organizzazione che confermi l'indirizzo attuale della sede dell'azienda (ad esempio, fattura di gas, elettricità, acqua, telefono fisso, Internet fisso, affitto di uffici o contratto di locazione).
LeaderTelecom non rilascia certificati Code Signing a privati.
Il certificato Code Signing EV è disponibile solo per le persone giuridiche. I requisiti per il rilascio sono gli stessi, ma la verifica è più approfondita (vengono controllate le fonti statali).
D: Come si firma un codice utilizzando un certificato Code Signing?
R: Per firmare un codice, è necessario farlo passare attraverso uno speciale algoritmo di hashing, quindi utilizzare la propria chiave privata per firmare l'hash, ottenendo così una firma digitale. Quindi si crea un blocco di firma che contiene la firma digitale e il certificato di Code Signing. Strumenti come Authenticode consentono di impostare un timestamp per un blocco di firma basato sulla data e l'ora correnti. Infine, si lega il blocco di firma con una marca temporale al software. Ora è possibile pubblicare un programma firmato sul proprio sito web per il download.
La marca temporale è necessaria per garantire che la validità del codice non scada con il periodo di validità del certificato Code Signing. Se il codice ha una marca temporale, la firma digitale sarà valida anche dopo la scadenza del certificato. Un nuovo certificato sarà necessario solo se si desidera firmare un altro codice. Se non si è utilizzata la possibilità di aggiungere marche temporali durante il processo di firma dell'applicazione, sarà necessario firmare nuovamente il codice e inviarlo ai propri clienti.
D: Come utilizzare il certificato dopo averlo acquistato?
R: Dipende dal tipo di certificato. Potete trovare le istruzioni qui
D: Cosa succede se il certificato Code Signing scade?
R: I certificati Code Signing vengono rilasciati per un periodo che va da uno a tre anni. La scadenza di un certificato di Code Signing significa che non è possibile creare nuove firme. Tutte le firme passate funzioneranno per un determinato periodo di tempo.
Nel caso di Microsoft Authenticode, l'uso dei timestamp significa che il codice non scadrà alla scadenza del certificato.
Se non si utilizzano i timestamp, alla scadenza del certificato sarà necessario firmare nuovamente il codice e inviarlo ai clienti.
È bene ricordare che alcuni certificati non supportano la creazione di timestamp (ad esempio, i certificati per Netscape Object Signing e Sun Java).
D: Qual è la differenza tra firma del codice e firma dei documenti? È possibile firmare file PDF con i normali certificati Code Signing?
R: Nella maggior parte dei casi, i certificati Code Signing hanno un'estensione extKeyUsage con un valore di Code Signing e talvolta anche di Code Signing commerciale. Tuttavia, non hanno valori che consentono altri usi.
L'RFC 5280 per l'estensione Extended Key Usage implica che "se l'estensione è specificata, il certificato deve essere utilizzato solo per raggiungere uno degli obiettivi pertinenti".
Tuttavia, nella situazione in questione, il certificato Code Signing viene utilizzato per firmare un documento che non è un codice, il che costituisce una violazione diretta della specifica X.509 Public Key Infrastructure Certificates.
Per questo motivo, è molto probabile che Adobe Reader rifiuti le firme PDF generate con il certificato di firma del codice. Inoltre, anche se ora non ci sono problemi con i certificati, non è garantito che ciò non accada in futuro con il rilascio di nuove versioni di Adobe Reader. Per questo motivo, molti rivenditori di certificati distinguono tra certificati per la firma del codice e certificati per la firma dei documenti (in particolare, certificati per la firma dei PDF). I prezzi per i certificati PDF sono spesso più alti.
D: Ci sono differenze tra i certificati di firma del codice per Java, Adobe AIR, Authenticode, VBS?
R: Come si evince dalle specifiche RFC 5280, qualsiasi certificato di firma del codice può essere utilizzato per firmare codice Java, codice AIR, Authenticode, VBS, ecc. Di conseguenza, da un punto di vista tecnico, non ci sono differenze tra i certificati di firma del codice.
Tuttavia, alcune autorità di certificazione possono imporre alcune restrizioni sulla portata dei loro certificati di firma del codice.
D: Come firmare i file di installazione di Visual Studio .msi? Dopo aver firmato .msi, tutti i file .exe inclusi nel pacchetto di installazione perdono le loro firme. Cosa bisogna fare per garantire che le firme di questi file rimangano durante l'installazione del pacchetto sul computer del cliente?
R: Visual Studio crea due cartelle al momento della compilazione: obj e bin. I file di output vengono spesso copiati dalla cartella obj alla cartella bin. Se si firmano i file nella cartella bin, questi verranno successivamente sovrascritti dai file della cartella obj. La soluzione è firmare i file exe che si trovano nella cartella obj. In questo caso, le firme di tutti i file exe rimarranno.
D: Ci sono restrizioni sul numero di applicazioni che possono essere firmate utilizzando un certificato Code Signing?
R: No. È possibile firmare tutte le applicazioni necessarie con il certificato di Code Signing, a condizione che l'applicazione sia distribuita dall'organizzazione per la quale è stato emesso il certificato.
D: Posso firmare i driver (Kernel-mode) utilizzando un certificato Code Signing?
R: No, da maggio 2021 la firma dei driver per Windows 8 e 10 non è più supportata. Fonte: Deprecazione dei certificati dell'editore di software.
D: Come si fa a bypassare lo Smart Screen quando si installa un'applicazione firmata su Windows® 8/10/11?
R: È necessario utilizzare il certificato EV Code Signing. I programmi firmati con Code Signing EV sono automaticamente affidabili, anche se non esiste una reputazione per questo editore o file. È possibile impostare la reputazione solo per i certificati Authenticode che sono stati emessi da un'autorità di certificazione membro del Windows® Root Certificate Program.
È possibile ordinare i seguenti certificati EV:
Certum EV Code Signing nel cloud
Sectigo (Comodo) Firma del codice EV
D: La reputazione in SmartScreen è possibile utilizzando un certificato Code Signing standard?
R: Sì, è possibile, ma richiede circa 3000 download di app (dati approssimativi).
D: Posso firmare il software per Mac utilizzando i vostri prodotti di Code Signing?
R: No, consultare https://developer.apple.com/support/code-signing/
D: I file PFX non sono più disponibili per i certificati Code Signing. Quali sono le altre opzioni?
R: A partire dal 06/01/2023, i file PFX non sono più disponibili per i certificati Code Signing.
Gli standard moderni richiedono che le chiavi private dei certificati di firma del codice siano generate e conservate in ambienti sicuri.
Ciò significa in genere utilizzare dispositivi hardware come HSM, smart card o token USB sicuri.
La generazione di chiavi private su questi dispositivi garantisce che la chiave non possa essere estratta o esportata, impedendo così l'emissione di certificati in formato PFX.
Sectigo offre ora i propri certificati su token USB:
https://www.leaderssl.com/suppliers/comodo/products/code_signing
https://www.leaderssl.com/suppliers/comodo/products/code_signing_ev
In alternativa, offriamo ora i certificati di Certum:
https://www.leaderssl.com/suppliers/certum/products/code_signing_ev
https://www.leaderssl.com/suppliers/certum/products/code_signing
Questi certificati sono denominati"in the Cloud".
È necessario utilizzare un'applicazione desktop speciale e firmare tramite signtool.