Best practice: How do I secure Http-Requests (eg Login) from a mobile application

We have a web-application which provides a simple "Generic Http-Handler" (ASP.NET) for providing an easy way to get a session for a mobile-application.
Atm вся концепция / приложение находится в демонстрационном / альфа / тестовом состоянии - так что не поднимайте руки в ужасе ... :)

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

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

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

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

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

7
задан Community 23 May 2017 в 11:47
поделиться