Я работаю над приложением для электронного банкинга iphone.
Я использую WSS с подписью XML для подписи запросов к SOAP-серверу клиента.
Поскольку устройство iPhone нельзя доверять (из-за взлома), клиент
Требуется вручную зашифровать пару ключей RSA (используя AES128) перед сохранением ключей в связке ключей.
Из того, что я нашел, ключи автоматически добавляются в цепочку для ключей при генерации.
Поэтому моя идея состоит в том, чтобы извлечь данные впоследствии (так же, как открытый ключ извлекается в примере CryptoExercise), удалить ключи из цепочки для ключей, выполнить шифрование AES и снова сохранить их в цепочке для ключей как пользовательские NSData.
1) Вы видите какие-либо проблемы с этим?
Я где-то читал, что для извлечения данных или удаления ключа может потребоваться какой-то пароль, хотя какой пароль я не получил. Я попробую это позже сегодня и опубликую ответ, если пока что нет ответа :)
2) Я не могу найти, если есть какой-либо способ использовать этот ключ без реализации некоторых хаков в коде?
Она выглядит так, как метод SecKeyRawSign принимает только ссылку SecKeyRef, которая является указателем на ключ в цепочке для ключей. Есть ли какой-либо другой способ подписи с использованием NSData ключа?
Единственная идея, которая у меня есть на данный момент, - это использовать метод SecItemAdd, чтобы добавить незашифрованный ключ в цепочку для ключей перед подписанием и удалить его после подписания. Но мне это не нравится, так как это будет происходить все время, и если приложение закрывается (происходит сбой или что-то еще) до того, как ключ извлечен из цепочки для ключей, оно останется там до тех пор, пока не допустим, что приложение будет запущено в следующий раз. *
Есть идеи для лучшего решения?
привет