Рекомендация. Как защитить Http-запросы (например, вход в систему) из мобильного приложения? - PullRequest
7 голосов
/ 19 мая 2011

У нас есть веб-приложение, которое предоставляет простой «универсальный Http-обработчик» (ASP.NET) для обеспечения простого способа получить сеанс для мобильного приложения.
Atm вся концепция / приложение находится в демо / альфа / тестовом состоянии - так что не поднимайте руки в ужасе ...:)

Я понял, что есть несколько проблем безопасности:

  • Если мобильное устройство подключено к WLAN (так как необходимая процедура прослушивания довольно проста), вы можете просто прослушать запрос (чтобы получить значение для имени пользователя / пароля) и / или ответ (чтобы повторно использовать сеанс где-то еще )
  • Мы могли бы добавить некоторое шифрование / дешифрование, но, поскольку мы находимся на Android, любой может распаковать файл .apk и выполнить некоторый обратный инжиниринг, чтобы получить общий ключ (и соль)
  • Мы могли бы использовать https: // ... но ... мне интересно, есть ли другой способ ... Еще одна причина, почему не стоит выбирать SSL: у нас нет ни одного веб-приложения, поэтому ... чем больше приложений, тем дороже это будет стоить ... и, как это типично для компаний, мы хотим сэкономить:)

Некоторые боковые узлы:
Поскольку мы планируем предоставить нашим клиентам возможность доступа к нашему веб-приложению (обработчик является лишь его частью) с помощью мобильного приложения, мы не очень хотим публиковать его на рынке ... Но, возможно, это изменится , Таким образом, план не включает «публичную раздачу» .apk.

Я уже провел некоторое исследование по вопросу «Как адаптировать ответ, чтобы его эффективно могло использовать только мобильное приложение» (например, Как защитить веб-службу .NET для использования приложением iPhone ).

Я считаю, что это должно быть более общей проблемой, о которой стоит подумать не только, если вы работаете на Android / Co ... Так что "Best Practice" может быть ограничен не только Android (у вас будет то же самое) сценарий на iphone или winforms тоже) - это больше о: как работать с удаленным компонентом для выполнения жизненно важных функций (например, login, db-access, ...)

1 Ответ

4 голосов
/ 27 мая 2011

Использование общего ключа в приложении, которое будет доступно всем клиентам, определенно не является решением.

На самом деле, вы всегда можете реализовать свой собственный безопасный протокол (с использованием асимметричного шифрования, ...) или использоватьдругой протокол (безопасный RPC, IPsec, ...), но на самом деле SSL - гораздо более легкое решение (как протокол, так и реализации) для такого использования.Кроме того, поскольку это очень распространенное явление, его действительно легко (= дешево) развернуть, а текущие реализации безопасны и оптимизированы для производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...