Recentemente Microsoft ha iniziato a far sì che le app siano firmate dai certificati di firma del codice EV invece dei soli certificati regolari. Questi di solito vengono su un dispositivo esterno come una smart card USB o un HSM, in cui la chiave privata è memorizzata e non può essere esportata.
L'azienda SW che desidera firmare un'app con certificato EV ha probabilmente un processo di compilazione / distribuzione automatizzato. L'infrastruttura di compilazione è (1) in cloud o (2) localmente in una sala server / edificio, o peggio (3) in un rack nel loro ufficio. Avere il server "segno" separato è probabilmente l'idea migliore, il dispositivo di firma è collegato e gli eseguibili sono firmati solo su questo server.
La mia domanda è: dove mettere questo server dei segni in tutti e tre gli scenari?
Se disponiamo della nostra infrastruttura di compilazione nel cloud, dovremmo eseguire il tunneling verso una VPN locale in cui si trova il server dei segni? Dove dovrebbe essere il server dei segni in questo caso?
O anche se abbiamo la nostra infrastruttura di compilazione privata localmente, il server di "firma" dovrebbe essere un server casuale nella stanza del server / edificio insieme ad altri 10 o 100 di server? Dovrò semplicemente collegare il dispositivo del segno alla porta USB di un server apparentemente "casuale" nella stanza del server? Forse un approccio migliore sarebbe avere una stanza speciale con telecamere e accesso limitato. Cosa succede se non abbiamo una stanza server privata? Cosa succede se noleggiamo un rack? La chiave dovrebbe semplicemente "giacere" nel rack?
Come ridimensionare questo? Cosa succede se abbiamo 10 app diverse con chiavi diverse? Andiamo su questo server ogni anno e lo cambiamo fisicamente dopo la scadenza?
Questo thread è parzialmente correlato Quali sono le linee guida per l'ambiente di buona firma del codice? , ma è stato chiuso in modo troppo ampio.