Code Signing

Code Signing Best Practices

Best practice per la gestione del processo di Code Signing

Raccomandiamo a tutti i clienti dei certificati di Code Signing, e più specificamente a coloro che svolgono il processo di Code Signing (es. gli sviluppatori di software), di attenersi scrupolosamente alle best practices di seguito richiamate.

È necessario che l'accesso alle chiavi private sia limitato al personale autorizzato. Per assicurarsene si consiglia di seguire alcune buone norme di sicurezza.

  • Limitare le connessioni ai PC usati per il processo di Code Signing.
  • Minimizzare il numero di utenti che hanno accesso alle chiavi di Code Signing.
  • Adottare misure di sicurezza fisica per limitare l’accesso alle chiavi di Code Signing.

Le chiavi private, se conservate in software, sono fortemente esposte ad attacchi di sicurezza. Si raccomanda di generare e conservare le chiavi di Code Signing all’interno di dispositivi crittografici hardware e di seguire le seguenti cautele.

  • Utilizzare un dispositivo (per esempio una smart card o un token USB) conforme ai requisiti di sicurezza FIPS 140 Level 2 o meglio Common Criteria EAL4+.
  • Assicurarsi che il dispositivo sia protetto da un PIN o passphrase di adeguata lunghezza e complessità (evitare le sequenze banali, facili da indovinare per eventuali criminali informatici).

Applicando al codice anche la marcatura temporale è possibile validare il codice firmato anche oltre la data di scadenza o di revoca del certificato di code signing.

  • Applicare un servizio di marcatura temporale (time-stamping) al codice firmato.

Le chiavi e i certificati di Code Signing di test non devono rispettare gli stessi requisiti di sicurezza che si applicano all’ambiente di produzione (un certificato di test può anche essere self-signed, oppure emesso da una CA privata).

  • Firmare il codice in fase di test (ossia non ancora rilasciato) con un certificato di test (non emesso sotto una trusted Root CA), utilizzando chiavi diverse da quelle utilizzate in ambiente di produzione.

Qualsiasi codice sottoposto a Code Signing dovrebbe essere sempre autenticato prima di essere firmato e rilasciato.

  • Definire e applicare una procedura rigorosa per la sottomissione di codice al processo di code signing e per la sua approvazione, per evitare che venga firmato codice non approvato o maligno.
  • Mantenere traccia di tutte le operazioni di code signing, al fine di consentire l'auditing e le indagini nel caso di incidenti di sicurezza.

La firma del codice (Code Signing) consente di verificare l’origine del codice e la sua integrità (assenza di alterazioni), ma non assicura che il codice non contenga virus. Questo vale anche per eventuali librerie di terze parti incorporate nel vostro codice.

  • Eseguire sempre una scansione anti-virus prima di procedere alla firma del codice.

Se nel tuo codice viene rilevato un problema di sicurezza, si può fare in modo che compaia un messaggio di avvertimento quando si tenta di installare il codice in futuro: questo si può ottenere revocando il certificato di Code Signing. Tuttavia, se anche altri software (esenti dal problema) sono stati firmati con il medesimo certificato, il messaggio di avvertimento comparirà anche per loro.

  • Evitare di firmare con uno stesso certificato tutti i propri software.
  • Utilizzare più certificati di Code Signing, possibilmente cambiando spesso le chiavi.

Se la chiave privata di Code Signing viene compromessa, oppure se viene scoperto del malware o del codice sospetto firmato con il certificato, è necessario avvisare la Certification Authority che lo ha emesso. In questi casi, infatti, il certificato di Code Signing deve essere revocato, come previsto nel CPS, a protezione di tutti.

  • Avvisare Actalis se la chiave privata di Code Signing risulta compromessa (inviare una mail di segnalazione all'indirizzo [email protected]).
  • Procedere alla revoce del certificato compromesso.

Con “codice” si intende qualsiasi tipo di codice eseguibile (es. applicazione, applet Java, libreria software, script, macro di MS Office, ecc.) sottoposto al processo di Code Signing.

Racconta di cosa hai bisogno ad un tecnico specializzato

Le soluzioni per il Code Signing sono solo un tassello di un progetto IT complesso? Actalis mette a disposizione tutti gli strumenti tecnologici e l’esperienza necessari per supportare le aziende nella progettazione e realizzazione di soluzioni personalizzate o su larga scala.

Richiedi un contatto