Pobierz kluczowe identyfikatory i odciski palców apt w formacie do odczytu maszynowego

11

Próbuję załatać problem w puppetlabs-apt, aby umożliwić korzystanie z odcisków palców kluczy jako identyfikatorów, aby upewnić się, że dany klucz jest obecny w jego 40-cyfrowym odcisku palca.

Mam problem ze sprawdzeniem, czy klucz jest obecny i potrzebuję polecenia, które wyświetli następujące informacje:

  • 8-cyfrowy identyfikator klucza.
  • 16-cyfrowy identyfikator klucza.
  • 40-cyfrowy identyfikator klucza.

Czy istnieje apt-keypolecenie, którego mogę użyć do wyprowadzenia tych wartości, po jednej w wierszu, aby móc przeanalizować dane wyjściowe i sprawdzić, czy klucz jest obecny?

Naftuli Kay
źródło

Odpowiedzi:

21

apt-key adv pozwoli Ci bezpośrednio przekazać opcje do GnuPG.

Możesz więc zrobić coś takiego, aby uzyskać analizowalne wyjście:

# 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) <[email protected]>::scSC:
fpr:::::::::D21169141CECD440F2EB8DDA9D6D8F6BC857C906:
⋮

Ponieważ interesuje Cię tylko odcisk palca (8-cyfrowe i 16-cyfrowe identyfikatory to tylko koniec odcisku palca), | grep ^fprwydaje się , że daje ci linie, na których ci zależy.

derobert
źródło
Biorąc fingerprint[-8:](Python) dostałbym 8-cyfrowy identyfikator i fingerpint[-16:]16-cyfrowy identyfikator? Głupie mnie, że myślałam, że to kryptologicznie krótkie skróty ...
Naftuli Kay
2
@NaftuliTzviKay Odcisk palca jest skrótem pochodzącym z kryptografii. Ponowne haszowanie go nie ma żadnych korzyści w zakresie bezpieczeństwa, a jedynie obcinanie go. Co więcej, 8-cyfrowe i prawdopodobnie 16-cyfrowe są zbyt krótkie, aby je zabezpieczyć; możesz wygenerować duplikat klucza za pomocą brutalnej siły. Tylko pełny skrót jest w miarę bezpieczny. Nie mogę komentować, jeśli kod Pythona działa zgodnie z oczekiwaniami, ponieważ nie znam Pythona ... Ale zgaduję, że tak. To tylko ostatnie 8 lub 16 cyfr szesnastkowych.
derobert