Proton Authenticator je dvoufaktorová ověřovací aplikace (2FA) s otevřeným zdrojovým kódem, která generuje časově omezená, jednorázová hesla (TOTP) na vašem zařízení, což vám umožňuje přistupovat k online službám s extra vrstvou zabezpečení. Používá stejné dobře otestované šifrování, které zabezpečuje zbytek ekosystému Proton. Proton Authenticator je jedinečný v tom, že byl od základu navržen tak, aby byl k dispozici na téměř každé platformě, přičemž zachovává vaše soukromí a dává vám úplné vlastnictví vašich dat.

Na rozdíl od jiných ověřovacích aplikací Proton Authenticator zabezpečuje vaše data koncovým šifrováním, i když aktivujete synchronizaci zařízení.

To znamená, že Proton Authenticator brání komukoli, včetně samotného Protonu, aby věděl, u kterých online služeb máte účty. Tyto informace, podobně jako vaše e-maily nebo historie prohlížení, o vás mohou prozradit mnoho a jejich ochrana je zásadní pro zachování vašeho soukromí.

Koncové šifrování Proton Authenticator zaručuje, že všechny kryptografické operace, včetně generování klíčů a šifrování dat, jsou prováděny lokálně na vašem zařízení. To znamená, že k vašim nešifrovaným datům nemůže přistupovat Proton ani nemohou být sdílena s žádnými třetími stranami. Servery Protonu nikdy nemají přístup k vašim nešifrovaným datům, včetně vašeho hesla k Proton Account.

Model šifrování

Proton Authenticator uplatňuje komplexní přístup k zajištění maximální bezpečnosti a soukromí pro všechna uživatelská data. Všechny kryptografické operace probíhají lokálně na vašem zařízení a jakákoli data přenášená na server jsou vždy šifrována. Proton nikdy nemá přístup ke klíčům v prostém textu vyžadovaným k dešifrování uživatelských dat, což nám znemožňuje dešifrovat uložená data, i kdyby to vyžadovaly třetí strany.

Proton Authenticator používá stejné pokročilé šifrování, které používáme pro ověření v Proton Mail. To zahrnuje použití posílené verze protokolu Secure Remote Password (SRP), který nabízí silnější bezpečnostní záruky proti útokům man-in-the-middle (MITM). Naše implementace znamená, že i útočník, který může libovolně číst, měnit, zdržovat, ničit, opakovat nebo vyrábět zprávy mezi Protonem a uživatelem neodhalitelným způsobem, je omezen na kontrolu pouze jednoho odhadu hesla na pokus o přihlášení, což je ekvivalent přímého pokusu o přihlášení. Tímto způsobem, i kdyby byl Proton napaden a jednal škodlivě, informace ekvivalentní heslu nejsou nikdy odhaleny.

Přečtěte si více o šifrování ověření u Protonu

Šifrování dat

Proton Authenticator vám umožňuje bezpečně uložit vaše 2FA kódy, i když nemáte Proton Account. To znamená, že počáteční proces šifrování musí být proveden výhradně na vašem lokálním zařízení. Poté, pokud se rozhodnete, že chcete použít svůj Proton Account k synchronizaci kódů napříč zařízeními, můžeme použít kryptografické klíče uložené na serverech Protonu k provedení synchronizace.

Šifrování Proton začíná tím, že server Protonu poskytne šifrovanou verzi kořenového klíče, který ověřovací aplikace používá k šifrování dat uživatele. Každý uživatel Protonu má asymetrický User Key a Proton tento User Key na vašem zařízení šifruje následovně:

  • Účty, které používají jedno heslo k účtu: Proton šifruje User Key pomocí bcrypt hashe hesla k účtu a saltu účtu.
  • Účty, které používají naši funkci více hesel k účtu: Proton šifruje User Key pomocí bcrypt hashe hesla ke klíči a saltu účtu.

Proton Authenticator používá bcrypt a salt účtu k hashování vašeho hesla jako extra vrstvu ochrany proti útokům hrubou silou. I kdyby se škodlivý aktér dostal k databázi Protonu, klíče k vašemu účtu by byly v bezpečí před útoky hrubou silou.

Jakmile aktivujete synchronizaci, Proton Authenticator vygeneruje 32bajtový náhodný Authenticator Key. Tento klíč je šifrovaný a podepsaný vaším User Key, což zajišťuje, že jej můžete dešifrovat pouze vy – nikdo (dokonce ani Proton) nemůže přečíst ani vytvořit nový Authenticator Key. Jakmile máte přístup k Authenticator Key, všechny položky v Proton Authenticator jsou šifrovány pomocí 256-bit AES-GCM.

Protože Proton Authenticator nevyžaduje Proton Account, potřebujeme také samostatné schéma šifrování, které bezpečně ukládá vaše data, když existují pouze na vašem zařízení. Nakonec nejjednodušším způsobem, jak to implementovat, je zacházet s Proton Account jako se samostatným poskytovatelem klíčů. Ve výsledku to vypadá následovně:

Diagram šifrování Proton Authenticator bez Proton Account

Pro lokální uložení klíčů na vašem zařízení spoléháme na poskytovatele bezpečného úložiště klíčů každého systému:

  • Android: Klíč bezpečně ukládáme v Android Keystore(nové okno), který se poté používá k šifrování Local Random Key, jenž ukládáme v chráněném souborovém systému aplikace. Tento klíč se používá k symetrickému šifrování všech položek Proton Authenticator na vašem zařízení.
  • iOS/iPadOS/macOS: Generujeme Local Random Key a ukládáme jej ve službě Keychain(nové okno). Tento klíč se používá k symetrickému šifrování všech položek Proton Authenticator na vašem zařízení.
  • Windows: Generujeme Local Random Key a ukládáme jej ve Windows Credential Manager(nové okno). Tento klíč se používá k symetrickému šifrování všech položek Proton Authenticator na vašem zařízení. Pokud připojení k WCM není k dispozici, umožňujeme uživateli zašifrovat jeho Local Random Key heslem.
  • Linux: Generujeme Local Random Key a ukládáme jej v dostupné službě DBUS Secret Service. Tento klíč se používá k symetrickému šifrování všech položek Proton Authenticator na vašem zařízení. Pokud není nakonfigurována žádná služba DBUS secret service, umožňujeme uživateli zašifrovat jeho Local Random Key heslem.

Šifrování zálohy

Jednou z hlavních silných stránek Proton Authenticator je, že vždy ovládáte svá data. To zahrnuje možnost pravidelně zálohovat své kódy na lokální zařízení a nastavit heslo, které tato citlivá data šifruje.

K implementaci této bezpečné lokální zálohy používáme vámi zadané heslo k odvození bezpečného šifrovacího klíče pomocí Argon2 jako KDF (Key-Derivation Function). KDF se používá ke generování kryptografických klíčů z tajných vstupů, jako jsou uživatelem zadaná hesla, a jeho hlavním účelem je zvýšit bezpečnost tím, že útočníkům ztíží a časově prodlouží prolamování hesel. Pomocí tohoto šifrovacího klíče vygenerovaného z vašeho hesla serializujeme všechny vaše položky a šifrujeme je, abychom zajistili, že vaše data zůstanou bezpečně zašifrována, i když dojde k úniku zálohy. A díky použití známých a otevřených technologií jste schopni dešifrovat svá data bez použití Proton Authenticator, což vám umožňuje zůstat pod kontrolou, i když se rozhodnete přejít na jinou ověřovací aplikaci.

Bezpečnost díky transparentnosti

Stejně jako všechny služby Proton je i Proton Authenticator open source. Kdokoli může nahlédnout do našeho zdrojového kódu a ověřit náš bezpečnostní model. Stejně jako naše ostatní služby bude i Proton Authenticator podstupovat pravidelné nezávislé bezpečnostní audity a tyto zprávy z auditů budeme sdílet veřejně, jakmile budou k dispozici.

A nakonec, pro zainteresované bezpečnostní výzkumníky je Proton Authenticator způsobilý pro program odměn za nalezené chyby společnosti Proton, který nabízí odměny až do výše 100 000 USD za objevení chyb v softwaru Proton.