2016-11-04 5 views
1

Я новичок в разработке iOS swift 3. Теперь я работаю над проектом, которому требуется шифрование, код аутентификации сообщения (MAC) и Hashed-base-MAC. Эти алгоритмы требуют секретных ключей. Я знаю, что это плохая практика, чтобы жестко закодировать ключи внутри кода, например:swift3 - Как защитить секретный ключ

let key = "secretkeyabc123" 

Искал и читал некоторые статьи, как: In iOS, how can I store a secret "key" that will allow me to communicate with my server?

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

  1. Нет хеша ключ. Время позволяет взломать его, или с хэшированной таблицей и словарем
  2. Может не подключиться к Интернету (мое приложение офлайн-приложение. Если ваш ответ должен быть подключен к Интернету, да, пожалуйста, укажите его.)
  3. Это статический ключ. Он может меняться ежемесячно
  4. Это ключ симметрии.

Коды, концепция или другие вещи приветствуются. Благодаря!

+0

«Время позволяет взломать его», если вы беспокоитесь о количестве времени по порядку продолжительности жизни Вселенной, то я так думаю. – Alexander

ответ

0

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

0

Проверьте iCloud Keychain (на основе ваших тегов [ios], [swift], [key]).

Он функционирует как безопасная база данных, которая позволяет безопасно хранить для быстрого доступа и паролей доступа к веб-сайту пользователя, паролей беспроводной сети Wi-Fi, управления кредитными/дебетовыми картами (хотя без CVV) и других данных учетной записи автозаполнение на веб-страницах и в других местах, когда пользователю необходим мгновенный доступ к ним. Они всегда хранятся в зашифрованном виде с использованием 256-битного шифрования AES, хранятся на устройстве и выталкиваются из iCloud между устройствами и доступны только на доверенных устройствах пользователя.

Смежные вопросы