
iOS_8_3_Security_WP_RS
.pdfBluetooth
Поддержка Bluetooth в iOS реализована таким образом, чтобы обеспечить предоставление полезных функций без излишнего доступа к конфиденциальным данным. При установлении соединения устройства iOS поддерживают режим шифрования 3, режим безопасности 4 и уровень обслуживания 1. iOS поддерживает следующие профили Bluetooth:
•профиль громкой связи (HFP 1.5);
•профиль доступа к телефонной книге (PBAP);
•профиль расширенного распределения звука (A2DP);
•профиль дистанционного управления аудио/видео (AVRCP);
•профиль личной сети (PAN);
•профиль устройства взаимодействия с пользователем (HID).
Поддержка этих профилей зависит от устройства. Подробнее см. на странице https://support.apple.com/ru-ru/ht3647.
Единый вход
iOS поддерживает аутентификацию в корпоративных сетях посредством единого входа в систему (SSO). Технология SSO работает с сетями на основе протокола Kerberos, обеспечивая аутентификацию пользователей в службах, к которым
у них есть доступ. SSO можно использовать для целого ряда различных сетевых операций, начиная с безопасных сеансов Safari и заканчивая программами сторонних разработчиков.
Для взаимодействия со шлюзами аутентификации на основе Kerberos и системами встроенной аутентификации Windows, которые поддерживают билеты Kerberos, технология SSO в iOS использует токены SPNEGO и протокол HTTP Negotiate. Также поддерживается аутентификация на основе сертификатов. Поддержка SSO основана на проекте с открытым кодом Heimdal.
Поддерживаются следующие типы шифрования:
•AES128-CTS-HMAC-SHA1-96;
•AES256-CTS-HMAC-SHA1-96;
•DES3-CBC-SHA1;
•ARCFOUR-HMAC-MD5.
Safari поддерживает SSO. Кроме того, на использование этой технологии можно настроить программы сторонних разработчиков, которые используют стандартные сетевые API в iOS. Для конфигурирования SSO в iOS используется компонент профиля конфигурации, позволяющий серверам MDM передавать необходимые настройки на устройства. Сюда входит настройка главного имени пользователя (которым является учетная запись пользователя Active Directory) и настройки сфер Kerberos, а также настройка программ и веб-адресов Safari, которым разрешено использовать SSO.
Обзор безопасности iOS | Июнь 2015 г. |
31 |
Безопасность AirDrop
Устройства iOS, поддерживающие AirDrop, отправляют файлы и информацию на находящиеся поблизости устройства, включая компьютеры Mac с поддержкой
AirDrop и операционной системой OS X Yosemite, при помощи технологии Bluetooth Low Energy (BLE) и разработанной компанией Apple технологии прямого соединения Wi-Fi. Для прямого обмена информацией между устройствами используется радиосвязь Wi-Fi — подключение к Интернету или точке доступа Wi-Fi не требуется.
Когда пользователь включает AirDrop, на устройстве сохраняется 2048-битный идентификатор RSA. Кроме того, создается хэш идентификатора AirDrop
на основе адреса электронной почты и номеров телефона, связанных с Apple ID пользователя.
Когда пользователь использует AirDrop для экспорта элемента, устройство испускает сигнал AirDrop по каналу Bluetooth Low Energy. Если поблизости есть другие устройства, которые не находятся в режиме сна и на которых
включена функция AirDrop, они распознают сигнал и отвечают на него, используя сокращенную версию хэша идентификатора своего владельца.
По умолчанию функция AirDrop настроена на предоставление доступа «Только для контактов». Пользователи также могут настроить AirDrop на доступ «Для всех» или полностью отключить эту функцию. В режиме «Только для контактов» полученные хэши идентификаторов сравниваются с хэшами пользователей в программе «Контакты» на устройстве инициатора. При обнаружении совпадения передающее устройство создает одноранговую сеть Wi-Fi и оповещает об установлении соединения AirDrop, используя Bonjour. Используя это соединение, принимающие устройства отправляют инициатору полные хэши своих идентификаторов.
Если в программе «Контакты» найдено совпадение для полного хэша, в списке общего доступа AirDrop отображается имя получателя и его фотография (при ее наличии в программе «Контакты»).
При использовании AirDrop отправитель должен выбрать пользователя, которому он хочет передать файлы. Передающее устройство инициирует зашифрованное TLS-соединение с принимающим устройством, для чего устройства обмениваются сертификатами удостоверения iCloud. Удостоверение в сертификатах проверяется по программе «Контакты» каждого пользователя. Затем получатель должен принять запрос на входящую передачу от указанного пользователя или устройства.
Если выбрано несколько получателей, этот процесс повторяется на каждом целевом устройстве.
В режиме «Для всех» используется аналогичная процедура, однако если
в программе «Контакты» не найдено совпадения, в списке общего доступа AirDrop на принимающих устройствах отображается силуэт человека и имя устройства, заданное в поле «Настройки» > «Основные» > «Об устройстве» > «Имя».
Обзор безопасности iOS | Июнь 2015 г. |
32 |
Интернет-службы
Создание надежных паролей Apple ID
Идентификатор Apple ID используется для подключения к целому ряду служб, включая iCloud, FaceTime и iMessage.
Чтобы пароли, создаваемые пользователями, были надежными, для всех новых учетных записей пароли должны:
•содержать не менее восьми символов;
•содержать не менее одной буквы;
•содержать не менее одной заглавной буквы;
•содержать не менее одной цифры;
•содержать не более трех одинаковых символов подряд;
•отличаться от имени учетной записи.
Apple предлагает широкий набор служб для повышения практичности
и эффективности устройств, включая такие службы, как iMessage, FaceTime, Siri, Предложения Spotlight, iCloud, Резервное копирование iCloud и Связка ключей iCloud.
Эти интернет-службы построены на тех же критериях обеспечения безопасности, которые лежат в основе всей платформы iOS. Сюда входит безопасная обработка данных, как при хранении на устройстве, так и при передаче по беспроводным сетям; защита личной информации пользователей; и предотвращение вредоносного или несанкционированного доступа к информации и службам. Каждая служба задействует собственную мощную архитектуру обеспечения безопасности,
не нарушая общей простоты использования iOS.
Apple ID
Apple ID — это имя пользователя и пароль, используемые для входа в систему различных служб Apple, таких как iCloud, iMessage, FaceTime, iTunes Store, iBooks Store, App Store и многие другие. Пользователи должны хранить свои идентификаторы Apple ID в безопасности, чтобы защитить свои учетные записи
от несанкционированного доступа. Для этого Apple требует использовать надежные пароли, которые должны содержать не менее восьми символов, включать буквы
ицифры, содержать не более трех одинаковых символов подряд и не должны совпадать с часто используемыми паролями. Пользователям рекомендуется устанавливать еще более надежные пароли, добавляя дополнительные символы
изнаки препинания. Кроме того, если в учетную запись были внесены важные изменения, например, были изменены платежные данные или пароль либо идентификатор Apple ID был использован для входа на новом устройстве, Apple отправляет пользователям электронные письма и push уведомления. Если что-то выглядит незнакомым, пользователям рекомендуется незамедлительно изменить свой пароль Apple ID.
Apple также предлагает двухэтапную проверку идентификатора Apple ID, которая обеспечивает второй уровень защиты учетной записи пользователя. Если включена двухэтапная проверка, то перед внесением изменений в учетную запись Apple ID, входом в систему iCloud или совершением покупок в iTunes Store, iBooks Store или App Store с нового устройства пользователь должен подтвердить свою личность с помощью временного кода, который будет отправлен на одно из доверенных устройств пользователя. Это не позволит постороннему лицу получить доступ
кучетной записи пользователя, даже если он узнает пароль. Пользователи также получают 14-символьный ключ восстановления, который следует хранить в безопасном месте на случай, если они забудут пароль или лишатся доступа
ксвоим доверенным устройствам.
Подробную информацию о двухэтапной проверке Apple ID см. на странице https://support.apple.com/ru-ru/ht5570.
Обзор безопасности iOS | Июнь 2015 г. |
33 |
iMessage
Apple iMessage — это служба обмена сообщениями для устройств iOS
икомпьютеров Mac. С помощью iMessage можно передавать не только текст, но и различные вложения, включая фотографии, контакты и географические координаты. Сообщения отображаются на всех зарегистрированных устройствах пользователя, поэтому начатый диалог можно продолжить на любом удобном устройстве. iMessage активно использует службу Apple Push Notification Service (APNs). Apple не сохраняет сообщения или вложения, а их содержимое защищено с помощью сквозного шифрования, поэтому никто, кроме отправителя
иполучателя, не может получить к ним доступ. Apple не может расшифровать данные.
Когда пользователь включает iMessage на устройстве, оно генерирует две пары ключей для работы со службой: 1280-битный ключ RSA для шифрования
и 256-битный ключ ECDSA на основе кривой NIST P-256 для подписания. Личные ключи из обеих пар ключей сохраняются в связке ключей устройства, а открытые ключи передаются в службу каталогов Apple (IDS), где они связываются с номером телефона или адресом электронной почты пользователя, а также с APNs-адресом устройства.
По мере того как пользователь включает iMessage на дополнительных устройствах, их открытые ключи шифрования и подписания, APNs-адреса и связанные
номера телефонов добавляются в службу каталогов. Пользователь также может добавить дополнительные адреса электронной почты, которые будут проверены путем отправки ссылки для подтверждения. Для проверки номеров телефона используется сеть оператора и SIM-карта. При добавлении нового устройства, номера телефона или адреса электронной почты на всех зарегистрированных устройствах пользователя отображается соответствующее сообщение.
Процесс отправки и получения сообщений в iMessage
Чтобы начать новый диалог iMessage, пользователь вводит адрес или имя собеседника. Если пользователь вводит номер телефона или адрес электронной почты, устройство связывается с IDS для получения открытых ключей
и APNs адресов для всех устройств, связанных с адресатом. Если пользователь вводит имя, устройство сначала извлекает из программы «Контакты» связанные с этим именем номера телефонов и адреса электронной почты, а затем получает открытые ключи и APNs адреса из IDS.
Исходящие сообщения пользователя шифруются отдельно для каждого из устройств получателя. Открытые ключи шифрования RSA принимающих устройств извлекаются из IDS. Для каждого принимающего устройства
отправляющее устройство генерирует случайный 128-битный ключ и шифрует сообщение с помощью этого ключа по алгоритму AES в режиме CTR. Этот ключ AES отдельного сообщения шифруется по схеме RSA-OAEP с использованием открытого ключа принимающего устройства. Сочетание зашифрованного текста сообщения
изашифрованного ключа сообщения хэшируется с использованием SHA-1, затем хэш подписывается по алгоритму ECDSA с использованием личного ключа подписания передающего устройства. Результатом являются сообщения — по одному для каждого принимающего устройства — которые состоят из зашифрованного текста сообщения, зашифрованного ключа сообщения
ицифровой подписи отправителя. Затем они передаются в APNs для доставки адресатам. Шифрование метаданных, таких как метка времени и информация
о маршрутизации APNs, не выполняется. Связь с APNs шифруется с использованием канала TLS с прямой секретностью.
Обзор безопасности iOS | Июнь 2015 г. |
34 |

APNs может ретранслировать сообщения размером до 4 или 16 КБ в зависимости от версии iOS. Если текст сообщения слишком длинный или к сообщению приложена фотография или другой большой объект, вложение шифруется
по алгоритму AES в режиме CTR с использованием случайного 256-битного ключа и загружается в iCloud. Затем получателю в виде содержимого iMessage пересылается ключ AES для вложения, его универсальный идентификатор ресурса (URI) и хэш SHA-1 для зашифрованной формы. За защиту их конфиденциальности и целостности отвечает стандартный процесс шифрования iMessage, который описан ниже.
Вложение, |
|
зашифрованное с помощью |
iCloud |
случайного ключа |
APNs
Подписанное и зашифрованное сообщение для пользователя 2 с URI и ключом вложения
Пользователь 1 |
Пользователь 2 |
Открытый ключ и токен APNs |
Открытый ключ и токен APNs |
для пользователя 2 |
для пользователя 1 |
|
IDS |
При отправке групповых сообщений эта процедура повторяется для каждого получателя и его устройств
На принимающей стороне каждое устройство получает свою копию сообщения из APNs и, при необходимости, извлекает вложение из iCloud. Входящий номер телефона или адрес электронной почты отправителя сравнивается со списком контактов получателя, чтобы по возможности отобразить имя отправителя.
Как и все push-уведомления, сообщения удаляются из APNs после доставки.
В отличие от других уведомлений APNs, если устройство отключено, сообщения iMessage ставятся в очередь для последующей отправки. Сообщения в настоящее время хранятся в течение тридцати дней.
Обзор безопасности iOS | Июнь 2015 г. |
35 |
FaceTime
FaceTime — это служба Apple для совершения видео- и аудиозвонков. Аналогично iMessage, для установления первоначального соединения с зарегистрированными устройствами пользователя вызовы FaceTime также используют службу Apple Push Notification. Содержимое вызовов FaceTime защищено с помощью сквозного шифрования, поэтому никто, кроме отправителя и получателя, не может получить к ним доступ. Apple не может расшифровать данные.
Для установления прямого соединения между устройствами функция FaceTime
использует Internet Connectivity Establishment (ICE). Устройства проверяют свои сертификаты удостоверения и выбирают общий ключ для каждого сеанса,
используя сообщения Session Initiation Protocol (SIP). Криптографические значения nonce, предоставленные каждым устройством, объединяются с ключами «соли» для каждого из медиаканалов, которые передаются в потоковом режиме через Secure Real Time Protocol (SRTP) с использованием шифрования AES-256.
iCloud
iCloud хранит контакты, календари, фотографии, документы и другие данные пользователя и автоматически поддерживает их актуальность на всех устройствах пользователя. Кроме того, программы сторонних разработчиков могут использовать iCloud для хранения и синхронизации документов, а также значений ключей для программ в соответствии с настройками разработчика. Для настройки iCloud пользователям необходимо войти в систему со своим Apple ID и выбрать требуемые службы. Функции iCloud, включая Мой Фотопоток, iCloud Drive
и Резервное копирование, могут быть отключены ИТ-администратором с помощью профиля конфигурации. Служба не учитывает тип хранящихся данных
и обрабатывает все содержимое файлов одинаково, просто как набор байтов.
Каждый файл разбивается на фрагменты и шифруется iCloud с использованием AES-128 и производного ключа, полученного из содержимого каждого фрагмента с хэшированием SHA-256. Ключи и метаданные файла сохраняются в учетной записи iCloud пользователя. Зашифрованные фрагменты файлов сохраняются без какой-либо идентифицирующей пользователя информации в сторонних службах хранения, таких как Amazon S3 и Windows Azure.
iCloud Drive
iCloud Drive использует ключи на основе учетных записей для защиты документов, хранящихся в iCloud. Как и существующие службы iCloud, iCloud Drive разбивает содержимое файла на фрагменты, шифрует их и сохраняет с помощью сторонних служб. Однако ключи содержимого файлов защищаются с помощью ключей записей, хранящихся вместе с метаданными iCloud Drive. Эти ключи записей, в свою очередь, защищаются пользовательским ключом службы iCloud Drive, который затем сохраняется вместе с учетной записью iCloud пользователя. Для получения доступа к метаданным своих документов в iCloud пользователям необходимо пройти аутентификацию в iCloud, а также иметь ключ службы iCloud Drive для раскрытия защищенных частей хранилища iCloud Drive.
CloudKit
Благодаря CloudKit разработчики могут хранить в iCloud значения ключей, структурированные данные и ресурсы. Для контроля доступа к CloudKit используются права программ. CloudKit поддерживает как открытые, так и личные базы данных. Открытые базы данных используются всеми копиями программы, обычно предназначены для общих ресурсов и не шифруются. Личные базы данных используются для хранения данных пользователей.
Обзор безопасности iOS | Июнь 2015 г. |
36 |

Как и в случае iCloud Drive, для защиты информации, хранящейся в личной базе данных пользователя, CloudKit использует ключи на основе учетных записей, а сами файлы разбиваются на фрагменты, шифруются и хранятся с помощью сторонних служб. Аналогично системе защиты данных, CloudKit использует
иерархию ключей. Ключи файлов защищаются с помощью ключей записей CloudKit. Ключи записей, в свою очередь, защищаются с помощью ключа зоны, который защищается ключом службы CloudKit пользователя. Ключ службы CloudKit хранится в учетной записи iCloud пользователя и доступен только после аутентификации пользователя в iCloud.
Ключ службы
CloudKit |
|
|
|
|
|
Ключ зоны |
Ключ записи |
Метаданные |
Список |
Фрагмент |
|
фрагментов |
|||||
CloudKit |
CloudKit |
файла |
|||
файла |
файла |
||||
|
|
|
|||
|
|
|
|
Конвергентное |
|
|
|
|
|
шифрование |
Резервное копирование iCloud
iCloud также выполняет ежедневное резервное копирование информации, включая настройки устройства, данные программ, фотографии и видео из альбома «Фотопленка», а также диалоги из программы «Сообщения», по сети Wi-Fi.
Для обеспечения безопасности содержимого iCloud предпринимаются следующие меры: шифрование при передаче через Интернет, хранение в зашифрованном формате и использование токенов безопасности для аутентификации.
Для резервного копирования iCloud необходимо, чтобы экран устройства был заблокирован, устройство было подключено к источнику питания и подключено к Интернету через Wi-Fi. Благодаря тому что в iOS используется шифрование, система обеспечивает безопасность данных при автоматическом инкрементном резервном копировании и восстановлении.
iCloud создает резервные копии следующих элементов:
•информация о приобретенной музыке, фильмах, телешоу, программах и книгах, но не сами приобретенные материалы;
•фотографии и видеоролики из альбома «Фотопленка»;
•контакты, события календаря, напоминания и заметки;
•настройки устройства;
•данные программ;
•PDF и книги, добавленные в iBooks, но не купленные;
•история вызовов;
•экран «Домой» и организация программ;
•сообщения iMessage, SMS и MMS;
•рингтоны;
•данные HomeKit;
•данные HealthKit;
•сообщения визуального автоответчика.
Если файлы создаются с классами защиты данных, которые недоступны при заблокированном устройстве, их ключи файлов шифруются с использованием ключей классов из хранилища ключей резервного копирования iCloud. Файлы включаются в резервные копии iCloud в исходном, незашифрованном состоянии. Файлы, имеющие класс защиты «Без защиты», шифруются во время передачи.
Обзор безопасности iOS | Июнь 2015 г. |
37 |
Интеграция Safari со Связкой ключей iCloud
Safari может автоматически генерировать криптографически стойкие случайные строки для использования в качестве паролей веб-сайтов, которые будут храниться в Связке ключей
исинхронизироваться с другими устройствами. Элементы связки ключей передаются между устройствами
исерверами Apple, однако они зашифрованы таким образом, чтобы компания Apple и другие устройства не могли прочитать их содержимое.
Хранилище ключей резервного копирования iCloud содержит асимметричные ключи (Curve25519) для каждого класса защиты данных, используемые для шифрования ключей файлов. Подробнее о содержимом хранилища ключей резервного копирования и хранилища ключей резервного копирования iCloud см. «Защита данных связки ключей» в разделе «Шифрование и защита данных».
Комплект резервной копии, состоящий из копии файлов пользователя и хранилища ключей резервного копирования iCloud, сохраняется в учетной записи iCloud пользователя. Хранилище ключей резервного копирования iCloud защищается
с помощью случайного ключа, который также сохраняется в комплекте резервной копии. (Пароль iCloud пользователя не используется для шифрования, поэтому изменение пароля iCloud не приводит к аннулированию существующих резервных копий.)
При хранении в iCloud резервная копия базы данных связки ключей пользователя защищена ключом, который связан с UID. Благодаря этому восстановить связку ключей можно только на том устройстве, с которого она получена, и никто другой, включая Apple, не может прочитать элементы связки ключей пользователя.
При восстановлении выполняется извлечение резервных копий файлов, хранилища ключей резервного копирования iCloud и ключа от хранилища ключей из учетной записи iCloud пользователя. Сначала с помощью этого ключа дешифруется хранилище ключей резервного копирования iCloud, а затем с помощью ключей файлов из хранилища ключей дешифруются файлы, хранившиеся в комплекте резервной копии. Эти файлы сохраняются в файловой системе как новые файлы, поэтому они повторно шифруются с учетом своего класса защиты данных.
Связка ключей iCloud
Связка ключей iCloud обеспечивает безопасную синхронизацию паролей пользователей между устройствами iOS и компьютерами Mac без передачи этой информации в компанию Apple. Помимо высокого уровня конфиденциальности и безопасности, при разработке дизайна и архитектуры Связки ключей iCloud учитывались такие аспекты, как простота использования и возможность восстановления связки ключей. Связка ключей iCloud состоит из двух служб: синхронизации связки ключей и восстановления связки ключей.
Связка ключей iCloud и восстановление связки ключей реализованы таким образом, что пароли пользователя остаются защищены даже в следующих ситуациях:
•Учетная запись iCloud пользователя взломана.
•Служба iCloud взломана сторонним злоумышленником или сотрудником.
•Доступ третьей стороной к учетным записям пользователей.
Синхронизация связки ключей
Когда пользователь впервые включает Связку ключей iCloud, устройство устанавливает круг доверия и создает для себя идентификатор синхронизации. Идентификатор синхронизации состоит из личного ключа и открытого ключа. Открытый ключ идентификатора синхронизации помещается в круг, а сам круг подписывается дважды: в первый раз с помощью личного ключа идентификатора синхронизации, а во второй раз с помощью асимметричного эллиптического ключа (на основе P256), полученного из пароля учетной записи iCloud пользователя. Вместе с кругом сохраняются параметры (случайное значение «соли» и число повторений), использованные для создания ключа из пароля учетной записи iCloud пользователя.
Обзор безопасности iOS | Июнь 2015 г. |
38 |
Подписанный круг синхронизации размещается в хранилище значений ключей iCloud пользователя. Его нельзя прочитать, не зная пароля iCloud пользователя,
и нельзя изменить, не имея личного ключа идентификатора синхронизации одного из членов круга.
Когда пользователь включает Связку ключей iCloud на другом устройстве, новое устройство видит в iCloud, что пользователь установил круг синхронизации,
в который оно не входит. Устройство создает для себя пару ключей идентификатора синхронизации, а затем создает билет заявки для запроса членства в круге. Билет содержит открытый ключ идентификатора синхронизации устройства. Пользователь получает запрос на прохождение аутентификации
с использованием своего пароля iCloud. Из iCloud извлекаются параметры генерирования эллиптического ключа, используемые для создания ключа, а затем этот ключ используется для подписания билета заявки. Наконец, билет заявки передается в iCloud.
Когда первое устройство обнаруживает поступление билета заявки, оно отображает сообщение для пользователя с информацией о том, что новое устройство просит разрешение присоединиться к кругу. Пользователь вводит свой пароль iCloud, после чего билет заявки проверяется на использование соответствующего личного ключа. Это подтверждает, что пользователь, который отправил запрос на присоединение к кругу, ввел свой пароль iCloud при генерировании запроса.
После того как пользователь разрешает добавить новое устройство в круг, первое устройство добавляет в круг синхронизации открытый ключ нового члена
иподписывает его еще раз с помощью своего идентификатора синхронизации
иключа, полученного из пароля iCloud пользователя. Новый круг синхронизации передается в iCloud, где его аналогичным образом подписывает новый член круга.
Теперь в круг входят два члена, и у каждого из них есть открытый ключ другого члена. Члены круга начинают обмениваться отдельными элементами связки ключей через хранилище значений ключей iCloud. Если оба члена круга содержат одинаковый элемент с разными датами изменения, оба получают элемент с более новой датой изменения, т. е. синхронизируются. Если даты изменения совпадают, элемент пропускается. Каждый синхронизированный элемент
шифруется специально для устройства, на которое он пересылается. Он не может быть расшифрован другими устройствами или компанией Apple. Кроме того, зашифрованный элемент сохраняется в iCloud только на короткое время;
он заменяется новым элементом при каждой синхронизации.
Когда к кругу присоединяются новые устройства, процедура повторяется. Например, при присоединении третьего устройства подтверждение отображается на других двух устройствах пользователя. Пользователь может утвердить нового члена с любого из этих устройств. При добавлении нового члена круга выполняется его синхронизация с другими членами круга, чтобы на всех устройствах хранились одинаковые элементы связки ключей.
Однако синхронизируется не вся связка ключей. Некоторые элементы, например идентификаторы VPN, относятся к конкретному устройству
и не должны его покидать. Синхронизируются только элементы с атрибутом kSecAttrSynchronizable. Apple установила этот атрибут для пользовательских данных Safari (включая имена пользователей, пароли и номера кредитных карт), а также для паролей Wi-Fi и ключей шифрования HomeKit.
Обзор безопасности iOS | Июнь 2015 г. |
39 |
Кроме того, по умолчанию в синхронизации не участвуют элементы связки ключей, добавленные программами сторонних разработчиков. При добавлении элементов в связку ключей разработчики должны установить атрибут
kSecAttrSynchronizable.
Восстановление связки ключей
Функция восстановления связки ключей позволяет передать свою связку ключей на хранение в компанию Apple, не давая ей возможности считывать пароли или другие данные в связке ключей. Даже если у пользователя есть только одно устройство, функция восстановления связки ключей обеспечивает защиту
от потери данных. Это особенно важно, если Safari генерирует для учетных записей веб-сайтов случайные, надежные пароли, поскольку единственный экземпляр этих паролей хранится в связке ключей.
Фундаментальным элементом восстановления связки ключей является служба дополнительной аутентификации и безопасного ответственного хранения, разработанная компанией Apple специально для поддержки этой функции. Связка ключей пользователя зашифрована с использованием надежного пароля, и служба ответственного хранения выдает копию этой связки ключей только при соблюдении строгого набора условий.
При включении Связки ключей iCloud пользователь получает запрос на создание кода безопасности iCloud. Этот код необходим для восстановления переданной на хранение связки ключей. По умолчанию пользователям достаточно указать простое значение из четырех цифр. Однако пользователи также могут указать собственный, более длинный код или позволить устройству создать криптографически случайный код, который они могут записать и хранить самостоятельно.
Затем устройство iOS экспортирует копию связки ключей пользователя, шифрует ее с помощью ключей из хранилища асимметричных ключей и помещает
в хранилище значений ключей iCloud пользователя. Хранилище ключей защищается с помощью кода безопасности iCloud и открытого ключа кластера HSM (аппаратный модуль системы безопасности), в котором будет храниться запись ответственного хранения. Эта запись становится записью ответственного хранения iCloud пользователя.
Если вместо того, чтобы задавать свой собственный сложный или четырехзначный код, пользователь решит принять криптографически случайный код, запись ответственного хранения будет не нужна. Для защиты случайного ключа будет использован код безопасности iCloud.
Помимо указания кода безопасности, пользователи должны зарегистрировать номер телефона. Он используется в качестве второго уровня аутентификации при восстановлении связки ключей. Пользователь получает сообщение SMS,
на которое он должен ответить, чтобы продолжить процесс восстановления.
Безопасность ответственного хранения
iCloud предоставляет инфраструктуру безопасности, которая гарантирует, что восстановление переданной на хранение связки ключей смогут выполнить только авторизованные пользователи и устройства. За iCloud расположены кластеры аппаратных модулей системы безопасности (HSM). Эти кластеры защищают записи ответственного хранения. Каждый кластер имеет ключ, который используется для шифрования находящихся под его контролем записей ответственного хранения, как было описано ранее.
Обзор безопасности iOS | Июнь 2015 г. |
40 |