Я наткнулся на несколько статей о взаимодействии между приложениями на iOS, например. "двусторонняя интеграция приложений на iPhone: как это работает" и "Approved iPhone Interprocess Communication а>". По сути, они используют пользовательские схемы URL для связи. Мой вопрос: каковы проблемы безопасности, если я должен передать некоторые конфиденциальные данные, такие как учетные данные для входа?
Насколько безопасно взаимодействие между приложениями в iOS?
Ответы (1)
Не используйте схемы URL для любых конфиденциальных данных. Они никоим образом не предназначены для обеспечения безопасности.
Вместо этого вы должны использовать механизмы Keychain в iOS, которые предназначены именно для этой цели.
person
Claus Broch
schedule
29.03.2011
Не могли бы вы рассказать мне о сценарии, в котором использование схем URL может быть небезопасным?
- person William Niu; 30.03.2011
Он передается незашифрованным между процессами. Кроме того, у вас нет контроля над получателем, поэтому любой злонамеренный процесс может зарегистрировать ту же схему URL и перехватить учетные данные.
- person Claus Broch; 30.03.2011
Я знал это. Но для телефона без джейлбрейка разве это не увидит только предполагаемое приложение?
- person William Niu; 30.03.2011
Если предполагаемое приложение не установлено на iPhone, но вместо этого другое приложение регистрирует ту же схему URL-адресов, вы можете непреднамеренно отправить URL-адрес неправильному приложению. В этих схемах нет встроенных средств защиты, и нет возможности проверить, какое приложение зарегистрировало пользовательскую схему.
- person Claus Broch; 31.03.2011
Клаус, документация iOS для SecItemAdd объясняет, что вы можете использовать атрибут kSecAttrAccessGroup для элементов цепочки для ключей, чтобы указать группу доступа для цепочки для ключей, которая может получить доступ к этому элементу. Разве это не так же небезопасно? Разве мошенническое приложение не может просто объявить то же самое право группы доступа к цепочке ключей и получить доступ к конфиденциальным данным?
- person Bob Whiteman; 20.12.2011
Если несколько сторонних приложений регистрируются для обработки одной и той же схемы URL-адресов, в настоящее время не существует процесса определения того, какое приложение получит эту схему: developer.apple.com/library/content/documentation/iPhone/
- person lelelo; 22.01.2018
Я не думаю, что это небезопасно. Два вовлеченных приложения просто должны сотрудничать. Они оба могут добавлять Payamas в обратном порядке до своих реальных схем для создания шифрования. Кроме того, такому вору, как разработчик, довольно сложно узнать, какое приложение взаимодействует, как и с чем — чувствовать, что он получит от этого какую-то ценность. Ему нужно будет знать оба приложения и быть предельно точным с этой целью из своего собственного приложения.
- person lelelo; 22.01.2018