Co je to icloud klíčenka. iCloud Keychain. Nastavení a použití. Problémy s aktivací a konfigurací Keychain Access

Označeno pro uživatele Technologie Apple vzhled druhého vynikající služba v rámci iCloud - synchronizace hesel pomocí "Odkaz iCloud klíče" Apple udělal vše, co bylo v jeho silách, aby bylo nastavení a používání této funkce snazší, ale naši čtenáři mají stále mnoho otázek ohledně tohoto nového produktu.

Co umí iCloud Keychain?

iCloud Keychain nabízí:

  • synchronizace přihlašovacích údajů, hesel a dat z formulářů Safari
  • synchronizace dat kreditní karty
  • Synchronizace hesla Wi-Fi

Synchronizace funguje na počítačích Mac s OS X 10.9, iPhone, ipod touch a iPad s iOS 7.0.3. Když aktivujete Keychain v iCloud, jeden cloudové úložiště, která shromažďuje VŠECHNA vaše hesla. Všechny jsou současně dostupné ze všech vašich zařízení připojených ke stejnému iCloud účet.

Vezměte prosím na vědomí, že na počítačích Mac funguje iCloud Keychain pouze se Safari! Uživatelé Chrome, Firefox nebo Opera nová vlastnost Apple bude málo užitečný, protože neexistují žádné pluginy, které přidávají podporu pro tyto prohlížeče, a žádné nebudou. Alternativy k Safari na iOS v tomto případě také ne.

Počáteční nastavení iCloud Keychain na Macu

Řekněme hned, že pro obyvatele Ukrajiny, Běloruska a dalších zemí SNS, které nejsou uvedeny v tomto seznamu, je aktivace Keychain Access z počítače Mac jediným způsobem, jak tuto funkci správně nakonfigurovat.

Otevřete nastavení Macu, přejděte na dálkové ovládání iCloud a zaškrtněte políčko „Keychain“:

Mac vás vyzve k povolení žádosti o heslo k uživatelskému účtu ihned po probuzení z režimu spánku nebo odstranění zámku obrazovky – samozřejmě za účelem dodatečné zabezpečení. Tento návrh lze ignorovat.

Poté budete požádáni o vytvoření kódu PIN Keychain. Ve výchozím nastavení se jedná o čtyřmístné číslo, které si musíte zapamatovat a zadat při připojování každého nového zařízení ke klíčence:

Ale ani to není nutné. Věnujte pozornost tlačítku "Upřesnit". Otevře několik možností týkajících se PIN kódu:

První umožní paranoikům nastavit kód libovolné délky pomocí libovolných znaků, nejen čísel. Druhý vygeneruje kód automaticky. Třetí vám umožní zcela opustit bezpečnostní kód. Jak se ale v tomto případě potvrdí nová zařízení? Je to velmi jednoduché – pomocí ostatních zařízení.

Jakmile vytvoříte nebo odmítnete PIN, nastavení je dokončeno.

Počáteční nastavení Keychain na iOS je podobné – přejděte do nabídky „Settings-iCloud“ a zaškrtněte políčko „Keychain“, poté vytvořte PIN. Problém je, že budete nuceni zadat číslo mobilní telefon a ze zemí SNS je podporováno pouze Rusko.

Nyní si povíme něco o připojení nových zařízení k iCloud Keychain.

Připojení nového iOS zařízení k iCloud Keychain

Přejděte do výše uvedené nabídky „Nastavení-iCloud“ a vyberte „Přístup ke klíčence“:

Souhlaste s aktivací funkce:

Určitě budete muset zadat heslo svého účtu iCloud:

Poté klíčenka přejde do aktivačního pohotovostního režimu.

Jak jsme řekli, při přidávání nového zařízení do vaší iCloud Keychain máte dvě alternativy:

  • zadejte PIN kód
  • potvrďte připojení z jiného zařízení

Na vašem iOS zařízení uvidíte tlačítko „Ověřit kódem“, na které můžete zadat svůj PIN a okamžitě aktivovat funkci:

Možnost zálohování je potvrzení z jiného zařízení. Jakmile se pokusíte povolit iCloud Keychain na jednom ze svých zařízení, všechny ostatní gadgety připojené ke stejnému účtu iCloud a stejné Keychain obdrží oznámení:

Ale to není jen upozornění. Kliknutím na banner se dostanete do nastavení iCloudu, kde budete požádáni o zadání hesla k účtu jako potvrzení souhlasu s přidáním nového zařízení do Keychain. Po zadání hesla na jakémkoli jiném zařízení nový gadget je považováno za konečně připojeno, bude zahájena synchronizace hesla přes iCloud Keychain.

Připojení vašeho nového Macu k iCloud Keychain

Proces je shodný s postupem popsaným v předchozí kapitole recenze. Jdete do nastavení OS X, iCloud remote a zapnete Keychain. Zadejte heslo svého účtu iCloud.

Zadání PIN kódu nevyžaduje žádné zvláštní vysvětlení:

Pokud kód PIN zadávat nechcete, váš Mac zůstane v aktivačním režimu:

Je docela těžké přehlédnout upozornění na nutnost potvrdit nové zařízení – v OS X i iOS bude viditelné:

iCloud Keychain je technologie pro ukládání a synchronizaci důvěrných dat na iPhone, iPad, iPod Touch a Počítače Mac. Do kategorie uložených informací spadají následující položky: přihlašovací jména a hesla pro novinky a zábavní zdroje, sociální sítě; přidány kreditní karty pro platbu, klíče pro autorizaci v zabezpečených Wi-Fi bodech.

Vývojáři Applu v poslední době přecházejí mezi různá zařízení a údaje z aplikace třetích stran– Zprávy „Kalendáře“, „Kontakty“, „Pošta“ a „iMassage“. Hlavní myšlenkou iCloud Keychain je poskytnout uživatelům bezpečný (256bitové šifrování AES) správce hesel, který pracuje s jakýmikoli daty a umožňuje jim nepamatovat si informace, ale souhlasit s automatické plnění dostupný textové formuláře pro autorizaci nebo platbu.

Jak nastavit a používat?

Technologie – iCloud Keychain – dostupná v operačním systému systém iOS? počínaje verzí 7.0.3 a na MacOS s Mavericks 10.9 a je otevřena téměř ve všech regionech světa (více o omezeních píší vývojáři ve speciální sekci na oficiálních stránkách Applu). Pokud se podmínky sblíží, zbývá pouze projít počátečními kroky nastavení:

Pokud při opakování popsaných kroků nejsou žádné problémy a existuje touha vyzkoušet systém ukládání a synchronizace dat, nezbývá než porozumět detailům.

A ještě něco – funkce bezproblémově funguje se všemi aplikacemi třetích stran. Stejný prohlížeč z Google Chrome, zavolá „Keychain Access“ a v klidu si vezme potřebná data. Stejně tak je snadné se přihlásit Obchod s aplikacemi, služby iTunes a iCloud.

Otázky a odpovědi

Jak urychlit proces zadávání dat?

Zaškrtněte políčko v „Nastavení“ v části „Hesla a účty“ vedle položky „Automatické vyplňování“. Pokud systém narazí na již známý zdroj, okamžitě se pokusí vyplnit pole „přihlašovací jméno a heslo“. Na chytrých telefonech od verze 5S budete muset položit prst na skener otisk prstu Dotyk ID, do 5S – zadejte ověřovací kód. Na iPhonu X bude vše fungovat okamžitě – obličej se naskenuje automaticky.

Je klíčenka bezpečná?

Jak navrhují vývojáři Applu, prolomit 256bitové šifrování je téměř nemožné, protože data pro šifrování se generují pro každé zařízení zvlášť, v souladu se zvoleným nastavením a zadanými hesly. Více informací o bezpečnostních protokolech naleznete na.

Co se stane, když zakážete iCloud Keychain?

Systém nabídne dvě možnosti – smazat uložená data nebo je archivovat další použití, pokud bude technologie opět potřeba.

Jak nastavit automatické vyplňování informací o bankovní kartě v Safari?

Postup je jednoduchý:

Jak obnovit přístup k iCloud?

Nejlepší způsob je kontaktovat podporu. Profesionální konzultanti vám řeknou, jak používat standardní funkce zotavení a zároveň vás nasměrují správným směrem, pokud se nic nedaří.

Přihlášení na mnoho stránek dnes vyžaduje autorizaci, takže je poměrně obtížné si zapamatovat různá přihlašovací jména a hesla. S vydáním aktualizace Apple společnost navrhl k tomu použít cloudovou službu iCloud, která dokáže ukládat názvy účtů, hesla a čísla kreditních karet.

Funkce iCloud Keychain(Keychain Access) může ukládat vaše přihlašovací údaje a hesla pro webové stránky na iPhone, iPod touch, iPad a Mac a chránit je pomocí zabezpečeného 256bitového AES šifrování. Data jsou přitom mezi všemi gadgety transparentně synchronizována, takže si je již není potřeba pamatovat.

Jak nastavit Keychain Access v iOS 7:

Krok 1: Výchozí funkce iCloud Klíčenka je vypnutá, takže než budete moci nastavit synchronizaci hesel, musíte ji povolit nastavení iOS 7. Přejděte do Nastavení -> iCloud a přejděte dolů do sekce Klíčenka.

Krok 2: Přepněte přepínač Klíčenka na iCloudu do polohy Zapnuto. Váš iPhone nebo iPad vás vyzve k použití heslo pro iOS jako bezpečnostní kód. V tomto případě můžete nastavit iCloud Keychain na všech svých zařízeních, která používají tajný kód z hlavního gadgetu. Klikněte na Použít heslo nebo Vytvořit jiný kód.

Krok 3: Zadejte svůj bezpečnostní kód iCloud.

Krok 4: V tomto kroku se musíte zaregistrovat rezervní číslo telefon. Když znovu získáte přístup k iCloud Keychain, můžete k přijímání zpráv SMS použít své číslo nebo jakékoli jiné číslo, kterému důvěřujete.

Krok 5: Zadejte heslo účet dokončete nastavení iCloud Keychain.

Krok 6: Nyní, když zadáte účet na webových stránkách, Safari vás vyzve k uložení hesla do paměti iDevice a do iCloud Keychain. Cloudová služba bude zároveň udržovat informace aktuální na každém zařízení. V správný okamžik hesla budou zadána automaticky.

Bezpečné ukládání hesel a jejich synchronizace mezi zařízeními není snadný úkol. Asi před rokem Apple představil světu iCloud Keychain, své centralizované úložiště hesel v OS X a iOS. Pokusme se zjistit, kde a jak jsou uložena uživatelská hesla, jaká potenciální rizika to představuje a zda Apple technická proveditelnost získat přístup k dešifrovaným datům uloženým na jejích serverech. Společnost tvrdí, že takový přístup je nemožný, ale abyste to potvrdili nebo vyvrátili, musíte pochopit, jak funguje iCloud Keychain.

iCloud 101

Ve skutečnosti iCloud není jedna služba, je to obecný marketingový název pro celou řadu cloudové služby od společnosti Apple. To zahrnuje synchronizaci nastavení, dokumentů a fotografií, funkci Najít můj telefon pro hledání ztracených nebo odcizených zařízení a zálohování iCloud pro Rezervovat kopii do cloudu a nyní je tu iCloud Keychain pro bezpečnou synchronizaci hesel a čísel kreditních karet mezi zařízeními na Na bázi iOS a OS X.

Každá služba iCloud je umístěna na vlastní doméně třetí úrovně, jako je pXX-keyvalueservice.icloud.com, kde XX je číslo skupiny serverů odpovědných za zpracování požadavků aktuálního uživatele; Pro různé Apple ID toto číslo se může lišit; novější účty obvykle mají vyšší hodnotu toto počítadlo.

Bezpečnostní kód iCloud

Než se ponoříme do analýzy iCloud Keychain, podívejme se, jak je tato služba nakonfigurována. Při povolení iCloud Keychain je uživatel vyzván, aby vymyslel a zadal bezpečnostní kód iCloud (bezpečnostní kód iCloud, dále jen iCSC). Ve výchozím nastavení vstupní formulář umožňuje používat čtyřmístné číslo digitální kód, ale kliknutím na odkaz “ Extra možnosti“, stále můžete používat složitější kód nebo dokonce umožnit zařízení generovat silný náhodný kód.

Nyní víme, že data v iCloud Keychain jsou chráněna pomocí iCSC. No, zkusme zjistit, jak přesně je tato ochrana implementována!

Zachycování dopravy nebo muž-uprostřed

První krok v analýze síťové službyčasto znamená získat přístup síťový provoz mezi klientem a serverem. V případě iCloudu nás čekají dvě zprávy: špatná a dobrá. Špatnou zprávou je, že veškerý provoz (nebo alespoň jeho drtivá většina) je chráněn pomocí TLS/SSL, to znamená, že je šifrovaný a normální pasivní útok nebude možné jej „číst“. Dobrou zprávou je, že Apple dal každému dar prozkoumat iCloud a nepoužívá připínání certifikátů, díky čemuž je docela snadné zorganizovat útok typu man-in-the-middle a dešifrovat zachycený provoz. K tomu stačí:

  1. Umístěte experimentální iOS zařízení do stejné Wi-Fi sítě jako počítač provádějící odposlech.
  1. Nainstalujte si do počítače zachycovací proxy server (například Burp, Charles Proxy nebo jakýkoli podobný).
  1. Importujte TLS/SSL certifikát nainstalovaného proxy serveru do iOS zařízení (podrobnosti viz nápověda ke konkrétnímu proxy).
  1. V nastavení sítě Wi-Fi na vašem zařízení iOS (Nastavení → Wi-Fi → Název sítě → HTTP Proxy) zadejte IP adresu odposlouchávaného počítače v síti Wi-Fi a port, na kterém proxy server naslouchá.

Pokud je vše provedeno správně, veškerý provoz mezi zařízením a iCloud bude v plném zobrazení. A ze zachycení tohoto provozu bude jasně vidět, že iCloud Keychain je postaven na dvou základech služby iCloud: com.apple.Dataclass.KeyValue a com.apple.Dataclass.KeychainSync – jak při prvním povolení, tak při opětovném povolení na ostatních iOS zařízení vyměňuje data s těmito službami.

První služba není nová a patřila mezi první funkce iCloudu; je široce používán aplikacemi k synchronizaci nastavení. Druhý je nový a byl zřejmě vyvinut speciálně pro iCloud Keychain (ačkoli jeho funkčnost teoreticky umožňuje jeho použití pro jiné účely). Pojďme se na tyto služby podívat blíže.

com.apple.Dataclass.KeyValue

Jak je uvedeno výše, jedná se o jednu ze služeb využívaných iCloud Keychain. Mnoho stávající aplikace použít pro synchronizaci malé objemy data (nastavení, záložky atd.). Každý záznam uložený touto službou je spojen s identifikátorem aplikace (Bundle ID) a názvem obchodu (store). Abyste mohli přijímat uložená data ze služby, musíte také poskytnout tyto identifikátory. V rámci iCloud Keychain se tato služba používá k synchronizaci záznamů Keychain v zašifrované podobě. Tento proces je dostatečně podrobně popsán v Dokument pro iOS Zabezpečení v sekcích Synchronizace klíčenky a Jak funguje synchronizace klíčenky.

Synchronizace klíčenky

Když uživatel poprvé zapne iCloud Keychain, zařízení vytvoří kruh důvěry a synchronizační identitu (skládající se z veřejného a soukromého klíče) pro aktuální zařízení. Veřejný klíč dvojice je umístěn v „kruhu důvěry“ a tento „kruh“ je podepsán dvakrát: nejprve soukromým synchronizačním klíčem zařízení a poté asymetrickým klíčem (založeným na eliptické kryptografii) odvozeným z hesla uživatele iCloud. V „kruhu“ jsou také uloženy parametry pro výpočet klíče z hesla, jako je sůl a počet iterací.

Podepsaný „kruh“ se uloží do úložiště klíč/hodnota. Bez znalosti to nelze číst uživatelské heslo iCloud a nelze jej bez znalosti změnit soukromý klíč jedno ze zařízení přidaných do „kruhu“.

Když uživatel povolí iCloud Keychain na jiném zařízení, toto zařízení přistoupí k úložišti klíčů/hodnot na iCloudu a všimne si, že uživatel již má „kruh důvěry“ a že nové zařízení není jeho součástí. Zařízení vygeneruje synchronizační klíče a potvrzení o členství v kruhu. Účtenka obsahuje veřejný synchronizační klíč zařízení a je podepsána klíčem získaným z hesla uživatele iCloud pomocí parametrů generování klíčů získaných z úložiště klíčů/hodnot. Podepsaná účtenka je poté umístěna do úložiště klíč/hodnota.

První zařízení uvidí novou účtenku a zobrazí uživateli zprávu, že nové zařízení žádá o přidání do „kruhu důvěry“. Uživatel vstoupí heslo iCloud a zkontroluje se správnost podpisu účtenky. To dokazuje, že uživatel, který vygeneroval požadavek na přidání zařízení, zadal při vytváření účtenky správné heslo.

Poté, co uživatel potvrdí přidání zařízení do kruhu, první zařízení přidá veřejný synchronizační klíč nového zařízení do kruhu a znovu jej dvakrát podepíše svým soukromým synchronizačním klíčem a klíčem odvozeným z hesla uživatele na iCloudu. Nový „kruh“ se uloží na iCloud a nové zařízení jej podepíše stejným způsobem.

Jak funguje synchronizace klíčenky

Nyní jsou v „kruhu důvěry“ dvě zařízení a každé z nich ví veřejné klíče synchronizace dalších zařízení. Začnou si vyměňovat záznamy Keychain prostřednictvím úložiště klíčů/hodnot iCloud. Pokud je na obou zařízeních stejný záznam, bude mít prioritu modifikace, která má pozdější čas. Pokud je čas úpravy záznamu v iCloudu a na zařízení stejný, záznam se nesynchronizuje. Každý synchronizovaný záznam je zašifrován specificky pro cílové zařízení; nelze jej dešifrovat jinými zařízeními ani společností Apple. Záznam se navíc v iCloudu neukládá natrvalo – je přepsán novými synchronizovanými nahrávkami.

Tento proces se opakuje pro každé nové zařízení přidané do kruhu důvěry. Pokud je například do kruhu přidáno třetí zařízení, na dalších dvou zařízeních se zobrazí žádost o potvrzení. Uživatel může přidání potvrdit na kterémkoli z nich. Při přidávání nových zařízení se každé zařízení v kruhu synchronizuje s novými, aby se zajistilo, že sada záznamů na všech zařízeních bude stejná.

Je třeba poznamenat, že ne celý Keychain je synchronizován. Některé záznamy jsou svázány se zařízením (například účty VPN) a neměly by opustit zařízení. Synchronizovány jsou pouze záznamy, které mají atribut kSecAttrSynchronizable. Apple nastavil tento atribut jako vlastní Data Safari(včetně uživatelských jmen, hesel a čísel kreditních karet) a pro hesla Wi-Fi.

Záznamy aplikací třetích stran se navíc ve výchozím nastavení nesynchronizují. Pro jejich synchronizaci musí vývojáři při přidávání záznamu do Keychain explicitně nastavit atribut kSecAttrSynchronizable.

iCloud Keychain funguje se dvěma úložišti:

  • com.apple.security.cloudkeychainproxy3
- ID balíčku: com.apple.security.cloudkeychainproxy3;
  • com.apple.sbd3
- Bundle ID: com.apple.sbd (SBD je zkratka pro Secure Backup Daemon).

První úložiště se pravděpodobně používá k udržování seznamu důvěryhodná zařízení(zařízení v „kruhu důvěry“, mezi nimiž je povolena synchronizace hesel), přidat nová zařízení do tohoto seznamu a synchronizovat záznamy mezi zařízeními (v souladu s mechanismem popsaným výše).

Druhé úložiště je určeno pro zálohování a obnovu záznamů Keychain na nová zařízení (například když v „kruhu důvěry“ nejsou žádná další zařízení) a obsahuje zašifrované záznamy Keychain a související informace.

Záznamy Keychain jsou tedy uloženy v běžném úložišti Key/Value (com.apple.securebackup.record). Tyto záznamy jsou šifrovány pomocí sady klíčů, které jsou zde uloženy (BackupKeybag). Ale tato sada klíčů chráněno heslem. Odkud toto heslo pochází? Co je tato služba úschovy hesel Apple? Zkusme na to přijít příště.

apple.Dataclass.KeychainSync

Tento nová služba, vznikla relativně nedávno: její podpora se poprvé objevila v r beta verze iOS 7, poté chyběl v iOS 7.0–7.0.2 a byl znovu zaveden v iOS 7.0.3, který byl vydán současně s vydáním OS X Mavericks. Toto je výše zmíněná služba úschovy hesla (adresa služby je pXX-escrowproxy.icloud.com).

Služba je určena pro bezpečné uložení uživatelských tajemství a umožňuje uživateli obnovit tato tajemství po úspěšné autentizaci. Pro úspěšnou autentizaci je vyžadováno následující:

  • Ověřovací token iCloud přijatý výměnou za Apple ID a heslo během počátečního ověřování na iCloud ( standardním způsobem ověřování pro většinu služeb iCloud);
  • Bezpečnostní kód iCloud (iCSC);
  • šestimístný digitální kód zaslaný servery Apple na číslo mobilní telefon, spojený s uživatelem.

Teoreticky vše vypadá dobře, ale abychom určili, zda teorie odpovídá praxi, budeme muset provést audit klientského programu escrow služby. Na iOS a OS X se tento program nazývá com.apple.lakitu. Popis procesu jeho zvrácení a auditu je nad rámec článku, přejděme tedy rovnou k výsledkům.

Dostupné příkazy

Auditování com.apple.lakitu vám umožňuje určit seznam příkazů implementovaných službou escrow. Odpovídající snímek obrazovky zobrazuje příkazy a jejich popis. Zvláště bych se rád pozastavil poslední tým- s jeho pomocí je možné změnit telefonní číslo spojené s běžným účtem. Přítomnost tohoto příkazu dělá vícefaktorové ověřování, používá obnovení iCloud Keychain (heslo Apple ID + iCSC + zařízení), znatelně méně spolehlivé, protože vám umožňuje vyloučit jeden z faktorů. Zajímavé je i to, že uživatel rozhraní iOS neumožňuje tento příkaz provést - prostě takovou možnost nemá (alespoň já jsem to nenašel).

Zvláštností tohoto příkazu, která jej odlišuje od všech ostatních, je, že vyžaduje autentizaci pomocí Apple heslo ID a nebude fungovat, pokud je k ověření použit token iCloud (jiné příkazy fungují při ověřování pomocí tokenu). To poskytuje tomuto příkazu další ochranu a ukazuje, že návrháři systému podnikli kroky ke zlepšení jeho zabezpečení. Není však zcela jasné, proč je tento příkaz v systému vůbec přítomen.

Obnova uložených dat

Pro příjem uložených dat se provede následující protokol:

  1. Klient požaduje seznam uložených záznamů (/get_records).
  1. Klient požaduje přidružený telefonní číslo, na který server odešle potvrzovací kód (/get_sms_targets).
  1. Klient zahájí generování a doručení potvrzovacího kódu (/generate_sms_challenge).
  1. Poté, co uživatel zadá iCSC a ověřovací kód z SMS, zahájí klient pokus o autentizaci pomocí protokolu SRP-6a (/srp_init).
  1. Po obdržení odpovědi ze serveru klient provede výpočty předepsané protokolem SRP-6a a vyžádá si escrow data (/obnovit).
  1. Pokud se klient úspěšně autentizoval, server vrátí uložená data a předtím je zašifroval klíčem vygenerovaným během provozu protokolu SRP-6a (pokud protokol fungoval úspěšně, pak server i klient vypočítali tento sdílený klíč) .

Je důležité si uvědomit, že telefonní číslo získané v kroku 2 slouží výhradně pro uživatelské rozhraní to znamená ukázat uživateli číslo, na které bude zaslán ověřovací kód, a v kroku 3 klient nepřenese na server číslo, na které má být ověřovací kód zaslán.

Zabezpečené vzdálené heslo

V kroku 4 začne klient spouštět protokol SRP-6a. SRP (Secure Remote Password) je protokol ověřování heslem, chráněné před odposloucháváním a útoky typu man-in-the-middle. Tak například při použití tohoto protokolu není možné zachytit hash hesla a pokusit se jej obnovit, jednoduše proto, že se žádný hash nepřenáší.

Apple používá nejpokročilejší verzi protokolu, SRP-6a. Tato možnost dává pokyn k uzavření připojení, pokud se ověření nezdaří. Apple navíc umožňuje pouze deset neúspěšných pokusů o ověření této služby, po kterém jsou všechny následující pokusy zablokovány.

Podrobný popis protokolu SRP a jeho matematické základy přesahuje rámec tohoto článku, ale pro úplnost níže uvádíme soukromou verzi používanou službou com.apple.Dataclass.KeychainSync.

Hašovací funkce H je SHA-256 a skupina (N, g) je 2048bitová skupina z RFC 5054 "Using the Secure Remote Password (SRP) Protocol for TLS Authentication". Protokol běží následovně:

  1. Zařízení vygeneruje náhodnou hodnotu a, vypočítá A=g^a mod N, kde N a g jsou 2048bitové parametry skupiny z RFC 5054, a odešle na server zprávu obsahující ID uživatele, vypočítanou hodnotu A, a potvrzovací kód z SMS. Jako identifikátor uživatele je použita hodnota DsID - jedinečný číselný identifikátor uživatele.
  2. Po přijetí zprávy server vygeneruje náhodnou hodnotu b a vypočítá B=k*v + g^b mod N , kde k je multiplikátor definovaný v SRP-6a jako k=H(N, g) , v=g^ H(Salt, iCSC) mod N - ověřovač hesla uložený na serveru (analogicky jako hash hesla), Salt - náhodná sůl generovaná při vytváření účtu. Server odešle klientovi zprávu obsahující B a Salt.
  3. Prostřednictvím jednoduchých matematických transformací klient a server vypočítají společný klíč relace K. Tím je dokončena první část protokolu - odvození klíče - a nyní musí klient a server zajistit, aby obdrželi stejnou hodnotu pro K.
  4. Klient vypočítá M=H(H(N) XOR H(g) | H(ID) | Sůl | A | B | K) , důkaz, že zná K , a odešle M a potvrzovací kód z SMS na server. Server také vypočítá M a porovná hodnotu přijatou od klienta a vypočítanou hodnotu; pokud se neshodují, server zastaví provádění protokolu a přeruší spojení.
  5. Server klientovi prokáže znalost K výpočtem a odesláním H(A, M, K) . Nyní oba účastníci protokolu nejen vyvinuli společný klíč, ale také se ujistili, že tento klíč je pro oba účastníky stejný. V případě služby escrow server také vrací náhodný IV a escrow záznam zašifrovaný sdíleným klíčem K pomocí algoritmu AES v režimu CBC.

Použití SRP pro dodatečná ochrana uživatelská data podle mého názoru výrazně zlepšují zabezpečení systému před vnějšími útoky, už jen proto, že vám umožňují účinně odolávat pokusům o hrubou sílu na iCSC: na připojení ke službě můžete vyzkoušet pouze jedno heslo. Po několika neúspěšných pokusech je účet (v rámci práce s escrow službou) převeden do stavu soft lock a dočasně zablokován a po deseti neúspěšných pokusech je účet trvale zablokován a další práce s escrow službou je možná až po resetování iCSC pro účet.

Zároveň používání SRP nijak nechrání před vnitřními hrozbami. Uložené heslo je uloženo na serverech společnosti Apple, takže lze předpokládat, že k němu Apple v případě potřeby má přístup. V tomto případě, pokud by heslo nebylo před uložením do úschovy chráněno (např. zašifrováno), mohlo by to vést ke kompletní kompromitaci záznamů Keychain uložených na iCloudu, protože uschované heslo by umožnilo dešifrování šifrovacích klíčů, což by dešifrovalo Záznamy Keychain (pozn. com. apple.Dataclass.KeyValue).

Apple však v dokumentu „iOS Security“ tvrdí, že k ukládání uložených záznamů se používají specializované hardwarové bezpečnostní moduly (Hardware Security Modules (HSM)) a že přístup k uloženým datům je nemožný.

Zabezpečení úschovy

iCloud poskytuje bezpečnou infrastrukturu pro escrow Keychain, což zajišťuje, že Keychain mohou obnovit pouze oprávnění uživatelé a zařízení. HSM clustery chrání escrow záznamy. Každý cluster má svůj vlastní šifrovací klíč používaný k ochraně záznamů.

Pro obnovení Keychain se uživatel musí ověřit pomocí uživatelského jména a hesla iCloud a odpovědět na zaslanou SMS. Po dokončení musí uživatel zadat bezpečnostní kód iCloud (iCSC). HSM cluster ověřuje správnost iCSC pomocí protokolu SRP; iCSC se však nepřenáší na servery Apple. Každý uzel clusteru nezávisle na ostatních kontroluje, zda uživatel nepřekročil maximum přípustné množství pokusy získat data. Pokud je kontrola úspěšná na většině uzlů, cluster dešifruje záznam u třetí osoby a vrátí jej uživateli.

Zařízení poté použije iCSC k dešifrování záznamu u třetí osoby a získání hesla použitého k zašifrování záznamů Keychain. Pomocí tohoto hesla je klíčenka získaná z úložiště klíčů/hodnot dešifrována a obnovena do zařízení. K ověření a načtení uložených dat je povoleno pouze deset pokusů. Po několika neúspěšných pokusech je záznam uzamčen a uživatel musí kontaktovat podporu, aby jej odblokoval. Po desáté neúspěšný pokus Cluster HSM zničí uložený záznam. To poskytuje ochranu před útoky hrubou silou zaměřenými na získání záznamu.

Bohužel není možné ověřit, zda jsou HSM skutečně používány. Pokud je vše opravdu takto a HSM neumožňují číst data v nich uložená, tak to můžeme říci data iCloud Klíčenka je také chráněna před vnitřními hrozbami. Ale opakuji, bohužel nelze dokázat ani vyvrátit použití HSM a nemožnost z nich číst data.

Zbývá ještě jeden způsob, jak chránit data před hrozbou zevnitř – ochrana uložených dat v zařízení před jejich přenosem na servery Apple. Z Popisy Apple z toho vyplývá (a obrácení to potvrzuje), že taková ochrana je aplikována - uložené heslo je předem zašifrováno pomocí iCSC. Je zřejmé, že v tomto případě úroveň zabezpečení (před hrozbou zevnitř) přímo závisí na složitosti iCSC a výchozí čtyřznakové iCSC neposkytuje dostatečnou ochranu.

Tak jsme zjistili, jak fungují jednotlivé prvky a nyní je čas podívat se na systém jako celek.

Dát to všechno dohromady

Diagram ukazuje, jak iCloud Keychain funguje, pokud jde o ukládání a obnovu záznamů Keychain. Systém funguje následovně:

  1. Zařízení generuje sadu náhodné klíče(v Apple terminologii - keybag) k šifrování záznamů Keychain.
  2. Zařízení šifruje záznamy Keychain (ty se sadou atributů kSecAttrSynchronizable) pomocí sady klíčů vygenerované na předchozí krok a uloží zašifrované záznamy do úložiště klíče/hodnoty com.apple.sbd3 (klíč com.apple.securebackup.record).
  3. Zařízení generuje náhodné heslo, skládající se ze šesti skupin po čtyřech znacích (entropie takového hesla je asi 124 bitů), zašifruje sadu klíčů vygenerovanou v kroku 1 pomocí tohoto hesla a uloží zašifrovanou sadu klíčů do úložiště klíčů/hodnot com.apple. sbd3 (klíč BackupKeybag).
  4. Zařízení zašifruje náhodné heslo vygenerované v předchozím kroku pomocí klíče získaného z uživatelského bezpečnostního kódu iCloud a uloží zašifrované heslo do služby com.apple.Dataclass.KeychainSync.

Při nastavování iCloud Keychain může uživatel místo výchozího čtyřmístného kódu použít složitý nebo náhodný iCSC. V případě použití složitého kódu se mechanismus fungování depozitního systému nemění; jediný rozdíl je v tom, že klíč pro zašifrování náhodného hesla se nebude počítat ze čtyřmístného iCSC, ale ze složitějšího zadaného uživatelem.

U náhodného kódu se subsystém úschovy hesla vůbec nepoužívá. V tomto případě je náhodné heslo vygenerované systémem iCSC a úkolem uživatele je zapamatovat si jej a bezpečně uložit. Položky Keychain jsou stále zašifrovány a uloženy v úložišti klíčů/hodnot com.apple.sbd3 , ale služba com.apple.Dataclass.KeychainSync se nepoužívá.

závěry

Můžeme bezpečně říci, že s technický bod hlediska (tedy neuvažujeme sociální inženýrství) a ve vztahu k vnější hrozby(tedy ne Apple) je zabezpečení escrow služby iCloud Keychain na dostatečné úrovni: díky použití protokolu SRP se i v případě kompromitace hesla na iCloudu útočník nedostane k záznamům Keychain, neboť to navíc vyžaduje bezpečnostní kód iCloud a hrubou silou je tento kód značně obtížný.

Zároveň pomocí dalšího mechanismu iCloud Keychain – synchronizace hesel, útočník, který prolomil heslo iCloud a má krátké fyzický přístup k jednomu ze zařízení uživatele, může zcela ohrozit iCloud Keychain: k tomu stačí přidat zařízení útočníka do „kruhu důvěry“ zařízení uživatele, a k tomu stačí znát heslo iCloud a mít krátkodobý přístup k zařízení uživatele za účelem potvrzení požadavku na přidání nového zařízení do „kruhu“.

Pokud vezmeme v úvahu ochranu před hrozbami zevnitř (tj. Apple nebo kdokoli s přístupem k servery Apple), pak v tomto případě zabezpečení escrow služby nevypadá tak růžově. Tvrzení společnosti Apple o používání HSM a neschopnosti z nich číst data nemají přesvědčivé důkazy a kryptografická ochrana uložená data jsou svázána s bezpečnostním kódem iCloud, ve výchozím nastavení jsou extrémně slabá a umožňuje každému, kdo je schopen získat uložené záznamy ze serverů Apple (nebo z HSM), téměř okamžitě obnovit čtyřmístný kód zabezpečení iCloud.

Pokud je použit složitý alfanumerický kód, je tento útok obtížnější než počet možná hesla. Pokud je iCloud Keychain nakonfigurován tak, aby používal náhodný kód, pak služba úschovy u třetí osoby není vůbec zapojena, což efektivně znemožňuje tento vektor útoku.

Maximální úroveň zabezpečení (nezahrnuje kompletní vypnutí iCloudu Klíčenka, samozřejmě) je poskytována při použití náhodný kód- a to ani ne tak proto, že by se takový kód obtížněji našel, ale proto, že není zapojen subsystém ukládání hesel, a proto je plocha útoku omezena. Ale pohodlí této možnosti samozřejmě ponechává mnoho přání.

Svazek klíčů- Tento Funkce Mac OS X, který ukládá hesla z různé aplikace a další služby používané na počítači. Obvykle když nedávno nainstalovaný program adresy poprvé Klíčenka, zobrazí se dialogové okno s výzvou k zadání hesla a po jeho zadání by se již nemělo zobrazovat. Stává se však, že při každém přístupu programu k odkazu je vyžadováno heslo, což může být velmi nepříjemné pohodlná práce. Naštěstí existuje několik způsobů, jak tento problém vyřešit.

Zakázat automatické zavírání klíčenky

kvůli bezpečnosti, Svazek klíčů může být poté zablokováno určitá doba dobu bez aktivity nebo když Mac přejde do režimu spánku. Stojí za to odlišit tuto funkci od zavření obrazovky. Když klíčenku zavřete, můžete pracovat s počítačem bez zadání hesla a když zavřete obrazovku, bez hesla se uživatel znovu nedostane do systému. Změna nastavení této funkce je poměrně jednoduchá.


Může být také užitečné povolit zobrazení Klíčenky na liště nabídek. Chcete-li to provést, otevřete nabídku Klíčenka - Nastavení - Obecné a zaškrtněte políčko vedle položky „Zobrazit stav klíčenky na liště nabídek“. Poté se zobrazí panel nabídek nová ikona ve formě zámku, který se otevře, pokud je klíčenka otevřená, a podle toho se zavře, pokud je zamčená.

Kontrola a oprava klíčenky

Pokud vaše klíčenky nefungují správně, můžete je opravit pomocí funkce První pomoc. Předtím byste se však měli ujistit, že je správně nakonfigurován.


Odpojit a znovu připojit Svazek klíčů v iCloudu

Pokud používáte iCloud Keychain, abyste k němu měli přístup na více zařízeních, vyplatí se zkusit tuto funkci na Macu deaktivovat a poté ji znovu povolit. Než to uděláte, důrazně doporučujeme, abyste se ujistili, že máte kompletní a aktuální záložní kopie systémy!

Přejděte do nabídky Nastavení systému- iCloud. Zrušte zaškrtnutí možnosti Keychain, potvrďte, že tuto funkci opravdu chcete deaktivovat, a poté políčko znovu zaškrtněte. To odstraní klíčenku z vašeho počítače a poté ji znovu přidá, což s největší pravděpodobností problém vyřeší.

Resetování klíčenky.

Pokud nic z výše uvedeného nepomohlo, můžete zkusit klíčenku resetovat a vytvořit tak novou, čistý soubor. Tímto způsobem budete mít stále přístup ke starému souboru odkazů, takže se vaše hesla neztratí, ale systém je nebude používat a budete je muset zadat znovu. Chcete-li klíčenku resetovat, otevřete nabídku Klíčenka - Nastavení - Obecné, klikněte na tlačítko "Obnovit výchozí klíčenku", potvrďte svou volbu a počkejte na dokončení procesu.

Poté, pokud potřebujete heslo uložené ve starém odkazu, můžete jej otevřít a přesunout požadovanou položku ze seznamu do nová parta nebo otevřete tuto položku dvojklik myši a zobrazte heslo zaškrtnutím políčka vedle položky „Zobrazit heslo“.

Mnohokrát děkuji Christopheru Kesslerovi za materiál, který posloužil jako základ pro napsání tohoto článku.




Horní