Homebrew (Wikipedie), správce balíčků pro macOS a od verze 2.0.0 také pro Linux, byl vydán ve verzi 4.5.0. Na stránce Homebrew Formulae lze procházet seznamem balíčků. K dispozici jsou také různé statistiky.
Byl vydán Mozilla Firefox 138.0. Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 138 je již k dispozici také na Flathubu a Snapcraftu.
Šestnáctý ročník ne-konference jOpenSpace se koná 3. – 5. října 2025 v Hotelu Antoň v Telči. Pro účast je potřeba vyplnit registrační formulář. Ne-konference neznamená, že se organizátorům nechce připravovat program, ale naopak dává prostor všem pozvaným, aby si program sami složili z toho nejzajímavějšího, čím se v poslední době zabývají nebo co je oslovilo. Obsah, který vytvářejí všichni účastníci, se skládá z desetiminutových
… více »Richard Stallman přednáší ve středu 7. května od 16:30 na Technické univerzitě v Liberci o vlivu technologií na svobodu. Přednáška je určená jak odborné tak laické veřejnosti.
Jean-Baptiste Mardelle se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 25.04.0 editoru videa Kdenlive (Wikipedie). Ke stažení také na Flathubu.
TmuxAI (GitHub) je AI asistent pro práci v terminálu. Vyžaduje účet na OpenRouter.
Byla vydána nová verze R14.1.4 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5, Wikipedie). Přehled novinek i s náhledy v poznámkách k vydání. Podrobný přehled v Changelogu.
Bylo vydáno OpenBSD 7.7. Opět bez písničky.
V Tiraně proběhl letošní Linux App Summit (LAS) (Mastodon). Zatím nesestříhané videozáznamy přednášek jsou k dispozici na YouTube.
ssh-add
, tak právě i klíče na čipových kartách standardu OpenPGP. Vzhledem k tomu, že PGP samotné občas používám a budu tak tedy mít možnost umístit na tutéž kartu i klíče na podpisy a šifrování, volba je jasná.
gnupg
nebo gnupg2
, verze alespoň 2.0.18) a ovladače (pro USB čtečku pcsc-lite
a ccid
). Pokud ve vašem distru existují oddělené balíky gpgsm
a gnupg-agent
, potřebujete i ty. Na některých distribucích se spustí pcscd
automaticky po vložení karty, jinde ho budete muset spustit ručně. Tenhle software budete potřebovat jak pro inicializaci, tak i pro každodenní provoz na každém počítači, kde chcete kartu použít. Dále se vám může hodit opensc
pro některé méně časté operace s kartou, jako je třeba smazání klíčů.
Výpisy z GnuPG budu často krátit o ty méně podstatné informace. Zároveň se nebudu zmiňovat o místech, kdy se ptá GnuPG na heslo či PIN, protože je to během celého procesu zhruba 153x.
Po vložení karty nejprve vyzkoušíme, jestli GnuPG kartu vidí:
$ gpg --card-status Application ID ...: Version ..........: 2.0 Manufacturer .....: ZeitControl Serial number ....: 0000729B Name of cardholder: [not set] Language prefs ...: de Sex ..............: unspecified URL of public key : [not set] Login data .......: [not set] Signature PIN ....: forced Key attributes ...: 2048R 2048R 2048R Max. PIN lengths .: 32 32 32 PIN retry counter : 3 0 3 Signature counter : 0 Signature key ....: [none] Encryption key....: [none] Authentication key: [none] General key info..: [none]Pokud se vám podobný výpis nezobrazí, je na čase začít ladit - ověřit, jestli pcscd opravdu běží, jestli má přístup k USB zařízení a podobně. Před použitím karty je nutné nastavit PIN. Karta má dva - administrativní, kterým se upravují nastavení karty a pracuje s klíči, a PIN pro běžné operace, jako je podpis, dešifrování a přihlášení.
$ gpg --card-edit gpg/card> admin Admin commands are allowed gpg/card> passwd 1 - change PIN 2 - unblock PIN 3 - change Admin PIN 4 - set the Reset Code Q - quit Your selection? 1 PIN changed.A následně uděláme totéž pro Admin PIN. PIN nemusí obsahovat pouze čísla, může to být libovolné heslo o délce alespoň 6 znaků pro běžný PIN a 8 znaků pro admin PIN. Pozor na to, že karta se zablokuje po třech chybných pokusech o jeho zadání. V
gpg --card-edit
můžete dále nastavit množství metadat na kartě, ale kromě URL k veřejnému klíči, ke kterému se dostanu později, je GnuPG k ničemu nepoužívá.
gpg --gen-key
, typ RSA a RSA
o velikosti 4096 bitů. Na kartě je sice napsáno, že umí klíče pouze do velikosti 3072, ale to platilo pouze pro GnuPG starší než 2.0.18. Nějaké další informace o tom, jak klíče generovat, najdete třeba zde, zejména část o použitých algoritmech je u trochu starších verzí GnuPG nutné čtení.
Ať už nějaký máme, nebo jsme ho třeba vygenerovali, bude vypadat nějak takhle.
$ gpg --list-keys pub 4096R/8F1DD759 2014-04-07 uid nobody <nobody@nowhere> sub 4096R/6FE9D59F 2014-04-07 $ gpg --expert --edit-key nobody@nowhere pub 4096R/8F1DD759 created: 2014-04-07 expires: never usage: SC trust: ultimate validity: ultimate sub 4096R/6FE9D59F created: 2014-04-07 expires: never usage: E [ultimate] (1). nobody <nobody@nowhere>Ve výpisu vidíme jeden hlavní klíč určený k podepisování a jeden podklíč určený k šifrování. Musíme si tedy vyrobit ještě jeden, který bude určen k přihlašování (
usage: A
). Proto jsme použili --expert
, jinak GnuPG tuto možnost nezobrazuje.
gpg> addkey Please select what kind of key you want: (8) RSA (set your own capabilities) Your selection? 8 Possible actions for a RSA key: Sign Encrypt Authenticate Current allowed actions: Sign Encrypt (S) Toggle the sign capability (E) Toggle the encrypt capability (A) Toggle the authenticate capability (Q) FinishedZde je třeba, aby klíč podporoval pouze authenticate, tudíž postupně vybereme S, E, A a Q.
Possible actions for a RSA key: Sign Encrypt Authenticate Current allowed actions: Authenticate (S) Toggle the sign capability (E) Toggle the encrypt capability (A) Toggle the authenticate capability (Q) Finished Your selection? q What keysize do you want? (2048) 4096 Key is valid for? (0) 0 Key does not expire at all Is this correct? (y/N) y
Really create? (y/N) y pub 4096R/8F1DD759 created: 2014-04-07 expires: never usage: SC trust: ultimate validity: ultimate sub 4096R/6FE9D59F created: 2014-04-07 expires: never usage: E sub 4096R/0D69BC63 created: 2014-04-07 expires: never usage: A [ultimate] (1). nobody <nobody@nowhere>Teď už jen klíče nahrát na kartu. Pokud je chcete zálohovat, teď je vhodná chvíle napsat 'save' a buď někam odzálohovat adresář
~/.gnupg
, nebo provést gpg --export-secret-keys
.
Karta má k dispozici celkem 3 pozice na klíče. "Signature key" na klíč na podpisy, "Encryption key" pro šifrovací klíč a "Authentication key" pro přihlašování různého druhu (pro naše účely to bude SSH).
Poznámka pro pokročilé: Tohle může být trochu problém ve chvíli, pokud se držíte doporučené konvence a chcete používat i samostatný podklíč pro podpisy. V takovém případě bych asi postupoval tak, že bych na kartu uložil tři podklíče, a hlavní klíč následně uložil někam do chládku a nechal ho tam až do doby, než token ztratím, podklíčům vyprší platnost nebo do příchodu domů z nějaké podpisovací párty. Ha-ha.
Prvně přesuneme hlavní klíč:
$ gpg --expert --edit-key nobody@nowhere gpg> toggle gpg> keytocard Really move the primary key? (y/N) y Please select where to store the key: (1) Signature key (3) Authentication key Your selection? 1Pokračujeme podpisovým klíčem.
gpg> key 1 gpg> keytocard Please select where to store the key: (2) Encryption key Your selection? 2A nakonec klíč přihlašovací.
gpg> key 2 gpg> keytocard Please select where to store the key: (3) Authentication key Your selection? 3
sec 4096R/8F1DD759 created: 2014-04-07 expires: never card-no: 0005 0000729B ssb 4096R/6FE9D59F created: 2014-04-07 expires: never card-no: 0005 0000729B ssb* 4096R/0D69BC63 created: 2014-04-07 expires: never card-no: 0005 0000729B (1) nobody <nobody@nowhere> gpg> saveVšechny tři klíče jsou teď na svém místě na kartě a zároveň odstraněny z disku.
--enable-ssh-support
, a zároveň zneškodnit běžného SSH agenta a GNOME Keyring, který se také jako SSH agent umí tvářit. To se dá udělat tak, že je prostě nebudete spouštět, nebo alespoň nějak zajistíte, aby proměnné prostředí GPG_AGENT_INFO
a SSH_AUTH_SOCK
ukazovaly tam, kde naslouchá GnuPG agent.
Pokud jsme udělali všechno správně, po spuštění ssh-add -l
by se nám měl zobrazit fingerprint klíče, který leží na kartě. Pomocí ssh-add -L potom dostaneme veřejný klíč.
$ ssh-add -l 4096 64:f5:e5:a1:d9:77:af:27:75:2b:0e:7b:26:57:3d:a4 cardno:00050000729B (RSA)
$ ssh-add -L ssh-rsa AAAAB3N....F3J4w== cardno:00050000729BTeď už stačí celý řádek s veřejným klíčem zkopírovat do
~/.ssh/authorized_keys
na všech počítačích, kam se chceme pomocí karty přihlašovat, a máme hotovo.
gpg --card-edit
příkazem fetch
. GnuPG pro nalezení klíče buď použije URL uložené v metadatech karty, nebo použije veřejný keyserver.
Dokumentace je dost mizerná a tohle jsem posbíral asi z patnácti různých blogů. Obecně jsem z těch pár dnů, kdy jsem se tomuhle věnoval, nabyl dojmu, že GnuPG je naprostá hrůza a potřebovalo by spoustu lásky. Zejména v oblasti uživatelského rozhraní, dokumentace, lepších defaultů, dokumentace, celkové snadnosti použití a dokumentace. Uvědomuji si, že tento způsob použití je celkem nestandardní, ale bez karty to není o tolik lepší. End-to-end šifrování potřebujeme víc než kdy jindy, ale celý ekosystém kolem PGP je hluboko v minulosti. Nedávno jsem zahlédl zmínku o projektu, který se snaží vývoj GnuPG oživit. Vedle toho se zase objevují první kryptovlaštovky typu keybase.io, které se snaží vylepšit koncept sítě důvěry. Jsou to sice zajímavé kroky, ale spíše mám pocit, že by bylo vhodnější GnuPG udržovat pro těch pár případů, kde dobře slouží a zapracovat na novém a transparentnějším systému. Protože ve chvíli, kdy se PGP zeptá běžného uživatele, jestli důvěřuje klíči málo, středně, úplně nebo ultimátně, jsme prostě prohráli, ať už umíme šifrovat sebelépe. A pokud náhodou uživatel neuteče hned, dopadne to pak třeba takhle.
Tiskni
Sdílej:
Teď už stačí celý řádek s privátním klíčem zkopírovat do ~/.ssh/authorized_keys
s/privátním/veřejným/
Ono nakonec kdyby to generovalo jenom nějakou malou množinu párů klíčů, tak by na to časem taky někdo přišel (stejně jak u openssl na debianu se to taky zjistilo až při praktické kolizi klíčů).<tinfoil hat>Pokud se to neudělá tak debilně jako u Debianu (neříkám, že tvůrce 32Ki backdooru v Debianu byl debil - je to open source, kvalitní generátor backdoornutých klíčů se tam těžko ukryje),</tinfoil hat> tak ne. Stačí generovat deterministické RSA z hardware_serial_number || key_serial_number. Kolik entropie může spapat takový generátor deterministických RSA klíčů? Určitě alespoň 128b. Tak to rozdělíme 64:64. No a pak když chceš něco cracknout, tak musíš zkusit (kolik HW tokenů se vyrobilo)*(kolik klíčů token vygeneroval). Nejspíš to bude něco jako milión*1. A kolizi ti to nevyrobí, dokud na tom někdo nespočítá 2**64 klíčů, což asi nespočítá.
Nicméně každopádně pokud bych dělal s něčím tak explozivním jako třeba Snowdenovy dokumentyTak zrovna těm by zveřejnění prospělo. A že si NSA bude moct po cracknutí té komunikace přečíst své vlastní dokumenty? Yo dawg.