Какой алгоритм шифрования использует связка ключей iOS для защиты данных?

После продолжительного гугления мне не удалось найти ответ на этот вопрос1, что удивительно, поскольку «безопасность через неясность» на самом деле вовсе не безопасность...

Есть ли надежный источник ответа на этот вопрос (например, приложение для сертификации iOS, исходный код и т. п.)?

1Единственное упоминание, которое я смог найти, это то, что он может использовать 3DES.


person James    schedule 10.06.2011    source источник


Ответы (4)


Согласно этой официальной веб-странице Apple:

Элементы цепочки для ключей шифруются с использованием двух разных ключей AES-256-GCM: ключа таблицы (метаданные) и ключа для каждой строки (секретного ключа).

ОБНОВЛЕНИЕ: обновление от мая 2019 года. Шифрование изменено со 128 на 256.

person Mateusz Wlodarczyk    schedule 12.01.2017
comment
Просто комментарий: кажется, что этот документ регулярно обновляется, так что я думаю, что мы можем в значительной степени положиться на него. - person Mateusz Wlodarczyk; 01.03.2018

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

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

Тем не менее, я серьезно сомневаюсь, что Apple использует 3DES, потому что они действительно знают, что делают. Я бы дал шансы 10 к 1, что они используют AES.

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

person Nemo    schedule 10.06.2011

Согласно документации по связке ключей службы и другие API-интерфейсы безопасности Mac OS X построены на основе архитектуры Common Data Security Architecture (CDSA) с открытым исходным кодом и ее программного интерфейса Common Security Services Manager (CSSM).

Дополнительная информация об этом здесь

тема обсуждения здесь цитирует официальную документацию Apple (в настоящее время недействующую), в которой говорится:

Все данные паролей в цепочке для ключей защищены с помощью стандарта тройного цифрового шифрования (3DES).

Я посмотрю, смогу ли я найти что-нибудь более актуальное / окончательное.

ОБНОВЛЕНИЕ:

ОК, здесь есть копия официального документа OSX, который подтверждает 3DES, однако я согласен с тем, что реализация может быть изменена.

Применимо ли это также к iOS, также потребуется проверка, однако, учитывая гармонизацию iOS и Lion, я подозреваю, что это скорее вероятно, чем нет.

person Roger    schedule 10.06.2011
comment
Эти документы описывают интерфейс, а не реализацию. Они не отвечают на вопрос (и я не верю, что Apple отвечает на этот вопрос ни в одной из своих документов). - person Nemo; 11.06.2011
comment
@Nemo, см. обновленный ответ с официальным документом Apple (хотя и сторонней копией), в котором говорится о 3DES. - person Roger; 11.06.2011
comment
Хорошая находка. Но я бы все равно дал шансы 10 к 1, что iOS использует AES. (Нет никаких причин для совместимости связки ключей, поскольку вы не можете перемещать их между устройствами. И OS X намного старше iOS. И правительство США больше не рекомендует использовать 3DES... ) - person Nemo; 11.06.2011
comment
› Хорошо, здесь есть копия официального документа OSX, который подтверждает 3DES ===› Где ключ? Он хранится на жестком диске или в аппаратном компоненте, например, на смарт-карте? - person Fellow Traveler; 26.01.2013

Каждое устройство iOS имеет специальный механизм шифрования AES 256, встроенный в путь DMA между флэш-памятью и основной системной памятью, что делает шифрование файлов очень эффективным. доступ к памяти, содержащей пользовательские данные, предоставляется только через механизм шифрования DMA.

person Damyan Todorov    schedule 06.04.2017