È sicuro pubblicare sottochiavi di autenticazione PGP pubbliche?

9

Supponiamo di avere una chiave PGP impostata come segue:

Ho una coppia di chiavi pubblica / privata offline, che è impostata su solo Certifica , ovvero crea sottochiavi e firma le chiavi di altre persone.

Quindi creo tre sottochiavi che inserisco su Yubikey (con backup offline):

  • Firma chiave
  • Crittografia chiave
  • Chiave di autenticazione

La chiave firma verrà utilizzata per firmare messaggi e commit git.

La chiave crittografia verrà utilizzata affinché le persone possano inviarmi messaggi crittografati.

La chiave autenticazione verrà utilizzata con gpg-agent --enable-ssh-support da utilizzare come autenticazione ssh per accedere ai server.

La mia domanda è:

Esistono implicazioni di sicurezza negative (o positive?) sulla pubblicazione della sottochiave authentication (o di tutte e tre le sottochiavi pubbliche) su un server delle chiavi?

La mia logica è che avrei solo bisogno di pubblicare la sottochiave pubblica signing , quindi le persone possono confermare le mie firme e la mia crittografia sottochiave pubblica, così le persone possono inviarmi messaggi crittografati.

Nessuno dal "pubblico" deve sapere che ho anche una chiave authentication perché verrà utilizzata solo nel file authorized_keys dei miei server per consentirmi di accedere senza parola d'ordine.

Se qualcuno dovesse entrare in un server e interrogare le chiavi pubbliche nel file authorized_keys , potrebbe cercarlo nel server delle chiavi e scoprire che io, in particolare, sto usando quel server. È problematico o sto pensando troppo a qualcosa?

    
posta jaybee 12.01.2017 - 21:43
fonte

3 risposte

5

Fornendo più chiavi per potenziali aggressori del necessario, stai violando il principio del minimo privilegio (perché mai chiunque dovrebbe avere il privilegio di vedere la tua chiave pubblica?). Se non devono sapere, non ha senso aiutarli a dedurre ulteriori informazioni, ad es. il tipo di chiave (RSA, ECDSA, ...) e le dimensioni (ad es. 2048 bit) della chiave SSH per trovare i vettori di attacco. Da ciò possono fare ipotesi più informate su come generalmente si proteggono i sistemi, sulla velocità con cui si passa a nuove tecnologie e sul paranoico in generale (hmm, ancora usando RSA a 1024 bit? Oh, ECDSA a 512 bit, interessante ...).

Immagina che al momento della generazione delle chiavi non ti rendessi conto che una chiave RSA a 512 bit può essere spezzata su un normale laptop al giorno d'oggi. Gli aggressori che cercano attivamente tali chiavi online ti segnaleranno immediatamente come obiettivo facile. Oppure immagina di dimenticarti di sostituire sempre quella chiave e / o di dimenticarti del tuo server (o semplicemente non sei più vivo per apportare modifiche). In X anni, la parte privata della chiave RSA 2048 bit può essere calcolata su un sistema di calcolo più avanzato e i dati presenti sul server saranno a rischio. Potrebbe non influire più su di te, ma forse memorizzi i dati di qualcun altro a cui tengo ancora a mantenerlo segreto.

Ovviamente quegli scenari sono molto improbabili (tranne che per usare chiavi deboli, che capitano regolarmente alle persone, anche una chiave RSA a 4096 bit è inutile se lo stato del pool di entropia è negativo, vedi quanto manca il mondo per generare buoni i tasti in questo documento ), e probabilmente un bug in SSH consentirà lo sfruttamento del tuo server prima che la tua chiave venga spezzata , ma la loro probabilità non è zero, e dovresti almeno considerarli prima di pubblicare più dati del necessario. Se hai considerato questi scenari, dovresti stare bene, ma sappiamo tutti che nessuno può prevedere tutti gli scenari di attacco o le implicazioni, quindi è più facile non doverli pensare affatto.

Se è necessario caricare la chiave di autenticazione SSH per cercarla, ad es. per configurare un file authorized_keys di un nuovo server, meglio ospitarlo su un URL difficile da indovinare, ad es. www.mydomain.com/download/myAwesomePublicSSHkey.pub

    
risposta data 27.01.2017 - 01:46
fonte
5

Sì, la tua logica è sana. Devi solo pubblicare le tue chiavi pubbliche per consentire alle persone di inviarti messaggi crittografati e controllare la tua firma. Tuttavia, non c'è motivo di pubblicare la tua chiave pubblica per SSH, il che non vuol dire che non potresti farlo comunque. In realtà non influisce in alcun modo sulla tua sicurezza. Se qualcuno acquisisce la tua chiave pubblica, l'unica cosa che permetterà loro di fare è identificare l'inizio di una sessione SSH da te, e che in realtà non dovrebbe infastidirti se non in una specie di scenario estremo che non riesco a capire bene ora.

    
risposta data 25.01.2017 - 04:30
fonte
1

La sicurezza dipende dal tuo caso d'uso:

  • Qualcuno può attaccare il server con la tua chiave di autenticazione pubblica?
    • Nessun.
  • Se qualcuno entra nel tuo server, è in grado di conoscere il tuo indirizzo email?
    • Sì. Ma forse la persona trova anche il tuo indirizzo email senza la tua chiave di autenticazione pubblica.
  • Se qualcuno ottiene la chiave di autenticazione pubblica da un server delle chiavi, la persona è in grado di scoprire in quale server viene utilizzato?
    • Non lo so, ma potresti verificarlo controllando i dettagli della tua chiave di autenticazione.
  • Qualcuno è in grado di ottenere l'autenticazione privata dalla tua chiave pubblica?
    • No, a condizione che la chiave sia sufficientemente strong (ad es. > = 2048 bit RSA)
  • Hai bisogno di renderlo pubblico chiediti tutte queste domande?
    • Dipende dal tuo caso d'uso;)
risposta data 29.01.2017 - 23:24
fonte

Leggi altre domande sui tag