No ja nevim. Nejde vyuzit nejake otevrene a univerzalni reseni? Prikladem bud prave OTP. Jedna aplikace pro vsechny sluzby. MojeID pouzivam ne moc casto(neni moc sluzeb s podporou ktere ja vyuzivam) a kvuli tomu mit v mobilu dalsi aplikaci? Mam sice FIDO klic, ale ne vzdy u sebe nebo se mi proste nechce hledat(jo sem fakt linej), tak bych nejaky fallback uvital. Vi nekdo jak je na tom MojeID s Passkey, implementuji nebo budou implementovat? Jak je na tom Passkey a NIA?
OTP je bohužel až tak jednoduché, že nejde jakkoliv garantovat jeho bezpečnost. FIDO klíčů je možné mít několiv a to včetně těch navázaných na platformy jako Windows Hello nebo Android. Passkeys nejsou nic jiného než platformové FIDO klíče, které se na pozadí synchronizují přes centrální úložiště na více zařízení. To zároveň ukazuje na slabinu passkeys, kterou je jejich bezpečnost. Ta určitě není srovnatelná s klíčem svázaným s konkrétním zařízením. Záleží jak to bude implementované. Pracuje se na rozšíření Device Public Key (DPK), které by v kombinaci s passkeys mohlo dodat ten bezpečný prvek. Jediný kdo officiálně passkeys podporuje je Apple, který ale jde jako obvykle svojí cestou takže nepodporuje žádnou možnost jak detekovat bezpečnost svojeho řešení. Jak se passkeys vyvýjí je možné sledovat na https://passkeys.dev/device-support/
Když už řešíme tyhle detaily, můžu se zeptat, kdo přišel s požadavkem na certifikaci u FIDO2 klíčů, NIA nebo CZ.NIC? Ono je dost frustrující, když si člověk při pořizování druhého klíče (ten první nemá certifikaci a asi ani mít nebude) vybírá kvůli možnosti použít mojeID s NIA takový, který je na mojeid.cz mezi doporučenými, a pak zjistí, že ho stejně použít nemůže, protože prý má moc nový firmware, a nikdo mu není schopen říct, kdy to půjde. Tak abych aspoň věděl, komu to mám mít za zlé.
Nařízení eIDAS říká, že pro splnění konkrétní úrovně záruky musí autentizační prostředek garantovat některé bezpečné vlastnosti. To obecně u FIDO2 klíčů nelze. Mohu si vyrobit FIDO2 klíč kde bude privátní klíč pro podepisování absolutně nezabezpečený. Naštěstí existuje právě FIDO certifikace, která zajišťuje, že někdo se ověřil, že jsou splněny některé požadavky na bezpečnost toho prostředku. Tzn. je možné to mít za zlé Evropské komisi, že stanovila požadavky na bezpečnost, nebo CZ.NICu, že zvolil tuto možnost aby šlo vůbec FIDO2 klíče pro NIA používat a přesvědčil Ministerstvo vnitra a Evropskou komisi, že to je dostatečné. Anebo je možné se pokusit ten problém řešit. Pokud napíšete o jaký klíč jde kde je problém s firmwarem a certifikací tak můžeme zkusit zjistit jestli se to nedá posunout.
Certifikace mne možná ochrání před určitými problémy, často ale certifikace v oblasti kryptografie bezpečnosti spíš škodí, např. zakonzervováním fixní sady algoritmů nebo jejich parametrů. V tomto případě vidím problém např. v tom, že mne požadavek na certifikaci "chrání" před tím, abych mohl použít token s upgradovatelným firmwarem. Nakonec je ale bezpečnost vždycky hlavně na mně. Token může mít sebepřísnější certifikaci, ale pokud na něm nechám defaultní PIN od výrobce a navíc si ho nebudu hlídat, bezpečný stejně nebude. Takže nevidím moc smysl v tom, že mne někdo "chrání" před svobodnou volbou výrobce a modelu, pokud mi ponechává prostor ohrozit svou bezpečnost daleko víc jinde. Ale vzhledem k tomu, že to rozhodnutí není vaše, stejně nemá smysl řešit to s vámi.
Co se týká samotného problému, ten řeším už asi měsíc a zrovna před chvílí jsem dostal vyjádření od Yubico, že příslušný token (Yubikey 5 NFC, firmware >= 5.2, konkrétně 5.4.3) v metadatech je, a následně jsem si ověřil, že tomu tak opravdu je. Podle Yubico tam ta položka navíc je už od května 2020, takže nezbyde než se vrátit k supportu mojeid.cz a pokusit se nalézt skutečný problém.
Co by ale šlo zlepšit zcela určitě, je diagnostika. To, že se mi po přidání tokenu v tabulce v příslušném sloupci prostě ukáže "nelze získat" bez možnosti dozvědět se aspoň nějakou informaci o tom, co je konkrétně špatně, podle mne není v pořádku.
> V tomto případě vidím problém např. v tom, že mne požadavek na certifikaci "chrání" před tím, abych mohl použít token s upgradovatelným firmwarem.
No a keď to dopadne ako slovenské OP, tak expirácia certifikácie spôsobí, že síce token máte, upgradovateľný firmware nemá, ale použiť ho aj tak nemôžete.
(Pre tých čo nevedia: slovenské OP vydané do júna 2021 nebudú môcť podpisovať pomocou KEP od januára 2023. T.j. občianka Vám síce platí 10 rokov, ale jej fičúry využívať nemôžete. Navyše všetky občianky vydávané po auguste 2021 platia len do 3. 8. 2031, t.j. menej ako 10 rokov., lebo nie sú biometrické a EU nariadila, že doklady platné v auguste 2031 už musia byť. Takže keď si ju teraz vymeníte, aby ste mali KEP, o chvíľu ju budete meniť znova).
Kdyby to náhodou pomohlo, tak z Firefoxu na Linuxu mi to (stejný klíč a firmware) taky hlásilo nelze získat, po přidání klíče na telefonu to teď L1 rozpoznalo. Koneckonců, Microsoft z Firefoxu také odmítá FIDO klíč jako MFA prvek (IIRC tam chybá podpora nějakého protokolu).
Tedy pokud to nebylo těmi třemi dny o které jsem to zkoušel později.
Kdyby to náhodou pomohlo, tak z Firefoxu na Linuxu mi to (stejný klíč a firmware) taky hlásilo nelze získat, po přidání klíče na telefonu to teď L1 rozpoznalo.
Zkoušel jsem i chromium a dokonce jsem se nechal (neochotně) přesvědčit, abych zkusil i chrome, všechno stejné. S Firefoxem je podle všeho problém, že ještě nemá podporu pro CTAP2, což by IIUC mělo být potřeba k tomu, aby si prohlížeč mohl říct o PIN.
Ale už jsme se aspoň shodli, že i ten aktuální firmware v metadatech od FIDO Alliance je. Jak dlouho tam je, na tom celkem nezáleží, protože to pořád nefunguje. Teď naposledy zkoušeli teorii, že můj Yubikey je asi fake, protože jim posílá nějakou neznámou hodnotu aaguid - jenže ta hodnota, kterou jim to údajně posílá, je tak moc špatně, že má 160 bitů místo 128, takže jim to moc nevěřím. Navíc testovací stránka doporučená přímo na mojeid.cz ukazuje správnou hodnotu aaguid. Uvažoval jsem i o tom, že bych přeci jen šel do toho Go Trust, který čert ví proč preferují, ale s tím prý jsou na Linuxu často problémy.
Začínám přemýšlet, jestli bych se na to mojeid neměl vykašlat úplně, už sama nutnost používat chromium (nebo dokonce chrome) mne dost odrazuje, ale ostatní alternativy nejsou o moc lepší. Snad jedině požádat si o výměnu občanky za novou s čipem a koupit si čtečku.
Zkoušíte Chrome na mobilu nebo nebo na počítači? Bohužel ani Chrome na Androidu ještě neumí CTAP2, takže se identifikuje pouze U2F/CTAP1 protokolem a nikoliv FIDO2/CTAP2 protokolem. A U2F záznam pro tento klíč v metadatech FIDO Alliance chybí, je tam pouze FIDO2/CTAP2 záznam. Ale to by neměl být problém ho tam dostat.
Zkoušíte Chrome na mobilu nebo nebo na počítači?
Na počítači, na mém mobilu by to určitě nešlo. Ale musel jsem se hodně přemáhat, abych se odhodlal to zkusit, když jsem viděl, co dělá poinstalační script balíčku s chrome (přidání repozitáře, přidání klíče do databázer RPM, ...). To vypadá spíš jako trojský kůň než webový prohlížeč. :-)
Tak rozuzlení podle všeho je, že je to nešťastná kombinace dvou problémů: za prvé chybějící záznam pro U2F k nejnovějším Yubikey klíčům (zarážející ovšem je, že tahle verze firmware se používá přinejmenším od července 2021 a dosud to nikdo neřešil) a za druhé podivné chování chromia (i chrome), které sice umí FIDO2, ale pokud klíč podporuje U2F i FIDO2, upřednostní U2F, přestože logičtější by to bylo naopak, U2F jen jako fallback. (Aspoň s tímto klíčem se to tak chová.)
Takže dokud Yubico nedá do pořádku metadata (nebo Google prohlížeč), trik, jak problém obejít, byl pomocí Yubikey Manageru (ykman nebo ykman-gui) zakázat U2F, projít znovu přidám klíče v chromiu a pak U2F zase zapnout. Potom už to funguje i ve firefoxu, protože PIN je vyžadován až u úrovně "vysoká" (to, že značná je méně než vysoká, je jiný příběh).
O OTP se opravdu bavit nebudeme a doufal jsem ze je to pochopitelne. Byl to jen priklad, tedy kdokoliv muze napsat aplikaci na OTP a muze v ni podporovat jakekoliv sluzby. Co se tyce passkey, tak ta podpora je ZATIM jen u Applu. Vicemene vsichni prislibili podporu a Android passkey uz bete(nejsem si ale jisty). Pokud take vim, tak i zde byl clanek na tema Passkey, ktery jasne rikal ze nejaka synchronizace s centralnim ulozistem neni vubec povinna ani nechapu proc by mela byt. Nakonec nevim co si Apple dela, nicmene pomahal passkey navrhnout a vyvinout, takze si uplne nejsem jisty ze by si delal neco jen tak jak chce on.
Mimochodem FIDO klice v Androidu 13 na Pixelu 5 5G se mi sice nabizeji, ale nikdy se mi to nepodarilo zprovoznit. Ale muzu to zkusit znovu.
Synchronizace passkey přes centrální úložiště je hlavní vlastností passkey. Jinak je to normální FIDO2 klíč. Používá se také Single Device Key (klasický FIDO2 klíč) a Multi Device Key (passkey). Prostě je to klíč, který je automaticky aktivní na všech vašich zařízeních napojených na Apple účet (nebo Google účet, nebo Microsoft účet) protože se synchronizuje přes centrální bod jako password manager.
kdokoliv muze napsat aplikaci na OTP a muze v ni podporovat jakekoliv sluzby
Pro použití s NIA bude vždy potřeba, aby to mělo nějakou certifikaci – právě proto, aby to nenapsal kdokoli, kdo by to napsal špatně.
Nicméně ukončení podpory OTP mne mrzí, právě pro tu univerzálnost, i když by to byl prostředek jenom pro běžné přihlašování, ne k NIA. I by to mohlo být v nějakém expertním režimu, aby si to neaktivoval někdo, kdo se chce přihlašovat přes NIA, a pak by se rozčiloval, že s OTP to nejde. Nicméně chápu, že pro mne a pár dalších lidí to nikdo udržovat nebude.
Pro použití s NIA bude vždy potřeba, aby to mělo nějakou certifikaci – právě proto, aby to nenapsal kdokoli, kdo by to napsal špatně.
Tim byla myslena klientska aplikace a ta urcite certifikaci neprochazi. Serverova cast a nejaka forma API endpointu urcite ano.
Se zbytkem nelze nesouhlasit. Jako priklad muzeme uvest primo zdejsi forum a prihlaseni pro komentovani. Pokud mi tu nekdo ukradne ucet protoze pouzivam OTP a ne FIDO2, budu mozna tak minutu smutny nez zalozim jiny ucet.
Teď si nejsem jistý, co myslíte tím serverem a klientem. Dejme tomu, že by samotná technologie OTP byla pro tohle použitelná. Klient by mohl být naprogramovaný tak, že aktuální heslo vyžvaní hned komukoli. Taková implementace by samozřejmě nebyla bezpečná a autoři MojeID by se třeba mohli postavit na hlavu, ale nijak by to zabezpečit nemohli. A není to věc OTP – když bude špatně implementované FIDO2 a unikne z něj privátní klíč, zase s tím MojeID nic neudělá. Proto lze s MojeID pro přihlášení k NIA používat jenom takové prostředky, které projdou certifikací.
Jo napsal jsem to nepochopitelne. Mam na mysli aplikaci, ktera ty OTP kody "generuje". A u te muze byt vsem jedno zda ma certifikaci. Dulezite je to co rikate. ze web(tam to moc nejde) nebo aplikace dane sluzby tu certifikaci ma. Stejne je na me jako uzivateli jak si ukladam a jak zachazim se svymi privatnimi klici, dulezite je aby byla byla bezpecna "certifikovana" protistrana, ktere ho predavam. Samozrejme reseni MojeID je dejme tomu na tom uplne nejlip, ale ja chtel kdyz uz tak aby nebyla ta aplikace jen pro MojeID ale i pro jine sluzby.
Zabezpečení vůči státu ale právě funguje jinak, tam je snaha to chránit i před špatným použitím ze strany uživatele. Aby se pak člověk nemohl vymlouvat: „To jsem nepodepsal já, to mohl být kdokoli, já jsem si privátní klíč uložil na svou veřejnou stránku na webu, abych se k němu snadno dostal, nevěděl jsme, že se to nesmí.“
Takže když chcete vytvořit kvalifikovaný podpis, který bude uznáván v celé EU, musíte použít certifikované úložiště privátního klíče, které garantuje, že z něj privátní klíč nedostanete. A certifikační autorita vám nesmí vystavit kvalifikovaný certifikát k veřejnému klíči, jehož privátní klíč nevznikl na tom certifikovaném prostředku. (ČR pro komunikaci se státem umožňuje používat i nižší úroveň zabezpečení, kdy privátní klíč můžete mít v souboru na disku. Ale to je proto, že máme v zákoně výjimku – takový podpis nemusí být uznáván v celé EU.)
Podobné by to bylo, kdyby se mohlo používat OTP pro přihlášení k NIA. Musel byste mít certifikovaný generátor OTP, který by garantoval, že z něj neuniknou informace potřebné pro vytvoření kódu. Tj. nešlo by to řešit čistě softwarově, bez nějakého důvěryhodného úložiště. Zároveň by pravděpodobně musel heslo vydat pouze na základě výslovného požadavku uživatele, tj. nemohla by to být standardní implementace, která prostě zobrazuje aktuální heslo, dokud je aplikace otevřená. A hlavně – MojeID by muselo bezpečně vědět, že používáte nějaký certifikovaný OTP generátor a že potřebné údaje nejsou uložené nikde jinde. Tj. určitě by nemohl přenos klíče do generátoru probíhat přes QR kód, protože ten byste si mohl sejmout i necertifikovaným generátorem.
@Filip Jirsák
musíte použít certifikované úložiště privátního klíče
A presne o tom mluvim. Toto zarizeni nevyrabi napr postsignum nebo 1CA. Nemusite na nem mit jen a pouze ten jeden certifikat, ale i vice a od ruznych CA. Stejne tak mohu mit zarizeni od ruznych vyrobcu. A ted si predstavte ze MojeID udela FIDO klicenku, ktera bude jen a pouze pro OAuth/SAML autorizaci skrze MojeID.
Takze dobre beru zpet tu konkretni cast "muze si to napsat kdokoliv" pokud to bereme jen a pouze z tohoto pohledu. Proto jsem se ptal na nejakou technologie, tak aby si MojeID nevyrabelo vlastni "klicenku v do telefonu", ale mel jsem jednu pro vsechny sluzby. Opet odkazuji na Passkey, ktery toto resi, kdyz pominu fakt ze google i apple si podle vseho aktualne vynucuje reseni pres vlastni infrastrukturu(synchronizace klicu na pres jeho password managera). Konec koncu Passkey se nemusi ani pouzit, stacil by Webauth, akorat poresit "certifikovanou implementaci" - samozrejme pokud existuje. Myslim ze dal nema cenu to rozebirat, byly by sme tu do zitra a stejne by sme nic nezmenili.
To otevřené a univerzální řešení, které MojeID už používá, je FIDO2. Softwarové řešení v mobilu půjde použít, až nějaké certifikované bude. Passkey i WebAuthn jsou dost čerstvé standardy, jsem přesvědčený, že žádná certifikovaná implementace ještě neexistuje. Zrovna MojeID se snaží používat otevřené standardy kde je to možné, pro přihlášení k NIA nenajdete v ČR nic, co by se MojeID blížilo. Takže věřím, že implementují i nějaké řešení přes mobily, pokud se nějaká certifikovaná technologie objeví a bude mít rozumnou podporu.
Zeptam se jinak ... lze aplikaci pouzit k prihlaseni do jinych sluzeb, ktere FIDO2 podporuji? Ja pochopil ze ne, pokud ano, pak je vse v naprostem poradku, pokud ne, tak proc se drbat s certifikaci a podobnymi nesmysli, kdyz mi z toho vyleze jednoucelovka? Treba prave aplikace MojeID mohla byt to minimalne "univerzalni" reseni.
WebAuthn je tu tusim od roku 2016. Passkey je novy, ale ten "jenom" pridava bezdratovou vrstvu pro pouziti na PC.
Zrovna na mojeID to používám a funguje mi to správně. Teď jsem se zkušebně z Androidu přihlásil a jsem normálně tam s úrovní značná. Píše se o tom i na webu mojeID.
U mne je to spíš naopak: kdybych chtěl jako druhý faktor používat smartphone aplikaci, mohl bych použít rovnou ten "Mobilní klíč eGovernmentu" a nepotřeboval bych tu od mojeID (a vlastně ani to mojeID, když na to přijde).
Tohle je ale přesně jedna z věcí, které se mi nejvíc příčí na současné snaze řešit všechno přes "appky": místo jedné univerzální autentizační aplikace má NIA svou, mojeID svou, každá banka svou (některá i dvě), ...
Tak oprava, podle vseho je Passkey uz i na Androidu. A klice jsou synchronizovany pomoci spravce hesel.
https://android-developers.googleblog.com/2022/10/bringing-passkeys-to-android-and-chrome.html
> OTP je bohužel až tak jednoduché, že nejde jakkoliv garantovat jeho bezpečnost.
Pro úrověň požadovanou EU a NIA jistě.
Ale pro řekněme bezpečnost úrovně "Nízká Plus" je to pořád zajímavé vylepšení bezpečnosti druhým faktorem, které neklade žádné speciální nároky na technologickou zdatnost uživatele.
Zvláštní aplikace pro každou jednu službu totiž také není ideální model a příliš velký tlak na bezpečnost skončí často ignorací ze strany laických uživatelů (nebo hůře..).
Používejme tedy technologie tam, kde to dává smysl. MojeID mívalo kdysi ambice i jako obecný OpenID provider. To znamená přihlašování na webová fóra a jiná "méně kritická" místa. Tam je FIDO zbytečné.
V tom máte naprostou pravdu. Ale statistiky ukazují, že tato "Nízká Plus" úroveň, není pro většinu uživatelů zajímavá. Z téměř 200 000 uživatelů, kteří alespoň jednou použili letos mojeID je jich jen kolem 300, kteří mají 2FA ale ještě si neaktivovali FIDO klíč nebo MojeID klíč. Tzn. buď jim stačí Nízká (a s tou se přihlašují na ona webová fóra) nebo rovnou jdou na Značnou. Odhaduji, že hraje roli i pohodlnost - kdo by dneska opisoval kódy, když stačí kliknout.
Já beru 2FA jako zálohu. Nepřihlásím se s ním přes NIA, ale třeba na Root, do e-shopu nebo do administrace domén se s ním přihlásím, když nebudu mít zrovna FIDO klíče nebo MojeID token. Řešil jsem to zrovna nedávno s novým telefonem – OTP generátor s daty sesynchronizovanými přes cloud jsem tam měl hned, zprovoznit MojeID nějakou dobu trvalo (a to jsem měl vedle starý mobil, takže jsem nemusel jít úplně od nuly).
Tak porad tu bude skupina lidi, co 2FA nezapne, kdyz je k tomu vlastne nic nenuti. To si lidi v mnoha situaci zapnou opravdu az kdyz musi. Takze tohle cislo je logicky zkreslujici - 200 tisic letos celkovych uzivatelu, ale kolik z nich ma tedy doopravdy zaple nejake 2FA?
Ano, opisovani kodu je otravne - ale token taky nemusis tahat u sebe. A uprimne - ono mit na kazdej "prd" extra aplikaci take neni zadna hitparada (byt se to nekomu jevi jako "cool&in") - OTP muzu mit v jedne aplikaci "univerzalne" pro vic sluzeb... ale MojeID klic je proste proprietarni vec. Zarezavat moznost pouzit OTP ani me neprijde proste jako uplne stastne rozhodnuti.
Kdyby aspon ta MojeID aplikace neco doopravdy "usnadnovala" (aspon tam kde to je mozne - treba pri prihlasovani k eshopum) - tak jako to dela treba dela mobilni klic eGovernmentu - ale k mojeID furt musim stejne vzdycky mlatit heslo... takze nejaky vytukavany kod vedle me uz nevytrhne.