Skip to Content
SicurezzaChiavi di Firma

Chiavi di Firma

IronFlock firma tutto ciò che dispositivi e Appliance installano. Ogni dispositivo e ogni Appliance verifica la firma con chiavi che possiede già, prima di eseguire o usare ciò che ha scaricato. Questa pagina elenca queste chiavi, cosa firma ciascuna e come viene sostituita una chiave (rotazione) senza che un dispositivo o un’Appliance perda la possibilità di verificare il suo prossimo aggiornamento.

Le Chiavi

ChiaveCosa firmaVerificata da
IronFlock Appliance Release — OpenPGP, RSA 4096, impronta 8B37 990C 2980 0418 4664 75B8 D8E6 DD6C 025B B56Dl’installer dell’Appliance, l’elenco delle versioni disponibili e il manifest di release di ciascuna versione (i checksum dei suoi file e le identità di tutte le sue immagini container)ironflock-update e l’installer sull’Appliance
IronFlock Bootstrap — OpenPGP, RSA 4096, impronta F6C9 4D96 CE31 5377 ACA7 C8EA 4990 5433 7321 2788l’installer del dispositivo install.sh, il suo file di versione e il programma ironflock-initinstall.sh sul dispositivo
Aggiornamenti dell’agent del dispositivo — due chiavi Ed25519, ID 4193db1f e 2b040fcfgli aggiornamenti dell’agent del dispositivo e il client di accesso remoto che l’agent scarical’agent del dispositivo e ironflock-init
IronFlock Code Signing Root — X.509, RSA 4096, impronta SHA-256 1D:F4:F2:EC:32:E3:FF:2E:9E:CD:89:7E:92:F9:16:4C:C1:8A:CE:CF:96:DE:E8:55:7A:3F:5D:95:9E:8B:DB:69, valida fino a luglio 2036il certificato del firmatario Windows qui sotto, e nient’altrol’agent del dispositivo su Windows
IronFlock Device Agent (firmatario Windows) — Authenticode, RSA 4096, numero di serie del certificato D137272B35F0ED5211219674E8B052B4, emesso dalla radice di firma del codice, valido fino a giugno 2036l’agent del dispositivo per Windows e il suo client di accesso remoto frpc.exel’agent del dispositivo su Windows, in aggiunta alla firma degli aggiornamenti; dalla versione 1.5.6 dell’agent, un file che non supera questa verifica viene rifiutato

Le due chiavi OpenPGP possono essere scaricate per una verifica manuale: la chiave dell’Appliance da https://instance-registry.ironflock.com/dl/appliance/appliance-release.asc (vedi Verificare l’Installer Prima dell’Installazione Iniziale), la chiave bootstrap da https://instance-registry.ironflock.com/dl/device-init/ironflock-bootstrap.asc (vedi Facoltativo: verifica prima l’installer). Confronta l’impronta riportata da gpg con quella indicata in questa pagina. Le chiavi dell’agent del dispositivo sono integrate nell’agent; non c’è nulla da verificare manualmente.

Su Windows, l’agent del dispositivo verifica ogni aggiornamento e ogni frpc.exe che scarica rispetto alla radice di firma del codice integrata nell’agent: il file deve avere una firma valida di un certificato del firmatario emesso da questa radice. Dalla versione 1.5.6, un file che non supera la verifica viene eliminato e non viene eseguito; le versioni 1.5.4 e 1.5.5 registravano soltanto l’errore. Il certificato del firmatario viene verificato al momento della verifica, quindi un dispositivo Windows il cui orologio è fuori dal periodo di validità del certificato non si aggiorna finché l’orologio non è corretto. A ogni avvio l’agent verifica inoltre il proprio eseguibile e scrive codesign: self-check passed o codesign: self-check FAILED nel suo log, C:\ProgramData\IronFlock\DeviceAgent\device-agent.log; un dispositivo che registra FAILED rifiuta gli aggiornamenti firmati nello stesso modo dell’agent che esegue.

L’installer dell’agent aggiunge inoltre la radice di firma del codice ai certificati radice attendibili del computer. La verifica dell’agent non ne ha bisogno lì, quindi un dispositivo installato prima che l’installer lo facesse verifica i suoi aggiornamenti allo stesso modo. Per verificare che sia la radice indicata in questa pagina, esegui Get-ChildItem Cert:\LocalMachine\Root | Where-Object Subject -like '*IronFlock Code Signing Root*' | Format-List Subject, Thumbprint, NotAfter in PowerShell; l’impronta (Thumbprint) deve essere 6083E7E2446B8C95A6F6B2E3CFE354AE02859196. Con la radice presente, Get-AuthenticodeSignature "$env:ProgramData\IronFlock\DeviceAgent\device-agent.exe" | Select-Object Status, @{ n = 'Serial'; e = { $_.SignerCertificate.SerialNumber } } mostra Valid; Windows scrive il numero di serie preceduto da 00, come 00D137272B35F0ED5211219674E8B052B4. Gli agent del dispositivo precedenti alla versione 1.5.4, e frpc.exe fino alla versione 0.71.1 di frp, portano il certificato precedente del firmatario Windows, numero di serie 481360741E254378C38A5236940BFFA44CFDD809, emesso dalla stessa radice. Con esso non si firma più nulla di nuovo; l’agent accetta le sue firme fino alla scadenza del certificato a ottobre 2028.

Come Vengono Custodite le Chiavi

  • Le chiavi di questa pagina non possono essere esportate, tranne la radice di firma del codice. Le loro chiavi private sono custodite nel sistema di gestione delle chiavi di IronFlock e la firma avviene lì. La radice di firma del codice non firma software, ma solo il certificato del firmatario Windows, ed è usata solo quando quel certificato viene sostituito.
  • Le release sono firmate dalla loro pipeline di release. La chiave con cui vengono firmate le release di un prodotto può essere usata solo dalla release automatizzata di quel prodotto, dopo che i suoi controlli e test sono stati superati.
  • L’agent del dispositivo si fida di due chiavi indipendenti. Le nuove release sono firmate con la prima. La seconda ha firmato le release precedenti e firma ancora, a mano, gli aggiornamenti per gli agent meno recenti e le versioni meno recenti di ironflock-init, che si fidano solo di questa chiave. È inoltre conservata per il caso in cui la prima non possa più essere usata; allora gli aggiornamenti vengono firmati con la seconda, così i dispositivi continuano ad aggiornarsi senza alcuna impostazione che salti la verifica.

Rotazione di una Chiave

Una chiave viene sostituita quando raggiunge la fine della durata prevista, oppure subito quando si sospetta che sia compromessa. Questa sezione riguarda le chiavi di firma qui sopra; i segreti interni dell’Appliance stessa vengono sostituiti con ironflock-update --rotate, vedi Segreti sull’Host. Una rotazione avviene sempre in tre passaggi, così che ogni dispositivo e ogni Appliance possa verificare ogni aggiornamento lungo il percorso:

  1. Viene aggiunta la nuova chiave. Una release aggiunge la nuova chiave alle chiavi di cui un dispositivo o un’Appliance si fida. Quella release è ancora firmata con la chiave attuale, quindi tutto ciò che si aggiorna a essa la accetta.
  2. La firma passa alla nuova chiave. Quando sul campo è in uso una release che si fida di entrambe le chiavi, IronFlock firma con la nuova chiave. Durante questo periodo la vecchia chiave resta attendibile.
  3. La vecchia chiave viene ritirata. Una release successiva rimuove la vecchia chiave. Da quel momento una firma con la vecchia chiave viene rifiutata e la chiave viene elencata in Chiavi Ritirate.

Cosa significa per ciascuna chiave:

  • Chiave di rilascio dell’Appliance. Un’Appliance si fida delle chiavi con cui è stato scritto il suo ironflock-update, quindi l’Appliance deve installare la release del passaggio 1 prima di poter verificare gli aggiornamenti firmati nel passaggio 2. Un’Appliance che non è stata aggiornata per tutto il periodo di sovrapposizione interrompe l’aggiornamento prima che cambi qualcosa; esegui una volta l’installer manualmente, verificato con la nuova chiave, come descritto in Verificare l’Installer Prima dell’Installazione Iniziale.
  • Chiavi di aggiornamento dell’agent del dispositivo. Un dispositivo si fida delle chiavi integrate nell’agent che esegue. Un dispositivo rimasto offline per tutto il periodo di sovrapposizione non può verificare gli aggiornamenti firmati con la nuova chiave; reinstalla il suo agent con l’installer del dispositivo, che si fida della nuova chiave.
  • Chiave bootstrap. install.sh viene scaricato di nuovo a ogni installazione e contiene la chiave con cui verifica, quindi una nuova chiave entra in vigore con la release successiva dell’installer, senza sovrapposizione. Cambia solo la verifica manuale: confronta con l’impronta indicata in questa pagina.
  • Firma del codice per Windows. Un dispositivo Windows si fida della radice di firma del codice, non del firmatario. Un nuovo certificato del firmatario emesso dalla stessa radice entra in vigore con la release successiva, senza sovrapposizione, e sul dispositivo non serve fare nulla. Poiché l’agent verifica il certificato del firmatario al momento della verifica, un file firmato con un certificato scaduto viene rifiutato; per questo un certificato del firmatario viene sostituito molto prima della sua scadenza. La radice stessa viene sostituita con i tre passaggi descritti sopra, molto prima della sua scadenza a luglio 2036; un dispositivo Windows rimasto offline per tutto il periodo di sovrapposizione richiede la reinstallazione del suo agent. I certificati radice attendibili del computer conservano la radice aggiunta dall’installer, quindi dopo una rotazione della radice la verifica PowerShell descritta sopra può mostrare solo la radice precedente; l’agent verifica rispetto alle radici integrate in esso.

Durante una sovrapposizione, questa pagina elenca entrambe le chiavi con le loro impronte e le note di rilascio annunciano ogni passaggio. Su un’Appliance o un dispositivo mantenuto aggiornato non serve fare nulla.

Se una chiave è compromessa, IronFlock smette subito di firmare con essa, ne esegue la rotazione come descritto sopra con tempi brevi e pubblica un avviso di sicurezza.

Chiavi Ritirate

Nessuna finora.

Last updated on