В нашем приложении у нас есть несколько ключей API (так называемые общие или закрытые ключи). Это необходимо время выполнения. Крайне важно, чтобы эти строки никогда не попадали в руки кого-либо еще, кроме меня/моей организации.Скомпилируйте/отправьте приложение iOS со строками/текстом, который никогда не должен доходить до хакеров
Покушение 1 - ничего не делать
NSString *privateKey = @"a6dedb6096973e4576e1dfc9d048075d;
Если кто-то получает руку этого приложения и получает передать подписной-материал, который они могут работать strings
на двоичный и легко извлечь все строки. (СБОЙ)
Попытка 2 - Сделайте что-нибудь умное
Здесь вы StackOverflow-ребята являются лучшими. Покажи мне волшебство!
Разделите/обфускайте ключ – Volker
Это непростая задача без простого решения. Одним из решений, которое я использовал в прошлом, является создание отдельного выделенного внутреннего веб-сервера, целью которого является (а) сохранение частного ключа и (б) предоставление внутренней веб-службы (простой вызов CURL в PHP) для выполнения любых необходимых функций с помощью закрытого ключа. Только те, у кого разрешен доступ к закрытому ключу, разрешили доступ к исходному коду на * этом * сервере. –
Если важно, чтобы ключи никогда не попадали в руки кому-либо еще, тогда нет безопасного способа их распространения, и вы должны найти другой способ достижения своей цели. Безопасность через безвестность (как предлагает Фолькер) вообще не является безопасностью. Если эти ключи предназначены для доступа к услугам через Интернет, просто невозможно защитить их. Любой пользователь мог бы обнюхать сетевой трафик из вашего приложения, чтобы определить используемые ключи. Вы не указали достаточно информации относительно использования ключей, которые вы хотите защитить, для более подробного ответа на свою дилемму. –