Единицы
1. Введение в искусственный интеллект в мобильной разработке: роли, границы, аутентификация и безопасность 2. Генерация мобильного кода с помощью искусственного интеллекта: Kotlin, Swift и кроссплатформенная разработка 3. Проектирование интерфейсов и генерация кода пользовательского интерфейса с помощью искусственного интеллекта 4. Искусственный интеллект на устройстве: Core ML, TensorFlow Lite и комплект ML 5. Интеграция Cloud AI и LLM API: чат, потоки и безопасность 6. Генерация тестов с помощью искусственного интеллекта: юнит-тесты, тесты интерфейса и автоматизации 7. Отладка и анализ сбоев с помощью искусственного интеллекта 8. Оптимизация производительности и батареи: быстрые и эффективные приложения с искусственным интеллектом 9. Конфиденциальность, разрешения и безопасное использование 10. Версия для магазина: App Store, Google Play и совместимость с AI. 11. Комплексный проект, ответственное использование искусственного интеллекта и дорожная карта в профессии
Единица 9 / 11

Конфиденциальность, разрешения и безопасное использование

Прибыль:

  • Возможность запрашивать разрешения с обоснованием, контекстом и сценарием отклонения, используя принцип наименьших привилегий.
  • Возможность хранить конфиденциальные данные, зашифрованные с помощью Keychain/Keystore, применять минимизацию данных и контролировать склонность искусственного интеллекта добавлять слишком много разрешений.
  • Возможность управлять потоком пользовательских данных в облако или службу искусственного интеллекта в качестве решения о конфиденциальности, получать согласие пользователя и использовать методы безопасности только в авторизованных защитных целях.

Мобильное приложение работает на самом приватном устройстве пользователя: знает его местоположение, контакты, фотографии, данные о здоровье, микрофон. Этот доступ – великая сила, а сила означает ответственность. Конфиденциальность и безопасность — это не «дополнительная функция» мобильной разработки, а принцип, заложенный в архитектуру с самого начала; Это называется конфиденциальностью по замыслу. Более того, это не только этический выбор, это юридическое (KVKK, GDPR) и обязательство магазина (App Store, Google Play). В этом модуле мы научимся правильно запрашивать разрешения, безопасно обрабатывать данные, использовать ИИ в качестве помощника в этой области и защищаться от его ловушек. В контексте ИИ существует еще одна критическая проблема: передача пользовательских данных в модели ИИ (особенно в облако) сама по себе является решением по обеспечению конфиденциальности.

Искусство спрашивать разрешения: минимум привилегий

Основной принцип безопасности — минимальные привилегии (не требовать больше привилегий, чем требуется для работы). Ваше приложение должно запрашивать разрешение только в тот момент, когда оно ему действительно необходимо. Если функция камеры отсутствует, разрешение камеры не будет запрошено; Если местоположение требуется только тогда, когда карта открыта, достаточно разрешения «при использовании», а не «всегда». Чрезмерные разрешения наносят тройной вред: они подрывают доверие пользователей, приводят к отказу хранилища и увеличивают риск утечки данных.

Правильное время и объяснение запроса разрешения имеют решающее значение. Спросите у пользователя разрешение в контексте и с обоснованием, например: «Для сканирования вашей квитанции требуется доступ к камере». iOS требует это описание в Info.plist; Пустое или вводящее в заблуждение описание – это отказ от магазина.

Тип разрешения

плохой подход

хороший подход

время

Запросить все при запуске

подсказка при использовании этой функции

Область применения

«Всегда расположение»

"местоположение во время использования"

Описание

Пустой или общий

Конкретное, конкретное обоснование

статус отклонения

Приложение вылетает/вылетает

Пожалуйста предложите альтернативы

Совет: Ваше приложение должно иметь возможность продолжать работу, даже если в разрешении отказано. Если пользователь отклоняет камеру, предложите вариант «входа вручную». Навязывание «разрешите, иначе приложение не будет работать» — это одновременно и неудачный опыт, и проблема магазина. Всегда запрашивайте сценарий отклонения при печати кода разрешения для ИИ.

Согласие и код конфиденциальности с ИИ: соображения

ИИ быстро генерирует код запроса разрешения, но у него есть две типичные ловушки. Во-первых, добавив больше разрешений, чем необходимо: местоположение, контакты, можно массово поставить разрешения на хранение «на всякий случай». Во-вторых, пропуск сценария отклонения: просто напишите статус «разрешено» и игнорируйте отказ. Для каждого сгенерированного разрешения вас спросят: «Действительно ли это необходимо?» и «что произойдет, если его отклонят?» Задавайте свои вопросы.

Внимание: пример кода, сгенерированный ИИ, может хранить пользовательские данные без шифрования или передавать их небезопасно. Конфиденциальные данные (пароль, здоровье, финансы) должны храниться в безопасном хранилище на устройстве (Связка ключей — iOS, Хранилище ключей — Android; зашифрованное хранилище операционной системы) и передаваться в сети через зашифрованное соединение (HTTPS/TLS). ИИ не всегда делает это спонтанно; Спросите четко и проверьте.

Минимизация данных и отправка данных в ИИ

Данные, которые вы не собираете, не могут утечь. Минимизация данных (сбор только тех данных, которые действительно необходимы) — самый мощный инструмент обеспечения конфиденциальности. В функциях ИИ этот принцип важен вдвойне: при отправке данных в облачный LLM или внешний сервис ИИ эти данные находятся вне вашего контроля. Прежде чем отправлять в облако заметку о состоянии здоровья пользователя, содержание разговора или личную информацию, задайте три вопроса: (1) Действительно ли эти данные необходимы? (2) Можно ли его обработать на устройстве? (3) Если сообщение должно быть отправлено, знает ли об этом пользователь и одобряет ли это? Четкое информирование пользователя о том, что его данные передаются в службу искусственного интеллекта, является как юридическим, так и этическим требованием.

Безопасное использование и защита

Предупреждение с точки зрения ИТ и безопасности: методы, изученные в этом модуле, предназначены только для авторизованного и защитного использования. Правомерно проверять безопасность собственного приложения, защищать пользовательские данные и закрывать уязвимости. Реверс-инжиниринг чужого приложения без разрешения, сбор пользовательских данных без согласия или использование ИИ для создания вредоносного ПО являются незаконными и неэтичными. Обращаясь к ИИ за помощью в обеспечении безопасности, всегда оставайтесь в рамках защиты собственной системы.

три мини-кейса

Случай 1 — Чрезмерный отказ в отпуске. Приложение для заметок при запуске запрашивало разрешения для камеры, микрофона, местоположения и контактов с помощью кода, созданного AI. Google Play отклонил выпуск, сославшись на «разрешения, не имеющие отношения к функциям». Релиз был одобрен, когда команда выпустила только то разрешение на хранение, которое фактически использовалось. Урок: каждый дополнительный отпуск – это риск.

Случай 2 — Хранение без пароля. Приложение для здоровья сохраняло пользовательские измерения в текстовом файле, как в примере с AI. Проверка безопасности показала, что любой, кто получил устройство, мог прочитать все данные о состоянии здоровья. Данные перемещены в зашифрованное хранилище с помощью Keystore/Keychain. Урок: конфиденциальные данные всегда остаются зашифрованными.

Случай 3. Необъявленный перенос в облако. Приложение отправляло ежедневные заметки пользователей в облачный LLM, чтобы обобщить их, но не сообщало об этом пользователю. Когда об этом сообщили в прессе, произошла потеря доверия и юридического контроля. Команда добавила четкое уведомление и подтверждение, а также опцию на устройстве. Урок: пользователь должен знать и подтверждать, что данные поступают в ИИ.

Слабая подсказка / Сильная подсказка

Слабая подсказка: «Запросить разрешение на определение местоположения».

Мощная подсказка: «Запросить разрешение на определение местоположения в iOS/Swift с принципом наименьших привилегий. — Разрешение только «при использовании», а не «всегда». — Описание Info.plist: «Показать близлежащие магазины». — Если в разрешении отказано: предложите возможность вручную выбрать город, сбой. — Если разрешение было отклонено ранее, перенаправьте к настройкам. Не добавляйте больше разрешений, чем необходимо. Также напишите поток отказа».

Копируемые шаблоны

Шаблон для запроса разрешения: «Запросите разрешение [тип разрешения] для [платформы]. – Минимальная область действия (при использовании/по мере необходимости) – В контексте, с аргументированным объяснением – Вежливая альтернатива в случае отклонения, никогда не сбой – Также дайте запись Info.plist/Manifest. Не добавляйте дополнительные разрешения; обоснуйте каждое разрешение».

Шаблон аудита разрешений: «Проверьте разрешения, которые запрашивает мое приложение: [список разрешений + свойства]. Для каждого разрешения: действительно ли оно необходимо? Достаточно ли более узкой области? Не приведет ли это к отклонению в сохранении? Отметьте ненужное».

Шаблон безопасного хранения данных: «Надежно храните конфиденциальные данные ([тип]) для [платформы]: – Зашифрованные с помощью цепочки ключей/хранилища ключей – Не храните в памяти излишне долгое время – Не допускайте утечки в журналы и резервные копии. Предоставьте код и шаги проверки».

Шаблон для отправки данных в ИИ: «Я рассматриваю возможность отправки следующих данных в облачный сервис ИИ: [данные]. Оцените: действительно ли это необходимо? Можно ли их обработать на устройстве? Если отправить, какие поля следует замаскировать? Как следует получить согласие пользователя? Порекомендовать наиболее безопасный дизайн с точки зрения конфиденциальности».

Распространенные ошибки

  • Просить большего разрешения, чем необходимо. Тройной риск доверия, одобрения магазина и безопасности.
  • Массовый запрос разрешений при запуске. Запрос на разрешение без контекста отклоняется; немедленно запросите эту функцию.
  • Не писать сценарий отказа. Сбой приложения при отказе в разрешении является одновременно плохим и отклоненным.
  • Хранение конфиденциальных данных без пароля. Здоровье, финансы и пароли должны храниться в надежном хранилище.
  • Отправка данных в облако/ИИ без информирования пользователя. Правовые и этические нарушения; Требуется уведомление и одобрение.
  • Несанкционированное использование средств безопасности. Это допустимо только в целях защиты вашей собственной системы.

В заключение

Конфиденциальность и безопасность разрабатываются с самого начала, а не добавляются позже. Основной принцип – наименьшие привилегии: спрашивайте только необходимое разрешение, при необходимости и с обоснованием, и предложите вежливую альтернативу в случае отказа. Конфиденциальные данные хранятся в зашифрованном хранилище и передаются через зашифрованное соединение. Минимизация данных — самая надежная защита: данные, которые вы не собираете, не могут утечь. Отправка данных в ИИ, особенно в облако, сама по себе является решением вопроса конфиденциальности; Ее необходимость подвергается сомнению, по возможности предпочтение отдается использованию на устройстве, пользователь информируется и получает его одобрение. Каждый создаваемый код проверяется на предмет склонности ИИ добавлять чрезмерные разрешения и хранить небезопасно. Методы безопасности используются только в санкционированных и защитных целях.

Задача приложения

Составьте список разрешений, которые запрашивает приложение (ваш собственный проект или воображаемое), и попросите ИИ проверить, какие из них являются ненужными или чрезмерными, с помощью «Шаблона аудита разрешений». Уточните или удалите хотя бы одно разрешение и напишите сценарий отказа для этой функции. Кроме того, если вы отправляете пользовательские данные в облако, определите наиболее безопасный дизайн с помощью «Шаблона решения об отправке данных в ИИ» и напишите текст одобрения пользователя.

контрольный список

  • [ ] Я запросил каждое разрешение с обоснованием, с соблюдением принципа наименьших привилегий.
  • [ ] Я запрашивал разрешения в контексте, во время создания функции, а не массово при запуске.
  • [ ] Написал скрипт отклонения для каждого разрешения, сбоев нет
  • [ ] Я хранил конфиденциальные данные, зашифрованные с помощью Keychain/Keystore.
  • [ ] Я минимизировал передачу данных в облако/ИИ и добавил одобрение пользователей.
  • [ ] Я использовал методы безопасности только в своей системе в защитных целях.