Ottieni gli ID chiave e le impronte digitali di apt in formato leggibile automaticamente


11

Sto cercando di correggere un problema in puppetlabs-apt per consentire l'uso delle impronte digitali chiave come identificatori per garantire che una determinata chiave sia presente con l'impronta digitale della chiave di 40 cifre.

Ho difficoltà a verificare che la chiave sia presente e ho bisogno di un comando che produrrà quanto segue:

  • L'ID a 8 cifre della chiave.
  • L'ID a 16 cifre della chiave.
  • L'ID di 40 cifre della chiave.

Esiste un apt-keycomando che posso usare per emettere questi valori, uno per riga, in modo da poter analizzare l'output e verificare se la chiave è presente?

Risposte:


21

apt-key adv ti permetterà di passare direttamente le opzioni a GnuPG.

Quindi puoi fare qualcosa del genere per ottenere un risultato analizzabile:

# apt-key adv --list-public-keys --with-fingerprint --with-colons 
⋮
fpr:::::::::126C0D24BD8A2942CC7DF8AC7638D0442B90D010:
pub:-:4096:1:9D6D8F6BC857C906:2014-11-21:2022-11-19::-:Debian Security Archive Automatic Signing Key (8/jessie) <ftpmaster@debian.org>::scSC:
fpr:::::::::D21169141CECD440F2EB8DDA9D6D8F6BC857C906:
⋮

Dato che ti interessa solo l'impronta digitale (gli ID a 8 e 16 cifre sono solo la fine dell'impronta digitale), | grep ^fprsembrerebbe darti le linee che ti interessano.


Quindi prendere fingerprint[-8:](Python) mi procurerebbe l'ID a 8 cifre e fingerpint[-16:]mi darebbe l'ID a 16 cifre? Sciocco per aver pensato che si trattasse di hash short di derivazione crittologica ...
Naftuli Kay,

2
@NaftuliTzviKay L'impronta digitale è un hash crittograficamente derivato. Non vi è alcun vantaggio in termini di sicurezza se si esegue nuovamente l'hashing rispetto al solo troncamento. Inoltre quelli a 8 e probabilmente a 16 cifre sono troppo corti per essere sicuri; puoi generare una chiave duplicata con la forza bruta. Solo l'hash completo è ragionevolmente sicuro. Non posso commentare se il tuo codice Python funziona come previsto, dato che non conosco Python ... Ma immagino di si. Sono solo le ultime 8 o 16 cifre esadecimali.
derobert il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.