Aplikace

WhatsApp se u přístupových klíčů obešel bez přenosu přes QR kód a Bluetooth

Google a Meta popsaly 27. srpna 2026, jak se do WhatsAppu dostaly přístupové klíče. Standard FIDO na přenos mezi zařízeními používá QR kód a Bluetooth, jenže tahle cesta se aplikaci neosvědčila: spojení přes Bluetooth bylo nespolehlivé a uživatelé si QR kód pletli s přihlášením do WhatsApp Web. Uživatel si proto na novém telefonu vytvoří klíč znovu.

· 5 zhlédnutí

Muž drží telefon s otevřeným WhatsAppem
WhatsApp je pro velkou část světa výchozí způsob, jak si psát. Foto: Coleman Donaldson, Wikimedia Commons (CC BY-SA 4.0)

Na Android Developers Blogu vyšel 27. srpna 2026 rozbor toho, jak WhatsApp přešel na přístupové klíče. Podepsali ho dva lidé z Googlu a Mayank Manuja, androidí vývojář Mety, který návrh a nasazení vedl. Zajímavější než seznam toho, co aplikace zavedla, je ale to, co zavést odmítla.

Dva dny předtím napsal WhatsApp na svém blogu, že přístupový klíč si nastavila víc než miliarda lidí. Je to jediný údaj o rozšíření, který v obou textech stojí.

Klíč místo kódu z SMS

Přístupový klíč je dvojice kryptografických klíčů: soukromý zůstává v telefonu, veřejný putuje na server a sám o sobě je k ničemu. Podle nápovědy WhatsAppu se jím uživatel ověří místo kódu z SMS, typicky při registraci telefonního čísla nebo při obnovení účtu, a otisk prstu ani obličej přitom zařízení neopustí. Na Androidu k tomu aplikace používá rozhraní Credential Manager.

WhatsApp se pro klíče rozhodl v roce 2023 a byl mezi prvními velkými spotřebitelskými aplikacemi, které je nasadily. O tom, že hesla a přístupové klíče umí přenést i Smart Switch v nadstavbě One UI 9 při přechodu z iPhonu na Galaxy, jsme psali dřív.

Proč vypadl QR kód a Bluetooth

Standard má na situaci, kdy uživatel klíč na daném zařízení nemá, vlastní postup. Aliance FIDO mu říká Cross-Device Authentication a podle jejích vlastních odpovědí jede po přenosu pojmenovaném hybrid z normy CTAP 2.2: na jednom přístroji se ukáže QR kód, druhý ho načte a Bluetooth Low Energy ověří, že jsou obě zařízení opravdu blízko sebe. Na vlastnostech Bluetoothu bezpečnost přihlášení nestojí, ta vrstva slouží k ověření vzdálenosti.

WhatsApp tuhle cestu vyzkoušel a nepoužil ji. V blogu stojí dva důvody. Závislost na Bluetoothu se ukázala jako nespolehlivá a uživatelé si nové QR kódy pletli s tím, kterým se ve WhatsAppu páruje prohlížeč. Aplikace proto nechává klíče žít nativně v každém ekosystému zvlášť, tedy ve Správci hesel Google na Androidu a v Klíčence na iCloudu na iOS. Kdo přejde na jinou platformu, vytvoří si při příštím přihlášení klíč nový.

Jeden klíč na účet nestačil

Aby to šlo, musel se přestavět server. Ashish Choudhary z backendového týmu WhatsAppu v blogu píše, že se stará logika opírala o předpoklad jednoho přihlašovacího údaje na uživatele. Nahradil ho omezený seznam, ze kterého po dosažení stropu vypadne nejstarší klíč; kolik ten strop je, blog neuvádí. Nasazovalo se to postupně. Uživatel z toho vidí větu, kterou napsal blog WhatsAppu: klíčů si k účtu můžete přidat víc, pokud používáte zároveň Android i iOS.

Sám server běží v Erlangu a ceremonie WebAuthn nedělá vlastním kódem. Volá přes nativní rozhraní rustovou knihovnu webauthn-rs, která ověří podpis a rozebere přihlašovací údaj; erlangová část si nechává řízení celého postupu, uložení, omezení tempa a rozhodnutí, komu se klíč vůbec nabídne. Knihovna je veřejná pod licencí MPL-2.0 a její repozitář vznikl v dubnu 2019.

Kde se to na Androidu lámalo

Vyhledání klíče bylo zprvu pomalé zrovna u lidí, kteří žádný neměli. A těch byla na začátku většina, takže se to zdržení promítlo skoro do každého přihlášení. Oba týmy podle blogu proměřily cestu volání a zrychlily ji.

Druhá část práce padla na chyby. WhatsApp si rozdělil výjimky z Credential Manageru na zotavitelné a konečné, aby aplikace mohla spadnout zpátky na klasické ověření místo toho, aby uživatele nechala viset v rozdělaném přihlášení. Telemetrie k tomu ukázala chyby vázané na verzi systému: GetPublicKeyCredentialDomException při dešifrování údaje na některých zařízeních s Androidem 13 a CreatePublicKeyCredentialDomException při vytváření klíče na Androidu 14. Blog uvádí, že se na to sáhlo přímo v platformě.

Podíl uživatelů s klíčem blog neuvádí

Kolik lidí si klíč nastavilo samo a o kolik je přihlášení rychlejší, se z textu nedozvíte. Autoři mluví o silném samovolném přijetí a o tom, že se z vícekrokového přihlášení stalo jedno gesto, ale číslo k tomu nedávají; ověřitelná zůstává jen ta miliarda z blogu WhatsAppu. Podle nás je to na rozbor psaný pro vývojáře málo: právě podíl lidí, kteří si klíč nastaví, rozhoduje o tom, jestli se ta práce jinému vývojáři vyplatí.

Dál chce WhatsApp klíče použít i na opětovné ověření uvnitř aplikace u citlivých úkonů, jmenovitě u záloh, které jsou přístupovým klíčem zašifrované. A pracuje s platformami na tom, aby šel klíč založit s menším odporem, než jaký na uživatele čeká dnes.

Zdroje

Aplikace

GooglezabezpečenípasskeysWhatsApp

Diskuse

Zatím tu nikdo nediskutuje.

Diskutovat mohou přihlášení čtenáři – přihlaste se nebo si založte účet.

← zpět na výpis