Безопасное хранение паролей и их синхронизация между устройствами - задача непростая. Около года назад Apple представила миру iCloud Keychain, свое централизованного хранилище паролей в OS X и iOS. Давай попробуем разобраться, где и как хранятся пароли пользователей, какие потенциальные риски это несет и имеет ли Apple техническую возможность получить доступ к расшифрованным данным, хранящимся на ее серверах. Компания утверждает, что такой доступ невозможен, но, чтобы это подтвердить или опровергнуть, необходимо разобраться, как работает iCloud Keychain.

iCloud 101

На самом деле iCloud - это не один сервис, это общее маркетинговое название для целого ряда облачных сервисов от Apple. Это и синхронизация настроек, документов и фотографий, и Find My Phone для поиска потерянных или похищенных устройств, и iCloud Backup для резервного копирования в облако, и теперь вот iCloud Keychain для безопасной синхронизации паролей и номеров кредитных карт между устройствами на базе iOS и OS X.

Каждая служба iCloud расположена на собственном домене третьего уровня, таком как pXX-keyvalueservice.icloud.com, где XX - номер группы серверов, отвечающих за обработку запросов текущего пользователя; для различных Apple ID этот номер может быть разным; более новые учетные записи обычно имеют большее значение этого счетчика.

Код безопасности iCloud

Прежде чем погружаться в анализ iCloud Keychain, обратим внимание на то, каким образом эта служба конфигурируется. При включении iCloud Keychain пользователю предлагается придумать и ввести код безопасности iCloud (iCloud Security Code, далее - iCSC). По умолчанию форма ввода позволяет использовать четырехзначный цифровой код, но, перейдя по ссылке «Дополнительные параметры», все же можно использовать более сложный код или вовсе позволить устройству сгенерировать стойкий случайный код.

Теперь мы знаем, что данные в iCloud Keychain защищены с помощью iCSC. Ну что же, попробуем разобраться, как именно эта защита реализована!

Перехват трафика или man-in-the-middle

Первым шагом при анализе сетевых сервисов зачастую является получение доступа к сетевому трафику между клиентом и сервером. В случае с iCloud для нас есть две новости: плохая и хорошая. Плохая состоит в том, что весь (ну или по крайней мере подавляющая его часть) трафик защищен TLS/SSL, то есть он зашифрован и обычной пассивной атакой «прочитать» его не удастся. Хорошая же новость заключается в том, что Apple сделала всем желающим поисследовать iCloud подарок и не использует фиксацию сертификата (certificate pinning), что позволяет достаточно просто организовать атаку «человек посередине» (man-in-the-middle) и расшифровывать перехваченный трафик. Для этого достаточно:

  1. Поместить подопытное iOS-устройство в одну Wi-Fi-сеть с компьютером, осуществляющим перехват.
  1. Установить на компьютере перехватывающий прокси-сервер (такой как Burp, Charles Proxy или любой аналогичный).
  1. Импортировать на iOS-устройство TLS/SSL-сертификат установленного прокси-сервера (подробности в справке конкретного прокси).
  1. В настройках Wi-Fi-сети на iOS-устройстве (Настройки → Wi-Fi → Имя сети → HTTP Прокси) указать IP-адрес перехватывающего компьютера в Wi-Fi-сети и порт, на котором слушает прокси-сервер.

Если все сделано правильно, то весь трафик между устройством и iCloud’ом будет как на ладони. И из перехвата этого трафика будет отчетливо видно, что iCloud Keychain построен на базе двух сервисов iCloud: com.apple.Dataclass.KeyValue и com.apple.Dataclass.KeychainSync - и при первоначальном, и при повторном включениях на других устройствах iOS обменивается данными с этими сервисами.

Первый сервис не нов и был в числе первых возможностей iCloud; он широко используется приложениями для синхронизации настроек. Второй же является новым и разработан, очевидно, специально для iCloud Keychain (хотя его функционал теоретически позволяет использовать его и для других целей). Рассмотрим эти сервисы подробнее.

com.apple.Dataclass.KeyValue

Как было отмечено выше, это один из сервисов, используемых iCloud Keychain. Многие существующие приложения используют его для синхронизации небольших объемов данных (настройки, закладки и тому подобное). Каждая сохраняемая этой службой запись ассоциируется с идентификатором приложения (Bundle ID) и именем хранилища (store). Соответственно, для получения сохраненных данных от сервиса также необходимо предоставить эти идентификаторы. В рамках iCloud Keychain данный сервис используется для синхронизации записей Keychain в зашифрованном виде. Достаточно подробно этот процесс описан в документе iOS Security в разделах Keychain syncing и How keychain syncing works.

Синхронизация Keychain

Когда пользователь впервые включает iCloud Keychain, устройство создает «круг доверия» (circle of trust) и ключи синхронизации (syncing identity, состоит из открытого и закрытого ключей) для текущего устройства. Открытый ключ этой пары помещается в «круг доверия», и этот «круг» дважды подписывается: сперва закрытым ключом синхронизации устройства, а затем асимметричным ключом (основанным на эллиптической криптографии), полученным из пароля пользователя на iCloud. Также в «круге» сохраняются параметры для вычисления ключа из пароля, такие как соль и количество итераций.

Подписанный «круг» сохраняется в Key/Value-хранилище. Он не может быть прочитан без знания пользовательского пароля iCloud и не может быть изменен без знания закрытого ключа одного из устройств, добавленных в «круг».

Когда пользователь включает iCloud Keychain на другом устройстве, это устройство обращается к Key/Value-хранилищу в iCloud и замечает, что у пользователя уже есть «круг доверия» и что новое устройство в него не входит. Устройство генерирует ключи синхронизации и квитанцию для запроса членства в «круге». Квитанция содержит открытый ключ синхронизации устройства и подписана ключом, полученным из пользовательского пароля iCloud с использованием параметров генерации ключа, полученных из Key/Value-хранилища. Подписанная квитанция затем помещается в Key/Value-хранилище.

Первое устройство видит новую квитанцию и показывает пользователю сообщение о том, что новое устройство запрашивает добавление в «круг доверия». Пользователь вводит пароль iCloud, и подпись квитанции проверяется на корректность. Это доказывает, что пользователь, генерировавший запрос на добавление устройства, ввел верный пароль при создании квитанции.

После того как пользователь подтвердит добавление устройства к «кругу», первое устройство добавляет открытый ключ синхронизации нового устройства в «круг» и вновь дважды подписывает его при помощи своего закрытого ключа синхронизации и при помощи ключа, полученного из пароля iCloud-пользователя. Новый «круг» сохраняется в iCloud, и новое устройство аналогичным образом подписывает его.

Как работает синхронизация Keychain

Теперь в «круге доверия» два устройства, и каждое из них знает открытые ключи синхронизации других устройств. Они начинают обмениваться записями Keychain через Key/Value-хранилище iCloud. В случае если одна и та же запись присутствует на обоих устройствах, то приоритет будет отдан имеющей более позднее время модификации. Если время модификации записи в iCloud и на устройстве совпадают, то запись не синхронизируется. Каждая синхронизируемая запись зашифровывается специально для целевого устройства; она не может быть расшифрована другими устройствами или Apple. Кроме того, запись не хранится в iCloud постоянно - она перезаписывается новыми синхронизируемыми записями.

Этот процесс повторяется для каждого нового устройства, добавляемого в «круг доверия». Например, если к «кругу» добавляется третье устройство, то запрос подтверждения будет показан на двух других устройствах. Пользователь может подтвердить добавление на любом из них. По мере добавления новых устройств каждое устройство из «круга» синхронизируется с новыми, чтобы убедиться, что набор записей на всех устройствах одинаков.

Необходимо заметить, что синхронизируется не весь Keychain. Некоторые записи привязаны к устройству (например, учетные записи VPN) и не должны покидать устройство. Синхронизируются только записи, имеющие атрибут kSecAttrSynchronizable. Apple установила этот атрибут для пользовательских данных Safari (включая имена пользователей, пароли и номера кредитных карт) и для паролей Wi-Fi.

Кроме того, по умолчанию записи сторонних приложений также не синхронизируются. Для их синхронизации разработчики должны явным образом установить атрибут kSecAttrSynchronizable при добавлении записи в Keychain.

iCloud Keychain оперирует двумя хранилищами:

  • com.apple.security.cloudkeychainproxy3
- Bundle ID: com.apple.security.cloudkeychainproxy3;
  • com.apple.sbd3
- Bundle ID: com.apple.sbd (SBD - акроним Secure Backup Daemon).

Первое хранилище предположительно используется для поддержания списка доверенных устройств (устройств в «круге доверия», между которыми разрешена синхронизация паролей), для добавления новых устройств в этот список и для синхронизации записей между устройствами (в соответствии с механизмом, описанным выше).

Второе же хранилище предназначено для резервного копирования и восстановления записей Keychain на новые устройства (например, когда в «круге доверия» нет других устройств) и содержит зашифрованные записи Keychain и сопутствующую информацию.

Таким образом, записи Keychain хранятся в обычном Key/Value-хранилище (com.apple.securebackup.record). Эти записи зашифрованы с помощью набора ключей, хранящегося там же (BackupKeybag). Но этот набор ключей защищен паролем. Откуда берется этот пароль? Что это за служба депонирования паролей Apple? Далее постараемся разобраться.

apple.Dataclass.KeychainSync

Это новый сервис, возник он относительно недавно: впервые его поддержка появилась в бета-версиях iOS 7, затем она отсутствовала в iOS 7.0–7.0.2 и была вновь добавлена в iOS 7.0.3, вышедшей одновременно с релизом OS X Mavericks. Это и есть упомянутая выше служба депонирования паролей (адрес службы - pXX-escrowproxy.icloud.com).

Служба предназначена для безопасного хранения пользовательских секретов и позволяет пользователю после успешной аутентификации восстановить эти секреты. Для успешной аутентификации необходимо следующее:

  • токен аутентификации iCloud, получаемый в обмен на Apple ID и пароль при первичной аутентификации в iCloud (стандартный способ аутентификации для большинства сервисов iCloud);
  • код безопасности iCloud (iCSC);
  • шестизначный цифровой код, передаваемый серверами Apple на номер сотового телефона, ассоциированный с пользователем.

В теории все выглядит хорошо, но, чтобы определить, совпадает ли теория с практикой, нам потребуется провести аудит программы-клиента службы депонирования. В ОС iOS и OS X эта программа носит название com.apple.lakitu . Описание процесса ее реверсинга и аудита выходит за рамки статьи, поэтому сразу переходим к результатам.

Доступные команды

Аудит com.apple.lakitu позволяет определить список команд, реализуемых службой депонирования. На соответствующем скриншоте представлены команды и их описание. Особо хотелось бы остановиться на последней команде - с ее помощью возможно изменить номер телефона, ассоциированный с текущей учетной записью. Наличие этой команды делает многофакторную аутентификацию, используемую при восстановлении iCloud Keychain (пароль Apple ID + iCSC + устройство), заметно менее надежной, так как позволяет исключить один из факторов. Интересно и то, что пользовательский интерфейс iOS не позволяет выполнить эту команду - в нем просто нет такой опции (по крайней мере я ее не нашел).

Особенность данной команды, отличающая ее от всех прочих, в том, что она требует аутентификации с паролем Apple ID и не будет работать, если для аутентификации используется токен iCloud (прочие команды работают при аутентификации по токену). Это служит дополнительной защитой данной команды и показывает, что проектировщики системы предприняли шаги для повышения ее безопасности. Тем не менее не до конца ясно, зачем эта команда вообще присутствует в системе.

Восстановление депонированных данных

Для получения депонированных данных выполняется следующий протокол:

  1. Клиент запрашивает список депонированных записей (/get_records).
  1. Клиент запрашивает ассоциированный телефонный номер, на который сервером будет направлен код подтверждения (/get_sms_targets).
  1. Клиент инициирует генерацию и доставку кода подтверждения (/generate_sms_challenge).
  1. После того как пользователь ввел iCSC и код подтверждения из SMS, клиент инициирует попытку аутентификации с использованием протокола SRP-6a (/srp_init).
  1. После получения ответа от сервера клиент производит вычисления, предписанные протоколом SRP-6a, и запрашивает депонированные данные (/recover).
  1. В случае если клиент успешно аутентифицировался, сервер возвращает депонированные данные, предварительно зашифровав их на ключе, выработанном в процессе работы протокола SRP-6a (если протокол отработал успешно, то и сервер, и клиент вычислили этот общий ключ).

Важно отметить, что номер телефона, полученный на шаге 2, используется исключительно для нужд пользовательского интерфейса, то есть чтобы показать пользователю номер, на который будет отправлен код подтверждения, и на шаге 3 клиент не передает серверу номер, на который следует отправлять код подтверждения.

Secure Remote Password

На шаге 4 клиент начинает выполнение протокола SRP-6a. Протокол SRP (Secure Remote Password) - это протокол парольной аутентификации, защищенный от прослушивания и man-in-the-middle атак. Таким образом, например, при использовании этого протокола невозможно перехватить хеш пароля и затем пытаться восстановить его, просто потому, что никакой хеш не передается.

Apple использует наиболее совершенный вариант протокола, SRP-6a. Этот вариант предписывает разрывать соединение при неудачной аутентификации. Кроме того, Apple позволяет лишь десять неудачных попыток аутентификации для данного сервиса, после чего все последующие попытки блокируются.

Подробное описание протокола SRP и его математических основ выходит за рамки статьи, но для полноты изложения ниже представлен частный вариант, используемый службой com.apple.Dataclass.KeychainSync .

В качестве хеш-функции H используется SHA-256 , а в качестве группы (N , g) - 2048-битная группа из RFC 5054 «Using the Secure Remote Password (SRP) Protocol for TLS Authentication». Протокол выполняется следующим образом:

  1. Устройство генерирует случайное значение a , вычисляет A=g^a mod N , где N и g - параметры 2048-битной группы из RFC 5054 , и отправляет на сервер сообщение, содержащее идентификатор пользователя ID , вычисленное значение A и код подтверждения из SMS. В качестве идентификатора пользователя используется значение DsID - уникальный числовой идентификатор пользователя.
  2. Получив сообщение, сервер генерирует случайное значение b и вычисляет B=k*v + g^b mod N , где k - множитель, определенный в SRP-6a как k=H(N, g) , v=g^H(Salt, iCSC) mod N - верификатор пароля, хранящийся на сервере (аналог хеша пароля), Salt - случайная соль, сгенерированная при создании учетной записи. Сервер отправляет клиенту сообщение, содержащее B и Salt .
  3. Путем несложных математических преобразований клиент и сервер вычисляют общий сессионный ключ K . На этом первая часть протокола - выработка ключа - завершена, и теперь клиент и сервер должны убедиться, что они получили одно и то же значение K .
  4. Клиент вычисляет M=H(H(N) XOR H(g) | H(ID) | Salt | A | B | K) , доказательство того, что он знает K , и отправляет на сервер M и код подтверждения из SMS. Сервер также вычисляет M и сравнивает полученное от клиента и вычисленное значения; если они не совпадают, то сервер прекращает выполнение протокола и разрывает соединение.
  5. Сервер доказывает клиенту знание K путем вычисления и отправки H(A, M, K) . Теперь оба участника протокола не только выработали общий ключ, но и убедились, что этот ключ одинаков у обоих участников. В случае со службой депонирования сервер также возвращает случайный вектор инициализации IV и депонированную запись, зашифрованную на общем ключе K с использованием алгоритма AES в режиме CBC .

Использование SRP для дополнительной защиты пользовательских данных, на мой взгляд, существенно улучшает безопасность системы от внешних атак хотя бы потому, что позволяет эффективно противостоять попыткам перебора iCSC: за одно подключение к сервису можно попробовать только один пароль. После нескольких неудачных попыток учетная запись (в рамках работы со службой депонирования) переводится в состояние soft lock и временно блокируется, а после десяти неудачных попыток учетная запись блокируется окончательно и дальнейшая работа со службой депонирования возможна только после сброса iCSC для учетной записи.

В то же время использование SRP никак не защищает от внутренних угроз. Депонированный пароль хранится на серверах Apple, соответственно, можно предположить, что Apple может при необходимости получить к нему доступ. В таком случае, если пароль не был защищен (например, зашифрован) до депонирования, это может привести к полной компрометации записей Keychain, сохраненных в iCloud, так как депонированный пароль позволит расшифровать ключи шифрования, а они - записи Keychain (обрати внимание на com.apple.Dataclass.KeyValue).

Однако в документе «iOS Security» Apple утверждает, что для хранения депонированных записей используются специализированные аппаратные модули безопасности (Hardware Security Module, HSM) и что доступ к депонированным данным невозможен.

Безопасность депонирования

iCloud предоставляет защищенную инфраструктуру для депонирования Keychain, обеспечивающую восстановление Keychain только авторизованными пользователями и устройствами. Кластеры HSM защищают депонированные записи. Каждый кластер имеет собственный ключ шифрования, использующийся для защиты записей.

Для восстановления Keychain пользователь должен аутентифицироваться, используя имя пользователя и пароль iCloud, и ответить на присланное SMS. Когда это выполнено, пользователь должен ввести код безопасности iCloud (iCSC). Кластер HSM проверяет корректность iCSC, используя протокол SRP; при этом iCSC не передается на серверы Apple. Каждый узел кластера, независимо от других, проверяет, не превысил ли пользователь максимально допустимое количество попыток получения данных. Если на большей части узлов проверка завершается успешно, то кластер расшифровывает депонированную запись и возвращает ее пользователю.

Далее устройство использует iCSC, чтобы расшифровать депонированную запись и получить пароль, использованный для шифрования записей Keychain. При помощи этого пароля Keychain, полученная из Key/Value-хранилища, расшифровывается и восстанавливается на устройство. Допускается лишь десять попыток аутентификации и получения депонированных данных. После нескольких неудачных попыток запись блокируется, и пользователь должен обратиться в службу поддержки для разблокировки. После десятой неудачной попытки кластер HSM уничтожает депонированную запись. Это обеспечивает защиту от брутфорс-атак, направленных на получение записи.

К сожалению, проверить, используются ли HSM на самом деле, не представляется возможным. Если все действительно так и HSM не позволяют прочитать хранящиеся в них данные, то можно утверждать, что данные iCloud Keychain защищены и от внутренних угроз. Но, повторюсь, к сожалению, доказать или опровергнуть использование HSM и невозможность чтения данных из них нельзя.

Остается еще один способ защиты данных от внутренней угрозы - защита депонируемых данных на устройстве перед передачей на серверы Apple. Из описания Apple следует (и реверсинг это подтверждает), что такая защита применяется - депонируемый пароль предварительно зашифровывается при помощи iCSC. Очевидно, что в этом случае уровень безопасности (от внутренней угрозы) напрямую зависит от сложности iCSC и четырехсимвольный iCSC, используемый по умолчанию, не обеспечивает достаточной защиты.

Итак, мы выяснили, как работают отдельные элементы системы, и теперь самое время посмотреть на систему целиком.

Putting it all Together

На схеме представлена работа iCloud Keychain в части депонирования и восстановления записей Keychain. Система работает следующим образом:

  1. Устройство генерирует набор случайных ключей (в терминологии Apple - keybag) для шифрования записей Keychain.
  2. Устройство зашифровывает записи Keychain (имеющие установленный атрибут kSecAttrSynchronizable) с помощью набора ключей, сгенерированного на предыдущем шаге, и сохраняет зашифрованные записи в Key/Value-хранилище com.apple.sbd3 (ключ com.apple.securebackup.record).
  3. Устройство генерирует случайный пароль, состоящий из шести групп по четыре символа (энтропия такого пароля - около 124 бит), зашифровывает набор ключей, сгенерированный на шаге 1, при помощи этого пароля и сохраняет зашифрованный набор ключей в Key/Value-хранилище com.apple.sbd3 (ключ BackupKeybag).
  4. Устройство зашифровывает случайный пароль, сгенерированный на предыдущем шаге, с помощью ключа, полученного из кода безопасности iCloud пользователя, и депонирует зашифрованный пароль службе com.apple.Dataclass.KeychainSync .

При настройке iCloud Keychain пользователь может применять сложный или случайный iCSC вместо предлагаемого по умолчанию четырехзначного кода. В случае использования сложного кода механизм работы системы депонирования не меняется; отличие лишь в том, что ключ для шифрования случайного пароля будет вычислен не из четырехзначного iCSC, а из более сложного, введенного пользователем.

При случайном коде подсистема депонирования пароля не используется вообще. При этом случайный пароль, сгенерированный системой, и является iCSC, и задача пользователя его запомнить и безопасно хранить. Записи Keychain все так же зашифровываются и сохраняются в Key/Value-хранилище com.apple.sbd3 , но служба com.apple.Dataclass.KeychainSync не используется.

Выводы

Можно смело утверждать, что с технической точки зрения (то есть social engineering не рассматриваем) и по отношению к внешним угрозам (то есть не Apple) безопасность службы депонирования iCloud Keychain находится на достаточном уровне: благодаря использованию протокола SRP даже при компрометации пароля iCloud злоумышленник не сможет получить доступ к записям Keychain, так как для этого дополнительно необходим код безопасности iCloud, а перебор этого кода существенно затруднен.

В то же время, используя другой механизм iCloud Keychain - синхронизацию паролей, злоумышленник, скомпрометировавший пароль iCloud и имеющий непродолжительный физический доступ к одному из устройств пользователя, может полностью скомпрометировать и iCloud Keychain: для этого достаточно добавить устройство злоумышленника в «круг доверия» устройств пользователя, а для этого достаточно знать пароль iCloud и иметь кратковременный доступ к устройству пользователя, чтобы подтвердить запрос на добавление нового устройства к «кругу».

Если же рассматривать защиту от внутренних угроз (то есть Apple или кто-либо с доступом к серверам Apple), то в этом случае безопасность службы депонирования выглядит не так радужно. Утверждения Apple об использовании HSM и невозможности чтения данных из них не имеют неопровержимых доказательств, а криптографическая защита депонируемых данных завязана на код безопасности iCloud, при настройках по умолчанию является крайне слабой и позволяет любому, кто в состоянии извлечь с серверов (или из HSM) Apple депонированные записи, практически моментально восстановить четырехзначный код безопасности iCloud.

В случае использования сложного алфавитно-цифрового кода эта атака становится сложнее, так как возрастает количество возможных паролей. Если же iCloud Keychain сконфигурирован использовать случайный код, то служба депонирования вообще не привлекается, что фактически делает этот вектор атаки невозможным.

Максимальный уровень безопасности (не считая полного отключения iCloud Keychain, конечно) обеспечивается при использовании случайного кода - и не столько потому, что такой код сложнее подобрать, сколько потому, что при этом не задействована подсистема депонирования паролей, а следовательно, уменьшается и attack surface. Но удобство этого варианта, конечно, оставляет желать лучшего.

Продвинутым пользователям устройств от Apple известна функция «Связка ключей iCloud » (существуют и другие Связки ключей, например, Вход, Система и тд, доступные на Mac), значительно упрощающая работу с паролями и другими личными данными на устрйоствах под управлением iOS и macOS. В этом материале мы подробно расскажем о процессе настройки сервиса, а также ответим на часто возникающие вопросы.

Вконтакте

Что такое «Связка ключей iCloud» и зачем это нужно?

«Связка ключей» представляет собой менеджер паролей для iPhone, iPod Touch, iPad и компьютеров Mac, где хранятся учетные данные для входа на сайты через браузер Safari, информация платежных карт, а также сведения о сетях Wi-Fi со всех одобренных гаджетов под управлением iOS 7.0.3, OS X Mavericks 10.9 и более новых выпусков «яблочных» ОС.

Кроме того, в «Связке ключей iCloud » для Mac также хранятся данные учетных записей, используемых в стандартных приложениях, таких как «Календарь », «Контакты », «Почта » и «Сообщения ». Когда пользователь заходит в соцсеть или открывает сайт, на котором зарегистрирован, сервис автоматически добавляет данные учетных записей на все связанные устройства.

Функция « является очень удобным инструментом для владельцев нескольких устройств Apple.

«Связка ключей» работает во всех странах?

Да. «Связку ключей» можно настроить и пользоваться в любой стране на любом совместимом устройстве. Однако в некоторых странах сервис работает без возможности использования «Кода безопасности iCloud» (подробнее ниже).

Например, при настройке «Связки ключей» в России пользователь может (при необходимости) защитить личные данные при помощи «Кода безопасности iCloud» (настройка при помощи SMS), тем самым сохраняя все данные сервиса на серверах Apple (более подробно об этом читайте ниже).

Примечание: Если вы используете двухфакторную аутентификацию, то устройство считается доверенным при выполнении входа - т.е. «Код безопасности iCloud» не требуется.

  • Настройки и перейдите в раздел Apple ID [имя пользователя] -> Пароль и безопасность .

  • на Mac перейдите по пути «Системные настройки» iCloud Учетная запись Безопасность .

Как настроить «Связку ключей iCloud» на Mac, iPhone или iPad?

На iPhone или iPad:

После установки обновления мобильной операционной системы Ассистент настройки предлагает настроить «Связку ключей iCloud ». Если вы этого не сделали сразу, не волнуйтесь, настроить функцию можно в любое удобное для вас время. Для этого:

  • На iOS 10.3 и выше откройте приложение «Настройки », выберите свое имя (в самом верху) и войдите в раздел iCloud (на девайсах под управлением более ранней версии iOS данный раздел находится по пути: «Настройки » → iCloud).

  • Перейдите в раздел «.

  • Активируйте переключатель . Введите пароль от учетной записи и следуйте дальнейшим инструкциям на дисплее.

На компьютерах Mac:

  • Откройте меню Apple (), выберите пункт «Системные настройки ».
  • Выберите раздел iCloud и активируйте переключатель «Связка ключей iCloud », после чего следует ввести Apple ID и пароль и следовать появившейся инструкции.

Добавление дополнительных устройств

Если вы хотите добавить дополнительные устройства, «Связку ключей iCloud » нужно включить на каждом из них. При активации функции на новом девайсе каждое устройство, где она настроена, получит запрос на подтверждение.

Например, при включении Связки ключей в iPhone на экране Mac , использующем ту же учетную запись Apple ID (iCloud), появится такое сообщение:

Нажмите «Продолжить», после чего откроются настройки iCloud, где необходимо ввести пароль Apple ID и тем самым разрешив устройству использовать Связку ключей .

Обратная процедура – включаем Связку ключей на Mac – уведомление приходит на iPhone.

После подтверждения информация на новом гаджете будет обновляться автоматически, если устройство находится в Интернете.

Примечание: При включенной двухфакторной аутентификации включается без получения подтверждения с другого устройства.

Для того чтобы проверить включена ли на устройстве двухфакторная аутентификация:

  • на iPhone или iPad откройте приложение Настройки и перейдите в раздел Apple ID [имя пользователя] Пароль и безопасность .
  • на Mac перейдите по пути «Системные настройки» iCloud Учетная запись Безопасность .

Код безопасности при настройке «Связки ключей». Что это такое?

Примечание: Если вы используете двухфакторную аутентификацию, то «Код безопасности iCloud» не требуется.

Код безопасности представляет собой набор из шести цифр или комбинации цифр и букв, использующийся для идентификации пользователя и доступа к другим возможностям «Связка ключей iCloud » . К примеру, если вы потеряли устройства, с помощью кода можно восстановить сохраненные в ней данные. При использовании «Кода безопасности iCloud» все данные сервиса хранятся на серверах Apple. Для получения кода безопасности необходимо получение SMS на номер телефона, зарегистрированного в стране, где « поддерживается официально.

Соответственно, если не использовать «Код безопасности iCloud» , то данные из Связки ключей хранятся и синхронизируются только между одобренными устройствами.


Повторимся, что Код безопасности позволяет активировать «Связку ключей iCloud » без необходимости получения одобрения с других устройств, однако для этого должна быть включена . Просто включите переключатель « как описано выше и введите пароль и код безопасности, автоматически отображающийся на доверенных гаджетах.

Как просмотреть пароли от сайтов в Связке ключей iCloud на iPhone или iPad

При активированной Связке ключей iCloud функция «Автозаполнение» от Apple сама вводит учетные данные для авторизации пользователя в соответствующие поля на web-сайтах или в приложениях. Однако на некоторые сайты запрещают автоматический ввод данных. В таких случаях нужно скопировать и вставить свое имя пользователя и пароль вручную. Делается это следующим образом:

1. Откройте приложение «Настройки» ;

2. Выберите «Учетные записи и пароли» ;

3. Выберите «Пароли программ и сайтов» и при необходимости пройдите проверку пользователя с помощью Touch ID или Face ID;

4. Выберите соответствующую запись из списка или используя поле поиска в верхней части экрана «Пароли» , введите название приложения или web-сайта, для которого необходимо ввести учетные данные;

5. Нажмите и удерживайте параметр имя пользователя/пароль, а затем во всплывающем окне выберите «Копировать» ;

6. Откройте соответствующее приложение или web-страницу, нажмите и удерживайте поле ввода имени пользователя и пароля, а затем выберите опцию «Вставить» .

7. Удалить учетные данные можно с помощью параметра «Изменить» в правом верхнем углу экрана «Пароли» . Помимо этого, данный параметр можно использовать для изменения учетных данных для соответствующих web-сайтов.

Как просмотреть логины и пароли от сайтов в Связке ключей iCloud на Mac

1. Запустите браузер Safari.

2. Откройте настройки программы (Safari Настройки ).

3. Перейдите во вкладку Пароли .

4. Введите пароль Администратора.

5. Выберите необходимый сайт (можно воспользоваться поиском). Напротив будет указан логин (Имя пользователя) и пароль.

В Связку ключей iCloud можно в любой момент добавить личную информацию и данные банковской карты с помощью iPhone или iPad, после чего они станут доступны на всех устройствах пользователя. Для этого необходимо сделать следующие действия:

1. Откройте приложение «Настройки» ;

2. Выберите раздел Safari ;

3. Выберите «Автозаполнение» ;

4. Для того чтобы добавить личную информацию, выберите «Мои данные» и выберите свой контакт в списке. Для добавления данных карты нажмите «Сохраненные кредитные карты» , а затем выберите «Добавить кредитную карту» .

Может ли техподдержка Apple восстановить код безопасности iCloud для «Связки ключей»?

Постарайтесь хорошенько запомнить код или записать в безопасном месте, поскольку, если вы его забудете, техподдержка Apple не сможет помочь Вам в восстановлении кода . Кроме того, необходимо помнить, что число неправильных попыток ввода кода ограничено, и после превышения лимита доступ к «Связке ключей iCloud » будет заблокирован. В таком случае нужно обратиться в техподдержку Apple и после удачной идентификации личности пользователю будут предоставлены дополнительные попытки ввода кода. Если и в этом случае будет указана неверная комбинацию, Apple навсегда сотрет «Связку ключей iCloud » со своих серверов (естественно, при этом все личные данные будут утеряны).

Можно ли настроить «Связку ключей» без кода безопасности (без номера телефона с поддержкой SMS)?

Можно. Установка кода безопасности при настройке функции вовсе необязательна. Но в таком случае ваши данные будут храниться не на сервере, а на самих устройствах. Такой подход предполагает больший контроль пользователя над своими данными, однако у него есть существенный минус – Apple не сможет оказать помощь в восстановлении «Связки ключей iCloud ».

Если вдруг для вашей страны возможность настроить «Связку ключей iCloud » по SMS отсутствует, не беспокойтесь, вы все равно сможете подключить функцию. Для этого при настройке (инструкция по настройке выше) сервиса на iOS-устройствах не выбирать параметр «Подтвердить с кодом» в меню «Дополнения» :

На компьютерах Mac необходимо перейти в раздел «Дополнительные параметры » и выбрать пункт «Не создавать код безопасности» .

Повторимся, что в этом случае «Связка ключей iCloud » будет храниться только на устройстве, а не на сервере Apple, и обновляться только на одобренных гаджетах. Завершите настройку, следуя открывшейся на экране инструкции.

Начиная с iOS 7 и OS X 10.9 Mavericks, у пользователей iOS-устройств и компьютеров Mac появилась возможность . Она хранит актуальные имена пользователей, пароли к сайтам (тому же ВКонтакте), данные кредитных карт для удобной оплаты, а также информацию о сетях Wi-Fi. Несмотря на столь давний релиз, многие почему-то не пользуются этой функцией. И очень зря.

Синхронизируемые пароли, данные карт и другая информация хранятся только на одобренных устройствах. Иными словами, при добавлении нового iPhone, iPad или Mac к «Связке ключей» вам потребуется подтвердить запрос с другого гаджета. Как же ее настроить?

Для начала необходимо зайти в настройки устройства, затем в раздел iCloud. Чуть ниже вы увидите функцию «Связка ключей», которую нужно активировать.

При настройке появится запрос на создание кода безопасности iCloud. Он нужен для последующего добавления новых устройств, поскольку тогда вам потребуется ввести код подтверждения, полученный по SMS, а также код безопасности iCloud. Неудивительно, что подходит к безопасности данных столь ответственно, ведь многие могут хранить в «Связке ключей» карты с сотнями тысяч рублей на счету.

Впрочем, если вы заходите добавить новый iPhone к «Связке ключей», эту операцию можно будет подтвердить с доверенного устройства. Будьте внимательны! Apple не сможет помочь вам восстановить код безопасности iCloud, поэтому на всякий случай его лучше где-нибудь записать.

Как много людей сегодня доверяют компьютерам и смартфонам? Практически все в них хранят фотографии, сведения о местоположении, нередко данные и коды с кредитных карт и бесчисленное количество паролей.

Последние являются основным механизмом защиты в интернете, за ними хранится доступ ко всему тому, что пользователь наверняка хотел бы скрыть, а значит, они должны быть продвинутыми и трудноподбираемыми. Количество таких паролей накапливается, переваливает за сотню, и вот никто уже не в силах вспомнить их.

Для защиты и надежного хранения всей этой информации компанией Apple был придуман инструмент под названием Keychain ("Связка ключей").

ключей"?

По своей сути это менеджер паролей, разработанный компанией Apple специально для своей операционной системы. Данный инструмент был представлен вместе с релизом Mac OS 8-й итерации, вышедшей в 1998 году. После данная утилита была частью каждого релиза Apple, в том числе OS X и iOS (с 2013 года именуется как “Связка ключей iCloud”).

Она на Mac способна хранить данные различного характера, например: пароли от веб-сайтов, FTP-серверов, SSH-аккаунтов, общих сетей, беспроводных сетей, скрытых заметок, общего программного обеспечения и оборудования, а также для сертификатов и зашифрованных образов диска.

История продукта

Изначально похожий механизм использовался в приложении PowerTalk, которое представляло собой почтовый клиент от Apple. Приложение было создано еще в ранних 90-х, а Keychain помогала контролировать все пользовательские данные из различных почтовых служб, к которым мог подключить PowerTalk.

В связи с использованием шифрования пароли было трудно запомнить и восстановить. Посему был необходим механизм, который позволял бы вводить пользователю лишь один пароль (мастер-пароль), открывающий доступ ко всем почтовым службам (у каждой из которых свои входные данные и пароли).

Данная идея, несмотря на свою очевидность и полезность, практически умерла в тот момент, когда в Apple решили прекратить поддержку PowerTalk. Но с возвращением Стива Джобса данная функция вернулась в и работала не только в одной программе, но и в системе целиком.

Хранилище и доступ

В операционных системах Mac 10-го поколения и старше все Keychain-файлы хранятся в специальной директории системы, также эти данные можно найти в специальном приложении, которое расположено в папке “Утилиты”.

«Связка ключей» представляет собой бесплатное и свободное ПО (исходный код утилиты имеется в свободном доступе), которое распространяется по публичной лицензии компании Apple.

Keychain-файл хранит в себе массу информации, из нее зашифроваными являются лишь заметки и пароли, все остальное (названия, ссылки) доступно всем.

Блокировка и разблокировка

По умолчанию, Keychain-файл защищен тем же паролем, что и поэтому функция становится доступна сразу после входа под своим логином и паролем. При необходимости его для этой функции можно установить отдельно.

Также для большей безопасности можно установить интервал блокировки, например, в 15 минут. В таком случае, если компьютер не использовался в течение 15 минут, при попытке воспользоваться "Связкой ключей" он затребует пароль.

"Связка ключей

Данный продукт компания Apple анонсировала спустя 15 лет после появления оригинальной "Связки ключей". В 2013 году на конференции WWDC вместе с iOS 7 версии и OS X Mavericks была представлена технология, позволяющая синхронизировать все засекреченные данные пользователя и надежно сохранить их.

Данная опция является неким онлайн-хранилищем, в котором находятся все пользовательские данные, в число которых входят: пароли от веб-страниц, пароли от беспроводных сетей, информация об учетных записях и платежные данные кредитных карт (за исключением кодов безопасности - CVV).

Все эти данные зашифрованы по стандарту AES 256-bit и доступны лишь конкретному пользователю и только в и приложенях, адаптированных для работы с этой утилитой (они отправляют запрос в Safari, браузер проверяет соответствие ссылок и предлагает приложению пароль, ранее сохраненный в системе).

Также в возможности сервиса входит составление длинных, сложных и безопасных паролей для сайтов, на которых регистрируется пользователь.

"Связка ключей

Начать работать со «Связкой ключей iCloud» совсем нетрудно, но в первую очередь нужно убедиться, что на гаджете (смартфоне или планшете) установлена iOS 7.0.3 и новее, а на компьютере - OS X 10.9 и новее.

Настройка «Связки ключей iCloud» (инструкция для Mac):

  • Для начала необходимо запустить “Настройки” (либо из меню Apple, которое кроется за иконкой яблока в верхнем левом углу, либо из Dock).
  • Выбрать подменю iCloud.
  • Ввести пароль для разблокировки компьютера.
  • Ввести данные Apple ID.

Как добавить в «Связку ключей» кредитную карту (инструкция для Mac):

  • Необходимо запустить программу Safari.
  • Затем зайти в настройки этой программы.
  • В настройках выбрать подменю Autofill (автозаполнение).
  • Рядом с подпунктом “Кредитные карты” найти кнопку “Редактировать”.
  • Нажать на кнопку “Добавить” и ввести данные кредитной карты.

Как настроить «Связку ключей iCloud» (инструкция для iOS):

  • Выбрать подменю iCloud.
  • Затем подпункт "Связка ключей".
  • Переместить тумблер "Связка ключей iCloud" в положение ON (Вкл.). Соответственно для выключения нужно провести обратное действие, переключить тумблер в положение OFF (Выкл.).
  • После этого будет предложено придумать новый пароль или ввести существующий (код безопасности «Связки ключей iCloud» для активации), а также прикрепить сторонние гаджеты для подтверждения.
  • Необходимо запустить “Настройки” с экрана “Домой”.
  • Выбрать подменю Safari.
  • Затем подпункт Password & AutoFill (Пароли и автозаполнение).
  • Ввести код-пароль.
  • Выбрать подменю Saved Credit Cards (Сохраненные кредитные карты).
  • Добавить кредитную карту (ввести нужную информацию и нажать “Готово”).

Синхронизация паролей

Синхронизация данных в Связке ключей не является необходимой опцией. Более того, синхронизировать данные можно минуя iCloud (только на компьютерах Mac).

Чтобы избежать синхронизации данных с облаком и их последующего там хранения, во время активации "Связки ключей" нужно пропустить этап с созданием проверочного шестизначного кода. В этом случае все данные будут храниться лишь на физическом носителе, локально.

Также возможна синхронизация данных с помощью файлов, хранящихся в /Library/Keychains/. Обычно подобное используется в корпоративных сетях и при наличии нескольких общих компьютеров Mac. К сожалению, синхронизация нередко пропадает при смене пароля в системе на одном из устройств (в том числе Windows).

Доступ к "Связке ключей"

Перед тем как получить всю информацию, хранящуюся в облаке, следует подтвердить «Связку ключей iCloud». Это можно делать с помощью SMS или второго устройства.

В первом случае пользователь получит случайно сгенерированный код-пароль для подтверждения личности или полноценной активации функции "Связка ключей iCloud". Подтвердить с другого устройства можно в том случае, если у пользователя имеется гаджет, на котором уже работает данная функция.

Код безопасности

Это специальный шифр, состоящий из 6 цифр, либо из усложненной буквенно-числовой комбинации, который необходим для того, чтобы получить доступ к паролям и картам, хранящимся в "Связке ключей", а также в случае потери доступа к ней.

Возможные проблемы

Ничто не идеально, даже «Связка ключей iCloud». Нет, речь идет не о дырах в безопасности или потере данных, но существует немало проблем, связанных с подключением данной функции и возвращением доступа после обновления, сброса и настройки нового устройства. Список самых распространенных вопросов и проблем представлен ниже.

«Связку ключей iCloud» не удалось настроить в связи с отсутствием СМС-кода? Если по какой-то причине СМС-сообщение с кодом-паролем не приходит, необходимо:

  • Проверить соединение с сотовой сетью.
  • Убедиться в том, что телефон способен получать СМС (тарифный план и установленная СИМ-карта поддерживают эту возможность).
  • Проверить, тот ли номер указан для получения СМС-кода. Для этого в настройках "Связки ключей" найти подпункт “Дополнительно” и указать верный номер в пункте “Проверочный номер”.

«Связка ключей iCloud» не синхронизирует данные между устройствами. В этом случае почти всегда помогает полное отключение и включение функции. Сделать это необходимо на всех устройствах. После повторного включения все они получат наиболее актуальные данные с сервера и продолжат работать в обычном режиме.

Не получается найти пароли, сохраненные в «Связку ключей iCloud»? Данные о них и кредитных картах, сохраненных в облаке, можно найти следующим образом:

  • Перейти в “Настройки” с экрана “Домой”.
  • Выбрать подменю Safari.
  • Затем подпункт Passwords (Пароли).
  • Система потребует ввести пароль или воспользоваться Touch ID (дактилоскопическим сенсором) для подтверждения личности.
  • После проверки можно выбрать любой сайт и посмотреть пароль к нему.

Safari не сохраняет данные в «Связку ключей» и не предлагает подстановку паролей. Данную проблему можно решить, активировав тумблер “Имена и пароли” в подменю “Автозаполнение” в настройках Safari.

Поддерживаемые устройства

«Связка ключей iCloud» поддерживается на всех актуальных устройствах Apple. В их число входят все компьютеры, которые работают на базе операционной системы macOS поколения Mavericks и новее (почти все ПК 2007 года выпуска и более современные).

Также данная функция работает на ряде мобильных устройств (всех, на которые можно установить мобильную операционную систему версии 7.0.3). В их число входят: iPhone с 4-го поколения и более современные, iPad со 2-го поколения и более современные, с 5-го поколения и более современные.

Ознаменовал для пользователей техники Apple появление ещё одного отличного сервиса в рамках iCloud – синхронизации паролей с помощью «Связки ключей iCloud». В Apple сделали всё возможное, чтобы упростить настройку и использование данной функции, но у наших читателей всё равно возникает много вопросов об этой новинке.

Что умеет Связка ключей iCloud?

Связка ключей iCloud предлагает:

  • синхронизацию логинов, паролей и данных из форм Safari
  • синхронизацию данных кредитных карт
  • синхронизацию паролей Wi-Fi

Синхронизация работает на Маках с OS X 10.9, iPhone, iPod touch и iPad с iOS 7.0.3. При активации связки ключей в iCloud создаётся единое облачное хранилище, в котором собираются ВСЕ ваши пароли. Все они одновременно доступны со всех ваших устройств, подключённых к этому же аккаунту iCloud.

Обращаем ваше внимание – на Маках Связка ключей iCloud работает только c Safari! Пользователям Chrome, Firefox или Opera новая функция Apple мало пригодится, потому что плагинов, добавляющих её поддержку, для этих браузеров нет и не будет. Альтернатив Safari на iOS в данном случае тоже нет.

Первоначальная настройка Связки ключей iCloud на Маке

Сразу скажем – для жителей Украины, Беларуси и других стран СНГ, не перечисленных в данном списке , активация Связки ключей с Мака – единственный способ нормально настроить эту функцию.

Откройте настройки Мака, перейдите в пульт iCloud, включите галочку «Связка ключей»:

Мак настойчиво предложит вам включить запрос пароля от аккаунта пользователя сразу после пробуждения из режима сна или снятия блокировки экрана – разумеется, в целях дополнительной безопасности. Это предложение можно проигнорировать.

Затем вас попросят создать PIN-код для Связки ключей. По умолчанию это четырёхзначное число, которое нужно запомнить и вводить при подключении каждого нового устройства к вашей Связке ключей:

Но и это необязательно. Обратите внимание на кнопку «Дополнительно». Она открывает несколько опций, касающихся PIN-кода:

Первая позволит параноикам задать код любой длины с использованием любых символов, а не только цифр. Вторая сгенерирует код автоматически. Третья вообще позволит отказаться от кода безопасности. Но как будет происходить подтверждение новых устройств в этом случае? Очень просто – с помощью других ваших устройств.

После создания PIN-кода или отказа от него настройка завершится.

Начальная настройка Связки ключей на iOS проходит похожим образом – заходите в меню «Настройки-iCloud» и включаете галочку «Связка ключей», после чего создаёте PIN. Проблема в том, что вас заставят вводить номер мобильного телефона, причём из стран СНГ поддерживается только Россия.

Теперь поговорим о подключении новых устройств к Связке ключей iCloud.

Подключение нового iOS-устройства к Связке ключей iCloud

Зайдите в уже упомянутое выше меню «Настройки-iCloud» и выберите пункт «Связка ключей»:

Согласитесь на включение функции:

Вам обязательно нужно будет ввести пароль от аккаунта iCloud:

После этого Связка ключей перейдёт в режим ожидания активации.

Как мы уже сказали, при добавлении нового устройства к вашей Связке ключей iCloud у вас есть две альтернативы:

  • ввести PIN-код
  • подтвердить подключение с другого устройства

На iOS-устройстве вы увидите кнопку «Подтвердить с кодом», нажав на которую, вы сможете ввести PIN и немедленно активировать функцию:

Запасной вариант – подтверждение с другого устройства. Как только вы попытаетесь включить Связку ключей iCloud на одном из своих устройств, на все другие гаджеты, подключённые к этому же аккаунту iCloud и этой же Связке ключей, придут уведомления:

Но это не просто уведомление. Нажав на баннер, вы попадёте в настройки iCloud, где вам предложат ввести пароль от аккаунта в качестве подтверждения согласия на добавление нового устройства к вашей Связке ключей. После ввода пароля на любом другом вашем устройстве новый гаджет считается окончательно подключённым, синхронизация паролей через Связку ключей iCloud начнётся.

Подключение нового Мака к Связке ключей iCloud

Процесс идентичен тому, что был описан в предыдущей главе обзора. Вы переходите в настройки OS X, в пульт iCloud и включаете Связку ключей. Вводите пароль от аккаунта iCloud.

Ввод PIN-кода в особых пояснениях не нуждается:

Если не хотите вводить PIN, Мак останется в режиме ожидания активации:

Пропустить уведомление о необходимости подтверждения нового устройства довольно трудно – и в OS X, и в iOS оно будет висеть на виду: