Apple představil nový MacBook Pro s čipy M4, M4 Pro a M4 Max.
Na GOG.com běží Halloween Sale 2024. Při té příležitosti lze získat zdarma počítačovou hru Return of the Phantom.
Společnost OpenAI spustila internetový vyhledávač ChatGPT search.
Konference OpenAlt 2024 proběhne již tento víkend 2. a 3. listopadu v prostorách FIT VUT v Brně. Začíná ale už v pátek na warm-up party ve Studentském klubu u Kachničky v 17:00. Pokud jste ještě areál FITu nenavštívili, k dispozici jsou pokyny k orientaci. Na programu je 54 přednášek a workshopů. Témata jsou od silně technických témat jako je třeba GCC nebo PostgreSQL po méně technické témata jako eGovernment, nebo třeba detailní analýzu … více »
Byla vydána nová verze 6.9 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Přehled změn v příslušném seznamu. Tor Browser byl povýšen na verzi 14.0.1. Tor client na verzi 0.4.8.13. Thunderbird na verzi 115.16.0.
Vývojáři free a open source synchronizačního nástroje (a p2p náhrady Dropboxu) Syncthing oznámili, že z důvodu odporu ze strany Google Play ukončují podporu OS Android. Bohužel v rámci toho zmizí i vydání Syncthing na F-Droid, který má slabší uživatelskou základnu. Syncthing je na Androidu implementován formou wrapper aplikace, která spustí Syncthing démon, vyžádá potřebná oprávnění a zpřístupní webové rozhraní démona. Ve srovnání se
… více »V červnu 2022 bylo oznámeno, že z K-9 Mailu se stane Thunderbird pro Android. Trvalo to poněkud déle, než vývojáři předpokládali, ale včera byl první stabilní Thunderbird pro Android 8.0 vydán.
Projekt microDMG Racer na Kickstarteru nevyšel, tak se autor rozhodl uvolnit na ESP32 postavené autíčko i ovladač jako open source.
Byl vydán TrueNAS SCALE 24.10 „Electric Eel“. Přehled novinek této open source storage platformy postavené na Debianu v poznámkách k vydání.
Byla vydána nová verze 24.10.29 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nově s podporou AI (whisper.cpp) pro generování titulků. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Předchozí kroky najdete v závěru minulého dílu a v dílu druhém.
Nakonec už zbývá jen nahrát klíč do Yubikey. Než se do toho pustíme, je potřeba opět umravnit GPG:
$ killall gpg-agent $ eval $(gpg-agent --daemon --enable-ssh-support > /tmp/gpg-agent.env); $ . /tmp/gpg-agent.env
Použijeme k tomu opět parametr „--edit-key“. Nezapomeňte použít gpg2, jinak to nebude fungovat:
$ gpg2 --edit-key 3F6F3D1B gpg (GnuPG) 2.0.22; Copyright (C) 2013 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Tajný klíč je dostupný. pub 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy použití: SC důvěra: absolutní platnost: absolutní sub 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy použití: E sub 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy použití: A [ absolutní ] (1). Bystroushaak <bystrousak@kitakitsune.org> gpg>
Přehled můžeme zkrátit pomocí příkazu „toggle“:
gpg> toggle sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy ssb 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy ssb 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy (1) Bystroushaak <bystrousak@kitakitsune.org>
Klíč poté nahrajeme do Yubikey příkazem „keytocard“:
gpg> keytocard Opravdu přesunout primární klíč? (a/N) a Signature key ....: [none] Encryption key....: [none] Authentication key: [none] Prosím vyberte místo pro uchování klíče: (1) Podepisovací klíč (3) Autentizační klíč Váš výběr?
Program se nás zeptá, zda klíč chceme používat pro podepisování, či autentizaci. Chceme podepisování, proto vybereme 1:
Váš výběr? 1 Musíte znát heslo, abyste odemkl(a) tajný klíč pro uživatele: „Bystroushaak <bystrousak@kitakitsune.org>“ délka 2048 bitů, typ RSA, klíč 3F6F3D1B, vytvořený 2016-01-11
GPG nyní bude chtít dvě hesla:
Poté již klíč nahraje do karty.
sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy ssb 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy (1) Bystroushaak <bystrousak@kitakitsune.org> gpg>
To samé pak chceme zopakovat s podklíčem používaným pro šifrování, který vybereme příkazem „key 1“:
gpg> key 1 sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb* 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy ssb 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy (1) Bystroushaak <bystrousak@kitakitsune.org> gpg> keytocard Signature key ....: 9F87 EECF CDAA 263C AC00 A5A0 3F92 841C 3F6F 3D1B Encryption key....: [none] Authentication key: [none] Prosím vyberte místo pro uchování klíče: (2) Šifrovací klíč Váš výběr? 2 Musíte znát heslo, abyste odemkl(a) tajný klíč pro uživatele: „Bystroushaak <bystrousak@kitakitsune.org>“ délka 2048 bitů, typ RSA, klíč EF4ADF82, vytvořený 2016-01-11 sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb* 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy (1) Bystroushaak <bystrousak@kitakitsune.org> gpg>
A pak ještě jednou pro třetí klíč s příkazem „key 2“ (počítáno od nuly):
gpg> key 2 sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy (1) Bystroushaak <bystrousak@kitakitsune.org> gpg> keytocard Opravdu přesunout primární klíč? (a/N) a Signature key ....: 9F87 EECF CDAA 263C AC00 A5A0 3F92 841C 3F6F 3D1B Encryption key....: DA79 B9A1 F403 2515 D167 12DC 64D4 BDA4 EF4A DF82 Authentication key: [none] Prosím vyberte místo pro uchování klíče: (1) Podepisovací klíč (3) Autentizační klíč Váš výběr?
První klíč byl Podepisovací, druhý Šifrovací. Teď nám zbývá už jen Autentizační, proto vybereme „3“:
Váš výběr? 3 Musíte znát heslo, abyste odemkl(a) tajný klíč pro uživatele: „Bystroushaak <bystrousak@kitakitsune.org>“ délka 2048 bitů, typ RSA, klíč 8F8041DC, vytvořený 2016-01-11 sec 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb* 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 (1) Bystroushaak <bystrousak@kitakitsune.org> gpg>
GPG poté ukončíme příkazem „quit“ s uložením změn:
gpg> quit Uložit změny? (a/N) a
Nově už v klíčence GPG v počítači nejsou uloženy privátní klíče, pouze ukazatele na kartu. To ovšem nestačí, protože v základní módu požaduje Yubikey pouze PIN, nikoliv ověření dotykem.
Nyní to chce přesvědčit Yubikey, aby vyžadoval dotek na ploše před uvolněním klíče. K tomu slouží skript na adrese https://gist.github.com/a-dma/797e4fa2ac4b5c9024cc (webarchive) (to jsem si nevymyslel, je to z oficiální dokumentace (webarchive) :(). Stáhnout se dá kliknutím na tlačítko RAW vpravo v rohu.
Postupně je možné zapnout PIN pro…
$ bash yubitouch.sh dec on 12345678 All done!
$ bash yubitouch.sh aut on 12345678 All done!
$ bash yubitouch.sh sig on 12345678 All done!
PIN zde zadáváte jako potvrzení, ne k nastavení jeho hodnoty. Skript má docela problém s nenumerickými administrátorskými hesly (tzn. použijte jen čísla), proto doporučuji tento krok před posledním, což je…
Ke změně PIN použijeme příkaz „gpg2 --card-edit“. Pokud vám nebude chtít navázat komunikaci opět proveďte „. /tmp/gpg-agent.env“ (tečka je na začátku schválně).
$ gpg2 --card-edit Application ID ...: D2760001240102010006041314470000 Version ..........: 2.1 Manufacturer .....: unknown Serial number ....: 04131447 Name of cardholder: [není nastaven] Language prefs ...: [není nastaven] Sex ..............: neuvedeno URL of public key : [není nastaven] Login data .......: [není nastaven] Signature PIN ....: není vyžadováno Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: 9F87 EECF CDAA 263C AC00 A5A0 3F92 841C 3F6F 3D1B created ....: 2016-01-11 10:04:02 Encryption key....: DA79 B9A1 F403 2515 D167 12DC 64D4 BDA4 EF4A DF82 created ....: 2016-01-11 10:04:02 Authentication key: 13D3 290C 3FFE EC20 ED3B 4AD2 72A8 96C0 8F80 41DC created ....: 2016-01-11 10:11:32 General key info..: pub 2048R/3F6F3D1B 2016-01-11 Bystroushaak <bystrousak@kitakitsune.org> sec> 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb> 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb> 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 gpg/karta>
V GPG shellu se do správné konfigurace dostaneme sekvencí příkazů „admin“ a „passwd“:
gpg/karta> admin administrátorské příkazy jsou povoleny gpg/karta> passwd gpg: Nalezena OpenPGP karta číslo D2760001240102010006041314470000 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Váš výběr?
Zde je možné jednoduše změnit jak PIN (menu „1“), tak Admin PIN (menu „3“). GPG zde slovo PIN používá poněkud zavádějícím způsobem, protože se rozhodně nejedná o číselné sekvence, ale můžete s klidem v duši použít poměrně komplikovaná a dlouhá hesla.
Váš výběr? 1 PIN changed. 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Váš výběr? 3 PIN changed. 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Váš výběr? q gpg/karta> quit
Zbývá ještě ověřit, jestli vše funguje, jak má. Zkusíme třeba něco podepsat. Vytvoříme testovací soubor obsahující jen řetězec „test“:
$ echo test > test.txt
Tento soubor podepíšeme:
$ gpg --clearsign test.txt
GPG se přitom zasekne a Yubikey by měl začít problikávat, čímž indikuje, že očekává dotek. Jakmile se ho dotkneme, je vytvořen soubor „test.txt.asc“ s následujícím obsahem:
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 test -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQEcBAEBAgAGBQJWk5ElAAoJED+ShBw/bz0b6Z0IALz/6H2pge00EuvWsy/3TjG/ dubGRJjJGstyi1G/AdkumHoqp11ON89PgVGuL6d4B2losFtlhlu4lO8NBMWfGdPv w4uD2BckvRxsIclJxUiIkPgTuXirIjr0EdHZIHFy2KlcGNKKhD9CXkxYNgwPUhEJ H/i9getLo3G2evtZ6aG1tsCMar4tA/ETaehQwIZ6Hge48nzC3t1DW+S2krQ9WrIE jkXUw+gQFgim3iTccIBab5gnXqISVcZA30rigKauN+yKs069r6hwodMIaMK7bby1 Ihh8NHcub+oP+tqiFliccpuvJ9AupoOtObdJ5fpaFcw2zcxkEXhVP6BmKC9E9IA= =kDpk -----END PGP SIGNATURE-----
Několikrát jsme byli nuceni použít hack GPG, který sestřelil běžící proces gpg-agent a nastavil pár proměnných.
Nejjednodušší způsob, jak zabránit opakování před každým použitím Yubikey, pochází z blogu Derka Kozla (webarchive) a spočívá v přidání následujících řádek do „.bashrc“:
if [ ! -f /tmp/.gpg-agent.env ]; then killall gpg-agent; eval $(gpg-agent --daemon --enable-ssh-support > /tmp/.gpg-agent.env); fi . /tmp/.gpg-agent.env
Co dělat, pokud přijdete k jinému počítači a chcete Yubikey používat i tam?
Většinou je nutné nainstalovat všechny závislosti, udev pravidlo a resetovat GPG agent, jak už bylo ukázáno na začátku této kapitoly. Časem možná budou distribuce doplněny natolik, že to již nutné nebude.
K tomu, aby Yubikey začal s GPG fungovat, stačí už jen importovat předtím exportovaný veřejný klíč:
$ gpg2 --import < yubikey.pub
Poslední možností je použití Yubikey pro SSH autorizaci. Toho je docíleno spoluprací s GPG, které k tomuto má standardní mechanismy výměny informace s SSH klientem.
K čemu to? Například tím získáte odolnost proti chybám vývojářů SSH a možnosti, že by vám někdo exploitací chyby ukradl klíč. Pokud si myslíte, že je to nepravděpodobné, doporučuji k přečtení: OpenSSH obsahuje chybu umožňující ukrást klientské klíče (webarchive).
Ze všeho nejdřív si najdeme Autentizační klíč:
$ gpg --card-status can't connect to `/tmp/gpg-oTFIub/S.gpg-agent': Adresář nebo soubor neexistuje gpg: detected reader `Yubico Yubikey 4 OTP+CCID 00 00' Application ID ...: D2760001240102010006041314470000 Version ..........: 2.1 Manufacturer .....: unknown Serial number ....: 04131447 Name of cardholder: [není nastaven] Language prefs ...: [není nastaven] Sex ..............: neuvedeno URL of public key : [není nastaven] Login data .......: [není nastaven] Private DO 1 .....: [není nastaven] Private DO 2 .....: [není nastaven] Signature PIN ....: není vyžadováno Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 127 127 127 PIN retry counter : 3 0 3 Signature counter : 7 Signature key ....: 9F87 EECF CDAA 263C AC00 A5A0 3F92 841C 3F6F 3D1B created ....: 2016-01-11 10:04:02 Encryption key....: DA79 B9A1 F403 2515 D167 12DC 64D4 BDA4 EF4A DF82 created ....: 2016-01-11 10:04:02 Authentication key: 13D3 290C 3FFE EC20 ED3B 4AD2 72A8 96C0 8F80 41DC created ....: 2016-01-11 10:11:32 General key info..: pub 2048R/3F6F3D1B 2016-01-11 Bystroushaak <bystrousak@kitakitsune.org> sec> 2048R/3F6F3D1B vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb> 2048R/EF4ADF82 vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447 ssb> 2048R/8F8041DC vytvořen: 2016-01-11 platnost skončí: nikdy číslo karty: 0006 04131447
Autentizační klíč je v tomto případě ten poslední:
Authentication key: 13D3 290C 3FFE EC20 ED3B 4AD2 72A8 96C0 8F80 41DC created ....: 2016-01-11 10:11:32
Jeho krátké ID získáme z přehledu klíčů příkazem:
$ gpg --fingerprint --fingerprint /home/bystrousak/.gnupg/pubring.gpg ----------------------------------- pub 2048R/3F6F3D1B 2016-01-11 Fingerprint klíče = 9F87 EECF CDAA 263C AC00 A5A0 3F92 841C 3F6F 3D1B uid Bystroushaak <bystrousak@kitakitsune.org> sub 2048R/EF4ADF82 2016-01-11 Fingerprint klíče = DA79 B9A1 F403 2515 D167 12DC 64D4 BDA4 EF4A DF82 sub 2048R/8F8041DC 2016-01-11 Fingerprint klíče = 13D3 290C 3FFE EC20 ED3B 4AD2 72A8 96C0 8F80 41DC
Zde je možné vidět, že k fingerprintu 13D3 290C 3FFE EC20 ED3B 4AD2 72A8 96C0 8F80 41DC náleží ID 2048R/8F8041DC. Použít je také možné příkaz:
$ gpg --fingerprint --fingerprint | grep -B 1 "`gpg --card-status | grep Authentication | cut -d ":" -f 2`"
Jakmile máte ID klíče pro autentizaci, je možné postoupit k generování veřejného klíče:
$ gpgkey2ssh 8F8041DC ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXM63qLDM/AxUdotf46xQ5lkWiNnztgQEAPXu3maXt Z4U+ZYEarPLG9sF/5Vc7pMH5TuBV/6+l3835hGOYcelYw1l8VMYGWIUjzALo8zxEpyfUf50m8C2lfJKJ Q9o/AeU3GmWrA2zkkUnqLHJih0Rj1lCcS5CGYZ6yAhsCFB5SC/I7bTByP7KOhISTLQkb3kRz7zTxOw4+ lOOlmTcbd5vHfuZvoYkU8I9o4GmbC1ofZ/dr0WxVVm0ZcBZ7R56sh53d/hDJoB0AMJH7MRrVgkGZqPdr d2uGKTqn1aaP5fbr53mZLLotbWbx40VmUi9O2FnytACQIOYSJlurOx/sORjF COMMENT
Což vygeneruje nový veřejný klíč, který je možné přidat na serveru do souboru .ssh/authorized_keys. Jakmile se na server přihlásíte, SSH vás prostřednictvím GPG požádá o PIN (pokud jste si ho nastavili) a autorizaci dotekem kapacitního snímače Yubikey. Pokud není Yubikey vložen, je zobrazena žádost o heslo (pokud je k přihlášení heslo povoleno).
Yubikey mě vyšel přesně na 1699,85 Kč, což je kapku víc než uváděných $40 (~958 Kč).
Důvodů je několik…
Pokud ho budete objednávat, počítejte že v praxi vás to vyjde na podobnou částku, ± 200kč.
Zbývá ještě odpovědět jednu otázku: Opravdu je to užitečné, nebo se jedná o bazmek?
Jak si možná někteří všimli z data u generování klíčů, tento článek jsem začal psát v lednu a v době vydání je přelom dubna a května. Měl jsem tedy více než tři měsíce na otestování praktické použitelnosti Yubikey.
Musím říct, že jsem s ním docela spokojený. Ideální by asi bylo, kdyby se místo PIN používal otisk prstu, ale člověk nemůže mít všechno. Pokud chcete zlepšit zabezpečení ať již ve firmě, či v rámci zdravé „domácí paranoie“, určitě je to dobrá volba.
Další zdroje informací a články, ze kterých jsem vycházel při psaní:
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Šílená cena, proč ne http://yubikeys.cz/product/yubikey-4/ ?Protože jsem to v té době nenašel. Ve whois mají:
domain: yubikeys.cz registrant: FORPSI-PSX-S509086 nsset: FORPSI keyset: FORPSI-KS-0DHATNFC registrar: REG-INTERNET-CZ registered: 13.03.2016 19:56:11 changed: 13.03.2016 20:00:52 expire: 13.03.2017Takže to nejspíš ani neexistovalo.