No. I tasti non devono essere trasmessi in modo sicuro, ma ovviamente è necessario trasmetterli in modo tale che non possano essere sostituiti o manomessi, se si desidera proteggere da qualcuno che distribuisce dati dannosi.
Quindi diciamo che stai ospitando un repository software. Anche se firmi un software con la tua chiave, se un hacker ottiene l'accesso al repository, potrebbe caricare software dannoso E anche sostituire le chiavi di firma "corrette" con le sue chiavi pubbliche, quindi se un utente finale convalida il software, venire fuori come valido. Questo è ciò che l'OP sta chiedendo.
Allo stesso modo, un utente malintenzionato potrebbe sostituire le chiavi durante la trasmissione (attacco MITM), quindi se un utente esegue collegamento il MITM può sostituire la risposta con la propria chiave pubblica.
La semplice firma del software e la pubblicazione della chiave sul sito del fornitore del software sono più mirate alla protezione contro i mirror che vengono violati e iniziano a distribuire dati dannosi.
Ecco perché alcuni produttori pubblicano semplicemente l'hash SHA / MD5 del software, quindi il fornitore non ha bisogno di affidarsi completamente alla sicurezza dei mirror di terze parti.
Ecco perché è una buona idea trasmettere le chiavi usando SSL, o avere la chiave firmata da un'origine affidabile (poi diventa un certificato, potrebbe essere una x509 o una PGP) se si vuole anche proteggere contro sostituzione della chiave pubblica dannosa.
Un altro modo per proteggersi da questo è che l'utente finale scarica e salva la chiave durante la prima interazione. Pertanto, se il repository viene successivamente compromesso, l'utente finale avrà una "chiave corretta" salvata, quindi non importa se la chiave successivamente verrà sostituita, durante un attacco MITM o Hack.