Серед нововведень чергової версії операційної системи Apple OS X (починаючи з 2012 року вона офіційно називається саме так, а не Mac OS X) 10.9, що отримала назву Mavericks, є корисна функція, названа «Зв'язкою ключів iCloud». Суть її полягає в можливості синхронізації логінів і паролів в браузері Safari, даних кредитних карт і бездротових мереж між пристроями під керуванням OS X і iOS 7, які об'єднані спільною обліковим записом хмарного сервісу iCloud. Крім того, «Зв'язка ключів» здатна синхронізувати дані поштових акаунтів, контактів, календарів і текстових повідомлень, а також акаунтів соціальних мереж Facebook, Twitter і LinkedIn і інших інтернет-сервісів між комп'ютерами з OS X Mavericks.
Нічого революційного в самій цій функції немає: існує величезна кількість хмарних сервісів, що забезпечують поряд зі зберіганням звичайних даних і збереження паролів для синхронізації з різними пристроями клієнта. Є і способи прямої синхронізації паролів без збереження їх на «хмарі»: така опція передбачена, наприклад, в програмі 1Password, де дані передаються через Wi-Fi, але тут виникають обгрунтовані сумніви в безпеці таких операцій.
Тим часом в довідковому файлі Apple по використанню «Зв'язки ключів» (його російського перекладу поки немає) говориться про те, що цю функцію можна застосовувати без збереження даних в «хмарі». Ось цитата з «поширених запитань»:
«Чи можна налаштувати" Зв'язку ключів iCloud "таким чином, щоб мої дані не резервувалися в" хмарі "»?
"Так. Під час налаштування "Зв'язки ключів iCloud" ви можете пропустити стадію створення коду безпеки iCloud. У цьому випадку дані вашої "зв'язки ключів" будуть зберігатися тільки локально на вашому пристрої і оновлюватися тільки між схваленими вами пристроями. Важливо: якщо ви не будете створювати код безпеки iCloud, Apple не зможе відновити вашу "Зв'язку ключів iCloud" ».
Журналіст авторитетного інтернет-видання Ars Technica Джон Бродкін, що спеціалізується в тому числі і на засобах безпеки, вирішив перевірити це твердження, провівши нехитрий експеримент, а ми, в свою чергу, повторили його самостійно.
Під час налаштування функції «Зв'язка ключів iCloud» вам пропонується чотири опції. Варіант за замовчуванням - простий чотиризначний код безпеки, який, швидше за все, і буде використовуватися в більшості випадків. Для отримання «Зв'язки ключів» з серверів Apple на кожному новому пристрої, крім введення основного пароля до iCloud, потрібно буде ввести цей код. Таке коротке число легко запам'ятати, але якщо ви все-таки його забудете, то авторизувати новий пристрій можна буде з іншого авторизованого гаджета.
Другий варіант - ввести придуманий самостійно довгий 32-значний код; третій - 24-значний код, згенерований випадковим чином. Дуже непогані за сучасними мірками опції з точки зору взломоустойчивости, але безнадійно жахливі, якщо ви спробуєте їх запам'ятати.
Нарешті, четвертий варіант, який нас і цікавить, - це взагалі не створювати код безпеки: тепер його можна буде забути або перехопити. Передбачається, що при цьому дані «Зв'язки ключів» будуть зберігатися тільки на локальній машині, а не на серверах Apple.
Отже, повторюємо експеримент Джона Бродкіна. Створюємо на настільному комп'ютері iMac «Зв'язку ключів» без коду безпеки. Тепер, щоб отримати до неї доступ з планшета iPad з тієї ж обліковим записом iCloud, нам потрібен дозвіл з десктопа: з'являється відповідний запит, вводимо пароль iCloud, після чого процедура сполучення завершення.
На цей момент список збережених паролів на iPad порожній (див. Safari / Паролі та автозаповнення / збережені паролі). Тепер переводимо iPad в «Авіарежім», повністю відключивши його від інтернету і стільникових мереж. Відкриваємо на робочому столі сайт, що вимагає парольного входу. Як і належить, «Зв'язка ключів iCloud» пропонує зберегти цей пароль. Погоджуємося і відключаємо десктоп від інтернету.
Оскільки, судячи з опису Apple, паролі повинні зберігатися лише на локальній машині, вони ніяк не можуть бути передані на інший пристрій, якщо воно вимкнене або не має працюючих засобів зв'язку. Чекаємо кілька хвилин і відключаємо «Авіарежім» на iPad. Про чудо! Через пару секунд ми бачимо в списку наш збережений пароль, в тому час як десктоп все ще відключений від інтернету.
Як і Джон Бродкін, ми знову і знову повторювали експеримент, при якому жодного разу десктоп і планшет не були підключені до інтернету або локальної мережі одночасно. При цьому всі вводяться паролі справно синхронізувалися - як при введенні на iMac, так і при введенні на iPad. Бажаючі можуть і самі виконати цей нехитрий досвід.
Власне кажучи, що й потрібно було довести: «Зв'язка ключів iCloud» працює точно так само, як і будь-який інший аналогічний хмарний сервіс. Навряд чи можна сумніватися в тому, що інформація все-таки зберігається на серверах iCloud, хоча в Apple чомусь стверджують інакше. Так, можливо, час зберігання в цьому режимі якимось чином обмежена і при цьому не підтримується функція відновлення, але дані виразно приходять адресату з інтернету, причому вони лежать на сервері і терпляче чекають, поки не будуть доступні інші пристрої з загальної обліковим записом iCloud .
Звичайно, ні в описі «Зв'язки ключів iCloud», ні в будь-яких з діалогових вікон не говорилося про те, що в цьому режимі дані будуть синхронізуватися без участі «хмари»: тоді втрачається весь сенс навіть назви цієї функції. Так що мова йде, швидше за все, про некоректну описі послуги, а не про якийсь зловмисне введення в оману.
Судячи з усього, єдиною принциповою різницею між режимами з захистом кодами безпеки і беспарольному режимом можна вважати відсутність резервування даних «Зв'язки ключів» і подальшої можливості їх відновлення. Бекап, в свою чергу, дозволяє відновити всю інформацію, навіть якщо у вас немає жодного фізичного пристрою, співвіднесеного з відповідною обліковим записом iCloud: ви можете взяти будь-який новий апарат і ввести дані облікового запису та код безпеки «Зв'язки ключів».
Що стосується безпеки і конфіденційності самого сервісу «Зв'язка ключів iCloud», то, судячи з офіційними даними , «Для зберігання і передачі паролів і даних кредитних карт застосовується шифрування по 256-розрядному алгоритмом AES. Крім того, використовуються асиметрична криптографія на основі еліптичних кривих і маскування ключів key wrapping ». При цьому через сервери iCloud проходять тільки зашифровані дані «Зв'язки ключів», а самі ключі шифрування, за допомогою яких можна розшифрувати їх, створюються лише на самому клієнтському пристрої. Тут знову повторюється знайоме твердження, що в разі відключення відновлення «Зв'язка ключів iСloud» буде «синхронізуватися між довіреними пристроями, але зашифровані дані не будуть зберігатися на сервері Apple і не зможуть бути відновлені в разі втрати всіх пристроїв».
І все-таки: якщо дані не зберігаються на серверах iCloud, то як же вони синхронізуються? Пояснення може бути несподіваним. Все, що передається по інтернету, десь зберігається, хоча б в пам'яті. Можливо, справа навіть не в некоректному описі, а в чарівних уявленнях про техніку у людей, які читають цей опис. Добре відомі історії про те, як запуск законно купленої програми інтерпретувався як копіювання - адже при завантаженні створюється копія в пам'яті - і потім переслідувався по антипіратських законів. Дуже може бути, що це той же самий випадок, вид збоку. Щоб ніхто не присікався, це опис довелося б писати юридичною мовою з тисячею обмовок, тільки і всього.
І все таки?
І все-таки: якщо дані не зберігаються на серверах iCloud, то як же вони синхронізуються?І все таки?