Devo firmare le chiavi di rilascio del software con la mia chiave?

1

Una buona pratica è la verifica del software con una chiave di firma del team, per garantire che il software non sia stato manomesso.

Il problema

Quando cerco un download, di solito mi imbatto nel seguente messaggio:

$ gpg --verify keepassxc-2.3.3-src.tar.xz.sig
gpg: assuming signed data in 'keepassxc-2.3.3-src.tar.xz'
gpg: Signature made Wed May  9 19:40:24 2018 CEST
gpg:                using RSA key C1E4CBA3AD78D3AFD894F9E0B7A66F03B59076A8
gpg: Good signature from "KeePassXC Release <[email protected]>" [unknown]
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: BF5A 669F 2272 CF43 24C1  FDA8 CFB4 C216 6397 D0D2
     Subkey fingerprint: C1E4 CBA3 AD78 D3AF D894  F9E0 B7A6 6F03 B590 76A8

Non mi piace molto questa parte:

gpg: WARNING: This key is not certified with a trusted signature!

gpg: There is no indication that the signature belongs to the owner.

Ogni volta che voglio installare il software su un nuovo dispositivo o ogni volta che viene rilasciata una nuova versione, devo fare lo stesso noioso lavoro : ho bisogno di trovare la pagina ufficiale in cui può confrontare l'impronta digitale chiave e confrontarla con più altre fonti per assicurarsi che il sito Web ufficiale non sia stato compromesso. Non un buon UX.

Una possibile soluzione

Una semplice soluzione è certificare la chiave una volta per tutte, quindi il controllo (ad esempio il " job tedioso ", ricorda?) viene eseguito una sola volta. Una volta che ho certificato la chiave di rilascio, posso controllare rapidamente l'output gpg del mio file appena scaricato: no warning - > file OK. Semplice.

Anche Kleopatra suggerisce di certificare una chiave confrontando l'impronta digitale dal sito web ufficiale:

La domanda

Ho letto che non è una buona idea firmare una chiave da qualcuno che non hai incontrato nella vita reale. Ma di solito le chiavi di rilascio non sono detenute da una persona unica, ma da una squadra, quindi è piuttosto difficile incontrare le persone nella vita reale.

È una buona idea firmare una chiave di rilascio (dopo aver controllato più volte le fonti)?

    
posta Morgan Courbet 19.08.2018 - 17:47
fonte

3 risposte

1

Sì, penso che abbia perfettamente senso firmare la chiave di rilascio con la tua chiave privata (anche se non sono un esperto di PGP).

Penso che la tua domanda si riduce davvero a Va bene firmare una chiave PGP senza una riunione IRL? , ma è abbastanza diverso da non essere sicuro che dovrebbe essere chiuso come duplicato.

Sono d'accordo con la risposta di Thomas Pornin a questa domanda, non esiste una vera definizione coerente di "identità" qui, come voi indica correttamente:

release keys are not held by a unique person, but by a team, so it's kinda difficult to meet the people in real life

Il punto di firmare una chiave è dire che conosci l'"identità" a cui la chiave dice di appartenere e che hai verificato che la chiave appartenga effettivamente a tale identità. Nel caso di una chiave di rilascio del software, si desidera verificare che la chiave appartenga al team di rilascio. Poiché il controllo del sito Web del software dovrebbe essere (principalmente) limitato alle persone che realizzano il software, la verifica dell'impronta digitale ottenuta dal sito Web tramite HTTPS è probabilmente una forma accettabile di verifica nella maggior parte dei casi.

    
risposta data 20.08.2018 - 20:15
fonte
1

L'idea è la stessa di un'infrastruttura a chiave pubblica. L'autorità di certificazione principale (autofirmata) firma la chiave di firma. CA principale - > chiave di firma

Nel caso in cui la chiave di firma sia compromessa, può essere revocata dalla CA radice, è possibile emettere un'altra chiave di firma che è firmata con la CA principale. Quindi è possibile assicurarsi che la nuova chiave di firma sia emessa dal venditore. Crea una catena di fiducia come usiamo con HTTPS. Non sto dicendo che un PKI non abbia svantaggi, il compromesso diretto (root CA) sia uno, ma consente un'automazione, una convalida più semplice e non espone direttamente il certificato autofirmato.

SinotichelaCAprincipalenonèinlinea,ilchedovrebberidurrenotevolmenteilrischiodicompromissione.

is:isthisagoodideatosignareleasekey(afterhavingcross-checkedmultiplesources)?

Questaèunarispostapiuttostodelicata.Poichélachiavedifirma(rilascio)deveessereconvalidata,incasocontrario,potremmoscaricarepotenzialemalwareeritenerechesiastatorilasciatodalfornitorementreilpacchettoèfirmato.Lamiaopinioneèchepiùfontipossiamoconvalidareprimadiutilizzarelachiavedifirmaperl'usoalungotermine,meglioè.

Cosa succede se le mie sottochiavi di firma sono compromesse? dovrebbe dare qualche idea.

    
risposta data 20.08.2018 - 00:45
fonte
1

Solo per integrare la risposta @safespoit.

La verifica del certificato autofirmato non è diversa da una regione / paese root - CA non è considerata attendibile per impostazione predefinita da qualsiasi sistema operativo / browser. In tal caso, l'utente deve andare al dominio say per scaricare la CA di root al fine di convalidare il certificato firmato sotto la root-CA.

Se un'organizzazione gestisce il certificato autofirmato e l'importazione della CA self-root, questa è una soluzione sicura e valida.

Tuttavia, nel caso di distribuzione di software al pubblico, questo non è raccomandato, in quanto il meccanismo è probabilmente sfruttato da scammer per far sì che il pubblico possa importare il phisher root-CA.

    
risposta data 20.08.2018 - 09:23
fonte

Leggi altre domande sui tag