Функции безопасности в приложении «Заметки»
В приложение «Заметки» встроена функция «Секретные заметки» (на iPhone, iPad, Mac и сайте iCloud), позволяющая защитить содержимое отдельных заметок. Пользователи также могут безопасно делиться заметками с другими.
Секретные заметки
Секретные заметки защищены сквозным шифрованием с использованием придуманного пользователем пароля, без которого невозможно просмотреть эти заметки на устройствах iOS, iPadOS и macOS, а также на сайте iCloud. Каждая учетная запись iCloud (в том числе учетные записи «На моем» устройстве) может иметь свой пароль.
Когда пользователь засекречивает заметку, создается 16-байтный ключ на основе введенного им пароля с использованием алгоритма PBKDF2 и SHA-256. Заметка и все ее вложения шифруются по алгоритму AES в режиме Galois/Counter Mode (AES-GCM). В CoreData и CloudKit создаются новые записи для хранения зашифрованной заметки, вложений, тега и вектора инициализации. После создания новых записей исходные незашифрованные данные удаляются. Следующие вложения поддерживают шифрование: изображения, зарисовки, таблицы, карты и сайты. Заметки, содержащие другие типы вложений, нельзя зашифровать, а неподдерживаемые вложения нельзя добавить в секретные заметки.
Для просмотра секретной заметки пользователь должен ввести пароль или пройти аутентификацию с помощью Face ID или Touch ID. После успешной аутентификации пользователя для просмотра или создания секретной заметки приложение «Заметки» запускает безопасный сеанс. Во время безопасного сеанса пользователь может просматривать секретные заметки или защищать другие заметки, не проходя повторную аутентификацию. Однако безопасный сеанс распространяется только на заметки, защищенные с помощью того же пароля. Если заметки защищены с помощью другого пароля, потребуется аутентификация пользователя. Безопасный сеанс прекращается, если:
пользователь касается кнопки «Заблокировать» в приложении «Заметки»;
приложение «Заметки» находится в фоновом режиме более трех минут (восьми минут для macOS);
устройство iOS или iPadOS блокируется.
Чтобы изменить пароль секретной заметки, пользователь должен ввести текущий пароль, так как для смены пароля нельзя использовать Face ID или Touch ID. После того как пользователь выбрал новый пароль, приложение «Заметки» повторно защищает ключи существующих заметок в той же учетной записи, зашифрованных предыдущим паролем.
Если пользователь неправильно вводит пароль три раза подряд, приложение «Заметки» показывает подсказку, заданную пользователем при настройке (если она была задана). Если пользователь по-прежнему не может вспомнить пароль, его можно сбросить в настройках Заметок. После этого пользователь сможет создавать новые секретные заметки с новым паролем, но не сможет просматривать секретные заметки, защищенные старым паролем. Если пользователь вспомнит старый пароль, то сможет просматривать старые секретные заметки даже после сброса пароля. Для сброса пароля необходимо знать пароль учетной записи iCloud пользователя.
Общие заметки
Если к заметке не применено сквозное шифрование с использованием пароля, можно предоставить доступ к такой заметке другим пользователям. Для любого текста и вложений, добавляемых пользователем в общую заметку, Apple использует тип зашифрованных данных CloudKit. Ресурсы всегда шифруются ключом, зашифрованным в CKRecord. Метаданные, например даты создания и изменения, не шифруются. CloudKit управляет процессом, используя который участники могут шифровать и дешифровать принадлежащие друг другу данные.