Android HttpWebConnection безопасность - PullRequest
0 голосов
/ 01 марта 2012

Я работаю над приложением для платформы Android.Приложение использует большое количество HTTP-вызовов на мой веб-сервер.Это работает очень хорошо, но мне нужна помощь в обеспечении безопасности моих звонков и веб-сервера.

Я знаю, что могу использовать SSL через Https для шифрования моего соединения как на стороне клиента, так и на стороне сервера, это не проблема, и, конечно,быть сделано при запуске приложения.Но какой самый безопасный способ будет иметь сеанс для подключенного устройства?

Я думал о создании системы сеансов на основе mysql, содержащей следующие строки

id - sessKey - sessCont - sessUid- sessTime

sessKey будет сгенерированным случайным образом 32-битным ключом.sessCont массив JSON хранимой информации, а sessUid будет идентификатором пользователя, вошедшего в систему.sessTime будет содержать метку времени.

Этот сеанс будет установлен при входе в систему, и телефон затем получит sessKey + sessId.При совершении звонков ключ будет изменен и снова возвращен к телефону.Если вызов на 10 минут позже, чем последний вызов, сеанс закроется, и необходимо будет выполнить новый вызов.

И все же я продолжаю искать способы компрометации этого подхода, как и я могу со всеми другимиодобряет, что я могу подумать.

Как мне удастся обеспечить максимально возможную безопасность и контроль сеансов с моего телефона на моем серверном скрипте?

Заранее спасибо.Jonas

1 Ответ

1 голос
/ 01 марта 2012

Время нумерованного списка ...

  1. Если вы используете SSL-соединение, значительная часть безопасности уже на вашей стороне.Вы можете вынюхивать свой список уязвимостей.
  2. Большая часть оставшейся уязвимости будет на стороне пользователя, может хакеры могут отслеживать оборудование на стороне пользователя и получать информацию о сеансе после ее передачи на оборудование пользователя., который в данном случае является телефоном Android.Данные приложения защищены от других приложений, поэтому, если вы, разработчик или ваш пользователь не делаете безумно безрассудных действий, это должно быть безопасно.
  3. Что приводит меня к # 3, вся остальная безопасность действительно попадает в вашкруг как разработчик.Если у вас есть межсайтовый скриптинг (XSS), идентификаторы сеансов можно легко угадать, или вы уязвимы для фиксации сеанса, или ваше хранилище идентификатора сеанса слабое (SQL-инъекция?), Тогда вы фактически отмените всю хорошую работу, которую высделал с любой другой мерой безопасности.

В конце концов, всегда есть способы взломать систему, но, выполнив эти три шага, вы сделали все, что могли, чтобы предотвратить хакеров.Остальное, к сожалению, лежит в тех частях, которые мы не можем коснуться;Операционная система Android, сети сотовых телефонов, здравый смысл пользователя.

PS Наиболее безопасный способ, вероятно, состоит в том, чтобы уничтожить идею сеанса.Сохраните идентификатор пользователя (число, которое может означать что угодно) и зашифрованную md5 версию их пароля.Обязательно добавьте что-нибудь интересное, чтобы хакеры не могли просто найти обратные пароли.(IE. ИхPassword + userid + HACKTHISSUCKERS), и даже если кто-то перейдет к реверсеру md5, он не сможет отменить ваш хэш.И затем каждый раз, когда вы делаете запрос на свой сервер, делайте это через SSL, а когда проверка подлинности проверяется, отправляйте информацию.Безопасное SSL-соединение, безопасная md5-пароль, отсутствие утечек в системе безопасности.

Даже если хакер каким-то образом обнаружит, что ваше приложение отправляет на ваш сервер;число и неразборчивый хеш.Единственный способ узнать, что отправляет ваше приложение, - это если ваш пользователь небрежен и позволяет своему телефону подключиться к оборудованию хакера, которое фактически способно перехватывать данные POST, прежде чем они будут отправлены через соединение SSL.

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